今天又看了一下快排:
实现的代码如下:
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Random;
public class QuickSort {
public static void main(String[] args) {
int[] arr = new int[20];
Random rand =new Random();
for(int i=0;i<arr.length;++i)
arr[i] = rand.nextInt(40);
System.out.println("原数据"+Arrays.toString(arr));
quickSort(arr,0,arr.length-1);
System.out.println("排序结果"+Arrays.toString(arr));
}
public static void quickSort(int[] arr,int low,int high){
int i,j,temp,t;
if(low>high) return;
i=low;
j=high;
temp = arr[low];//基准数 以为例
while (i<j) {
while (temp<=arr[j]&&i<j) j--;//找到比基准数小的
while (temp>=arr[i]&&i<j) i++; //找到比基准数大的
//如果满足条件则交换
if (i<j) {
t = arr[j];
arr[j] = arr[i];
arr[i] = t;
}
}
//最后将基准为与i和j相等位置的数字交换
arr[low] = arr[i];
arr[i] = temp;
//递归调用左半数组
quickSort(arr, low, j-1);
//递归调用右半数组
quickSort(arr, j+1, high);
}
}
来源:CSDN
作者:~何止~
链接:https://blog.csdn.net/weixin_43900387/article/details/104024775