首页 > 解决方案 > 手动排序算法中的逻辑错误

问题描述

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

例如。它算法适用于

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

但不适用于

数字 = [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)

标签: python-3.xsortingmanual

解决方案


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

它不能与双标一起使用

或者实现插入排序插入排序


推荐阅读