《算法设计与分析》课程上机指导
更新时间:2024-03-07 18:14:01 阅读量: 综合文库 文档下载
- 算法设计与分析课程总结推荐度:
- 相关推荐
《算法设计与分析》课程上机指导
《算法设计与分析》上机指导1
实习内容
习题一(工程名为101、源程序名为101) 选择排序法的伪代码描述如下: 算法1.4 SelectionSort(参见Page 8) 输入:数组A[1..n]
输出:按升序排列的数组A[1..n]
1. for i←1 to n-1 2.
Selection(i)
3. end for 过程Selection(i)
1. k←i
2. for j←i+1 to n 3.
if A[j]
4. end for
5. if k≠i then 交换A[i]和A[k]
用C语言实现上述算法并上机通过。
// ******************************************************* // * 工 程 名:101.dsp * // * 程 序 名:101.cpp
*
// * 主要功能:选择排序法
*
// * 学号姓名:20112633226 张云龙 * // * 编制时间:2013年10月9日
// ******************************************************** #include
*
int n=5,k,m; int A[6];
for(int i=1;i cout<<\请输入第\个元素\ cin>>A[i]; } for( i=1;i for(int j=i+1;j if(A[j] } if(k!=i) { m=A[k]; A[k]=A[i]; A[i]=m; } } cout<<\新的数组为:\ for( i=1;i cout< 1 } 选做题:用递归方法(归纳法)实现选择排序法。 习题二(工程名为102、源程序名为102) 插入排序法的伪代码描述如下: 算法1.6 InsertionSort(参见Page 8-9) 输入:数组A[1..n] 输出:按升序排列的数组A[1..n] 1. for i←2 to n 2. Insertion (i) 3. end for 过程Insertion(i) 1. x←A[i] 2. j←i-1 3. while (j>0) and (A[j]>x) 4. A[j+1]←A[j] 5. j←j-1 6. end while 7. A[j+1]←x 用C语言实现上述算法并上机通过。 // ******************************************************* // * 工 程 名:102.dsp * // * 程 序 名:102.cpp * // * 主要功能:插入排序法 * // * 学号姓名:20112633226张云龙 // * 编制时间:2013年10月9日 // ******************************************************** #include * * 2 { int i,x,j,n=5,A[6]; for(i=1;i cout<<\请输入数组的第\个元素\cin>>A[i]; } for(i=2;i while((j>0)&&(A[j]>x)) { A[j+1]=A[j]; j=j-1; } A[j+1]=x; } cout<<\新的数组为:\for(i=1;i cout< 选做题:用递归方法(归纳法)实现插入排序法。 3 习题三(工程名为103、源程序名为103) 自底向上合并排序法的伪代码描述如下: 算法1.6 BottomUpSort(Page 10) 输入:n个元素的数组A[1..n] 输出:按升序排列的数组A[1..n] 1. t←1 2. while t s←t : t←2s : i←0 while i+t≤n Merge(A,i+1,i+s,i+t) //Merge(A,p,q,r) i←i+t end while if i+s 9. end while //n-i>s表示剩余的元素个数大于被合并的子序列长度 过程Merge(A[1..m],p,q,r) 1. comment:B[p..r]是个辅助数组 //或B[1..m] 2. s←p : t←q+1 : k←p //s和t分别指向数组A二个子数组元素 //k指向数组B当前空白元素位置 3. while (s≤q) and (t≤r) 4. 5. 6. 7. if A[s]≤A[t] then B[k]←A[s] : s←s+1 else B[k]←A[t] : t←t+1 end if k←k+1 //指向数组B下一个空白位置 8. end while 9. if s=q+1 then B[k..r]←A[t..r] //说明子数组A[p..q]元素已处理完 10. else B[k..r]←A[s..q] 11. end if 12. A[p..r]← B[p..r] 用C语言实现上述算法并上机通过。 // ******************************************************* 4 //否则t=r+1,说明子数组A[q+1..r]已处理完。 // * 工 程 名:103.dsp * // * 程 序 名:103.cpp * // * 主要功能:自底向上排序法 * // * 学号姓名:20112633226张云龙 * // * 编制时间:2013年10月9日 * // ******************************************************** #include void merge(int *A,int p,int q,int r) { int s,t,k; int *B=new int[r]; s=p;t=q+1;k=p; while((s<=q)&&(t<=r)) { if(A[s]<=A[t]) { B[k]=A[s]; s=s+1; } else { B[k]=A[t]; t=t+1; } k=k+1; } if(s=q+1) { for(int i=t;i<=r;i++) { 5 B[k]=A[t]; t=t+1; k=k+1; } } else { for(int i=s;i<=q;i++) { B[k]=A[s]; s=s+1; k=k+1; } } for(int h=p;h<=r;h++) { A[p]=B[p]; p=p+1; } } void main() { int n=5,i,t=1,s,m; int *A=new int[6]; for(i=1;i<=n;i++) { 6 cout<<\请输入数组的第\个元素:\ cin>>A[i]; } while(t s=t,t=2*s;i=0; while((i+t)<=n) { merge(A,i+1,i+s,i+t); i=i+t; } if((i+s) merge(A,i+1,i+s,n); } } cout<<\新数组为:\ for(m=1;m<=n ;m++) { cout< } } 选做题:用递归方法(分治法)实现自底向上合并排序法。 7
正在阅读:
《算法设计与分析》课程上机指导03-07
主题团日活动策划书07-27
鹤壁XXXX年经济形势及房地产现状分析04-20
学风建设主题班会策划书05-06
P2P-based Weighted Behavioral Characteristics Of Deep Packet Inspection Algorithm06-07
管道压力损失表09-01
计量修正题库03-04
结晶学及矿物学复习题05-22
常压湿法治理化学工业中氮氧化物废气的研究06-10
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 上机
- 算法
- 指导
- 课程
- 分析
- 设计
- 九上成语题
- 六年级上册音乐教案-半屏山1 - 人音版简谱
- 人教版七年级下册英语Unit3过关练习(无答案)人教版
- 2016年度中小学教师职称材料报送说明及评审表填写说明
- 九年级语文下册第一单元2我用残损的手掌导学案部编版
- 沥青混凝土配合比设计开题报告 - 图文
- 金版学案2018-2019学年物理(粤教版)必修一试题:第三章第一节
- 卷烟网上订货推广实施细则(改)
- 高一物理第四章第三节4.3牛顿第二定律教案(新人教版必修1)
- 创业初期的股权设计三个基础知识-财税法规解读获奖文档
- 销售组织架构
- 电工学教案(第四版)
- 计算机网络技术考试试题及答案(一)
- Review of Gullivers Travel
- 紧急意外事件应急预案、处理流程
- 鸿福煤矿“安康杯”竞赛工作总结
- 边坡脚手架专项方案(DOC)
- 国际金融试题
- 通风柜操作说明
- XXXXX有限责任公司廉洁风险防控工作总结报告