python - 最有效的短列表排序算法
问题描述
我有以下任务:
使用 Python,编写一个函数,将以下数字列表从小到大排序,并返回一个列表。65,78,-90,33,45,60,1,0,-6
我意识到那里有很多排序算法,因此我想知道是否有一种类似标准的算法被全面使用,也许是因为效率最高等?或者排序算法的选择是否会更依赖于情况,如果是这样,是否有在 python 列表中进行排序的首选?
非常感谢
解决方案
对 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]
推荐阅读
- laravel - PayPal Laravel Integrarion CheckOutStatus = PayentActionNotIntiated
- hashicorp-vault - Unable to connect to Vault Error unsealing: Put "https://127.0.0.1:8200/v1/sys/unseal": dial tcp 127.0.0.1:8200: connect: connection denied
- google-apps-script - 使用服务帐户进行身份验证的 Google 环聊机器人(Apps 脚本)
- python - 将预测结果与标签相关联
- python - 在一个图形子图中合并由不同散点图制作的多个路径集合
- android - 使用多风格编译 GMS 和 HMS 包。但是GMS版本编译的时候报错
- javascript - 如何在 Spring Boot 中将访客购物车与登录的用户帐户合并?
- python - 尝试使用 selenium 检索文本时出错
- r - 如何构建我的 R 包,以便我可以快速调整一些样式更改(例如主要颜色/字体大小)
- python - 如何将自我属性传递给装饰器?