- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
j计算机算法算法概述
Ω的定义:如果存在正的常数C和自然数N0,使得当N≥N0时有f(N)≥Cg(N),则称函数f(N)当N充分大时有下界,且g(N)是它的一个下界,记为f(N)=Ω(g(N))。即f(N)的阶不低于g(N)的阶。 no 0 n c*g(n) f(n) θ的定义:定义f(N)=θ(g(N))当且仅当f(N)=O(g(N))且f(N)=Ω(g(N))。此时称f(N)与g(N)同阶。 o的定义:对于任意给定的ε>0,都存在正整数N0,使得当N≥N0时有f(N)/Cg(N)<ε,则称函数f(N)当N充分大时的阶比g(N)低,记为f(N)=o(g(N))。 常见的多项式阶有: O(1) O(logn) O(n) O(nlogn) O(n2) O(n3) O(2n) O(n!) O(nn) 常见的指数阶有: 查资料或借阅C相关书籍 复习“数据结构” 熟悉编译环境:Microsoft vc++6.0 算法设计与分析 算法分析与设计 算法分析与设计 算法分析与设计 算法分析与设计 算法分析与设计 算法分析与设计 算法分析与设计 算法分析与设计 算法分析与设计 算法分析与设计 算法分析与设计 算法分析与设计 算法分析与设计 课程目的:计算机算法设计与分析 介绍算法设计的主要方法和基本思想;并简要介绍算法分析概念 不是程序设计课,也不是数学课 关于这门课 1.为什么学? 2. 学什么? 3.怎么学? 活动安排问题 活动 1 2 3 4 5 6 7 8 9 10 11 开始时间 1 3 0 5 3 5 6 8 8 2 12 结束时间 4 5 6 7 8 9 10 11 12 13 14 最多可以安排几个活动? 背包问题 有一个背包,最多允许放50kg重量的物 品,现有3个物品,重量分别是:10kg、20kg、 30kg,价值为:60、100、120,如果允许放 入部分商品,则背包可以获得的最大价值为 多少? 0-1背包问题 有一个背包,最多允许放50kg重量的物 品,现有3个物品,重量分别是:10kg、20kg、 30kg,价值为:60、100、120,每种物品要么全放要么不放,则背包可以获得的最大 价值为多少? 学习要点: (1)理解算法的概念 (2)了解什么是程序,程序与算法的关系 (3)掌握算法的复杂度分析 (4)掌握算法复杂性的渐近性态及Ο、Ω、θ、ο (5)了解算法描述语言C或C++语言编程工具 算法解决问题的一种方法或过程, 由若干条指令组成的有穷序列 数据结构+算法=程序设计 输入、输出、确定性、有限性(有穷性) 算法的性质 程序:算法是用某种程序设计语言的具体实现 输入、输出、确定性 算法的每一个步骤都必须没有歧义,不能有半点含糊。 必须认真确定算法所处理的输入的值域。 同一算法可以用几种不同的形式来描述。 同一问题,可能存在几种不同的算法。 针对同一问题的算法可能会基于完全不同的解题思路,而且解题速度也会有显著不同 证明正确性 分析算法 设计程序 理解问题 精确解或近似解 选择数据结构 算法设计策略 设计算法 算法是问题的程序化解决方案 算法设计与分析的步骤 人类基因项目:找出人类DNA中的所有100 000种基因,确定构成人类DNA的30亿种化学基对的各种序列,将这些信息存储在数据库中,并开发出用于进行这方面数据分析的工具。 因特网:好的传输路径、搜索引擎 电子商务 制造业和其他商业应用:最大化预期效益 算法复杂性的高低体现在运行该算法所需要的计算机资源的多少上,所需资源越多,该算法的复杂性越高;反之,复杂性越低。 计算机资源比较重要的是时间和空间 算法的复杂性:算法运行所需要的计算机资源的量,需要时间资源的量称为时间复杂性,需要空间资源的量称为空间复杂性 算法复杂性从实际计算机中抽取出来,只依赖于要解问题的规模、算法的输入和算法本身。 形式化表示: C=F(N,I,A) 其中,C表示复杂性,N表示问题规模,I表示算法的输入,A表示算法本身,F是由N,I,A确定的三元函数。 函数的渐进性态与渐进表达式:一般来说,当N单调增加且趋于∞时,T(N)也将单调增加趋于∞。 对于T(N),如果存在函数T(N),使得当N→∞使有(T(N)-T(N))/T(N) →0,那么我们就说T(N)是T(N)当N→∞时的渐进性态。 T(N)是T(N)中略去低阶项留下的主项,不考虑常数因子 例:3N2+4NlogN+7 3N2 算法复杂性在渐近意义下的阶: 渐近意义下的记号:O、Ω、θ、o 设f(N)和g(N)是定义在正数集上的正函数。 O的定义:如果存在正的常数C和自然数N0,使得当N≥N0时有f(N)≤Cg(N),则称函数f(N)当N
文档评论(0)