Python實(shí)現(xiàn)查找數(shù)組中任意第k大的數(shù)字算法示例
本文實(shí)例講述了Python實(shí)現(xiàn)查找數(shù)組中任意第k大的數(shù)字算法。分享給大家供大家參考,具體如下:
模仿partion方法,當(dāng)high=low小于k的時(shí)候,在后半部分搜索,當(dāng)high=low大于k的時(shí)候,在前半部分搜索。與快排不同的是,每次都減少了一半的排序。
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))
輸出:返回了第五大排序的數(shù)字
[-1, 2, 3, 3, 5, 6, 7, 9]
6
PS:這里再為大家推薦一款關(guān)于排序的演示工具供大家參考:
在線動(dòng)畫(huà)演示插入/選擇/冒泡/歸并/希爾/快速排序算法過(guò)程工具:
http://tools.jb51.net/aideddesign/paixu_ys
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python列表(list)操作技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門(mén)與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
通過(guò)mod_python配置運(yùn)行在Apache上的Django框架
這篇文章主要介紹了通過(guò)mod_python配置運(yùn)行在Apache上的Django框架,Django是最具人氣的Python web開(kāi)發(fā)框架,需要的朋友可以參考下2015-07-07
python寫(xiě)日志文件操作類與應(yīng)用示例
這篇文章主要介紹了python寫(xiě)日志文件操作類與應(yīng)用,結(jié)合實(shí)例形式分析了Python日志文件操作類的定義與使用相關(guān)操作技巧,需要的朋友可以參考下2019-07-07
一行代碼python實(shí)現(xiàn)文件共享服務(wù)器
這篇文章主要介紹了一行代碼python實(shí)現(xiàn)文件共享服務(wù)器,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
python實(shí)現(xiàn)將文本轉(zhuǎn)換成語(yǔ)音的方法
這篇文章主要介紹了python實(shí)現(xiàn)將文本轉(zhuǎn)換成語(yǔ)音的方法,涉及Python中pyTTS模塊的相關(guān)使用技巧,需要的朋友可以參考下2015-05-05
Python字典取值全攻略之高效、簡(jiǎn)潔地獲取字典值的多種技巧
這篇文章主要給大家介紹了關(guān)于Python字典取值全攻略之高效、簡(jiǎn)潔地獲取字典值的多種技巧,dictionary(字典)是除列表以外Python之中最靈活的數(shù)據(jù)類型,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12

