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不为 :)
  • 相关阅读:
    zookeeper
    linux命令大全
    多态1
    单例模式
    java this
    java 构造代码块
    java return
    mapreduce实现分组求最大
    数据相关脚本
    mapreduce实现社交中共同好友
  • 原文地址:https://www.cnblogs.com/buwei/p/10080674.html
Copyright © 2011-2022 走看看