码迷,mamicode.com
首页 > 编程语言 > 详细

快速排序法

时间:2015-05-24 00:04:22      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:

public class quickSort{
public static void main(String[] args){
int[] intArray={12,11,45,6,8,43,40,57,3,5,9,10,18,16,1};
System.out.println("before sort:");
for(int i=0;i<intArray.length;i++){
System.out.print(" "+intArray[i]);
if((i+1)%5==0)
System.out.println();
}
System.out.println();
int[] b=quickSort(intArray,0,intArray.length-1);
System.out.println("quickly sorted:");
for(int i=0;i<b.length;i++){
System.out.print(" "+b[i]);
if((i+1)%5==0)
System.out.println();
}
}
public static int getMiddle(int[] array,int left,int right){
int temp;
//进行快排,并返回中心点位置
int mid=array[left];
while(left<right){
while(left<right&&array[right]>=mid)
right--;
temp=array[right];
array[right]=array[left];
array[left]=temp;
while (left<right&&array[left]<=mid)
left++;
temp=array[right];
array[right]=array[left];
array[left]=temp;
}
array[left]=mid;//中心移到正确的位置
return left;
}
public static int[] quickSort(int[] array,int left,int right){
if(left<right-1){//开始点和结束点没有重合到一起,指针没有执行到末尾
int mid=getMiddle(array,left,right);//重新获取中间点
quickSort(array,left,mid-1);
quickSort(array,mid+1,right);
}
return array;
}
}

快速排序法

标签:

原文地址:http://www.cnblogs.com/sunshinewxz/p/4525185.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!