- 2
- 0
- 约6.61千字
- 约 59页
- 2018-03-28 发布于浙江
- 举报
[工学]2-算法与数据结构
计算机算法与数据结构
郭东伟
总目录
by skywind
程序设计与计算机科学
计算机科学的根本问题是能行性问题
程序设计是操纵计算机的根本方法
程序设计融入到计算机科学的各个领域
成为一个合格的计算机人才,必须熟练掌握程序设计技术
by skywind
程序设计艺术
作为艺术的程序设计
程序设计艺术与软件工程
编程语言与编程工具
Programming=Algorithm+Data Structures
by skywind
算法+数据结构=程序
算法:
程序灵动的源泉
程序设计过程中的 工艺
数据
程序处理的对象
数据结构
存放数据的容器
提供数据封装和数据抽象
by skywind
算法概述
算法的特性与复杂度
算法的设计思想
直接法
贪心法
分治与递归
动态规划
搜索与穷举
by skywind
算法Algorithm
算法(Algorithm)是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。
算法可以理解为有基本运算及规定的运算顺序所构成的完整的解题步骤。或者看成按照要求设计好的有限的确切的计算序列,并且这样的步骤和序列可以解决一类问题。
by skywind
算法的特性
1、有穷性:
一个算法必须保证执行有限步之后结束;
2、确切性:
算法的每一步骤必须有确切的定义;
3、输入:
一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定除了初始条件;
4、输出:
一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;
5、可行性:
算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。
by skywind
衡量算法的指标
时间复杂度
执行算法所耗费的时间
这个时间是问题输入x的函数f(x)
一般情况下只和x的规模n有关,记做f(n)。
当不考虑其中一些细节时,记做T(n)=O(f(n))
当问题的规模n足够大是,算法执行时间的增长取决于f(n) 的主要部分,称作渐进时间复杂度(Asymptotic Time Complexity)。
by skywind
算法复杂度
空间复杂度
执行算法所耗费的存储空间
最好、最坏、平均复杂度(不同概率意义上)
多项式时间与指数时间
by skywind
复杂度的增长
by skywind
不同计算模型复杂度的关系
CPU速度的增长和存储容量的增长
并行计算
不同计算模型
如不同语言的转换、翻译
NP问题简介
by skywind
程序优化
体系结构的优化更加重要
要优化关键代码(80-20原则)
优化算法复杂度的阶,而不是系数
使用公认的,成熟的技术
避免过度优化
保证优化不影响可读性
by skywind
算法设计1-直接法
递推法
利用问题本身所具有的一种递推关系求问题解的一种方法。它把问题分成若干步,找出相邻几步的关系,从而达到目的,此方法称为递推法。
迭代法
通过从一个初始估计出发寻找一系列近似解来解决问题(一般是解方程或者方程组)的过程。
by skywind
算法设计2-贪心
以当前情况为基础作最优选择,而不考虑各种可能的整体情况。如要获得全局最优解时,需要进行证明
每次都选取最好的解元素加入解中
一般来说是一种快速、直接的方法
不保证得到正确解或最优解
算法的正确性需要数学的保证
by skywind
贪心法应用:选择排序
每次选取剩余元素中的最小元素
简单选择排序:
简单地从剩余元素中选择最小的元素
堆排序:
将所有元素构造成一个min堆
每次从堆中取出堆的头元素,加入到排序后的数组中
调整堆,保持堆的结构
by skywind
算法设计3-分治法
把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。
by skywind
分治的过程
将问题划分为一个或若干个子问题
一般结构:
如果问题规模较小,直接解决
否则,将问题进行划分
递归解决划分后的子问题
将子问题的答案进行合并,得到原问题答案
by skywind
分治法与递归
问题分解是人类思考的一种基本方式
分治法是这种思考方法的抽象
递归是支持这种方法的程序设计技术
递归技术的设计思路
坚持问题分解的思考模式
抽象、忽略细节问题
不机械地将递归转化为迭代方法
对于不合适的问题重新考虑其他方法
by skywind
简单分治法应用
二叉搜索问题
查找X在有序数组A[n]中的出现
若X==A[n/2],找到
若XA[n/2]则只需要查找前半部分
若XA[n/2]则只需要查找后半部分
by skywind
分治法应用-I:合并排序
问题:将A[n]的数据进行排序
解答:
若n==1,返回
将
您可能关注的文档
- [工学]1环境生物技术概论.ppt
- [工学]1机械原理习题集及答案.pdf
- [工学]1电气系毕业设计要求20100116.doc
- [工学]1电路模型变量功率电阻元件.ppt
- [工学]1章热力学基本定律与函数4_5.ppt
- [工学]1水力发电与水轮机2011.ppt
- [工学]1章绪论11228.ppt
- [工学]1第2章.ppt
- [工学]1地球概述.ppt
- [工学]1第一章绪论ding.ppt
- 乐山市公安局2025年第四批次警务辅助人员招聘(40人)参考题库附答案.docx
- 初中英语人教版七年级下册Unit 5 Section A 2a-2d.pdf
- 手袋厂电子厂部门区域名称标示.pdf
- 探秘生物分子马达驱动蛋白:结构、机制与功能的深度剖析.docx
- 铝合金搅拌摩擦焊工艺优化及在城轨车辆车体制造中的创新应用.docx
- 三焦点牵张成骨在下颌骨缺损修复中的实验与机制探究.docx
- 透视中国当前行政乱作为:表现、根源与治理路径.docx
- 探寻立宪主义根基:多维视角下的深度剖析.docx
- 乌海市幼儿教育:现状剖析、问题洞察与对策探寻.docx
- 我国反垄断执法机构设置:现状、问题与优化路径探析.docx
最近下载
- 光伏电子产品的设计与制作-电子课件项目3-光伏草坪灯控制电路的设计与制作.pptx VIP
- 2024-2025学年江苏信息职业技术学院单招《数学》试卷含答案详解【考试直接用】.docx VIP
- 党员个人自评总结3篇-党员个人自评 党员个人自评小结 党员个人自评总结3篇.doc VIP
- 人教版英语新目标八年级下册第二单元教材词汇及重点搭配讲解.docx VIP
- 2026年演出经纪人《思想政治与法律基础》真题库及参考答案一套.docx VIP
- 索拉非尼治疗肝癌.pptx VIP
- 【高清可复制】HGT21629-2021 管架标准图_251-300.pdf VIP
- 新版人教版七年级下册地理全册教案(完整版)教学设计.docx
- 2025年北京事业单位真题.docx VIP
- 临时用地表(可编辑).pdf VIP
原创力文档

文档评论(0)