A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵存金 中级黑马   /  2015-9-27 18:34  /  286 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
快速排序的基本思想是:

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]+",");
               
                }
               

}
}

1 个回复

倒序浏览
自己测试过了。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马