快速排序(java实现)
public class Study {
public static void main(String[] args) {
int[] test_arr = new int[50];
for(int i = 0; i < test_arr.length; i++) {
//取随机数0-100给数组赋值
test_arr[i] = (int)(Math.random() * 100);
}
System.out.println("排序前");
//排序前数组输出
for(int i: test_arr) {
System.out.print(i + " ");
}
//换行
System.out.println();
System.out.println("排序后");
mysort(test_arr, 0, test_arr.length - 1);
//排序后数组输出
for(int i: test_arr) {
System.out.print(i + " ");
}
}
//快速排序方法
public static void mysort(int[] arr, int left, int right) {
if(left > right) {
return;
}
int i = left;
int j = right;
int key = arr[left];
int temp;
while(i < j) {
while(arr[j] >= key && i < j) {
j--;
}
while(arr[i] <= key && i < j) {
i++;
}
if(i < j) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
arr[left] = arr[i];
arr[i] = key;
mysort(arr, i + 1, right);
mysort(arr, left, i - 1);
}
}
1.测试结果
排序前
60 87 71 22 81 61 33 89 43 50 56 92 82 54 85 78 55 66 17 76 29 75 39 79 89 24 71 40 73 67 70 94 73 43 20 19 46 34 56 50 42 12 54 6 38 65 35 81 75 96
排序后
6 12 17 19 20 22 24 29 33 34 35 38 39 40 42 43 43 46 50 50 54 54 55 56 56 60 61 65 66 67 70 71 71 73 73 75 75 76 78 79 81 81 82 85 87 89 89 92 94 96
Process finished with exit code 0