找到最低值的排序算法的名称是什么,将其添加到结果并将其从原始列表中删除
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。
真不知道这种问题适合在本站发。我一直在努力理解现在的排序算法,我想到了一种对数字列表进行排序的新算法,我想实现它。
结果如下:
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。