首页 > 解决方案 > 最有效的短列表排序算法

问题描述

我有以下任务:

使用 Python,编写一个函数,将以下数字列表从小到大排序,并返回一个列表。65,78,-90,33,45,60,1,0,-6

我意识到那里有很多排序算法,因此我想知道是否有一种类似标准的算法被全面使用,也许是因为效率最高等?或者排序算法的选择是否会更依赖于情况,如果是这样,是否有在 python 列表中进行排序的首选?

非常感谢

标签: pythonsorting

解决方案


对 Python 列表进行排序的首选方法是内置sort()/sorted()函数。编写一个只调用 的函数并没有什么意义sorted(),但它看起来像这样:

def pointless_sort(numbers):
    """Returns a sorted copy of the input list."""
    return sorted(numbers)

pointless_sort([65,78,-90,33,45,60,1,0,-6])

但是,由于该任务要求您编写一个仅对特定数字列表进行排序的函数,因此最佳实现是对解决方案进行硬编码;这将在 O(1) 时间内运行,而不是 O(n log n) 时间。

def optimal_but_highly_specific_sort():
    """Returns a sorted copy of [65,78,-90,33,45,60,1,0,-6] in O(1) time."""
    return [-90, -6, 0, 1, 33, 45, 60, 65, 78]

推荐阅读