本帖最后由 不想睡 于 2015-8-27 23:46 编辑
快速排序:当今公认的最好的排序算法之一,它是对冒泡排序的一种改进。思想是将要排序的数组分围独立的两部分,其中一部分的所有数组元素值比另一部分的所有元素值都要小,而每一小部分数组的排序有可以继续分解为更小的两部分,这样递归分解下去,直到数组长度的大小最大为2.
以下是代码
public class QuickSort{
public static void main(String[] args){
int array[]={2,44,23,5,34,13,29,6,24,26,18,10,25,12,17};
array=quickSort(array,0,array.length-1);
for(int i=0;i<array.length;i++){
System.out.print(array+" ");
}
System.out.println();
}
//快速排序算法
public static int[] quickSort(int[] arr,int lowIndex,int highIndex){
if(lowIndex < highIndex){
int s = arr[lowIndex];
int i = lowIndex;
int j = highIndex+1;
while(true){
while(i+1<arr.length&&arr[++i]<s) ; //向右寻找大于S的数组元素的索引
while(j-1>-1&&arr[--j]>s); //向左寻找小于S的数组元素的索引
if(i>=j){
break;
}else{
int temp = arr;
arr = arr[j];
arr[j] = temp;
}
}
arr[lowIndex]= arr[j];
arr[j] = s;
quickSort(arr,lowIndex,j-1);
quickSort(arr,j+1,highIndex);
}
return arr;
}
}
|
|