快速排序是冒泡排序的改进算法
就是在无序数组中找到一个基准数,以此让左边的数都小于这个基准数,右边的数都大于这个基准数,这样不断进行递归排序,最终就能让整个数组变成有序数组
下面是快速排序的源代码
package Sort;
import java.util.Arrays;
//此为快速排序的递归实现算法
public class QuickSort2 {
public static void main(String[] args) {
int[] array=new int[10];
for(int i=0;i<array.length;i++){
array[i]=(int)(Math.random()*100);
}
quickSort(array,0,array.length-1);
System.out.println(Arrays.toString(array));
}
public static void quickSort(int[] array,int start, int end){
if(start>end){
return ;
}
//存储数组开始和末尾的位置
int i=start;
int j=end;
//存储基准值
int key=array[start];
//开始一次排序
while(i<j){//从右往左找到第一个小于key的数 升序排
while(i<j&&array[j]>key){
j--;
}
//从左往右找到第一个大于key的数 升序排
while(i<j&&array[i]<=key){
i++;
}
//进行交换
if(i<j){
int tmp=array[i];
array[i]=array[j];
array[j]=tmp;
}
}
//对key值进行调整位置
int p=array[i];
array[i]=array[start];
array[start]=p;
System.out.println(i);
//对key左边进行快排
quickSort(array,start,i-1);
//对key右边进行快排
quickSort(array,i+1,end);
}
}
版权声明:本文为qq_38052208原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。