- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机算法基础-修改
算法就是一组有穷的规则,它规定了解决某一特定类型问题的一系列运算。
算法的五个重要特征:(1)确定性(2)能行性(3)输入(4)输出(5)有穷性
算法与计算过程的区别:凡是算法,都必须满足以上五条特性。只满足前四条特性的一组规则不能称为算法,只能叫做计算过程。
制定一个算法必经的阶段:设计、确认、分析、编码、检查、调试、计时
学习算法应该涉及的内容:(1)如何设计算法(2)如何表示算法(3)如何确认算法(4)如何分析算法(5)如何测试程序
时空分布图是用各种给定的数据执行调试认为是正确的程序,并测定为计算出结果所花去的时间和空间,以印证以前所作的分析是否正确和指出实现最优化的有效逻辑位置。
算法分析方式分类:事前分析和事后测试。事前分析求出该算法的一个时间限界函数(它是一些有关参数的函数)。事后测试收集此算法的执行时间和实际占用空间的统计资料。
4页?下标?上界:如果存在两个正常数c和n0,对于所有的n=n0,有 |f(n)|≤c|g(n)|则记作f(n)=O(g(n))
6页? 下标?下界:如果存在两个正常数c和n0,对于所有的nn0,有 |f(n)|≥c|g(n)| 则记作f(n)=Ω(g(n))
6页?下标?确界:如果存在正常数c1,c2和n0,对于所有的nn0,有c1|g(n)|≤|f(n)|≤c2|g(n)| 则记作f(n)= Θ(g(n))
计算时间的多项式时间算法关系:
数量级O(1)O(logn)O(n)O(nlogn)O(n2)O(n3)
?上标?5页 指数级O(2 n)O(n!) O(nn)
?6页常用整数求和公式
算法1:求n项的最大元素
procedure MAX(A,n,j)
//j,使A(j)是A(1:n)中的最大元素,n0//
xmax←A(1);j←1
for i←2 to n do
if A(i)xmax then xmax ←A(i);j ←i;endif
repeat
end MAX
假定A(1:n)是实数数组,这个过程的完整说明如下:
procedure MAX(A,n,j)
global real xmax;parameters integer j,n;real A(1:n)local integer i;
栈和队列是两种特殊的有序表。栈是所有的插入和删除都在栈顶的表的一端进行。而队列的所有插入只能在尾总的一端进行,所有的删除只能在前部的另一端进行。栈是一个后进先出LIFO表。队列的运算要求第一个插入队中的元素也第一个被移出,是一个先进先出FIFO表。
栈和队列表示方法:一种是用一个一维数组表示,另一种是使用链接表表示。
?下标? 树是一个或多个结点的有限集合,它使得:①有一个特别指定的称作根的结点;②剩下的结点被分成m≥0个不相交的集合T1,T1,m≥0个不相交树的集合。若去掉树的根,就得到一个森林。
层又叫级,设根是1级,若某结点在p级,则它的儿子在p+1级。一棵树中结点的最大级数定义为该树的高度或深度。
二元树是结点的有限集合,它或者为空,或者由一个根和两棵树(称之为左子树、右子树)的不相交的二元树所组成。
二元树特性:任何一个结点至多只能有两个儿子,即不存在度大于2的结点;另外,二元树的子树是有次序之分的,即分为左子树和右子树,而树的子树实际上无次序之分;再者,二元树允许有0个结点,而一棵树至少要有一个结点。
完全二元树:一棵有n个结点深度为k的二元树,当它的结点相当于深度为k的满二元树中编号为1到n的结点时,则称此二元树是完全的。
图G由称之为结点V和边E的两个集合所组成。
顺序表示使用n行和n列的方阵表,其中n是结点数,这个表称为邻接矩阵。
邻接链表表示是由n个表组成的,每个结点i有一个表,这个表由i所邻接的那些结点所组成。
eg1.3:斐波那契序列1,1,2,3,5,8,13,21,34,…的定义为F0=F1=1 Fi= Fi -1+F i -2 i1
算法1.7求斐波那契数
procedure F(n)
//返回第n个斐波那契数 //
inteqer n
if n≤1 then return(1)
else return(F(n-1)+F(n-2))
endif
end F
eg1.5:已知元素x,判断x是否在A(1:n)中。
算法1.9 在A(1:n)中检索x
procedure SEARCH(i)
//如果在A(1:n)中有一元素A(k)=x,则将其第一次出现的下标k返回,否则返回零//
global n,xn)
case
:in:return(0)
:A(i)=x:return(i)
:else:return(SEARCH(i+1))
end
您可能关注的文档
- 莲湖区枣园小学师德总结.doc
- 莱阳市级小课题和校级课题结题有关要求.doc
- 莲藕南斯拉夫雪莲藕种植技术山西荷园雪莲藕.doc
- 菜鸟必看,高手免进如何重装电脑系统.doc
- 菏泽市2011年中考物理试题.ppt
- 菱形挂篮设计方案计算书(老漳河特大桥主桥).doc
- 莱州全程营销报告0512.ppt
- 营业部客服周刊第8期.doc
- 菜贱伤农,爱心暖人.doc
- 营养复习题 1n.doc
- 数据仓库:Redshift:Redshift与BI工具集成.docx
- 数据仓库:Redshift:数据仓库原理与设计.docx
- 数据仓库:Snowflake:数据仓库成本控制与Snowflake定价策略.docx
- 大数据基础:大数据概述:大数据处理框架MapReduce.docx
- 实时计算:GoogleDataflow服务架构解析.docx
- 分布式存储系统:HDFS与MapReduce集成教程.docx
- 实时计算:Azure Stream Analytics:数据流窗口与聚合操作.docx
- 实时计算:Kafka Streams:Kafka Streams架构与原理.docx
- 实时计算:Kafka Streams:Kafka Streams连接器开发与使用.docx
- 数据仓库:BigQuery:BigQuery数据分区与索引优化.docx
文档评论(0)