快速排序

来源:互联网 发布:mac终端bash 编辑:程序博客网 时间:2024/06/06 12:50


public void quicksort(int[] arr, int start, int end) {int i = start;int j = end;int pivot = arr[start];while(i<j){while (i<j && arr[i] < pivot) {i++;}while (i<j && arr[j] > pivot ){j--;}if(i < j){int tmp = arr[i];arr[i] = arr[j];arr[j] = tmp;}}if(start<j){quicksort(arr, start, j);}if(i+1<end){quicksort(arr, i+1, end);}}

时间复杂度:O(NlogN)

但是以上的算法,在有重复数据的时候会报错,这个怎么解决呢?
都说快速排序对小数组没有优势,为什么呢?


0 0