1. 排序的稳定性
算法 | 平均时间复杂度 | 最坏时间复杂度 | 最好时间复杂度 | 空间复杂度 | 稳定性 |
---|
快速排序 | nlgn | | | | |
---|
插入排序 | | | | | |
---|
堆排序 | | | | | |
---|
选择排序 | | | | | |
---|
归并排序 | | | | | |
---|
基数排序 | | | | | |
---|
计数排序 | | | | | |
---|
桶排序 | | | | | |
---|
| | | | | |
---|
代码(Java):快速排序
public class QuickSort {
static int partition(int[] array, int p, int r) {
int x = array[r];
int i = p - 1;
for(int j = p; j < r; j++) {
if(array[j] <= x) {
i = i + 1;
int mid = array[i];
array[i] = array[j];
array[j] = mid;
}
}
int mid = array[i + 1];
array[i + 1] = array[r];
array[r] = mid;
return i + 1;
}
static void quickSort(int[] array, int p, int r) {
if(p < r) {
int q = partition(array, p, r);
quickSort(array, p, q - 1);
quickSort(array, q + 1, r);
}
/*for(int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}*/
}
public static void main(String args[]) {
int[] array = {4, 5, 8, 2, 7, 6, 0};
int r = array.length - 1;
int p = 0;
quickSort(array, p, r);
for(int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
}
}