常见的数组排序方法有以下几种:
-
冒泡排序(Bubble Sort):从左到右不断交换相邻逆序的相邻元素,在一轮的交换过程后,将最大的元素交换到最右端。时间复杂度O(n^2),稳定。
-
选择排序(Selection Sort):每次从未排序的序列中选择一个最小值,放到已排序序列的末尾。时间复杂度O(n^2),不稳定。
-
插入排序(Insertion Sort):将未排序元素插入已排好序的序列中,具体实现包括直接插入排序、希尔排序。时间复杂度O(n^2),稳定。
-
归并排序(Merge Sort):将数组分成两个部分,对这两部分分别进行排序,然后将排好序的两部分合并成一个有序的数组。时间复杂度O(nlogn),稳定。
-
快速排序(Quick Sort):在数组中选一个元素作为基准,将小于它的元素移到左边,大于它的元素移到右边,通过递归的方式完成排序。时间复杂度平均为O(nlogn),最坏情况下为O(n^2),不稳定。
-
堆排序(Heap Sort):建立一个最大堆或最小堆,每次从堆顶取出最大或最小值放到最终位置,然后重新构建堆。时间复杂度O(nlogn),不稳定。