Java 快速排序 代码实现

来源:互联网 发布:淘宝美工要会哪些软件 编辑:程序博客网 时间:2024/05/21 17:35

快速排序就是 将 一个无序的数组以某一个特定值分成两个部分 比这个特定值大的数值全部在该特定值的左边 相反比该特定值大的数值全部集中到该特定值的右边

以此类推  在对特定值的两个部分 在分别进行以上的排序 最终得到一个有序的数组


 public static void  quickSort(int[] array,int right,int left){
        int temp;
        int pivot = array[0]; //默认选取第一个值为比较值
        while(left<right){  //从右边到左边遍历数组 必须从高位到低位比较
            while(left<right&&array[right]>=pivot){  //如果没找到 则继续
                right--;
            }
            temp = array[right];
            array[right] = array[left];
            array[left] = temp;   //找到后 交换
            while(left<right&&array[left]<=pivot){ // 接着从左边进行遍历 
                left++;
            }
            temp = array[right];
            array[right] = array[left];
            array[left] = temp;
           //交换 
        }
        array[left] = pivot ;  //将比较值放入相应的位置上
    }

0 0
原创粉丝点击