public static void main(String[] args) {
int [] a= {1,3,5,7,9,2,4,6};
Sorts(a,0,a.length-1);
for(int i=0;i<a.length-1;i++) {
System.out.print(a[i]+" ");
}
}
public static void Sorts(int [] a,int start ,int end) {
int i,j,temp;
if(start>end) { //起点终点相遇
return;
}
i=start; //起点(哨兵)
j=end; //终点
temp=a[start];
while(i<j) {
while(temp<=a[j]&&i<j) { //比较右边
j--; //获取到第一个小于哨兵的值
}
while(temp>=a[i]&&i<j) { //比较左边
i++; //获取到第一个大于哨兵的值
}
if(i<j) { //把左右两部分相遇的那2个值交换位置
int k=a[i];
a[i]=a[j];
a[j]=k;
}
a[start]=a[i]; //交换哨兵和中间值得位置
a[i]=temp;
}
Sorts(a,start,j-1); //递归重复执行
Sorts(a,j+1,end); //递归重复执行
}
继续阅读与本文标签相同的文章
下一篇 :
java核心技术-NIO详细讲解使用实例分析
-
升级iOS 13后真能随意换字体?库克言:想多了,字体管理≠换字体
2026-05-19栏目: 教程
-
Java发送邮件必带超时时间配置
2026-05-19栏目: 教程
-
学术研究显示:移动支付让人花钱更多,是真的吗?
2026-05-19栏目: 教程
-
腾讯营收5.99亿美元登顶9月全球移动发行商收入总榜 同比增30%
2026-05-19栏目: 教程
-
黄顺昌:如何到达行业专家水平
2026-05-19栏目: 教程
