def PartitionDemo(a,p,r):
x=a[p]
start=p
end=r
while start<end :
while start<end and a[end]>=x :
end-=1
while start<end and a[start]<x :
a[start]=a[end]
start+=1
a[end]=a[start]
a[start]=x
return start
def Partition2(a,low,high):
key = a[low]
while low < high:
while low < high and a[high] >= key:
high -= 1
while low < high and a[high] < key:
a[low] = a[high]
low += 1
a[high] = a[low]
a[low] = key
return low
PartitionDemo
我寫了自己,和Partition2
我從互聯網上覆制它。但PartitionDemo
不能正常運行;它不能跳出循環。他們使用相同的邏輯,我認爲,但Partition2
運作良好。這兩個Quicksort分區函數有什麼區別?
我嘗試在C++,Java和Python中編寫Quicksort,但我不明白Python中發生了什麼問題。
你這是什麼意思是當你說出來的時候「運行不正常?」請添加您的輸入,所需輸出和實際輸出(儘可能縮短以說明問題)。 – lwassink
該程序沒有跳出循環,它什麼也不做 –