【问题标题】:Logical error in manual sorting algorithm手动排序算法中的逻辑错误
【发布时间】:2019-04-16 19:49:43
【问题描述】:

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


    【解决方案1】:

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

    它不能与双标一起使用

    或者实现插入排序insertion sort

    【讨论】:

    • 根据.remove()函数的定义,删除第一次出现的数字。
    • 对我来说,严格的劣势和删除是问题的原因
    • 好的。谢谢。在这里,我正在实现顺序排序方法。可能的原因是顺序排序不能正常处理重复值
    猜你喜欢
    • 1970-01-01
    • 2015-03-31
    • 1970-01-01
    • 2015-05-28
    • 2015-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-13
    相关资源
    最近更新 更多