国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python實現查找數組中任意第k大的數字算法示例

2020-02-16 00:50:11
字體:
來源:轉載
供稿:網友

本文實例講述了Python實現查找數組中任意第k大的數字算法。分享給大家供大家參考,具體如下:

模仿partion方法,當high=low小于k的時候,在后半部分搜索,當high=low大于k的時候,在前半部分搜索。與快排不同的是,每次都減少了一半的排序。

def partitionOfK(numbers, start, end, k):  if k < 0 or numbers == [] or start < 0 or end >= len(numbers) or k > end:    return None  low = start  high = end  key = numbers[start]  while low < high:    while low < high and numbers[high] >= key:      high -= 1    numbers[low] = numbers[high]    while low < high and numbers[low] <= key:      low += 1    numbers[high] = numbers[low]  numbers[low] = key  if low < k:    return partitionOfK(numbers, start + 1, end, k)  elif low > k:    return partitionOfK(numbers, start, end - 1, k)  else:    return numbers[low]numbers = [3,5,6,7,2,-1,9,3]print(sorted(numbers))print(partitionOfK(numbers, 0, len(numbers) - 1, 5))

輸出:返回了第五大排序的數字

[-1, 2, 3, 3, 5, 6, 7, 9]
6

PS:這里再為大家推薦一款關于排序的演示工具供大家參考:

在線動畫演示插入/選擇/冒泡/歸并/希爾/快速排序算法過程工具:
http://tools.jb51.net/aideddesign/paixu_ys

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python數據結構與算法教程》、《Python列表(list)操作技巧總結》、《Python編碼操作技巧總結》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程》

希望本文所述對大家Python程序設計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 平潭县| 新津县| 黑龙江省| 通河县| 波密县| 涪陵区| 奈曼旗| 昌乐县| 兰州市| 揭西县| 大余县| 高邮市| 荥阳市| 大港区| 瑞金市| 石泉县| 德钦县| 明光市| 嵩明县| 定陶县| 南陵县| 定州市| 梅河口市| 泰州市| 运城市| 百色市| 乾安县| 沈阳市| 凤冈县| 沐川县| 肥西县| 舒城县| 紫阳县| 富川| 乳山市| 商丘市| 蒲城县| 长子县| 贵德县| 尤溪县| 衡东县|