当前位置: 首页 > news >正文

算法导论习题(持续更新)

算法导论 华章第三版 习题
##练习题2.1-2
重写过程INSERTION-SORT,使之按非升序排序。
伪代码思路1:

for j=A.length-1 to 1key=A[j]i=j+1while i<A.length+1 and A[i]>kA[i-1]=A[i]i=i+1A[i-1]=key

所有排好序的序列都放在数组A的右边,从右到左遍历整个A,将其插入到右面有序的序列中
伪代码思路2:
所有排好序的序列仍然都放在数组A的左边,

for j=2 to A.lengthkey=A[j]i=j-1while i>0 and A[i]<keyA[i+1]=A[i]i=i-1A[i+1]=key

##练习题2.1-3
考虑以下查找问题:
输入:n个数的一个序列A=<a1,a2,…,an>和一个值v。
输出:下标i使得v=A[i]或者当v不在A中出现时,v为特殊值NIL。
写出线性查找的伪代码,它扫描整个序列来查找v。使用一个循环不变式来证明你的算法是正确的。确保你的循环不变式满足三条必要的性质。

for i=1 to A.lengthif A[i]==vreturn i
return NIL

##练习题2.1-4
考虑把两个n位二进制整数加起来的问题,这两个整数分别存储在两个n元数组A和B中。这两个整数的和应按二进制形式存储在一个(n+1)元数组C中。请给出该问题的形式化描述,并写出伪代码。

for i=1 to nval =A[i]+B[i]if val==0C[i]+=0else if val==1C[i]+=1else if val==2C[i]+=0C[i+1]+=1else if val==3C[i]+=1C[i+1]+=1

##练习题2.2-2
考虑排序存储在数组A中的n个数:首先找出A中的最小元素并将其与A[1]中的元素进行交换。接着,找出A种的次最小元素并将其与A[2]中的元素进行交换。对A中前n-1个元素按该方式继续。该算法成为选择算法,写出其伪代码。该算法维持的循环不变式是什么?为什么它只需要对前n-1个元素,而不是对所有n个元素运行,用theta记号给出选择排序的最好情况与最坏情况运行时间。

min=+inv
for i=1 to n-1for j=i to n-1if A[j]<minmin=A[j]j_min=jexchange=A[i]A[i]=A[j_min]A[j_min]=exchange
theta(n方)???
http://www.xdnf.cn/news/842923.html

相关文章:

  • 保险需求的智能分析:智能保顾——互联网平台建设...
  • 何谓B/S架构,C/S架构,SOA架构?
  • 高级PHP应用程序漏洞审核技术-温故知新
  • “卓越级”!火山引擎边缘云持续推动行业标准与生态建设,获多项权威认可
  • Cajviewer 7.0.2 Windows 7下使用方法:
  • Java程序员必看电影:Java 4-ever
  • 贺建奎出狱7个月:新实验室落户北京大兴,从事罕见遗传病基因治疗
  • Web安全:AppScan 安装和使用.(渗透常用工具)
  • 【C语言】贪吃蛇【附源码】
  • 游戏环境下如何实现真正D3D的窗口
  • 如何用普通的搜索引擎查找论坛里的帖子
  • java智慧工地云平台源码,基于BIM+AI智能大数据中心和云平台的智慧工地监管平台
  • maya批量命名插件_教你玩转MAYA的四十二精华造诣(第一期)
  • 如何在web页面下做自动化测试?
  • 高防IP可以防御CC攻击吗?高防IP有什么优势?
  • 系留无人机+通信中继:机载自组网技术实现详解
  • Source Insight 3.5 序列号分享
  • 算法的基本特征
  • Java与Unicode
  • 南邮《网络技术与应用》4次作业,赶紧学习一下
  • Docker 笔记
  • JAVA程序模拟器安装及使用详细教程
  • 菜鸟级Hibernate入门心得
  • Symbian S60第三版软件精选介绍
  • 《东周列国志》第六十六回 杀宁喜子鱄出奔 戮崔杼庆封独相
  • 迷您工具发布!QQ强制聊天器绿色免费版
  • AI新年头像模板如何制作?三个方法助你轻松打造独特新年头像
  • SSH远程登录的使用和介绍
  • Dubbox简介与入门实战
  • Zxing简明教程