我的代码---->
A = [17, 15, 5, 20, 99, 100]
left = []
right = []
left.append(A[ : len(A)/2 ])
#right.append(A[ len(A)/2 : ])
print("Left Before Sort : {l}".format(l=left))
for j in range(1, len(left)):
key = left[j]
i = j - 1
while (i >= 0 and left[i] > key):
left[i+1] = left[i]
i -= 1
left[i+1] = key
print("Left After Sort {l}".format(l=left))
为什么左边没有排序?我尝试了不同的命名......但输出相同。
答案 0 :(得分:3)
问题是你要在列表中追加列表。
试试这个: A = [17,15,5,20,99,100]
left=[];right=[]
left = A[ : len(A)/2 ] # Here I made change
#right.append(A[ len(A)/2 : ])
print "Left Before Sort : ",left
for j in range(len(left)):
key=left[j]
i=j-1
while (i>=0 and left[i]>key):
left[i+1]=left[i]
i -=1
left[i+1]=key
print "Left After Sort ",left
输出
Left Before Sort : [17, 15, 5]
Left After Sort [5, 15, 17]
如果你真的想追加,那么尝试逐个追加每个元素:
for i in A[:len(A)/2]:
left.append(i)