python - 在Python列表中实现升序排序

标签 python list sorting

作为 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/

相关文章:

java - ArrayList 排序时出现 NullPointer

python - 在所有 pandas 数据框列上应用 statsmodels 自回归函数

python - 将 .png 文件转换为 .nii(NiFti 文件)

python - 如何返回字符串中所有大写字母索引的列表?

matlab - 根据其特定列的排序索引更改矩阵的多列

python - 如何按属性值对对象字典进行排序?

python - 通过更新重复索引并将其余索引外连接来组合两个数据帧的最佳方法

python - 从 Ruby 到 Python : Crawlers

python - 将值保存到列表中并将其发送到函数

c# - 像 List<string> 但保持字符串有序?