排序.

Slides:



Advertisements
Similar presentations
财务分析工具.  财务分析的目的 财务管理目标  其他利益相关者利益会与公司价值最大化、 股东利益最大化相抵触  公司息税前利润( EBIT )最大化与股东价 值最大化不是一致的。(分析)  现金流与企业价值的关系: ( 未来的尽早达 到的风险小的现金流 )  以每股收益最大化作为财务管理目标的优.
Advertisements

授課教師: 第 7 章 消費者態度. 2/38 大綱 前言: 態度的意義與特性 態度的功能 態度的 ABC 要素與效果層級 態度形成:多屬性態度模式 態度變遷的相關理論.
1 武汉大学国际软件学院 数据结构讲稿 薛超英 薛超英
倫理個案五 — 房屋仲介的良知 隊名: Oh My God 隊 隊員:董怡君 吳佩玲 孫慧婷 吳品儀.
2013年中華保全協會 大陸參訪手冊 中華保全協會 製作.
第二十二章 生物技术药物制剂.
化学原料药的管理与技术评价要求 霍秀敏 国家食品药品监督管理局 药品审评中心 2010年3月.
第二章 曲柄连杆机构 机体组 活塞连杆组 曲轴飞轮组.
林曉瑛.
第十二章 处方调剂与药学服务.
植科院57期党校党课讨论安排 植科院学生党建工作办公室.
職務法庭與 法官退場機制 行政訴訟及懲戒廳報告
第十章 油墨转移中的现象与温湿度 内容提要 在印刷过程中,由于承印材料,油墨、机器等原因,会产生墨雾、“晶化”、剥纸等现象。
第四章 企业筹资方式 (一)掌握筹资的分类和筹资渠道;掌握企业资金需要量预测的销售额比率法、直线回归法和高低点法
第一节 二次型的矩阵表示 一、二次型的定义 二、二次型的矩阵表示 三、非退化线性替换 四、矩阵的合同.
标准化处方格式与书写 李宏伟.
药师在线论坛: 新《处方管理办法》 的解读与释义 王树平 湖北省医院药事专业委员会 药师在线论坛: 王药师在线:
南通市卫生监督所副主任医师 南京医科大学副教授 施 飞
第六节 心律失常 蚌埠医学院附属医院诊断学教研室.
信阳师范学院 物理电子工程学院 实验室 马建忠
数据结构 第一章 绪论.
更多精彩请点击:儿童文学大本营 “用全球文化扩展视野”
第3章信用与利率 张军和刘芳均为刚毕业三年的大学生,准备购房结婚,他们看中了一套80平米的房子,售价为32万元。二人现在每月的收入为4000元,在银行开了零存整取账户,每月存款2000元,已经攒了7万元存款,但要全额购房也要十年以后,他们应该怎么办呢? 向父母要钱?向亲戚朋友借钱?还是租房结婚? 他们可以完全不靠别人只靠自己购房,到商业银行办理个人住房按揭贷款便可做到。先用存款付房子20%的首付7万元,同时向银行申请25万元住房按揭贷款,每月只需还款 元。这样他们就可以提前十年住进属于自己的房
第六章 证券投资 本章主要介绍了债券、股票和投资组合的投资。通过本章的学习,要求同学们掌握证券投资的决策方法,了解投资组合的相关理论。 本章内容: 第一节 证券投资的种类与目的 第二节 证券投资的风险与收益率 第三节 证券投资决策 第四节 证券投资组合.
投资组合理论 金融风险的定义及分类 投资收益与风险的衡量 证券组合与分散风险 风险偏好与无差异曲线 有效集与最优投资组合
消費者行為報告 第三組組員: 陳婉如 詹雅婷 趙銘俊 陳郁翔
例题与总结 一、有限单元法计算步骤 1 整理原始数据:将结构离散化、对单元和节点编号 i II I i (b) (a) y P/2 P/2
家用电器基础与维修技术 第1章家用电器常用设备与元器件.
实 验 处 方.
第七章 交流电力控制电路 第一节 交流开关及其应用电路 第二节 单相交流调压电路 第三节 相位控制器 第四节 三相交流调压电路 本章小节.
第六节 最大流问题 最大流最小割定理 基本概念 主要定理 最大流算法 算法步骤 算法复杂性 第4页缺3个证明.
第五章 资源分配与调度 (一) 资源管理功能 (二) 资源分配的机构和策略 (三) 死锁概念.
全力以赴的德忠精神 人力资源部王丽玲主任,从员工关系的工作,到招聘工作,再到现在的薪酬工作,不管在哪个岗位,她总是一丝不苟,尽职尽责。
第二章 化工技术经济分析的基本要素 本章要求: (1)熟悉现金流量的概念; (2)熟悉工程项目投资概念及构成;
第十章 内部排序 知识点3:快速排序.
第十章 排序 排序定义——将一个数据元素(或记录)的任意序列,重新排列成一个按关键字有序的序列叫~ 排序分类 按待排序记录所在位置
9.1 概述 9.2 插入排序 9.3 交换排序 9.4 选择排序 9.5 归并排序 9.6 基数排序 9.7 各种内部排序的比较
货 币 市 场 同业拆借市场 回购市场 商业票据市场 银行承兑票据市场 大额可转让定期存单市场 短期政府债券市场 货币市场共同基金.
債券型基金回顧與展望 中華信用評等 資深協理 蔡東松 2005年1月25日.
线性方程组的求解 中国青年政治学院 郑艳霞.
TCP报文格式.
快速排序法 (Quick Sort).
電腦硬體裝修 授課數位教材.
Chapter 13 數論基礎.
第八章 欧氏空间 8.1 向量的内积 8.2 正交基 8.3 正交变换 8.4 对称变换和对称矩阵.
短期投資及信用工具.
数据结构 Data Structure CSU 主讲人:王国军,郑瑾 中南大学信息院计科系
2019/2/19 电工电子技术基础 主编 王本为 制作 王本为 2008年7月.
数据结构 第一章 绪论.
导热系数的测量 兰州理工大学物理实验中心.
偏微分方程(PDE)期末報告 -有限差分法簡單介紹
基于元胞自动机的城市交通网络模拟模型 大连理工大学 张名举 刘勤一 孙宇哲 指导教师 贺明峰.
1、可编程控制器综合控制系统的构成 被控对象 传感器 PLC 执行机构 上位机监控 基于上位监控机的PLC控制系统.
指導老師:蘇明俊 組員: 陳柔安 潘依蓮 張壹凱
第九章 數論基礎.
第二章 静电场(6) §2.6 静电势的多极展开 教师姓名: 宗福建 单位: 山东大学物理学院 2015年10月30日
电 场 力 的 功.
IAF鞋櫃創業企劃 組 別:第3組 指導老師:張佳菁 老師 組 長:柳雅智 組 員:詹憶婷
Designed by JinZhao 迷宫夺宝 Designed by JinZhao
多元统计分析及R语言建模 第12章 多维标度法MDS及R使用 多元统计分析及R语言建模 第12章 多维标度法MDS及R使用 - 2-
Algorithm Design and Analysis
第一章复习 1、聚合物的分类和命名 常见聚合物的习惯命名 2、聚合反应 重点掌握按聚合机理的分类: 连锁聚合 逐步聚合 3、聚合物的分子量和分子量分布 4、聚合物微结构(链结构)的概念.
5 Chapter 整體規劃 5-1 整體規劃的意義與特性 5-2 整體規劃流程與因素 5-3 需求與供給變數的運用 5-4 整體規劃之技術
第六节 心律失常 蚌埠医学院附属医院诊断学教研室.
信用部財務專業人員初級研習班 台灣債券市場簡介
矩陣教學網頁規畫 組員:陳姿帆 黃美倫 林芳羽.
初识3D打印 3D打印是什么 3D打印机与普通打印机的区别 如何3D打印 万能制造机 3D打印材料举例.
劳技考试辅导讲座 光敏电阻传感器控制电路 之设计和调试.
LOGO 第十章 局部麻醉药.
姓名:刘冰 专业:计算机科学与技术 指导教师:姚宣霞
Presentation transcript:

排序

排序 排序定义——将一个数据元素(或记录)的任意序列,重新排列成一个按关键字有序的序列叫~ 排序分类 按待排序记录所在位置 按排序依据原则 内部排序:待排序记录存放在内存 外部排序:排序过程中需对外存进行访问的排序 按排序依据原则 插入排序:直接插入排序、折半插入排序 交换排序:冒泡排序、快速排序 选择排序:简单选择排序、堆排序 归并排序:2-路归并排序

排序基本操作 比较两个关键字大小 将记录从一个位置移动到另一个位置

插入排序 直接插入排序 排序过程:整个排序过程为n-1趟插入,即先将序列中第1个记录看成是一个有序子序列,然后从第2个记录开始,逐个进行插入,直至整个序列有序

例 i=1 ( ) 49 38 65 97 76 13 27 i=2 38 (38 49) 65 97 76 13 27 i=3 65 (38 49 65) 97 76 13 27 i=4 97 (38 49 65 97) 76 13 27 i=5 76 (38 49 65 76 97) 13 27 i=6 13 (13 38 49 65 76 97) 27 i=7 (13 38 49 65 76 97) 27 27 27 38 49 65 76 97 j j j j j j (13 27 38 49 65 76 97) 排序结果:

算法评价 时间复杂度 若待排序记录按关键字从小到大排列(正序) 关键字比较次数: 记录移动次数: 若待排序记录按关键字从大到小排列(逆序) 若待排序记录是随机的,取平均值 关键字比较次数: T(n)=O(n²) 记录移动次数: 空间复杂度:S(n)=O(1)

折半插入排序 排序过程:用折半查找方法确定插入位置的排序叫~ 例 i=1 (30) 13 70 85 39 42 6 20 …... i=7 6 (6 13 30 39 42 70 85 ) 20 i=8 20 (6 13 30 39 42 70 85 ) 20 s j m i=8 20 (6 13 30 39 42 70 85 ) 20 s j m i=8 20 (6 13 30 39 42 70 85 ) 20 s j m i=8 20 (6 13 30 39 42 70 85 ) 20 s j i=8 20 (6 13 20 30 39 42 70 85 )

算法评价 时间复杂度:T(n)=O(n²) 空间复杂度:S(n)=O(1)

交换排序 冒泡排序 排序过程 将第一个记录的关键字与第二个记录的关键字进行比较,若为逆序r[1].key>r[2].key,则交换;然后比较第二个记录与第三个记录;依次类推,直至第n-1个记录和第n个记录比较为止——第一趟冒泡排序,结果关键字最大的记录被安置在最后一个记录上 对前n-1个记录进行第二趟冒泡排序,结果使关键字次大的记录被安置在第n-1个记录位置 重复上述过程,直到“在一趟排序过程中没有进行过交换记录的操作”为止

例 49 38 65 97 76 13 27 30 38 49 65 76 13 27 30 97 38 49 65 13 27 30 76 第二趟 38 49 13 27 30 65 第三趟 38 13 27 30 49 第四趟 13 27 30 38 第五趟 13 27 30 第六趟 初始关键字 第一趟

算法评价 时间复杂度 最好情况(正序) 比较次数:n-1 移动次数:0 最坏情况(逆序) 比较次数: 移动次数: T(n)=O(n²) 空间复杂度:S(n)=O(1)

简单选择排序 排序过程 首先通过n-1次关键字比较,从n个记录中找出关键字最小的记录,将它与第一个记录交换

k k k 例 i=1 初始: [ 49 38 65 97 76 13 27 ] 13 49 j j j j j j k k i=2 一趟: 13 [38 65 97 76 49 27 ] 27 38 j j j j j 二趟: 13 27 [65 97 76 49 38 ] 三趟: 13 27 38 [97 76 49 65 ] 四趟: 13 27 38 49 [76 97 65 ] 五趟: 13 27 38 49 65 [97 76 ] 六趟: 13 27 38 49 65 76 [97 ] 排序结束: 13 27 38 49 65 76 97

算法评价 时间复杂度 记录移动次数 最好情况:0 最坏情况:3(n-1) 比较次数: T(n)=O(n²) 空间复杂度:S(n)=O(1)

堆排序 堆的定义:n个元素的序列(k1,k2,……kn),当且仅当满足下列关系时,称之为堆 或 (i=1,2,…...n/2) kik2i kik2i+1 kik2i kik2i+1 例 (96,83,27,38,11,9) 例 (13,38,27,50,76,65,49,97) 13 27 38 49 65 76 50 97 96 27 9 11 38 83 可将堆序列看成完全二叉树,则堆顶 元素(完全二叉树的根)必为序列中 n个元素的最小值或最大值

堆排序:将无序序列建成一个堆,得到关键字最小(或最大)的记录;输出堆顶的最小(大)值后,使剩余的n-1个元素重又建成一个堆,则可得到n个元素的次小值;重复执行,得到一个有序序列,这个过程叫~ 堆排序需解决的两个问题: 如何由一个无序序列建成一个堆? 如何在输出堆顶元素之后,调整剩余元素,使之成为一个新的堆? 第二个问题解决方法——筛选 方法:输出堆顶元素之后,以堆中最后一个元素替代之;然后将根结点值与左、右子树的根结点值进行比较,并与其中小者进行交换;重复上述操作,直至叶子结点,将得到新的堆,称这个从堆顶至叶子的调整过程为“筛选”

例 97 27 38 49 65 76 50 13 输出:13 27 49 38 97 65 76 50 13 输出:13 13 27 38 49 65 76 50 97 97 49 38 27 65 76 50 13 输出:13 27 38 49 50 27 65 76 97 13 输出:13 27 65 49 50 27 38 76 97 13 输出:13 27 38

49 65 50 27 38 76 97 13 输出:13 27 38 76 65 50 27 38 49 97 13 输出:13 27 38 49 50 65 76 27 38 49 97 13 输出:13 27 38 49 97 65 76 27 38 49 50 13 输出:13 27 38 49 50 65 97 76 27 38 49 50 13 输出:13 27 38 49 50 97 65 76 27 38 49 50 13 输出:13 27 38 49 50 65

76 65 97 27 38 49 50 13 输出:13 27 38 49 50 65 97 65 76 27 38 49 50 13 输出:13 27 38 49 50 65 76 97 65 76 27 38 49 50 13 输出:13 27 38 49 50 65 76 97

第一个问题解决方法 方法:从无序序列的第n/2个元素(即此无序序列对应的完全二叉树的最后一个非终端结点)起,至第一个元素止,进行反复筛选

例 含8个元素的无序序列(49,38,65,97,76,13,27,50) 49 65 38 27 13 76 97 50 49 65 38 27 13 76 50 97 49 13 38 27 65 76 50 97 49 13 38 27 65 76 50 97 13 27 38 49 65 76 50 97

算法评价 时间复杂度:最坏情况下T(n)=O(nlogn) 空间复杂度:S(n)=O(1)

归并排序 归并——将两个或两个以上的有序表组合成一个新的有序表,叫~ 2-路归并排序 排序过程 设初始序列含有n个记录,则可看成n个有序的子序列,每个子序列长度为1 两两合并,得到n/2个长度为2或1的有序子序列 再两两合并,……如此重复,直至得到一个长度为n的有序序列为止

例 初始关键字: [49] [38] [65] [97] [76] [13] [27] 一趟归并后: [38 49] [65 97] [13 76] [27] 二趟归并后: [38 49 65 97] [13 27 76] 三趟归并后: [13 27 38 49 65 76 97]

算法评价 时间复杂度:T(n)=O(nlog2n) 空间复杂度:S(n)=O(n)

快速排序 基本思想:通过一趟排序,将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录进行排序,以达到整个序列有序 排序过程:对r[s……t]中记录进行一趟快速排序,附设两个指针i和j,设枢轴记录rp=r[s],x=rp.key 初始时令i=s,j=t 首先从j所指位置向前搜索第一个关键字小于x的记录,并和rp交换 再从i所指位置起向后搜索,找到第一个关键字大于x的记录,和rp交换 重复上述两步,直至i==j为止 再分别对两个子序列进行快速排序,直到每个子序列只含有一个记录为止

x 例 初始关键字: 49 38 65 97 76 13 27 50 27 13 49 49 97 49 65 49 i j j i i j i j i j j i i j i j 完成一趟排序: ( 27 38 13) 49 (76 97 65 50) 分别进行快速排序: ( 13) 27 (38) 49 (50 65) 76 (97) 快速排序结束: 13 27 38 49 50 65 76 97

算法评价 时间复杂度 期望运行情况(平均运行时间)T(n)=O(nlog2n) 空间复杂度:需栈空间以实现递归 最坏情况:S(n)=O(n) 一般情况:S(n)=O(log2n)