快速和骯髒的解決方案。 如果您快速排序是這樣的:
def qsort(lst):
if len(lst) == 0:
return []
else:
pivot = lst[0]
lesser = qsort([x for x in lst[1:] if x < pivot])
greater = qsort([x for x in lst[1:] if x >= pivot])
return lesser + [pivot] + greater
你可以使用索引變量所要求的尺寸進行排序:
def qsort_index(lst, index):
if len(lst) == 0:
return []
else:
pivot = lst[0]
lesser = qsort_index([x for x in lst[1:] if x[index] < pivot[index]], index)
greater = qsort_index([x for x in lst[1:] if x[index] >= pivot[index]], index)
return lesser + [pivot] + greater
>>> qsort_index(myresults, 0)
[[1, 'A', 2], [2, 'Z', 1], [3, 'J', 0]]
>>> qsort_index(myresults, 1)
[[1, 'A', 2], [3, 'J', 0], [2, 'Z', 1]]
>>> qsort_index(myresults, 2)
[[3, 'J', 0], [2, 'Z', 1], [1, 'A', 2]]
這個實現是遠遠最佳,但我覺得你有這個想法。
是不是_that_「多維」? –
這與快速排序有什麼關係? – Daenyth
哪種快速排序算法?你自己? – NPE