快速排序

package com.zq.sf;
/**

  • 快速排序
  • 关键点
  • 通过数组下标开始 i = l ; 下标结束 j= h ,待排序的数组int source [] ,key 关键字
  • 通过下标 i(++)开始向后遍历 找到第一个比 key 大的A[i] ,将 A[i] = A[j]
  • 通过下标j(--)开始向前遍历 找到比key 小的第一个小于key换 A[j] =A[i]
  • @author zhangqi
  • @version 1.0, 2018-12-4
  • @since 1.0, 2018-12-4
    */

public class quickSortTest {

public static void main(String[] args) {
     int [] source = {1,3,9,4,5,6,7,8,2};
     int low = 0 ;
     int high = source.length-1;
     
     quickSort(low, high, source);
     
     for(int i = 0; i<source.length; i++){
         System.out.println(source[i]);
     }
    
}

public static void quickSort(int low ,int high,int []source ) {
    
    int start = low;
    int end = high;
    int key = source[low];
    
    while(end>start){
        //从后往前进行比较
        while(end > start && source[end] > key){
            end --;
        }
        if (source[end] <= key) {
            int temp = source[end];
            source[end] = source[start];
            source[start] = temp;
        }

        //从前往后进行比较
        while (end > start && source[start] < key ){
            start ++ ;  
        }

        if (source[start] >= key) {
            int temp = source[start];
            source[start] = source[end];
            source[end] = temp;

        }

/* for(int i = 0; i<source.length; i++){
System.out.print(source[i]);
}*/
//此时第一次循环比较结束,关键值的位置已经确定了,左边的值都比关键值小,右边的值都比关键值打,
//但两遍的顺序还有可能不一样,进行下面的递归

        //递归(前部分)
        if(start > low){
            quickSort(low,start-1,source);
        }
        //递归(后部分)
        if(end < high){
            quickSort(end+1,high, source);
        }
        
    }
}

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 初次读到鸭舌草,总以为她是专门为鸭子而生的,或者类似于鸭的舌头。 鸭舌草,茕茕伫立在那一隅方塘,碧绿的身子撑起柔弱...
    下一站_ecc9阅读 299评论 0 0
  • 校园的秋天 秋天偷偷躲在夏天的背后,悄悄到来了。(太宰治) 校园各色树木让秋天明朗起来。首先是果实累累的银杏叶片开...
    溜达的阿Q阅读 302评论 0 0
  • 一切为了人民。什么也不能指望人民。约瑟夫二世
    萝卜ai兔子阅读 140评论 0 0
  • 蝙蝠女侠将在这一次的“绿箭宇宙”交叉集中登场,但看起来CW似乎对这个即将深受欢迎的角色有更远的计划。 根据外媒“V...
    DC中文网阅读 244评论 0 0