为啥会存在那么多排序算法
排序方式有很多种:
选择排序:遍历次数多。空间利用小。
插入排序:遍历次数随机比选择排序少点,空间利用小。、
希尔排序:插入排序的变种,在面对相对混乱的数组的时候比插入排序快,相对顺的数组的时候比插入排序慢。空间利用小。
归并排序:利用了递归,分治,空间利用大,效率与前三个排序是不同级别,NlogN级别。稳定。
堆排序:取最大值最小值比较快,根据下标选取数字比较慢,结构最复杂。
快速排序:跟归并差不多,分治,空间利用大。效率也是NlogN级别。不稳定。
三向切分快速排序:跟归并差不多,分治,空间利用大。效率也是NlogN级别。比快速排序稍微稳定些,更加复杂。
所有算法都围绕几个方面展开:
1效率。
2所用空间。
3所用资源稳定性。
4适用规模。
【为啥会存在那么多排序算法】 然后根据自己实际需求选择合适自己的算法
■网友
正是因为不存在普遍意义上的最优排序算法,才会出现针对不同情况的各种算法,例如快排,虽然算法很优秀,但是在元素有序的情况下退化成n^2,这也是为什么STL里sort函数在取样之后判断假如该序列基本有序,就采用堆排来代替快排
■网友
看要排序的数量取优。有的耗时多的算法,但是简单。有的很难去理解的算法,但是速度快。
推荐阅读
- 广东警方曝光38款存在超范围收集用户信息违规行为App
- 为啥看到书柜上的藏书会有心旷神怡的感觉
- 为啥知乎上普便有一种【我在北上广深打工,所以拥有更好的视野】这样的错觉
- 为啥工商银行的用户体验如此之差
- 汽车|看了中消协4S店服务测评调查结果,终于知道法系车为啥卖不好了
- 你为啥从窝窝商城离职?
- 为啥5G和2.4G默认的BSSID是相同的
- 为啥电器实体店的价格比淘宝贵那么多
- 现在在线学习视频有很多了,为啥大部分人还是喜欢下载下来观看
- 为啥到现在你还没有女朋友 ?
