手动排序算法中的逻辑错误

时间:2019-04-16 19:49:43

标签: python-3.x sorting manual

我正在尝试通过算法而不是使用.sort()函数对数字列表进行排序。如果列表中没有重复整数,则逻辑工作正常,但如果列表中有两个或多个相同整数,则逻辑将无法正常工作。

例如该算法适用于

number = [13,6,9,2,1,10,3,8,12]

但不适用于

number = [13,6,9,2,1,10,3,8,8,12]

number = [13, 6, 9, 2, 1, 10, 3, 8, 12]

for j in range(len(number)):
    min_number = number[j]
    for i in range(j, len(number)):
        if number[i] < min_number:
            min_number = number[i]
    number.remove(min_number)
    number.insert(j, min_number)
print(number)

1 个答案:

答案 0 :(得分:0)

remove可以使用两个相同的值,它将选择一个,但是您不知道删除了谁

它不能与doublon一起使用

或实施插入排序insertion sort