本帖最后由 RedProtector 于 2015-8-10 15:22 编辑
快速排序是一种非常高效的排序算法,它采用“分而治之”的思想,把大的拆分成小的,小的再拆分为更小的。 其原理如下:对一组给定的记录,通过一趟排序后,将原序列分为两部分,其中前一部分的所有数据均比后一部分的所有的记录小,然后依次对前后两部分的记录进行快速排序,递归该过程,直到序列中的所有记录均有序为止。 package com.mianshi.easy;
public class TestQuickSort {
public static void quickSort(int[] a){
sort(a, 0, a.length-1);
}
public static void sort(int[] a, int low, int high){
int i, j;
int index;
if(low >= high){
return;
}
i = low;
j = high;
index = a;
while(i<j){
while(i<j && a[j]>=index){
j--;
}
if(i<j)
a[i++] = a[j];
while(i<j && a<index){
i++;
}
if(i<j){
a[j--]=a;
}
}
a = index;
sort(a, low, i-1);
sort(a, i+1, high);
}
public static void main(String[] args) {
int[] a = {6,5,3,9,0,5,1,2,4,7,8};
//快速排序
quickSort(a);
for(int i = 0;i < a.length; i++){
System.out.print(a+" ");
}
}
}
结果:
0 1 2 3 4 5 5 6 7 8 9
|