根据排序过程中的主要操作,可以将内排序分为以下几种:
插入排序:直接插入排序,希尔排序(改进的直接插入排序)
交换排序:冒泡排序,快速排序(改进的冒泡排序)
选择排序:简单选择排序,堆排序(改进的简单选择排序)
归并排序:归并排序
根据排序算法的简单性,可以将内排序分为以下两种:
简单算法:冒泡排序,简单选择排序,直接插入排序
改进算法:希尔排序,堆排序,归并排序,快速排序
根据排序算法的稳定性,可以将内排序分为以下两种:
稳定算法:冒泡排序,简单选择排序,直接插入排序,归并排序
不稳定算法:希尔排序,堆排序,快速排序
注:若;两个记录的关键字的值相等,经过排序之后,其先后位置仍然保持不变,则称该排序算法是稳定的,否者,是不稳定的。
根据排序算法的时间复杂度,可以将内排序分为以下几种:
O(n2):冒泡排序,简单选择排序,直接插入排序,希尔排序,快速排序
O(nlogn):堆排序,归并排序
根据排序算法的空间复杂度,可以将内排序分为以下几种:
O(1):冒泡排序,简单选择排序,直接插入排序,希尔排序,堆排序
O(n):归并排序
O(logn)~O(n):快速排序
综合考虑各项指标 https://blog.csdn.net/u010189459/article/details/27702027 ,经过优化的快速排序性能最佳!
相关链接:
冒泡排序 https://www.cnblogs.com/yongjin-hou/p/13858510.html
简单选择排序 https://www.cnblogs.com/yongjin-hou/p/13859148.html
直接插入排序 https://www.cnblogs.com/yongjin-hou/p/13861458.html
希尔排序 https://www.cnblogs.com/yongjin-hou/p/13866344.html
堆排序 https://www.cnblogs.com/yongjin-hou/p/13873770.html
归并排序 https://www.cnblogs.com/yongjin-hou/p/13921147.html
快速排序 https://www.cnblogs.com/yongjin-hou/p/13950379.html
参考书籍:程杰 著,《大话数据结构》,清华大学出版社。
原文:https://www.cnblogs.com/yongjin-hou/p/13956121.html