交换排序之快速排序
2014-11-07 02:34
197 查看
package com.sort; //快速排序:平均(O(Nlog n)),最差:O(n^2) public class QuickSort { public static void main(String[] args) { int[] a = new int[]{6,5,4,3,2,1}; quickSort(a,0,a.length-1); for(int array:a){ System.out.println(array); } } private static void quickSort(int[] a,int start, int end) { if(start >= end){ return; } int divider = partition(a,start,end); quickSort(a, start, divider-1); quickSort(a, divider+1, end); } private static int partition(int[] a, int start, int end) { int elem = a[end];//以最右侧的元素作为主元 int cursor = start-1;//光标,指向存放小于elem的位置 for(int i=start; i<end; i++){ if(a[i]<=elem){ cursor++; swap(a,cursor,i); } } swap(a,cursor+1,end); return cursor+1; } private static void swap(int[] a, int j, int i) { int temp = a[j]; a[j] = a[i]; a[i] = temp; } }
相关文章推荐
- 17、java数组查找与交换排序及快速排序
- 八大排序--交换排序 之 快速排序
- 算法 排序算法之交换排序--冒泡排序和快速排序
- 内排序-交换排序-快速排序
- 交换排序—快速排序(Quick Sort)
- 第16周项目1-交换排序之快速排序(4)
- 排序算法-交换排序之快速排序
- 交换类排序——快速排序
- 交换排序:起泡排序 快速排序
- 排序算法总结---交换排序之快速排序
- 交换排序之快速排序
- 交换排序之冒泡排序和快速排序
- 交换排序—快速排序(Quick Sort)原理以及Java实现
- java 交换排序之(冒泡排序、快速排序)
- 八大排序算法之六--交换排序—快速排序(Quick Sort)
- 交换排序之快速排序(java实现)
- 交换排序之快速排序
- 第十四周-交换排序之快速排序(以中间位置的元素为标准)
- 交换排序——快速排序
- 交换排序-快速排序