zoukankan      html  css  js  c++  java
  • 快速排序

     1 /**
     2  * 功能:快速排序
     3  */
     4 public class QuickSort {
     5 
     6     public int[] process(int[] array) {
     7 
     8         if (null == array || 0 == array.length) {
     9             return array;
    10         }
    11 
    12         sort(array, 0, array.length - 1);
    13 
    14         return array;
    15     }
    16 
    17     public void sort(int[] array, int low, int high) {
    18 
    19         int middle; //枢纽的位置
    20 
    21         if (low < high) {
    22             middle = partition(array, low, high);
    23             sort(array, low, middle - 1);
    24             sort(array, middle + 1, high);
    25         }
    26 
    27     }
    28 
    29     public int partition(int[] array, int low, int high) {
    30 
    31         int midValue = array[low]; //存储枢纽的值
    32 
    33         while (low < high) {
    34             while (low < high && midValue <= array[high]) {
    35                 high--;
    36             }
    37 
    38             swap(array, low, high);
    39 
    40             while (low < high && midValue >= array[low]) {
    41                 low++;
    42             }
    43 
    44             swap(array, low, high);
    45         }
    46 
    47         return low;
    48     }
    49 
    50     public void swap(int[] array, int a, int b) {
    51 
    52         int temp;
    53 
    54         temp = array[a];
    55         array[a] = array[b];
    56         array[b] = temp;
    57     }
    58 }
  • 相关阅读:
    函数的定义
    函数加载的过程
    js中的return
    快速排序
    冒泡排序
    数组的案例
    正睿暑期培训day3考试
    bzoj2115 Xor
    luogu4570 元素
    bzoj4827 Hnoi2017 礼物
  • 原文地址:https://www.cnblogs.com/jiangyi-uestc/p/5883340.html
Copyright © 2011-2022 走看看