通过 LeetCode 912 比较了 5 种 Python 排序算法的性能
先看结果:
时间复杂度分析:
O(n²)的排序算法:冒泡排序、插入排序,运行时间太长,超出题目运行时间
O(nlogn)的排序算法:快速排序、堆排序,堆排序性能更差,因为交换次数更多
O(n)的排序算法:计数排序,在5种排序中是最快的
空间复杂度分析:
计数排序:因为要存储计数值,所以占用内存多
其它排序都是原地排序
上述5种排序算法的Python源码:
冒泡/选择:https://blog.youkuaiyun.com/xuhai515/article/details/117969238
快速/堆/计数:https://blog.youkuaiyun.com/xuhai515/article/details/118077781