/**
* 快速排序
* 快速排序是不稳定的算法,它不满足稳定算法的定义。
* 算法稳定性 -- 假设在数列中存在a[i]=a[j],若在排序之前,a[i]在a[j]前面;并且排序之后,a[i]仍然在a[j]前面。则这个排序算法是稳定的!
* 快速排序的时间复杂度在最坏情况下是O(N2),平均的时间复杂度是O(N*lgN)。
* @param array
* @param min
* @param max
*/
public static void quickSort(int[] array,int min,int max){
int i=min;
int j=max;
int x=array[min];
if(min<max){
while(i<j){
while(i<j && array[j]>=x){
j--;
}
while(i<j && array[i]<=x){
i++;
}
if(i<j){
int temp=array[j];
array[j]=array[i];
array[i]=temp;
}
}
array[min]=array[i];
array[i]=x;
// 递归调用
quickSort(array,min,i-1);
quickSort(array,i+1,max);
}
}
java算法--快速排序
最新推荐文章于 2024-07-24 14:54:00 发布