Cadence Skill 论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7466|回复: 4

希尔排序算法

[复制链接]
发表于 2013-12-30 01:06:46 | 显示全部楼层 |阅读模式
前段时间写skill脚本时发现:当为database按照某一属性排序时,sort系列功能貌似不能很好的工作(大家可以试一下)。所以贴出skill版本的希尔排序算法,需要用的朋友可以看看(反正已经解决了我遇到的问题)。
  1. defun( shell_sort (List);
  2.     v =  listToVector(List)  
  3.          n = length(List)
  4.     gap = 0,
  5.     i = 0,
  6.     j = 0,
  7.     temp = nil;
  8.     gap = n/2
  9.     while(gap > 0
  10.         for(i  gap  n-1
  11.             j = i - gap
  12.             while(j >= 0 && v[j] > v[j+gap]
  13.                 temp = v[j];
  14.                 v[j] = v[j+gap];
  15.                 v[j+gap] = temp;
  16.                 j = j - gap   
  17.             );while
  18.             i++
  19.         );for
  20.         gap = gap/2
  21.     );while
  22.          vlist = vectorToList(v)
  23. );defun
复制代码

点评

之前好想也用到过排序,不是很好操作。有机会试试你的方法。  发表于 2013-12-30 22:52
发表于 2013-12-30 22:53:08 | 显示全部楼层
之前好想也用到过排序,不是很好操作。有机会试试你的方法。
发表于 2014-6-24 14:45:01 | 显示全部楼层
谢谢楼主分享
发表于 2017-9-21 23:51:25 | 显示全部楼层
刚好有东西需要排下序。赞
发表于 2019-8-19 09:10:09 | 显示全部楼层
我来尝试一下,谢谢分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|网站地图|Cadence Skill 论坛 ( 蜀ICP备13024417号 )

GMT+8, 2024-11-23 19:41 , Processed in 0.121508 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表