快速排序法
来源:互联网 发布:apache 不解析php 编辑:程序博客网 时间:2024/05/21 04:22
public class Sort {
/* 建立总调用方法*/
public void All(int [] number,int Start,int length){
Rescurive(number,Start,length);
}
/*建立递归方法 */
private void Rescurive(int [] number,int Start,int ending){
if(ending-Start<1){
return;
}
/*把获得的基准数取到*/
int lable=select(number,Start,ending);
/*把获得的基准数取到,然后传给执行去区间段的方法,然后重新获取缩小区间的基准数*/
lable=pistion(number,Start,ending,lable);
/*把区间左移,*/
All(number, Start, lable-1);
/*把区间右移,*/
All(number, lable+1, ending);
}
/*建立获取基准数的方法*/
private int select(int [] number,int Start,int ending){
return (Start+ending)/2;
}
/* 建立压缩区间的方法*/
private int pistion(int [] number,int Start,int ending,int lable){
int tmp=number[lable];//先把当前的基准数保持下来
number[lable]=number[ending];
//依据当前区间的起始值和结束值
while(Start!=ending){
while(Start<ending&&number[Start]<=tmp)
Start++;
if(Start<ending){
number[ending]=number[Start];
ending--;
}
while(Start<ending&&number[ending]>=tmp)
ending--;
if(Start<ending){
number[Start]=number[ending];
Start++;
}
}
number[Start]=tmp;
return Start;
}
public static void main (String [] args){
int [] number={12,21,32,2,1,3,42,2};
Sort s1=new Sort();
s1.All(number,0, number.length-1);
for(int i=0;i<number.length;i++){
System.out.print(number[i]+" ");
}
}
}
阅读全文
0 0
- 排序--快速排序法
- 【排序】快速排序法
- 快速排序法排序
- 排序算法--快速排序法
- 排序算法--快速排序法
- 快速排序法
- 快速排序法
- 快速排序法
- 快速排序法
- 快速排序法qsort
- java快速排序法
- 通用快速排序法
- 快速排序法
- 快速排序法程序
- 快速排序法
- 快速排序法
- 快速排序法
- 快速排序法
- Spring AOP常用注解解析
- spring定时器
- openmv 飞机巡线
- AtCoder Regular Contest 080-C
- Hibernate中双向一对多关联关系
- 快速排序法
- (hdu 6078)2017 Multi-University Training Contest
- 流媒体开发:RTP over TCP
- redis系列笔记
- poj3632
- 补题列表(更新于2017年8月7日10:55:08)
- Maven nexus 安装nexus : wrapper | OpenSCManager failed
- 关于加快tomcat的启动速度
- sublime text 3 快捷键大全以及配置编译环境