排序沒有正確發生。有人可以幫助用這種方法分類。也請讓我知道我要去哪裏錯了。我是Python的新手,所以我自己也是這樣做的。我使用通常的方法,就像我們用C或其他語言做的那樣。合併排序沒有正確發生 - Python
base =[5,4,3,2,1]
def splitarray (low, high):
if low < high:
mid = (high+low)/2
splitarray (low, mid)
splitarray (mid+1,high)
merge(low,mid,high)
else:
return
def merge(low,mid,high):
print("merge " +str(low) + " - " +str(mid)+" - "+ str(high))
result = [0]*len(base)
k = 0
i=low
j=mid+1
l=0
while i <= mid and j <= high:
if (base[i] < base[j]):
result[k]= base[i]
k+=1
i += 1
if (base[i] > base[j]) :
result[k]= base[j]
j += 1
k += 1
while i <= mid:
result[k]= base[i]
k += 1
i += 1
while j <= high:
result[k]= base[j]
#count = count + mid - i
j += 1
k += 1
print result
l = low
k= 0
while l <= high:
base[l] = result[l]
l += 1
print base
splitarray(0,len(base)-1)
請包括有關究竟出錯的信息,以及示例輸入,預期輸出和實際結果。你是否在追溯? (如果是這樣,請將其包含在問題中。)結果排序錯誤? (如果是這樣,顯示輸入和輸出。) –
你不想使用'sorted'內建的? –
輸入是上面給出的數組,即base = [4,3,2,1]輸出應該是[1,2,3,4]。謝謝。 –