首页 > 技术文章 > 快速排序

buwei 2018-12-07 18:59 原文

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

  快速排序(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 }

 

推荐阅读