我試圖在Python中實現簡單的合併排序算法。在Python中實現合併排序
TypeError: 'int' object is not subscriptable
可爲什麼我在歌廳這個錯誤任何人向我解釋:
arr=[1,3,5,2,4,6]
n=6
l=0
h=n-1
def merge_Sort(l,h):
if(l==h):
return arr[l]
m=(h+l)//2
arr1=merge_Sort(l,m)
arr2=merge_Sort(m+1,h)
s1=m-l
s2=h-(m+1)
mer=[]
k1=k2=0
while(k1<=s1 or k2<=s2):
if(arr1[k1] < arr2[k2]):
mer.append(arr1[k1])
k1+=1
else:
mer.append(arr2[k2])
k2+=1
if(k1>s1):
while(k2<=s2):
mer.append(arr2[k2])
k2+=1
if(k2>s2):
while(k1<=s1):
mer.append(arr1[k1])
k1+=1
return mer
res=merge_Sort(l,h)
print(res)
但是運行上面的代碼,當我得到這個錯誤訊息?
凡'arr'定義? – Nayuki
在什麼線上粉碎? –
它看起來不像你發佈了完整的代碼。在第3行有'arr',我沒有看到它是在任何地方定義的。順便說一句,你正在使用哪個python版本?另外,你能提供完整的堆棧跟蹤嗎? –