计算机算法

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机算法
一、什么是算法?
百科名片
为解决一个问题而采取的方法和步骤, 就称为“算法”
例: 100
例: 求 n
n 1
方法1:1+2,+3,+4,一直加到100 加99次
方法2:100+(1+99)+(2+98)+…+(49 +51)+50 = 100 + 49×100 +50 加51次
算法的多样性原因
3、算法解决问Leabharlann Baidu的类型
计算机科学领域的问题大致可分为以下三种类型:
一、判定性问题:这类问题给出的是与否的判别。 例如连通性问题,回路问题,查找与排序问题,字 符匹配问题等。
二、最优化问题:这类问题是在所有可能的解中求 出最优解。例如求函数的极值,最短路径问题,最 小生成数问题等。
三、函数计算问题:这类问题是在一定约束条件下 求数值解,例如方程求根,矩阵运算,函数求值等。
4、一些重要的算法:
A*搜寻算法 Beam Search 二分取中查找算法 Branch and bound
数据压缩 Diffie–Hellman密钥协商 Dijkstra’s 算法 动态规划
欧几里得算法 最大期望(EM)算法 快速傅里叶变 换(FFT)
哈希函数 堆排序 归并排序 RANSAC 算法 RSA加 密演算法
为了有效地进行解题,不仅需要保证算法 正确,还要考虑算法的质量,选择合适的算 法。人们都希望方法简单,运算步骤少,以 更高效地完成计算,达到预期目的。
二、算法在计算机科学中的应用
1、计算机算法的引入
算法(Algorithm)理论处于计算机科学的 核心地位。想要使用计算机解决问题,就 要设计该问题的算法,要给出解决该问题 所需的一系列解题步骤。
这就引出来一个很重要的公式:
著名计算机科学家沃思提出一个公式: 数据结构 + 算法 = 程序
一个程序应包括两个方面的内容: • 对数据的描述:数据结构(data structure) • 对操作的描述:算法(algorithm)
以上的公式表明:
1、算法与数据结构是密切相关的,算法 的设计要与数据结构相适应。
并查集Union-find Viterbi algorithm
的基本操作。例如在算法中不能出现零做除数、在实数范围内 对一个负数求平方根等情况。 四、输入(input)
算法允许有零个或多个输入量。 五、输出(output)
算法必须有一个或多个输出。
根据以上讨论,我们对算法有了进一步的认识:算法是精确 定义的一系列规则,这些规则指定了一系列的操作,经过有限 步骤产生所求问题的解。
二、确定性(definiteness)
算法中的每一个步骤都必须有明确的定义,不允许存在多义 性和摸棱两可的解释。如“将X,Y两个数进行加减运算”,是 做加法运算还是做减法运算,没有说清;再如“给变量X增加一 个值”,增加一个值,具体是多少,没有说清。在算法中,这 样含糊不清的步骤不允许出现。
三、能行性(effectiveness) 算法中的每一个步骤都是可以实现的,或可以分解为可执行
计算机软件的重要内容之一是程序,程序是计算机指
令的序列,计算机一步一步地执行这个指令序列,就完 成了希望它所做的事情。程序设计就是按照一定的要求 编排一个合理的指令序列。程序设计主要包含两个方面, 行为特性设计和结构特性设计。结构特性设计是指确定 合适的数据结构,将程序处理的数据在计算机内部表示 和存放。行为特性设计是确定要解决的实际问题的具体 步骤,把全部解题过程完整地描述出来,这一过程就是 算法设计。
2、算法不等于程序,它不需考虑具体的 机器,算法也不等于计算方法,它比计 算方法更具体。
2、算法的特征:
著名计算机科学家Knuth把算法的特征归纳以下5点:
一、有穷性(finiteness)
一个算法必须在有限个步骤之后结束。换句话说,一个算法 必须在有限时间内完成,否则,该算法就失去了实际价值。因 此,在算法中不能出现无限循环。数学中的无穷级数在计算时 只能取有限项。
相关文档
最新文档