1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
|
public class QuickSortTest{
public static void main(String[] args){
int[] arr = {5, 4, 2, 3, 8, 7, 1, 0, 6, 9};
System.out.print("ソート前:");
arrayPrintln(arr);
quickSort(arr, 0, arr.length-1);
System.out.print("ソート後:");
arrayPrintln(arr);
}
//基本挿入法(クイックソート)*********************************
public static void quickSort(int[] arr, int left, int right){
if (left <= right) {
int p = arr[(left+right) / 2];
int l = left;
int r = right;
while(l <= r) {
while(arr[l] < p){ l++; }
while(arr[r] > p){ r--; }
if (l <= r) {
int tmp = arr[l];
arr[l] = arr[r];
arr[r] = tmp;
l++;
r--;
}
}
quickSort(arr, left, r);
quickSort(arr, l, right);
}
}
//配列の値を出力するメソッド***********************************
public static void arrayPrintln(int[] arr){
for(int i=0; i<arr.length; i++){
System.out.print(arr[i] + " ");
}
System.out.println("");
}
}
|