Shell排序:一种插入排序。
距离的概念:两个数之间的间隔i个数,这两个数的距离就为i
例如:1,2,3,4,5,6,7,8。1和2的距离为1;1和3的距离为2。
基本思想:先取一个增量d1<n,把待排序的数组按照增量分组,距离为增量d1的分到相同的组,相同组的数据按插入排序排序。接着取d2<d1,重复上面的过程,直到di=1<d(i-1)<…<d1为止。
例子:
代码实现:
private int shellsortCi(int[] p, int n) {
int op = 0;
int h, i, j, t, temp;
int incs[] = { 2331004, 1036002, 460445, 204643, 90952, 40423, 17965,7985, 3549, 1577, 701, 301, 132, 57, 23, 9, 4, 1 };//选择的增量
for (t = 0; t < incs.length; t++) {
h = incs[t];
if (h > n * 4 / 9)
continue;
for (i = h; i < n; i++) {
temp = p[i];
for (j = i - h; j >= 0 && p[j] > temp; j -= h) {
p[j + h] = p[j];
op++;
}
p[j + h] = temp;
op++;
}
}
return op;
}
分享到:
相关推荐
shell编程指南shell编程指南shell编程指南shell编程指南shell编程指南shell编程指南shell编程指南shell编程指南
Linux Shell编程艺术.7z.003 The Art of Linux Shell Scripting Shell是unix/linux操作系统与用户进行交互的重要接口,是unix/linux系统中最重要的软件之一。一直以来,shell编程是系统管理员必备的高级技能,通过...
shell编程用户信息管理(模拟)课程设计说明书
用Linux/UNIX Shell编程语言设计系统监控程序.pdf
shell编程-shell编程-分支语句(1) shell编程-shell编程-分支语句(2) shell编程-shell编程-循环语句(1) shell编程-shell编程-循环语句(2) Linux的shell编程(一) Linux的shell编程(二) Linux的...
Linux+shell编程课程设计——Linux用户管理的shell程序设计
shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程...
linux下程序设计之shell编程.doc
linux下程序设计之shell编程.docx
一直以来,shell编程是系统管理员必备的高级技能,通过学习shell编程,可以让计算机系统完成那些繁重并且琐碎的管理任务,从而可以节约大量的工作时间。本书通过大量的应用实例,以循序渐进的方式,由浅入深地逐步...
shell编程shell编程shell编程shell编程
13Linux下Shell编程之While case演练 14Linux下Shell编程之While case演练 15Shell编程之函数及脚本案例讲解 16Shell编程之函数及脚本案例讲解 17Linux下Shell编程FIND、SED命令实战 18Linux下Shell编程FIND、SED...
Linux Shell编程艺术,有兴趣的人看看吧
LinuxShell编程艺术.part3
shell编程题目练习,练习基本的shell编程,学习脚本语言,提高效率
LINUX与UNIX SHELL编程指南
shell编程入门经典--LINUX与UNIX Shell编程指南 (中文pdf版)
这是一套完整的Unix培训教材,包括Unix常用命令及SHELL编程基础与高级技巧,PDF格式,共30个文件。另有2个Word文档。包内文件清单如下: 01_Shell-文件安全与权限.PDF 02_Shell-使用find和xargs.PDF 03_Shell-...
shell编程入门教程+shell脚本专家指南+UNIX.shell编程24小时教程