1 package com.wangjj.quicksort;
2
3 import java.util.Arrays;
4
5 /**
6 * 快速排序
7 * @author Administrator
8 *
9 */
10 public class QuickSort
11 {
12 public static void sort(int arr[],int low,int high)
13 {
14 int l = low;
15 int h = high;
16 int key = arr[low];
17 //进行一趟快速排序,排序完结果,key左边的都比key小,key右边的都比key大
18 while(l<h)
19 {
20 //数组从右往左进行
21 for(;l<h;h--)
22 {
23 //判断,发现比key小的进行交换,结束循环
24 if(key>arr[h])
25 {
26 //交换
27 arr[l] = arr[h];
28 arr[h] = key;
29 break;
30 }
31 }
32 //数组从左往右进行
33 for(;l<h;l++)
34 {
35 //判断,发现比key大的进行交换,结束循环
36 if(key<arr[l])
37 {
38 //交换
39 arr[h] = arr[l];
40 arr[l] = key;
41 break;
42 }
43 }
44 }
45 //进行递归,递归结束条件为数组只有一个元素
46 if(l>low)
47 {
48 sort(arr,low,l-1);
49 }
50 if(h<high)
51 {
52 sort(arr,h+1,high);
53 }
54 }
55
56 public static void main(String[] args)
57 {
58 int[] arr ={9,8,7,6,5,4,4,3,2,1};
59 sort(arr,0,9);
60 System.out.println(Arrays.toString(arr));
61 }
62 }
输出内容:[1, 2, 3, 4, 4, 5, 6, 7, 8, 9]