社区
数据结构与算法
帖子详情
求:添加监视哨的希尔排序(shellsort)算法
sxtymk
2006-10-25 08:41:48
如题,我知道shell算法,但不知怎样加监视哨,
听说黄刘生的《数据结构》上有,可是这里的图书馆里没有……
麻烦哪位指点一下,感激不尽!
...全文
314
3
打赏
收藏
求:添加监视哨的希尔排序(shellsort)算法
如题,我知道shell算法,但不知怎样加监视哨, 听说黄刘生的《数据结构》上有,可是这里的图书馆里没有…… 麻烦哪位指点一下,感激不尽!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fiorano
2006-10-30
打赏
举报
回复
清华的那本数据结构,排序的算法里很多都涉及到了监视哨
sxtymk
2006-10-30
打赏
举报
回复
多谢多谢,不过我需要消化一下,貌似少了点什么似的……
不过能找到已经很不错了,再次感谢!
idealguy
2006-10-25
打赏
举报
回复
找到一段,不只对否?
(2)希尔排序
希尔排序(Shell's methed)又称缩小增量排序(diminishing increment sort),它也是一种插入排序类的方法,但在时间效率上较前述几种排序方法有较大的改进。它是一种较快速的排序算法。其时间复杂度是O(n3/2)。
希尔排序产生的原因是来自对直接插入排序的分析,当直接排序中其算法时间复杂度为O(n2) ,但是,若待排记录序列按关键字"基本有序",直接插入排序的效率就可大大提高。希尔排序就是主要针对这一点对直接插入排序进行改进而得到的。
它的基本思想是:先将整个待排记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录"基本有序"时,再对全体记录进行一次直接插入排序。
在希尔排序中,子序列的构成不是简单地"逐段分割",而是将相隔某个"增量"的记录组成一个子序列。如在第一趟排序时的增量为7,即将相隔为7的元素编成一组进行直接插入排序。第二趟排序时的增量为3,增量进一步缩小。由于在这两趟的插入排序中在子序列中逆序的关键字是跳跃式地移动,从而使得在进行最后一趟增量为1的插入排序时,序列已基本有序,只要作少量比较和移动即可完成排序,因此希尔排序的时间复杂度较直接插入排序低。
下面用算法语言描述的希尔排序:
希尔排序中增量序列的选取是一个复杂的问题,涉及到一些数学上尚未解决的难题。我们不想加以详细讨论。到目前仅得出部分结论:如当增量序列为d[k]=2t-k+l -1时,希尔排序的运行时间为O(n3/2),其中1≤k≤t≤└log2(n+1)┘。增量序列还可以有各种取法, 如d[k]=2t-k,(d=…,9,5,3,2,1)。但请注意:应使增量序列中的值没有除1之外的公因子,并且最后一个增量值必须等于1。
void shellpass(elem a[],int dh){
//进行一趟希尔排序,dh为增量
s=-dh+1; //监视哨位置
for (i=dh;i<=n;i++) { //进行插入排序
a[s]=a[i];
j=i-dh;
x=a[i].key;
while (x0)
s=-dh+1;
}
} void shellsort(elem a[],int d[]){
//希尔排序,d[k]为各趟排序增量序列,d[t]=1
k=1;
while (k<=t) {
shellpass(a,d[k]);
k++;
}
}
蓝牙安全演进史:从PIN码到ECDH,SSP如何重塑设备配对生态
本文深入解析蓝牙安全演进史,从早期易破解的PIN码配对到蓝牙2.1引入的安全简单配对(SSP)协议。SSP基于ECDH密钥交换机制,提供四种关联模型,有效防御中间人攻击,重塑设备配对生态,为物联网应用奠定坚实安全基础。
【双层鲸鱼
算法
求
解】基于非合作博弈的居民负荷分层调度模型(Matlab代码实现)
内容概要:本文提出了一种基于非合作博弈理论的居民负荷分层调度模型,并结合双层鲸鱼优化
算法
(Two-level Whale Optimization Algorithm)进行高效
求
解,模型与
算法
均通过Matlab代码实现。研究针对电力系统中居民侧用电负荷的复杂调度问题,引入非合作博弈机制刻画各用户之间的利益竞争关系,实现负荷的分层优化分配;同时设计双层优化架构,上层优化资源配置,下层模拟用户自主决策行为,提升了模型的实用性与合理性。通过智能优化
算法
求
解多层级、非凸非线性的博弈模型,有效提高了调度方案的收敛性与全局寻优能力,适用于现代智能电网中的需
求
侧管理与能源优化场景。; 适合人群:具备电力系统基础理论知识和Matlab编程能力,从事智能电网、能源优化调度、需
求
侧管理、博弈论应用等方向的科研人员、高校研究生及工程技术人员。; 使用场景及目标:①应用于居民区电力负荷的分层优化调度系统设计与仿真分析;②为非合作博弈在多主体能源系统建模中的应用提供方法论支持;③利用双层鲸鱼
算法
解决具有嵌套结构的复杂双层优化问题,提升
求
解效率与调度方案的可行性。; 阅读建议:建议读者结合提供的Matlab代码深入理解模型构建逻辑与
算法
实现流程,重点关注博弈模型的效用函数设计、纳什均衡
求
解思路以及双层优化结构的迭代机制,宜配合实际用电数据开展复现实验以验证模型有效性与鲁棒性。
如何打造区域科技成果转化高地.docx
如何打造区域科技成果转化高地
【基于可再生能源的微电网功率管理系统】基于自适应神经模糊推理系统智能控制器的可再生能源微电网功率管理系统及经济机组组合调度研究(Simulink仿真实现)
内容概要:本文围绕基于自适应神经模糊推理系统(ANFIS)智能控制器的可再生能源微电网功率管理系统展开研究,结合Simulink仿真实现,深入探讨了微电网中功率的智能调控与经济机组组合调度问题。通过引入ANFIS控制器,有效应对风能、光伏等可再生能源出力的波动性与不确定性,提升系统运行的稳定性与电能质量。研究内容涵盖微电网多源协调控制策略、功率平衡管理、优化调度模型构建及仿真验证,实现了对分布式电源、储能系统和负荷的协同优化,兼顾经济性与可靠性目标,并通过仿真平台验证了所提方法的有效性与优越性。; 适合人群:具备电力系统、自动化或新能源相关专业背景,熟悉Matlab/Simulink仿真环境,从事微电网能量管理、智能控制、能源优化等领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于高比例可再生能源接入场景下的微电网能量管理系统研发与教学实践;②为实现微电网功率稳定控制与经济高效运行提供先进的智能控制解决方案;③支撑高水平学术论文复现、科研课题攻关及实际工程项目的仿真验证与方案优化。; 阅读建议:建议结合提供的Simulink模型与相关代码进行动手实践,重点关注ANFIS控制器的设计流程、规则库构建与参数调优方法,并通过与传统PID或MPC控制策略的对比实验,深入理解其在动态响应与鲁棒性方面的优势。同时可进一步拓展文中提出的优化调度逻辑,应用于多目标、多约束的复杂实际应用场景中。
如何构建开放协同的产学研合作平台.docx
如何构建开放协同的产学研合作平台
数据结构与算法
33,026
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章