排序算法shell sort

本文深入探讨了排序算法的基础知识,包括Shell排序的实现细节,通过逐步调整步长来优化排序过程,利用冒泡排序原理实现高效的排序操作。
[url=http://liangge0218.iteye.com/blog/754720]其它排序算法[/url] http://liangge0218.iteye.com/blog/754720

public void shellSort(Comparable[] src) {
//初始步长,可以取原长一半,以后每次减半.这个比较简单,好记
int step = src.length / 2;
while (step >= 1) {
// 从step开始,关键(1)是i++,对每个步长间隔都排序
for (int i = step; i < src.length; i++) {
Comparable temp;
// 内部采用的是冒泡排序
for (int j = i; j >= step; j = j - step) {
if (src[j].compareTo(src[j - step]) < 0) {
temp = src[j];
src[j] = src[j - step];
src[j - step] = temp;
} else { // 关键(2)是else中的break; 利用了前面各个step的排序,不用交换的就break
break;
}
}
}
step = (step) / 2;
}
}

还有就是两个边界,int i = step和 j >= step
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值