快速排序java实现
具体代码实现如下
/**
* @author shkstart
* @create 2021-03-22 9:55
* 快速排序
*/
public class QuickSort2 {
public static void quickSort2(int[] arr,int low,int high){
int i,j,temp;
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){
int a = arr[i];
int z = arr[j];
arr[i] = z;
arr[j] = a;
}
}
arr[low] = arr[i];
arr[i] = temp;
quickSort2(arr,low,j-1);
quickSort2(arr,j+1,high);
}
public static void main(String[] args) {
int[] arr = new int[1000];
for (int n=0;n<arr.length;n++){
arr[n] = (int)(Math.random()*10000);
}
System.out.println(Arrays.toString(arr)+"\n");
quickSort2(arr,0, arr.length-1);
System.out.println(Arrays.toString(arr));
}
}
快速排序是我目前遇到过较难理解的排序算法,本实现方式是根据《啊哈!算法》里面的排序理念去实现的。这本书挺有趣的,看到的同学可以去拜读一下。