尝试执行快速排序,以列表的第一个元素为关键点。快速排序,第一个元素作为关键点,快速代码检查
已经结束了几个小时,只是找不到我的错误。
def quickSort(aList, l, r):
#global count
if l < r:
swap = l+1
for run in range (l+1,r):
if aList[l] > aList[run]:
aList[swap],aList[run]=aList[run],aList[swap]
swap += 1
run += 1
aList[l],aList[swap]= aList[swap],aList[l]
quickSort(aList, l, swap-1)
quickSort(aList, swap+1, r)
testl=[4,6,3,7,2]
print testl
quickSort(testl,0,len(testl)-1)
print testl
输出是:
[4,6,3,7,2]
[3,6,4,2,7] 任何看到其中i在哪里呢?枢轴元素似乎是在正确的地方,但比IDK :(
为什么有你*甚至不使用*你做了什么样的调试变量的全局声明?!;什么是最短的失败例子? – jonrsharpe
你的意思是计数?我只是没有删除,但..应计算比较的数量..但它没有意义,如果排序甚至没有工作。即使有3个数字,它也不起作用:( – hmmmbob
请阅读[mcve] - 这是一个死的赠品,你没有费心修剪你的代码只需要什么来重新创建问题 – jonrsharpe