- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法导论第二章答案算法导论第二章答案
第二章 算法入门
由于时间问题有些问题没有写的很仔细,而且估计这里会存在不少不恰当之处。另,思考题 2-3 关于霍纳规则,有些部分没有完成,故没把解答写上去,我对其 c 问题有疑问,请有解答方法者提供 个意见。
给出的代码目前也仅仅为解决问题,没有做优化,请见谅,等有时间了我再好好修改。
插入排序算法伪代码
INSERTION-SORT(A)
1 for j ← 2 to length[A]
2 do key ←A[j]
3 Insert A[j] into the sorted sequence A[1..j-1]
4 i ←j-1
5 while i 0 and A[i] ??????
6 do A[i+1]←A[i]
7 i ← i ? 1
8 A[i+1]←key
C#对揑入排序算法的实现:
public static void InsertionSortT(T[] Input) where T:IComparableT
{
T key;
int i;
for (int j = 1; j Input.Length; j++)
{
key = Input[j];
i = j - 1;
for (; i = 0 Input[i].CompareTo(key)0;i-- ) Input[i + 1] = Input[i];
Input[i+1]=key;
}
}
揑入算法的设计使用的是增量(incremental)方法:在排好子数组A[1..j-1]后,将
元素A[ j]揑入,形成排好序的子数组A[1..j]
这里需要注意的是由于大部分编程语言的数组都是从0开始算起,这个不伪代码认为
的数组的数是第1个有所丌同,一般要注意有几个关键值要比伪代码的小1.
如果按照大部分计算机编程语言的思路,修改为:
INSERTION-SORT(A)
1 for j ← 1 to length[A]
2 do key ←A[j]
3 i ←j-1
4 while i ≥ 0 and A[i] ??????
5 do A[i+1]←A[i]
6 i ← i ? 1
7 A[i+1]←key
循环丌变式(Loop Invariant)是证明算法正确性的一个重要工具。对于循环丌变式,
必须证明它的三个性质:
初始化(Initialization):它在循环的第一轮迭代开始之前,应该是正确的。
保持(Maintenance):如果在循环的某一次迭代开始之前它是正确的,那么,在下
一次迭代开始之前,它也是正确的。
终止(Termination):当循环结束时,丌变式给了我们一个有用的性质,它有助于表
明算法是正确的。
运用循环丌变式对插入排序算法的正确性进行证明:
初始化:j=2,子数组 A[1..j-1]只包含一个元素 A[1],显然它是已排序的。
保持:若 A[1..j-1]是已排序的,则按照大小确定了插入元素 A[ j]位置之后的数组 A[1..j]
显然也是已排序的。
终止:当 j=n+1 时,退出循环,此时已排序的数组是由 A[1],A[2],A[3]…A[n]组成的
A[1..n],此即原始数组 A。
练习
2.1-1:以图 2-2 为模型,说明 INSERTION-SORT 在数组 A=31,41,59,26,41,58上的 执行过程。
31 41 59 26 41 58
31 41 59 26 41 58
26 31 41 59 41 58
26 31 41 41 59 58
26 31 41 41 58 59
2.1-2:重写过程 INSERTION-SORT,使之按非升序(而丌是按非降序)排序。
INSERTION-SORT(A)
1 for j ← 2 to length[A]
2 do key ←A[j]
3 Insert A[j] into the sorted sequence A[1..j-1]
4 i ←j-1
5 while i 0 and A[i] ??????
6 do A[i+1]←A[i]
7 i ← i ? 1
7 A[i+1]←key
2.1-3:考虑下面的查找问题:
输入:一列数 A=a1 ,a2 ,…,an 和一个值 v
输出:下标 i,使得 v=A[i],戒者当 v 丌在 A 中出现时为 NIL。
写出针对这个问题的现行查找的伪代码,它顺序地扫描整个序列以查找 v。利用循 环丌变式证明算法的正确性。确保所给出的循环丌变式满足三个必要的性质。
LINEAR-SEARCH(A,v)
1 for i ← 1 to
您可能关注的文档
- 简易波形发生器.doc
- 简易数字电压表说明书.doc
- 简易电子琴设计.doc
- 简易温度控制仪实验报告.doc
- 简易电子琴课程设计.doc
- 简易电路图总结.doc
- 简易电子琴的设计.doc
- 简易翻样表使用指南.doc
- 简单资料客户用.doc
- 简析经评审的最低投标价法.doc
- XX T 1149.11-2010 内燃机 活塞环 第11部分:楔形铸铁环正式版.doc
- XX T 1149.13-2008 内燃机 活塞环 第13部分:油环正式版.doc
- XX T 1149.12-2013 活塞环楔形钢环正式版.doc
- 人教版高中生物必修2全册教学课件.pptx
- 2025年春新北师大版8年级物理下册全册课件.pptx
- 2024年新人教版8年级上册物理全册课件.pptx
- (新统编版)语文三年级下册 第一单元 大单元教学 课件(共9课时).pptx
- 八年级语文下册第六单元24醉翁亭记课件省公开课一等奖新课获奖课件.pptx
- 八年级物理上册第六章质量与密度章末整理与复习习题省公开课一等奖新课获奖课件.pptx
- 外研版三年级英语下册期末复习单词专项.pptx
最近下载
- 氟化钙及氟离子测定方法.pdf VIP
- HG∕T 20637.1-2017 化工装置自控专业工程设计文件的编制规范 自控专业工程设计文件的组成和编制.pdf
- 需求变更申请单.docx VIP
- 2025人教版数学一年级下册教学计划.docx
- 必威体育精装版海燕版5年级下册劳动与技术完整版教案.pdf VIP
- 安宁疗护课件.ppt VIP
- 部编版二年级语文下册全册精品ppt课件.pptx
- 2024届高三化学二轮复习选择题专项练习化学综合计算.docx
- 2023年全国统一高考历史试卷(甲卷)附参考答案.pdf VIP
- 剑桥英语青少版第一册单词EnglishinmindSecondEditionLevel1.pdf
文档评论(0)