- 5
- 0
- 约8.61千字
- 约 38页
- 2017-08-22 发布于江苏
- 举报
绪论()
计算机软件技术 第一部分 数据结构(重点) 第1章 绪论 第2章 线性表 第3章 栈和队列 第4章 字符串(自学) 第5章 数组和广义表 第6章 树和二叉树 第7章 图 第8章 查找 第9章 排序 第二部分 数据库系统概论 教材:夏克俭,王成耀,李恪.计算机应用基础.国防工业出版社,2002 第1章 绪论 1.1 软件开发技术概述 3 软件/程序的设计方法 4 软件开发的几个重要思想 4 软件开发的几个重要思想(续) 4 软件开发的几个重要思想(续) 4 软件开发的几个重要思想(续) 1.2 认识数据结构与算法 1. 什么是数据结构? (1)逻辑结构(Logical Structure) 线性结构例:图书数据 层次结构例:大学系级行政机构 (2)物理结构(存储结构)(Physical Structure) (2)物理结构 (2)物理结构 例 电话号码的存储与查询 (2)物理结构 (2)物理结构 说明: 2 什么是算法? (2)算法的特性 (3)算法与程序的联系与区别 1.3 算法分析 2 时间复杂度的估算 例 求两个n 阶方阵乘积 求两个n 阶方阵乘积的算法 例 在数组中查找 时间复杂度 T(n)常见的量级 算法分析 1.4 选择数据结构与算法时的若干考虑 数据存储在内存/磁盘要有不同的考虑 2 选择算法时的考虑 2 选择算法时的考虑 学习数据结构与算法有何用? 分析时间复杂度时可能要考虑的几种情况: 1)平均情况 一般作为考虑的重点。当然要看输入数据的分布概率。 2)最差情况 有时会关注。例如,实时系统。 3)最佳情况 一般不关注。只有发生概率较大时才考虑。 O(c) ——常数级,与问题规模无关,是最理想的量级。有时记作O(1)。 O(log2n) —— 对数级; O(n) —— 线性级; O(n*log2n) —— 线性对数级; O(n2),O(n3) —— 平方、立方级; O(2n) —— 指数级,时间复杂度最差。 O(n3) 以上几种常见的T(n)随n变化 T(n) O(2n) 的增长率如右图所示。 O(n2) O(n) O(n*log2n) O(log2n) O(c) n 对较为复杂的算法,可分段分析其时间复杂度。如某算法可分为两部分,其时间复杂度分别为: T1(n)=O(f(n)) , T2(n)=O(g(n)) 此时两部分问题的规模一致,则总的T(n)=T1(n)+T2(n)=O(max(f(n),g(n)) O(max(f(n),g(n)) 表示取f(n)、g(n)中最大者。 但若T1(m)=O(f(m)), T2(n)=O(g(n)),两部分的规模不一致,则: T(m,n)= T1(m)+ T2(n)=O(f(m)+g(n))。 另外,算法空间复杂度的定义: 设算法对应问题的规模为n,执行算法所占存储空间的量级为D(n),则D(n)为算法的空间复杂度(Space Complexity)。 1. 选择数据结构时的考虑 (1)与处理方式密切相关。 例如,设有一组数据,选择顺序结构还是链式结构好? 若建立1次,频繁查找、修改,很少增加/删除: 若经常要增加/删除: (2)
您可能关注的文档
最近下载
- 2025年山东药品食品职业学院高职单招综合素质考试参考题库及答案解析.docx VIP
- (高清版)DB4409∕T 24-2021 《奇楠沉香扦插技术规程》.docx VIP
- 2026年广东中考生物命题趋势预测试卷(附答案解析).docx VIP
- 北京市2025年高考:《英语》考试真题(含答案).pdf VIP
- 世界金融史:泡沫、战争与股票市场([日]板谷敏彦 著).pdf VIP
- 2025年北京央教湘岳假期寒假作业七年级英语人教版答案.pdf VIP
- 明月海藻实习素材.doc VIP
- 死因监测工作例会的制度.doc VIP
- 《墙面石材干挂(背栓式)施工工艺》.docx VIP
- 老年人营养不良的评估(老年人能力评估课件).ppt
原创力文档

文档评论(0)