快速排序算法原理:见上图描述。
代码如下:
package com.huan;
import java.util.Arrays;
import java.util.Random;
public class QuickSort {
public static void main(String[] args) {
int[] data = new int[10];
for (int i = 0; i < 10; i++){
data[i] = new Random().nextInt(1000);
}
System.out.println(Arrays.toString(data));
quicksort(data, 0, data.length - 1);
System.out.println(Arrays.toString(data));
}
public static void quicksort(int[] data, int i, int j){
if(i < j){
int m = i, n = j;
int k = data[i];
while(i < j){
while (i < j && data[j] > k){
j--;
}
data[i] = data[j];
while (i < j && data[i] < k){
i++;
}
data[j] = data[i];
}
data[i] = k;
quicksort(data, m, i-1);
quicksort(data, i+1, n);
}
}
}