java实现快速排序
利用快速排序对无序数组进行排序
快速排序算法的基本原理:
分治法:比大小:再分区
- 从数组中取出第一位数作为基准数(一般选择第一位数字)。
- 比较大小后分区:大于或者等于基准数的数据放在右边;小于基准数的数据放在左边。
- 再对左右区间重复前面第二步,直到各区间只有一个数。
代码实现:
import java.util.Arrays;
public class test1 {
public static void main(String[] args) {
int[] arr={1644,32,4,56,235,90,345,77,56};
quickSort(arr,0,arr.length-1);
System.out.println(Arrays.toString(arr));
}
private static void quickSort(int[] arr, int start, int end) {
int i=start;
int j=end;
if(i>=j){
return;
}
int temp=arr[start];
while(i<j){
while(arr[j]>=temp&&i<j){
j--;
}
while(arr[i]<=temp&&i<j){
i++;
}
if (i<j){
int t=arr[i];
arr[i]=arr[j];
arr[j]=t;
}
}
arr[start]=arr[i];
arr[i]=temp;
quickSort(arr,start,i-1);
quickSort(arr,i+1,end);
}
}
运行结果:
[4, 32, 56, 56, 77, 90, 235, 345, 1644]
Process finished with exit code 0
|