附有本人超级详细解释(看不懂的面壁十天!) 一、 实际问题: 希尔排序(Shell Sort)是插入排序的一种。因D.L.Shell于1959年提出而得名。它又称“缩小增量分类法”,在时间效率上比插入、比较、冒泡等排序算法有了较大改进。能对无序序列按一定规律进行排序。 二、数学模型: 先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插人排序;然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量dt=1(dt<dt-l<…<d2<d1),即所有记录放在同一组中进行直接插入排序为止。该方法实质上是一种分组插入方法。 三、算法设计: 1、将相隔某个增量dlta[k]的元素构成一个子序列。在排序过程中,逐次减小这个增量,最后当h减到1时,进行一次插入排序,排序就完成。增量序列一般采用:dlta[k]=2t-k+1-1,其中t为排序趟数,1≤k≤t≤[log2 (n+1)],其中n为待排序序列的长度。按增量序列dlta[0..t-1]。 2、按增量dlta[k](1≤k≤t≤[log2 (n+1)])进行一趟希尔插入排序。 3、在主函数中控制程序执行流程。 4、时间复杂度:1≤k≤t≤[log2 (n+1)]时为O(n3/2)。
上传时间: 2013-12-11
上传用户:天涯
给定n个大小不等的圆c , c , , cn 1 2 ,现要将这n个圆排进一个矩形框中,且要求各圆 与矩形框的底边相切。圆排列问题要求从n个圆的所有排列中找出有最小长度的圆排列。例 如,当n=3,且所给的3 个圆的半径分别为1,1,2时,这3个圆的最小长度的圆排列如图 所示。其最小长度为2 + 4 2 。
上传时间: 2013-11-25
上传用户:lunshaomo
最新N多的黑客小工具集合(for windows),如果你有兴趣,一定不要错过,错过后悔!!!还有一些体积比较大的,以后陆续放送给大家!!:)
上传时间: 2014-01-26
上传用户:1966640071
某些系统(比如 UNIX )不支持方向键 如果发生这种情况请使用(J、L、I、K)代替 建议使用 133MHZ 或以上的机器 并配有 NETSCAPE 4.X 或 INTERNET EXPLORER 3.X. 对于较慢的机器请切换到 WIREFRAME 模式 通过按 “F” 键实现 . 再按一次 “F” 键切换会 SOLID RENDERING 模式。
标签: INTERNET NETSCAPE EXPLO UNIX
上传时间: 2013-12-31
上传用户:cursor
半数集问题 问题描述: 给定一个自然数n,由n开始可以依次产生半数集set(n)中的数如下。 (1) n∈set(n); (2) 在n的左边加上一个自然数,但该自然数不能超过最近添加的数的一半; (3) 按此规则进行处理,直到不能再添加自然数为止。 例如,set(6)={6,16,26,126,36,136}。半数集set(6)中有6个元素。 编程任务: 对于给定的自然数n,编程计算半数集set(n)中的元素个数。
标签: 61611
上传时间: 2015-06-01
上传用户:netwolf
最小重量机器设计问题 设某一机器由n个部件组成,每一种部件都可以从m个不同的供应商处购得。设w(i,j)是从供应商j处购得的部件i的重量,C(i,j)是相应的价格。 设计一个优先列式分支限界法,给出总价格不超过c的最小重量机器设计。
上传时间: 2014-01-22
上传用户:stewart·
给定n 个正整数和4 个运算符+、-、*、/, 且运算符无优先级,如2+3*5=25。对于任意给定 的整数m,试设计一个算法,用以上给出的n 个数 和4 个运算符,产生整数m,且用的运算次数最少 给出的n个数中每个数最多只能用1 次,但每种运 算符可以任意使用。
上传时间: 2014-06-23
上传用户:ve3344
计算如序列x[k]={1,2,3,4,5}与序列h[k]={2,-2,3,5}的卷积本程序是和互相关的C源程序。
上传时间: 2014-09-09
上传用户:凤临西北
给定一个n个结点的连通图,用回溯法求出图中含有的所有哈密尔顿环。包含实验报告。
标签:
上传时间: 2015-06-02
上传用户:a673761058
通过精心挑选划分元素v,可以得到一个最坏情况时间复杂度为O(n)的选择算法。本次实习要求用c语言将此算法实现。要求实现此功能:输入一组数,返回A[i],使其为A(m:p)中第k小的元素,k是一个全局变量,取大于1的整数
上传时间: 2015-06-02
上传用户:zmy123