這裏是quickselectPython的Quickselect不打印/返回轉動
def quickSelect(lst, k):
if len(lst) != 0:
pivot = lst[(len(lst)) // 2]
smallerList = []
for i in lst:
if i < pivot:
smallerList.append(i)
largerList = []
for i in lst:
if i > pivot:
largerList.append(i)
count = len(lst) - len(smallerList) - len(largerList)
m = len(smallerList)
if k >= m and k < m + count:
return pivot
print(pivot)
elif m > k:
return quickSelect(smallerList, k)
else:
return quickSelect(largerList, k-m-count)
的代碼,我與它遇到的問題是,它沒有任何錯誤或任何運行,但是當它完成了自己,我就期待輸出一些東西到Python shell(在這個特定的情況下,列表的中位數),但我沒有得到任何回報。我在這裏做錯了什麼?
至於什麼我輸入用於LST並且k ....
- LST = [70,120,170,200]
- K = LEN(LST)// 2
我有幾個不同的k值試過很好,但無濟於事
可能只是差的格式,但你的縮進是錯誤的。在函數定義之後,您不會縮進。 –
我剛剛運行它(固定縮進),並用你的輸入爲lst和k和quickSelect(lst,k)返回170.你能說你如何調用quickSelect和你的期望?嘗試打印(quickSelect(lst,k)))以確保解釋器打印結果。 –