• java实现的一个【快速排序 】算法【原创】


    import java.util.Arrays;
    import org.apache.commons.lang.ArrayUtils;
    
    public class Test {
    
      public static void main(String[] args) {
        int[] sortedArrays = quickSort(new int[]{3, 5, 1, 2});
        System.out.println(ArrayUtils.toString(sortedArrays));
      }
    
      /**
       * Run time is O(nlogn)
       *
       * @param source source array
       * @return sorted array
       */
      private static int[] quickSort(int[] source) {
    
        int sourceSize = source.length;
    
        final byte baseLen = 2;
    
        // An array that is empty or contains only one element is ordered
        if (sourceSize < baseLen) {
          return source;
        }
    
        // pivot value
        int pivotVal = source[sourceSize / 2];
    
        return combineList(quickSort(sortLeft(source, pivotVal)), pivotVal, quickSort(sortRight(source, pivotVal)));
      }
    
      private static int[] sortLeft(int[] source, int pivotVal) {
        return sort(source, pivotVal, true);
      }
    
      private static int[] sortRight(int[] source, int pivotVal) {
        return sort(source, pivotVal, false);
      }
    
      private static int[] sort(int[] source, int pivotVal, boolean isLeft) {
        int[] subArray = new int[source.length - 1];
        int j = 0;
        for (int value : source) {
          boolean condition = isLeft && value < pivotVal || !isLeft && value > pivotVal;
          if (condition) {
            subArray[j++] = value;
          }
        }
        return Arrays.copyOf(subArray, j);
      }
    
      private static int[] combineList(int[] less, int pivotVal, int[] greater) {
        int[] a1 = ArrayUtils.add(less, pivotVal);
        return ArrayUtils.addAll(a1, greater);
      }
    
    }
  • 相关阅读:
    SpringBoot进阶教程(六十七)RateLimiter限流
    Nginx限流配置
    ab test压力测试
    Nginx负载均衡配置
    arduino串口通信
    flask文件路径设置问题
    WIN10和ubunu共享文件夹相互访问
    树莓派录音和播放声音
    深度学习论文翻译解析(十六):Squeeze-and-Excitation Networks
    人工智能必备数学基础:高等数学基础(2)
  • 原文地址:https://www.cnblogs.com/frankyou/p/11883313.html
Copyright © 2020-2023  润新知