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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 混入黑马的咸鱼 初级黑马   /  2018-5-12 02:09  /  846 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

     在发贴之前,我还没有想好该写什么内容的。最初的打算是准备秀一波java的GC机制和finalize对象的关系,但由于本人才疏学浅,故而就不在黑马大佬们面前丢人现眼了。
      话不多说,上正文。

      /**
       * 所谓快排,即冒泡排序的改进版,每次排序过后都会将原有的数组"切割"成两更个小的"数组"
       * 以一个数为基准值,每次排序之后,该基准数的某一半边都应小于该基准数,而另一部分则要大于该基      准数
       * 循环往复,最终切割成许多更小的部分,以实现快速排序的目的
       */
public class Test {
        public static void main(String[] args) {
                Random r = new Random();
                long start = System.currentTimeMillis();
                int[] arr = new int[100];
                for (int i = 0; i < arr.length; i++) {
                        arr[i] = r.nextInt(100);
                }
                Test.quickSort(arr, 0, arr.length-1);
                long end = System.currentTimeMillis();
                for (int i = 0; i < arr.length; i++) {
                        System.out.print(arr[i]+" ");
                }
                System.out.println(end-start);
        }
       
        public static void quickSort(int[] arr, int start, int end){
                //start和end做为起始参数,不应参与变化
                //num做为基准数,每次递归后都以新"数组"的第一个数为准
                int num = start;
                int left = start;
                int right = end;
                //防止越界,跳出条件
                if (left > right) {
                        return;
                }
                while(left != right){
                        while(arr[num] <= arr[right] && left < right){
                                right--;
                        }
                        while(arr[num] >= arr[left] && left < right){
                                left++;
                        }
                        int container = arr[left];
                        arr[left] = arr[right];
                        arr[right] = container;
                }
                int container = arr[left];
                arr[left] = arr[num];
                arr[num] = container;
                quickSort(arr,left+1,end);
                quickSort(arr,start,left-1);
        }
}

快排.png (125.64 KB, 下载次数: 2)

某放荡不羁的老师的随笔讲解图(我没说你,肖哥)

某放荡不羁的老师的随笔讲解图(我没说你,肖哥)

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马