Java简单实现快速排序
分治法
class QUICSORT{分割:
static int does(int[] arr,int low,int high){
int first=low;
int last=high;
int K=arr[low];
while(first<last){
while(first<last && K<=arr[last]){
last--;
}
arr[first]= arr[last];
while(first<last && K>=arr[first]){
first++;
}
arr[last]=arr[first];
}
arr[first]=K;
return first;
}
递归:
static void quick(int[] arr,int low,int high){if(low<high){
int middle=does(arr,low,high);
quick(arr,low,middle-1);
quick(arr,middle+1,high);
}
}
}
测试:
public class Quick {public static void main(String[] arg){
int[] arr={34,3,23,53,2,23,7,90,23,45,78,14,5,14,10};
QUICSORT qs=new QUICSORT();
qs.quick(arr,0,arr.length-1);
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
}
}
运行输出结果:2 3 5 7 10 14 14 23 23 23 34 45 53 78 90
下一篇:
希尔排序C语言实现(源代码)