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



我正在尝试通过算法而不是使用 .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)

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

它不能与达布隆一起工作

或实现插入排序插入排序

最新更新