Quick Sort快速排序

来源:互联网 发布:丝绸之路图书 知乎 编辑:程序博客网 时间:2024/05/22 06:25

快速排序是在面试中经常被问到的排序算法,它的基本思想如下:


public class QuickSort{public static void main(String[] args) {int [] array = {2,4,1,6,8,5,3,7};quickSort(array, 0, array.length-1);}public static void quickSort(int [] array, int start, int end){if(start < end){int partitionIndex = partition(array, start, end);quickSort(array, start, partitionIndex-1);quickSort(array, partitionIndex+1, end);}}public static int partition(int [] array, int start, int end){int pivot = array[end];int partitionIndex = start;for (int i = start; i < end; i++) {if(array[i] <= pivot){int temp = array[i];array[i] = array[partitionIndex];array[partitionIndex] = temp;partitionIndex++;}}int temp = array[partitionIndex];array[partitionIndex] = array[end];array[end] = temp;return partitionIndex;}}

快速排序的分析:

1.快速排序采用了分治的思想

2.是递归的

3.是不稳定的

4.时间复杂度:

  平均时间复杂度:O(nlogn)    最坏时间复杂度:O(n^2)

0 0
原创粉丝点击