快速排序算法

来源:互联网 发布:仓库出入库软件 编辑:程序博客网 时间:2024/06/06 13:00
    /**     * 快速排序算法     * @param arr int[] 需要排序的数组     * @param l int 从第几位开始从左往右排     * @param r int 从第几位开始从右往左排     */    public static void quickSort(int[] arr,int l,int r){        if(l<r){            int x = arr[l],i = r,j = l;            //当j = i 时,while循环终止,            while(j<i){                //从右边开始寻找比x更小的数                for(;i>0;i--){                    if(arr[i]<= x){                        arr[j]=arr[i];                        j++;                        break;                    }                }                //从左边开始寻找比x更大的数                for(; j < i;j++){                    if(arr[j] > x){                        arr[i]=arr[j];                        i--;                        break;                    }                }            }            arr[j]=x;            quickSort(arr,l,j-1);//使用递归排序j项左边的项            quickSort(arr,j+1,r);//使用递归排序j项右边的项        }    }//本人系java新人,代码中存在诸多不足,敬请前辈指正!!