找到最低值的排序算法的名称是什么,将其添加到结果并将其从原始列表中删除

What is the name of the sorting algorithm where you find the lowest value, add it to result and remove it from original list

真不知道这种问题适合在本站发。我一直在努力理解现在的排序算法,我想到了一种对数字列表进行排序的新算法,我想实现它。

结果如下:

def sort(obj: list) -> list:
    result = []
    for _ in range(len(obj)):
        _biggest = 0
        for i in obj:
            _biggest = i if i > _biggest else _biggest
        _lowest = _biggest
        for i in obj:
            _lowest = i if _lowest > i else _lowest
        result.append(_lowest)
        obj.remove(_lowest)
    return result

该算法基本上是先获取给定列表中的最大值,然后借助最大值找到最小值,将找到的最小值添加到名为 result 的新列表中,最后删除最小值原始列表中的值。循环直到列表为空。

我用谷歌搜索了所有最快的排序算法,这个算法比其中许多算法都快。所以我决定找出我提出的算法是否已经存在,但我找不到任何类似的算法。

我敢肯定我不是唯一找到这种方法的人。这个算法的名字是什么?这个算法有什么缺点让它不合适吗?

算法是选择排序。此外,这可以通过使用 MAX_INT for biggest 来改进,这样您就可以消除第一个循环来找到最大值。这将使它的复杂度从 N×2N 增加到 N×N。