交换排序:冒泡排序和快速排序
https://blog.csdn.net/wyn126/article/details/78904822
选择排序和堆排序
https://blog.csdn.net/wyn126/article/details/81607259
直接插入排序与希尔排序
https://blog.csdn.net/wyn126/article/details/81611084
归并排序
https://blog.csdn.net/wyn126/article/details/81698558
从算法的简单性来看:
- 简单算法:冒泡排序,简单选择排序,直接插入排序
- 改进算法:希尔排序,堆排序,归并排序,快速排序
- 从平均情况来看:堆排序,归并排序,快速排序好于希尔排序
- 从最好情况来来看:冒泡排序和直接插入排序更好一些,要是待排数组基本有序,不应该考虑四种复杂算法
- 从最坏情况来看:堆排序与归并排序好于快排以及简单排序
- 从空间复杂度来看:归并排序需要额外开辟空间,时间复杂度为O(N),快速排序时间复杂度为O(logN)~O(N),其他都是O(1)
- 从稳定性来看:归并排序最稳定
- 从待排数组的个数上来说:数组越小,越适合用简单排序,数组越大,越适合用改进排序