java 快速排序
快速排序是冒泡排序的一种改进,基本思想是选定一个基准值并将所有要排序的数据分为两部分,其中一部分所有的数据都比另一部分的数据小,在按照方法接着进行排序。
这里使用递归
public class quickSorted {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int[] arr= {-45,25,-9,0,4,96,56};
quicksort(arr,0,arr.length-1);
System.out.println(Arrays.toString(arr));
}
public static void quicksort(int[] arr,int left,int right) {
//定义左右遍历查找下标
int l=left;
int r=right;
int standard=arr[(left+right)/2];
int temp=0;
while(l<r) {
//左边遍历 找到比基准值大的则退出进行交换
while(arr[l] < standard) {
l+=1;
}
//右边遍历 找到比基准值小的值退出进行交换
while(arr[r] > standard) {
r--;
}
//交换
temp=arr[l];
arr[l]=arr[r];
arr[r]=temp;
}
//如果l == r
if(l ==r) {
l++;
r--;
}
//左递归
if(left<r) {
quicksort(arr,left,r);
}
//右递归
if(right>l) {
quicksort(arr,l,right);
}
}
}
[-45, -9, 0, 4, 25, 56, 96]