在前面两篇文章,我们分别总结了六种排序算法
我们来做一个总结
如何选择一个合适的算法,我们需要多方面来分析
首先,要分析场景,需要稳定还是不稳定
其次,是数据量,如果数据量小,可以直接选插入或者冒泡,不选归并是因为,快也是理论上的,而归并是需要递归,栈操作什么的,也是需要时间的,数据量很小的时候,插入反而更快点,所以不是速度最快的效率最高
最后,还要考虑空间,像归并,有额外的空间开销
所以,没有一个固定的排序算法,都得按照情况来分析,但是,如果不知道怎么分析的话,可以选归并或者快排,起码在数据量大的时候,不会嘎掉
当然,这些都是常用的算法,并非只有这些排序算法,还有一些其他的算法,我们之后再慢慢总结整理,比如堆排序、计数排序、桶排序