最近在看排序算法,对快速排序在复习一下,快速排序的平均复杂度为O(N*2),最坏复杂度为O(N*logN),java代码如下:
public class QuickSort {
public static void quickSort(int[] a, int l, int r) {
if (l < r) {
int i = l, j = r, x = a[i];
while (i < j) {
while (i < j && a[j] >= x) {
j --;
}
if (i < j) {
a[i++] = a[j];
}
while (i < j && a[i] < x) {
i ++;
}
if (i < j) {
a[j--] = a[i];
}
}
a[i] = x;
quickSort(a, l,i -1);
quickSort(a, i + 1, r);
}
}
public static void main(String[] args) {
int[] a = new int[]{2,6,6,1,78,1,33,6623,313};
quickSort(a, 0, a.length -1);
for (int t : a){
System.out.println(t);
}
}
}