算法设计与分析-算法的基本概念.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法设计与分析-算法的基本概念

算法设计与分析 课程介绍—几个例子 例1:百鸡问题:“鸡翁一,值钱五;鸡母一,值 钱三;鸡雏三,值钱一。百钱买百鸡,问鸡 翁、母、雏各几何?” 课程介绍—几个例子 例2:假设正整数n、s,sn。设计算法对任 一给定n位数,删除其中的s位后,使得剩 下的位组成的新数最小。 例:n=6 s=3 783259 --- 259 n=5 s=2 24351 --- 231 课程介绍—几个例子 例3:奥运会排球比赛: 预赛: A组:中国、古巴、日本、美国、波 兰、委内瑞拉、 B组:俄罗斯、塞尔维亚、巴西、意大 利、哈萨克斯坦、阿尔及利亚 1/4决赛、1/2决赛:古 vs 美、中 vs 巴 课程介绍—几个例子 例4:八后问题: 在8*8的棋盘上,每行放置 一个皇后,要求它们不能在同一列, 同一斜线上。 课程介绍—本课学习的算法 穷举法 — 百鸡问题 递归和分治 — 二分查找、快速排序 贪心法 — 最小生成树、最短距离 回溯 — 迷宫、八后问题 动态规划 第一章 算法的基本概念 程序 = 算法 + 数据结构 算法设计与分析是计算机科学与技术的一个 核心内容 1.1 引言 算法定义 定义1.1:算法是解某一特定问题的一组有 穷规则的集合。 算法特征 有限性、确定性、输入、输出、能行性 实用算法对有限性要求运行时间是可接受的。 1.1 引言 算法设计的例子—穷举法 穷举法:是从有限集合中,逐一列举集合 的所有元素,对每一个元素逐一判断和处 理,找出问题的解。 穷举法实例 例1.1 百鸡问题:“鸡翁一,值钱五;鸡母一, 值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡 翁、母、雏各几何?” 这里讨论更一般的n钱买n鸡问题. 穷举法实例—百鸡问题 解:设鸡翁、鸡母、鸡雏分别为a,b,c只。 ① 测试集合: 0≤a≤n 0≤b≤n 0≤c≤n 判断条件:a+b+c = n 5*a+3*b+c/3 = n 且 c%3 = 0 算法描述如下: 穷举法实例—百鸡问题 输入:n 输出:满足问题的解数目k,公鸡、母鸡、小鸡的 只数g[]、m[]、s[] void childen_question(int n, int k, int g[],int m[],int s[]); 穷举法实例—百鸡问题 ② 测试集合: 0≤a≤n/5 0≤b≤n/3 c = n-a-b 判断条件:5*a+3*b+c/3 = n 且 c%3 = 0 算法描述如下(算法1.2): 1.1 引言— 算法的复杂性分析 (1)如何设计算法; (2)如何评价算法的效率 时间复杂性:算法的执行时间 空间复杂性:算法所需的存储空间 算法设计目标:时间复杂性、空间复杂性低 1.2 算法的时间复杂性 算法的输入规模和运行时间的阶 算法的执行时间随问题规模的增大而增大,故 常用关于问题规模n的函数估算算法在大规模问题时的运行时间。 运行时间T(n)的估算 运行时间T(n)的估算 假设初等操作计算模型:所有操作数都具有相同的固定字长;所有操作的时间花费都是一个常数时间间隔。如算术运算;比较和逻辑运算;赋值运算等。 例1.3 估算算法1.1的运行时间T1(n)。 算法1.1的运行时间T(n)的估算 渐进时间复杂性T*(n) 渐进时间复杂性T*(n) 例1.4 :给出算法1.1的渐进时间复杂性T1*(n)。 解:T1*(n) = c1n3 c1=200 T1*(n)的阶

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档