Java 快速排序

    xiaoxiao2021-03-25  160

    快速排序 首先找到一个关键词作为分段的参考,分成一边比这个参考都小,另一边都比参考都大,然后在递归分段,知道结束,快速排序就完成了

    /**************************快速排序***************************************/ public static void qSort(int[] array,int left,int right){ if(left<right){ int rv = fenDuanSort(array, left, right);//分段 //递归 分别对这两段再进行分段排序 qSort(array,left,rv-1); qSort(array,rv+1,right); } } public static int fenDuanSort(int[] array,int left,int right){ int middle = array[left]; while(left<right){ while(left<right && array[right]>=middle){ right--; } if(left<right){ array[left++]=array[right]; } while(left<right && array[left]<=middle){ left++; } if(left<right){ array[right--] = array[left]; } } array[left] = middle; return left; } 测试 public static void main(String[] args) { int[] array = new int[]{3,0,9,5,1,55}; qSort(array,0,5); for(int a : array){ System.out.print(a+" "); } } 结果 0 1 3 5 9 55
    转载请注明原文地址: https://ju.6miu.com/read-2221.html

    最新回复(0)