1 算法导论版:
java版
import java.io.*;
import java.util.Random;
class test
{
public static void main (String[] args)
{
int[]arr=createData(12);
printArr(arr);
quickSort(arr);
printArr(arr);
}
public static int[] createData(int size){
Random ran=new Random();
int[]res=new int[size];
for(int i =0;i<size;i++){
res[i]=ran.nextInt(100);
}
return res;
}
public static void printArr(int[]arr){
for(int i:arr){
System.out.printf("%4d",i);
}
System.out.println();
}
public static void quickSort(int[] arr){
qsort(arr, 0, arr.length-1);
}
private static void qsort(int[] arr, int low, int high){
if (low < high){
int middle=partition(arr, low, high); //将数组分为两部分
qsort(arr, low, middle-1); //递归排序左子数组
qsort(arr, middle+1, high);