zoukankan      html  css  js  c++  java
  • 快排序宇宙最简单版本

     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 }
  • 相关阅读:
    java 连接SQL Server
    JAVA泛型
    JAVA 数组遍历
    JAVA注释
    Python正则表达式
    python练习题二
    Python函数
    Python练习题一
    重学python-列表的一些操作
    重学python-python-pandas库
  • 原文地址:https://www.cnblogs.com/tianyee/p/14925735.html
Copyright © 2011-2022 走看看