黑马程序员技术交流社区
标题:
希尔排序
[打印本页]
作者:
刘晓
时间:
2013-6-3 22:47
标题:
希尔排序
本帖最后由 刘晓 于 2013-6-7 16:21 编辑
今晚看视频,毕老师说最有效率的排序方法是希尔排序,三层循环加位运算,哪个大牛举个例子
作者:
yin1031468524
时间:
2013-6-4 00:26
package com.itheima;
public class ShellSort
{
public static void main(String[] args)
{
int[] a =
{ 9, 8, 2, 6, 7, 3, 4, 1, 45, 78, 36, 45, 21, 12, 145, 1, 5 };
int h = 1; // h变量保存可增变量
int temp;
int inner, outer;
// 希尔排序
long begin = System.currentTimeMillis();
while (h <= a.length / 3)
h = h * 3 + 1; // 按h*3+1得到增量序列的最大值
while (h > 0)
{
for (outer = h; outer < a.length; outer++)
{
temp = a[outer];
inner = outer;
while (inner > h - 1 && a[inner - h] >= temp)
{
a[inner] = a[inner - h];
inner -= h;
}
a[inner] = temp;
}
h = (h - 1) / 3;
}
for (int i = 0; i < a.length; i++)
{
System.out.println(a[i]);
}
}
}
复制代码
作者:
刘胜寒
时间:
2013-6-4 01:13
数据结构中又说到过,各种排序算法的时间复杂度。有时间可以看一下。。
作者:
殇_心。
时间:
2013-6-4 16:16
如果问题已解决,请及时修改分类,否则继续提问,谢谢合作!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2