1.必掌握的算法(能够自己实现)
简单排序算法:
冒泡排序,选择排序,插入排序
复杂排序算法:
希尔排序,归并排序,快速排序,堆排序
2.了解即可的算法
桶排序,基数排序,表排序
3.稳定性
稳定:冒泡排序,插入排序,归并排序,基数排序
不稳定:希尔排序,快速排序,堆排序,选择排序
4.时间复杂度
5.适用场景
1)当数据元素规模比较小时使用选择排序或者插入排序
2)当元素基本有序时插入或者冒泡
3)数据规模较大快速排序
4)当我们需要在巨大的数据面前进行选出最大或最小的几个数据的时候(如TopK问题),运用堆排序将大大降低时间成本比如:专业前10名、世界500强、富豪榜、游戏中前100的活跃玩家等
5)只考虑时间成本不考虑空间成本时用归并排序