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

    名词解释:——来自百度百科

      快速排序(Quicksort)是对冒泡排序的一种改进。
      快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列
      
     1 public class QuickSort {
     2     public static void main(String[] args) {
     3         int[] arr = {60, 30, 70, 20, 80, 100, 40, 50, 90, 10};
     4         quickSort(arr, 0, arr.length - 1);
     5         System.out.println(Arrays.toString(arr));
     6     }
     7 
     8     private static void quickSort(int[] arr, int start, int end) {
     9         if (start < end) {
    10             // 初始化保存基元素
    11             int key = arr[start];
    12             // 初始化i,j
    13             int i = start;
    14             for (int j = start + 1; j <= end; j++) {
    15                 // 如果此处元素小于基元素,则把此元素和i+1处元素交换,并将i加1,如大于或等于基元素则继续循环
    16                 if (arr[j] < key) {
    17                     int temp = arr[j];
    18                     arr[j] = arr[i + 1];
    19                     arr[i + 1] = temp;
    20                     i++;
    21                 }
    22             }
    23             arr[start] = arr[i];
    24             arr[i] = key;
    25             //递归调用
    26             quickSort(arr, start, i - 1);
    27             quickSort(arr, i + 1, end);
    28         }
    29     }
    30 }
    如发现有错误欢迎指正,欢迎交流,接受反驳。 -- by不为 :)
  • 相关阅读:
    Mysql的select加锁分析
    浅析Kubernetes的工作原理
    HTTP/2部署使用
    Amazon新一代云端关系数据库Aurora
    为什么 kubernetes 天然适合微服务
    深入解读Service Mesh背后的技术细节
    微服务的接入层设计与动静资源隔离
    Prim算法和Kruskal算法介绍
    DAG及拓扑排序
    BFS和DFS
  • 原文地址:https://www.cnblogs.com/buwei/p/10080674.html
Copyright © 2011-2022 走看看