• 快排序宇宙最简单版本


     1 package com.array;
     2 
     3 import java.util.Arrays;
     4 
     5 public class QuickSort {
     6     public static void main(String[] args) {
     7         int[] a = {45,14,5,24,5,62,7,84,34,14};
     8         quickSort(a, 0, a.length - 1);
     9         System.out.println(Arrays.toString(a));
    10     }
    11 
    12     public static void quickSort(int[] arr, int start, int end) {
    13         if (start > end)
    14             return;
    15         int pivot = arr[start];
    16         int l = start;
    17         int r = end;
    18         while (l < r) {
    19             while (l < r && arr[r] >= pivot) { // 这里必须加等于号,否则 l , r 游标走不下去,只能在两个相等的数上循环!!!!
    20                 r--;
    21             }
    22             if (l < r) {  //&& arr[r] <= pivot
    23                 arr[l] = arr[r];
    24             }
    25             while (l < r && arr[l] <= pivot) {
    26                 l++;
    27             }
    28             if (l < r) {   //&& arr[l] >= pivot
    29                 arr[r] = arr[l];
    30             }
    31             if (l >= r) {
    32                 arr[l] = pivot;
    33             }
    34         }
    35         quickSort(arr, start, l - 1);   // 这里也必须要 + 1   - 1, 否则导致pivot没变,然后一直让右游标r 循环往左移动(无效的移动)
    36         quickSort(arr, l + 1, end);
    37     }
    38 }
  • 相关阅读:
    2016-8-29
    2016-8-25
    2016-8-24
    2016-8-23
    2016-8-22
    2016-8-16
    2016-8-15
    深圳_多测师面试 __腾讯云/_高级讲师肖sir
    深圳_多测师面试 _新字节跳动(2020年10月23日)_高级讲师肖sir
    多测师讲解自动化 _RF_(202)高级讲师肖sir
  • 原文地址:https://www.cnblogs.com/tianyee/p/14925735.html
Copyright © 2020-2023  润新知