作为 python 作业的一部分,我尝试在不使用 sort() 方法的情况下实现列表排序(升序),我认为我的逻辑是正确的,但我不断收到错误:
sample=[23,44,12,1,6,87]
temp=0
for i in range(0,len(sample)):
if sample[i] > sample[i+1]:
sample[i]=temp
sample[i]=sample[i+1]
sample[i+1]=temp
这一直给我一个列表:索引超出范围错误,我知道这是由于当 i == 3 时代码仍然执行 i+1 造成的。
需要帮助..
我将代码更改为:
for i in range(0,len(sample)-1):
if sample[i] > sample[i+1]:
temp=sample[i]
sample[i]=sample[i+1]
sample[i+1]=temp
消除了错误,但不对列表进行排序
最佳答案
检查这个:http://faculty.cs.niu.edu/~hutchins/csci241/sorting.htm
Python冒泡排序:
sample=[23,44,12,1,6,87]
sorted = False
while not sorted:
sorted = True
for i in range(len(sample) - 1):
if sample[i] > sample[i+1]:
sorted = False
sample[i], sample[i+1] = sample[i+1], sample[i]
print sample
从此处更改:Bubble Sort Homework
关于python - 在Python列表中实现升序排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7718576/