




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 4 1 6算法和复杂度 算法和复杂度 2 22 算法 是对特定问题求解步骤的一种描述 它是指令的有限序列 其中每一条指令表示一个或多个操作 一个算法通常具有五个重要特性 有穷性有穷步结束 确定性唯一执行路径 可行性可以通过基本运算实现 输入零个或多个输入 输出一个或多个输出 非数学有穷性 算法和算法复杂度 算法和复杂度 3 22 算法和数据结构是两个不可分割的统一体 程序 数据结构 算法 数据结构通过算法实现操作 算法根据数据结构设计程序 算法和复杂度 4 22 算法设计的要求 正确性正确反映需求 通过测试 可读性有助于理解 调试和维护 健壮性完备的异常和出错处理 高效率与低存储的需求时间 空间的要求 算法和复杂度 5 22 算法效率的衡量方法1 事后统计利用计算机内记时功能 缺点 必须先运行依据算法编制的程序 所得时间统计量依赖于硬件 软件等环境因素 掩盖算法本身的优劣 算法和复杂度 6 22 算法效率的衡量方法2 事前分析估计一个高级语言程序在计算机上运行所消耗的时间取决于 依据的算法选用何种策略 问题的规模 程序语言 编译程序产生机器代码质量 机器执行指令速度时间复杂度和空间复杂度 算法和复杂度 7 22 算法的时间度量 从算法中选取一种对于研究的问题来说是基本操作的原操作 以该基本操作重复执行的次数作为算法执行的时间度量 基本操作重复执行的次数分别为1 n n2 算法和复杂度 8 22 算法复杂度 问题的规模 n 或大小 如 矩阵的阶数 图的结点个数 被分类序列的正整数个数 时间复杂度 算法的所需的时间和问题规模的函数 记为T n 当n 时的时间复杂性 被称之为渐进时间复杂度 空间复杂度 算法的所需的空间和问题规模的函数 记为S n 当n 时的时间复杂性 被称之为渐进空间复杂度 算法和复杂度 9 22 给定两个正值函数f和g 考虑以下定义 定义1 如果存在正数c和N 对于所有的n N 有f n cg n 则f n O g n 上述定义表明 如果对于足够大的n 或大于某自然数N的n 存在正数c 使f不大于cg 则f是g的大O符号 大O符号 算法和复杂度 10 22 例如 f n 2n2 3n 1 O n2 在这里 g n n2 c和N的可选值如表所示 表对于函数f n 2n2 3n 1 O n2 根据大O定义计算得到的c和N的不同值 大O符号 算法和复杂度 11 22 算法分析中常见的复杂度O 1 O lgn O n O nlgn O n2 O n3 O 2n O n O nn 常数对数多项式指数 复杂度举例 算法和复杂度 12 22 复杂度举例 算法的重要性 计算机不是万能的 并非所有的算法 计算机都能够计算出有用的结果 差的算法不一定有实际意义 举一个例子加以说明 假定时间复杂性函数的时间单位为us 函数n 20n 50n 100n 5001000n 02s 05s 15s 5s1000nlogn 09s 3s 6s4 5s100n2 04s 25s1s25s10n3 02s1s10s21分nlogn 4s1 1小时220天5 108世纪2n 3 0001s0 1s2 7小时5 108世纪2n1s35年3 104世纪3n58分2 109世纪 易性算法 顽性算法 算法和复杂度 14 22 在大多数的情况下 我们只对时间复杂度感兴趣 它通常计算程序执行过程中赋值和比较操作的次数 例1 for i sum 0 i n i Sum a i 赋值2 2n次 渐近复杂度O n 确定渐近复杂度 算法和复杂度 15 22 确定渐近复杂度 例2 for i 0 i n i for j 1 sum a 0 j i j sum a j cout sumforsubarray0through i is sum endl 算法和复杂度 16 22 符号 符号如果存在正数c1 c2及N 对于所有的n N 有c1g n f n c2g n 则f n g n 算法和复杂度 17 22 最好 平均和最坏情况 有时 算法中基本操作重复执行的次数随问题的输入不同而不同 例 顺序查找算法 比较次数的复杂度是多少 returnFALSE 算法和复杂度 18 22 最好 平均和最坏情况 最好情况 算法需要的最少步骤最坏情况 算法需要的最多步骤平均复杂度 将处理每个输入所执行的步骤数与该输入出现的概率相乘 然后将所有相乘的结果相加 算法和复杂度 19 22 最好 平均和最坏情况 有时 算法中基本操作重复执行的次数随问题的输入不同而不同 例 顺序查找算法 最好1次比较 最坏n次比较 平均 n 1 2次比较 returnFALSE 算法和复杂度 20 22 数据结构的选择 分析问题在算法设计之前初步设计数据结构注意可扩展性比较时空开销的优劣 算法和复杂度 21 22 小结和后续内容 算法特性算法复杂度分析渐进复杂度最好 最坏 平均时间复杂度后续内容
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 甘肃摄影基础知识培训课件
- 农村居民宅基地住房拆迁补偿协议9篇
- 挖掘机施工协议书5篇
- 安全施工培训教学课件
- 福建私人水族工程方案(3篇)
- 东风工程实施方案(3篇)
- 电信工程预算方案(3篇)
- 贵港港平南港区河山作业区华伟码头提档升级工程环评报告
- 防洪治理工程方案(3篇)
- 地灾工程治理方案(3篇)
- 苏教版科学五年级上册全册教案(含反思)
- 餐饮服务与数字化运营 习题及答案 项目六
- 天津地铁设备管理制度范文
- 跨学科整合的小学数学教学设计
- 人教版(2024)七年级下册英语期末复习:完形填空 专题练习题(含答案)
- 《电池管理系统BMS》课件
- DB33 1121-2016 民用建筑电动汽车充电设施配置与设计规范
- DB35∕T 88-2022 伐区调查设计技术规程
- 购物中心楼层调整规划
- 化学前沿研究动态(课件)
- 人教版八年级语文上册《新闻写作》示范公开教学课件
评论
0/150
提交评论