第六讲 算法设计 - 北大计算机研究所.pptVIP

第六讲 算法设计 - 北大计算机研究所.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 北京大学 * 4.2 选择排序——示例 * 北京大学 * 4.2 选择排序——算法、程序 初始化:wall=0 开始 找到未排序列表 中的最小元素 与未排序列表中 第一个元素交换 是否还有 未排序元素? N 结束 Y wall = wall+1 * 北京大学 * 4.2 排序——冒泡排序 冒泡排序,Bubble sort 数据列表被分为两个子列表:已排序和未排序。未排序列表中最小(或最大)的元素通过冒泡的形式(从后往前冒泡)从未排序列表中交换到已排序列表中。 * 北京大学 * 4.2 冒泡排序——示例 比较 比较并交换 冒泡的过程 * 北京大学 * 4.2 冒泡排序——示例(续) * 北京大学 * 4.2 冒泡排序——示例(续) * 北京大学 * 4.2 冒泡排序——算法、程序 初始化:wall=0 开始 还有未排序的数? N 结束 Y 交换相邻数 还有未冒泡的数? 比较相邻数 Y N * 北京大学 * 4.2基本算法 – 排序 各种排序方法简介:就地排序算法(不增加新的存储空间) 1、插入排序法(Insert Sort) 将一个数插入到序列中的合适位置。 2、选择排序法(Selection Sort) 每次把最小(大)的元素交换到最前面。 3、冒泡排序法(Bubble Sort 比较并交换相邻的元素,直到所有元素都被放到合适的位置。 4、堆排序(Heap Sort) 一种效率非常高,但原理较复杂的排序方法。 5、快速排序算法(Quick Sort) 一种通常情况下效率非常高,但原理较复杂的排序 * 北京大学 * 4.2基本算法 – 搜索 搜索(Search)是利用给出的关键值,在一个数据集合或数据序列中找出与关键值匹配的一个或一组数据的过程。 顺序查找:最简单的查找算法。 从数据序列的第一个数据开始,逐个与关键值比较,直到找到一个或所有的匹配数据为止(也可能找不到)。顺序查找不要求待查找的数据序列已经排好序。但当待查找数据序列中数据比较多时,顺序查找的效率将十分低。 二分查找:二分查找可以提高查找效率,但要求待查找的数据序列已经排好序。 以序列中间数据为界将待查找的数据序列分成两个子序列,比较匹配关键值与中间数据的大小,再确定去哪个子序列中继续查找。这样逐步缩小范围,直到找到所需数据。 * 北京大学 * 4.2基本算法 – 二分法搜索 二分法搜索,Binary search 找一个数在给定已排序列表中的位置。例如在A中查找45的位置。 (0+15)/2 4541 4553 45=45 * 北京大学 * 4.3 二分法搜索——算法、程序 开始 返回-1 子序列为空? low=0, high=n-1 mid=(low+high)/2 返回mid x ==A[mid]? xA[mid]? high=mid-1 low=mid+1 Y Y Y N N N * 北京大学 * 4.4 基本算法 – 迭代与递归 迭代(iterative)与递归(recursive) * 北京大学 * 1974年图灵奖获得者美国科学家唐纳德·克努特(Donad E.Knuth,排版软件的先驱(TEX) )经典巨著《计算机程序设计的艺术》(The Art of Computer Programming) The Art of Computer Programming 卷1为基础运算法则,该书以基本的编程概念和技术为开始,然后讲述信息结构——计算机内信息的表示法,数据元素间的结构关系以及处理它们的有效方法。主要应用于模拟、数字方法、符号计算、软件和系统设计。 卷2对半数值算法领域做了全面介绍,分随机数和算术两章。本卷总结了主要算法范例及这些算法的基本理论,广泛剖析了计算机程序设计与数值分析间的相互联系。 卷3为分拣和搜索,它对计算机分拣和搜索的一流技术的最全面的研究,它扩展了卷1中数据结构的处理方法,将数据库以及内存和外部存储都包含在内。 * 北京大学 * 小结 算法的概念 描述算法的三种基本结构 顺序结构、分支结构、循环结构 算法的流程图表示与算法的程序实现 闰年判断 基本算法介绍 迭代计算:求平方根 排序:选择排序、冒泡排序 二分查找 迭代与递归 * 北京大学 * 编程网格。 算法设计练习—输入算法。 上机练习(第2次上机) 计算概论 * 北京大学 北京大学 * 北京大学 * 上堂课的主要内容 程序设计语言(也被称为“编程语言”,Programming Language)是人们描述(编制)程序所使用的规范和方法(语言)。 机器语言 汇编语言 高级语言 第六讲 算法设计 北京大学 信息科学技术学院 * * 北京大学 * 主要内容 了解算法的基本概念 掌握描述算法的三种基本结构 学会算法的流程图描述 介绍几种基本算法 * 北京大学 *

文档评论(0)

jingpinwedang + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档