Java简单实现快速排序
2017-05-20 16:27
218 查看
分治法
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
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
相关文章推荐
- java简单实现冒泡 快速 选择排序
- 快速排序Java实现--最简单的实现方法
- 快速排序的超简单实现(Java)
- 快速排序的超简单实现(Java)
- java几种排序简单实现(快速排序,冒泡排序,直接插入排序)
- 冒泡排序,简单插入排序,快速排序,二分查找的JAVA实现
- java实现七种排序 (插入排序, 希尔排序, 插入排序, 快速排序, 简单选择排序, 堆排序, 归并排序)
- 查找""排序""简单数学计算" "简单算法"[Java实现](数据结构和算法)(复习)(持续更新
- Java 常用排序算法实现--快速排序、插入排序、选择、冒泡
- 算法-快速排序-java实现
- 简单排序之java实现
- 快速排序方法Java实现与分析
- java实现快速排序
- Java实现排序(快速排序、冒泡排序、选择排序、基数排序、插入排序)
- 快速排序Java实现
- Java 实现插入式简单排序
- 排序算法复习(Java实现)(一): 插入,冒泡,选择,Shell,快速排序
- Java实现快速排序、归并排序、堆排序
- 排序算法复习(Java实现):插入,冒泡,选择,Shell,快速排序, 归并排序,堆排序,桶式排序,基数排序
- 最简单的对Java List列表按中文拼音排序的实现方式