Python實現查詢陣列中任意第k大的數字演算法示例

2022-09-28 00:48:18 字數 943 閱讀 4945

模仿partion方法,當high=low小於k的時候,在後半部分搜尋,當hwww.cppcns.comigh=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]

num程式設計客棧bers = [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]

CRichEditCtrl中實現查詢功能

在我的乙個程式中,需要提供類似於記事本的查詢功能。如圖 我寫此文的目的是想向初學mfc的朋友們介紹 如何通過cricheditctrl來實現文字查詢 如何在窗體間傳送訊息 實現文字查詢功能,大致分為以下幾步 建立乙個包含有cricheditctrl的窗體資源以及該窗體對應的處理類 建立乙個錄入查詢文...

使用python實現查詢list中相同的字元

最近和小夥伴想實現從給定列表中識別出來相同的元素,現分享出來,有需要的小夥伴可以 一下,指點一下,具體如下 一 思路 1.按照list中第一元素的順序,進行遍歷每乙個字元 使用for迴圈 2.基於1找出要對比的元素,在給定列表中每個元素是否包含要對比的元素 是否for迴圈遍歷每個列表元素 對比的方案...

mapx實現查詢

1 屬性查詢。find search方法 注意的是find方法只支援tab表檔案,不支援空間資料 表。find 與foxpro中locate定位命令想類似。search 支援sql語句。寫法 僅指sql語句的where 部分,且from語句中只能有乙個表 僅對單錶進行操作 select from l...