我想在python中使用兩個函數進行合併排序。但我得到了一個錯誤,如
IndexError:列表分配索引超出範圍每當運行我的代碼。我不知道哪部分是錯的。
這是我的代碼如下。 任何幫助將感激!遞歸合併排序python
def merge(A):
def merge_sort(A,first,last):
if first<last:
mid=(first+last)//2
merge_sort(A,first, mid)
merge_sort(A,mid+1,last)
temp=[]
temp.append(99999)
i=first
j=mid+1
k=0
while i<=mid and j<=last:
if A[i]<=A[j]:
temp[k]=A[i]
k=k+1
i=i+1
else:
temp[k]=A[j]
k=k+1
j=j+1
while i<=mid:
temp[k]=A[i]
k=k+1
i=i+1
while j<=last:
temp[k]=A[j]
k=k+1
j=j+1
a=0
b=first
while a<k:
A[b]=temp[a]
b=b+1
a=a+1
merge_sort(A,0,len(A)-1)
return A
通常完整的錯誤堆棧提供了其中的錯誤/異常發生的行號,也許你可以共享,或者它可能甚至爲您提供您正在尋找的答案。另外「IndexError:列表分配索引超出範圍」應該給你一個相當不錯的主意,看看哪裏... – glls