比较排序主要包括以下五类算法,通过元素间的比较操作实现排序:
-
简单排序算法
-
冒泡排序 :通过相邻元素比较交换,逐步将最大值“浮”到末尾,时间复杂度为O(n²) 。
-
选择排序 :每次选择最小(或最大)元素放到已排序序列末尾,时间复杂度为O(n²) 。
-
插入排序 :构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入,时间复杂度为O(n²) 。
-
-
分治排序算法
-
归并排序 :将数组递归分割为子数组,分别排序后合并,时间复杂度为O(n log n) 。
-
快速排序 :通过基准元素分区,递归排序子数组,平均时间复杂度为O(n log n),最坏情况为O(n²) 。
-
-
基于比较的优化算法
- 希尔排序 :插入排序的改进版,通过不同间隔序列分组排序,时间复杂度介于O(n log n)与O(n²)之间 。
注 :非比较排序(如计数排序、基数排序)不在此列,因用户问题明确要求“比较排序”。