黑马程序员技术交流社区
标题:
快速排序算法
[打印本页]
作者:
赵存金
时间:
2015-9-27 18:34
标题:
快速排序算法
/*
快速排序的基本思想是:
1.先从数列中取出一个数作为基准数。
2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
3.再对左右区间重复第二步,直到各区间只有一个数。
*/
class quickSort
{
public static void quickSortDemo (int [] arr, int l,int r){
if(l>=r)return;
int low,high,key;
low = l;
high = r;
key = arr[l];
while(high > low){
while(high > low && arr[high]>=key)
high--;
if(high>low){
arr[low] = arr[high];
low++;
}
while(high>low && arr[low]<=key)
low++;
if(high>low){
arr[high]=arr[low];
high--;
}
arr[low] = key;
quickSortDemo(arr, l,low-1 );
quickSortDemo(arr,low+1,r);
}
}
public static void main(String[] args){
int [] arr ={45,85,42,2,36,258,1,222,5};
int l,r;
l=0;
r = arr.length-1;
quickSortDemo(arr,l,r);
for(int i=0;i<=r;i++){
if(i==r)
System.out.println(arr[i]);
else
System.out.print(arr[i]+",");
}
}
}
作者:
赵存金
时间:
2015-9-27 18:35
自己测试过了。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2