我正在尋找一種有效的算法來執行以下操作:給定N個項目的數組,以某種方式對它進行排序,以便項目以M個相等組進行排序,其中每個組是未排序,但組之間彼此排序(一個組中的所有元素都小於下一個組的任何元素)。 最簡單的方法是對整個數組進行排序。但效率不高,特別是如果組數遠遠小於項目總數(例如,將100萬項分爲5組)。 目前我已經決定使用quickselect算法(具體來說,它是Floyd-Rivest va
該程序應該使用快速選擇並返回一組整數值的中位數。 問題:當我運行程序時,它告訴我k沒有被定義。我應該如何定義k來獲得中位數? def quickSelect(lines,k):
if len(lines)!=0:
pivot=lines[(len(lines)//2)]
smallerlist=[]
for i in lines:
if