我已經使用Sedgewick在課程中教授的算法在Python中編寫了Quicksort的實現。我無法正確分類。代碼有什麼問題?無法實現Quicksort
def partition(a, lo, hi):
i = lo
j = hi
v = a[lo]
while(True):
while(a[i] < v):
i += 1
if (i == hi): break
while(a[j] > v):
j -= 1
if (j == lo): break
if (i >= j): break
a[i], a[j] = a[j], a[i]
a[lo], a[j] = a[j], a[lo]
return j
def sort(a, lo, hi):
if (hi <= lo):
return
q = partition(a, lo, hi)
sort(a, lo, q-1)
sort(a, q+1, hi)
assert isSorted(a, lo, hi)
def quick_sort(a):
shuffle(a)
sort(a, 0, len(a)-1)
assert isSortedArray(a)
此外,你缺乏運氣在選擇StackExchange社區問問,如果沒有別的。 (您如何對單個快速排序實現進行排序?) – greybeard 2015-02-16 23:57:06