大学计算机基础全套教程.ppt

想预览更多内容,点击预览全文

申明敬告:

本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己完全接受本站规则且自行承担所有风险,本站不退款、不进行额外附加服务;如果您已付费下载过本站文档,您可以点击这里二次下载

文档介绍

* 1.简单插入排序法 简单插入排序示意图 * 2.希尔排序 基本思想 先将整个待排元素序列分割成若干个子序列(由相隔某个增量h的元素组成的)分别进行直接插入排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下(接近最好情况),效率是很高的。 增量序列一般取 ,其中n为待排序序列的长度 在最坏情况下,希尔排序的时间复杂度为 * 2.希尔排序 * 8.2.8 查找与排序(续)- 选择类排序法 基本思想: 每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子序列的最后,直到全部记录排序完毕。 方法: 简单选择排序 堆排序 * 1.简单选择排序法 基本思想: 扫描整个线性表,从中选出最小的元素,将它交换到表的最前面;然后对剩下的子表采用同样的方法,直到子表空为止。 最坏情况下,需要比较n(n-1)/2次。 * 1.简单选择排序法 简单选择排序示意图 * 2.堆排序法 堆的定义 具有n个元素的序列,当且仅当满足 ① 或 ② 时称之为堆。①称为大根堆;②称为小根堆 。 * 2.堆排序法 建堆 在建堆的过程中,总是将根结点值与左、右子树的根结点值进行比较,若不满足堆的条件,则将左、右子树根结点值中的大者与根结点值进行交换。这个调整过程一直做到所有子树均为堆为止。 堆排序 (1)首先将一个无序序列建成堆。 (2)然后将堆顶元素(序列中的最大项)与堆中最后一个元素交换(最大项应该在序列的最后)。不考虑已经换到最后的那个元素,只考虑前n-1个元素构成的子序列,将该子序列调整为堆。 反复做步骤(2),直到剩下的子序列空为止。 在最坏情况下,堆排序法需要比较的次数为O(nlog2n)。 * 8.2.8 查找与排序(续)- 各种排序法比较 * * 内容提要 软件与软件危机 软件工程的基本概念 可行性研究 需求分析 概

最近下载