A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘晓 中级黑马   /  2013-6-3 22:47  /  1424 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘晓 于 2013-6-7 16:21 编辑

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

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

3 个回复

倒序浏览
  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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
刘胜寒 + 1

查看全部评分

回复 使用道具 举报
数据结构中又说到过,各种排序算法的时间复杂度。有时间可以看一下。。
回复 使用道具 举报
如果问题已解决,请及时修改分类,否则继续提问,谢谢合作!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马