黑马程序员技术交流社区

标题: 希尔排序 [打印本页]

作者: 刘晓    时间: 2013-6-3 22:47
标题: 希尔排序
本帖最后由 刘晓 于 2013-6-7 16:21 编辑

今晚看视频,毕老师说最有效率的排序方法是希尔排序,三层循环加位运算,哪个大牛举个例子

作者: yin1031468524    时间: 2013-6-4 00:26
  1. package com.itheima;

  2. public class ShellSort
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 int[] a =
  7.                 { 9, 8, 2, 6, 7, 3, 4, 1, 45, 78, 36, 45, 21, 12, 145, 1, 5 };
  8.                 int h = 1; // h变量保存可增变量
  9.                 int temp;
  10.                 int inner, outer;
  11.                 // 希尔排序
  12.                 long begin = System.currentTimeMillis();
  13.                 while (h <= a.length / 3)
  14.                         h = h * 3 + 1; // 按h*3+1得到增量序列的最大值
  15.                 while (h > 0)
  16.                 {
  17.                         for (outer = h; outer < a.length; outer++)
  18.                         {
  19.                                 temp = a[outer];
  20.                                 inner = outer;
  21.                                 while (inner > h - 1 && a[inner - h] >= temp)
  22.                                 {
  23.                                         a[inner] = a[inner - h];
  24.                                         inner -= h;
  25.                                 }
  26.                                 a[inner] = temp;
  27.                         }
  28.                         h = (h - 1) / 3;
  29.                 }

  30.                 for (int i = 0; i < a.length; i++)
  31.                 {
  32.                         System.out.println(a[i]);
  33.                 }
  34.         }
  35. }
复制代码

作者: 刘胜寒    时间: 2013-6-4 01:13
数据结构中又说到过,各种排序算法的时间复杂度。有时间可以看一下。。
作者: 殇_心。    时间: 2013-6-4 16:16
如果问题已解决,请及时修改分类,否则继续提问,谢谢合作!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2