2014华南理工大学广州学院,算法设计与分析期末考试复习.pptxVIP

  • 3
  • 0
  • 约2.01千字
  • 约 68页
  • 2017-06-08 发布于重庆
  • 举报

2014华南理工大学广州学院,算法设计与分析期末考试复习.pptx

2014华南理工大学广州学院,算法设计与分析期末考试复习

复习;考试题型: 选择题(算法类型、时间复杂度,共15题,30分) 简答题(设计思想,共2题,12分) 应用题(解题步骤、搜索空间树等,共4题,48分) 编程题(上机实验题,作业题等,共1题,10分);2017/6/7;⑴自然语言 优点:容易理解 缺点:冗长、二义性 使用方法:粗线条描述算法思想 注意事项:避免写成自然段;⑵ 流程图 优点:流程直观 缺点:缺少严密性、灵活性 使用方法:描述简单算法 注意事项:注意抽象层次 ;⑶程序设计语言 优点:能由计算机执行 缺点:抽象性差,对语言要求高 使用方法:算法需要验证 注意事项:尽量将算法写成子函数 ;⑷ 伪代码——算法语言 伪代码(Pseudocode):介于自然语言和程序设计语言之间的方法,它采用某一程序设计语言的基本语法,操作指令可以结合自然语言来设计。 优点:表达能力强,抽象性强,容易理解;理解大O符号的含义;时间复杂度;算法的五大特性:;2017/6/7;2017/6/7;2017/6/7;2017/6/7;2017/6/7;冒泡排序;选择排序;TSP问题;8;一个简单的例子——百元买百鸡问题 已知公鸡5元一只,母鸡3元一只,小鸡1元三只,用100元钱买100只鸡,问公鸡、母鸡、小鸡各多少只?;7-11问题(编程,代码要记牢);设计蛮力算法找出四件物品的价格各是什么? #includeiostream.h void main() { int a,b,c,d; for(a=1;a=711;a++){ for(b=1;b=711;b++){ for(c=1;c=711;c++){ d=711-a-b-c; if(a*b*c*d==711){ couta/100.0\tb/100.0\tc/100.0\td/100.0endl; return; } } } };2017/6/7;2017/6/7;2017/6/7;2017/6/7;2017/6/7;归并排序; r1 … … rn/2 rn/2+1 … … rn 划分 r‘1… …r’n/2 r’n/2+1… …r’n 递归处理 r1……rn/2rn/2+1 ……r n 合并解 ;快速排序;最大子段和问题;复习;2017/6/7;2017/6/7;2017/6/7;2017/6/7;折半查找问题;2017/6/7;选择下列数字序列中的第3小的元素 12, 5, 8, 44, 23, 7, 9, 2;2017/6/7;2017/6/7;2017/6/7;2017/6/7;2017/6/7;2017/6/7;2017/6/7;2017/6/7;2017/6/7;背包问题(可能出简答题);2017/6/7;2017/6/7;2017/6/7;3.用回溯法解决m颜色图着色问题,画出搜索空间图; (可能出应用题) 图的m着色问题描述为:给定无向连通图G=(V, E)和正整数m,判断能否用m种颜色对G中的顶点着色,使得任意两个相邻顶点着色不同。 ;4.画出用回溯法求解8皇后或4皇后问题的搜索过程(课本P161) (可能出应用题);2017/6/7;2017/6/7;2017/6/7;2017/6/7;2017/6/7;2017/6/7;分支限界法求解0/1背包问题(可能出应用题) ;2017/6/7;2017/6/7;1、掌握随机数生成算法的原理 2、理解几大概率算法的思想; 目前,在计算机上产生随机数还是一个难题,因为在原理上,这个问题只能近似解决。 计算机中产生随机数的方法通常采用线性同余法,产生的随机数序列为a0, a1, …, an,满足: (式10.1) 其中,b≥0,c≥0,m>0,d≤m。d称为随机数发生器的随机种子(Random Seed),当b、c和m的值确定后,给定一个随机种子,由式10.1产生的随机数序列也就确定了。; 计算机语言提供的随机数发生器,一般会需要一个随机种子,???个随机种子可以是系统当前的日期或时间。下面给出利用C++语言中的随机函数rand产生的分布在任意区间[a, b)上的随机数算法。

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档