南京大学:《数据结构 Data Structures》课程教学资源(PPT课件讲稿)第九章 排序

京火 限锡病 第九章排序 n概述 n插入排序 交换排序 a选择排序 归并排序 n基数排序 外排序
第九章 排序 ◼ 概述 ◼ 插入排序 ◼ 交换排序 ◼ 选择排序 ◼ 归并排序 ◼ *基数排序 ◼ *外排序

§9.1概述 排序:将一组杂乱无章的数据按一定的规律 顺次排列起来。 数据表dist:它是待排序数据对象的有限 集合。 排序码(ke以:通常数据对象有多个属性域, 即多个数据成员组成,其中有一个属性坷可 用来区分对象,作为排序依据。该域即为排 序码。每个数据表用哪个属性域作为排序码 ,要视具体的应用需要而定
◼ 排序:将一组杂乱无章的数据按一定的规律 顺次排列起来。 ◼ 数据表(datalist): 它是待排序数据对象的有限 集合。 ◼ 排序码(key): 通常数据对象有多个属性域, 即多个数据成员组成, 其中有一个属性域可 用来区分对象, 作为排序依据。该域即为排 序码。每个数据表用哪个属性域作为排序码 ,要视具体的应用需要而定。 §9.1 概述

排序算法的稳定性:如果在对象序列中有两 个对象r和7i,它们的排序码和==k,且 在排序之前,对象r排在前面。如果在排 序之后对象r仍在对象r的前面,则称这 个排序方法是稳定的,否则称这个排序方法 是不稳定的。 内排序与外排序:内排序是指在排序期间 数据对象全部存放在内存的排序;外排序 是指在排序期间全部对象个数太多,不能 同时存放在内存,必须根据排序过程的要 求,不断在内、外存之间移动的排序
◼ 排序算法的稳定性: 如果在对象序列中有两 个对象r[i]和r[j], 它们的排序码 k[i] == k[j] , 且 在排序之前, 对象r[i]排在r[j]前面。如果在排 序之后, 对象r[i]仍在对象r[j]的前面, 则称这 个排序方法是稳定的, 否则称这个排序方法 是不稳定的。 ◼ 内排序与外排序: 内排序是指在排序期间 数据对象全部存放在内存的排序;外排序 是指在排序期间全部对象个数太多,不能 同时存放在内存,必须根据排序过程的要 求,不断在内、外存之间移动的排序

排序的时间开销:排序的时间开销是衡量 算法好坏的最重要的标志。排序的时间开销 可用算法执行中的数据比较次数与数据移动 次数来衡量。 算法执行时所需的附加存储:评价算法好 坏的另一标准。 算法运行时间代价的大略估算一般都安平均 情况进行估算。受对象排序码序列初始排列 及对泉个数影响较大的,需要按最好憤况和 最坏情况进行估算
◼ 排序的时间开销: 排序的时间开销是衡量 算法好坏的最重要的标志。排序的时间开销 可用算法执行中的数据比较次数与数据移动 次数来衡量。 ◼ 算法执行时所需的附加存储: 评价算法好 坏的另一标准。 ◼ 算法运行时间代价的大略估算一般都按平均 情况进行估算。受对象排序码序列初始排列 及对象个数影响较大的,需要按最好情况和 最坏情况进行估算

§9.2插入排序( Insert Sorting) 基本方法:每步将一个待排序的对象,按其排 序码大小,插入到前面已经排好序的一组对象 的适当位置上,直到对象全部插入为止。 1直接插入排序( Insert Sort 基本思想:当插入第i(21)个对象时前面 的v0,V1…Vi-1已经排好序。这时, 用Ⅴ的排序码依次与V-1,Vi-2],…的排 序码顺序进行比较,找到插入位置即将Ⅴ插 入,原来位置上的对象向后顺移
◼ 基本思想: 当插入第i (i 1) 个对象时, 前面 的V[0], V[1], …, V[i-1]已经排好序。这时, 用V[i]的排序码依次与V[i-1], V[i-2], …的排 序码顺序进行比较, 找到插入位置即将V[i]插 入, 原来位置上的对象向后顺移。 基本方法 : 每步将一个待排序的对象, 按其排 序码大小, 插入到前面已经排好序的一组对象 的适当位置上, 直到对象全部插入为止。 1.直接插入排序 (Insert Sort) §9.2 插入排序 (Insert Sorting)

各趟排序结果 21 同同 2345 2125 9 5116 08 012345 temp 49 i=2 2125 25 2345 ten
各 趟 排 序 结 果 21 25 49 25* 16 08 0 1 2 3 4 5 0 1 2 3 4 5 temp 21 25 49 25* 16 08 i = 1 25 0 1 2 3 4 5 temp 21 25 49 25* 16 08 49 i = 2

i=3 2125 49 825 212525 49 012345 temp i=5 162112525 49 012345 temp
21 25 49 25* 16 08 0 1 2 3 4 5 0 1 2 3 4 5 temp 21 25 49 25* 16 i = 4 08 0 1 2 3 4 5 temp 21 25 49 16 25* 08 i = 5 i = 3 25* 16 08

完成园园园 012345 i=4时的排序过程 j=3团过 012345 tem i=4 j=2122 49 012345 tem
16 49 16 16 21 25 49 16 25* 08 0 1 2 3 4 5 0 1 2 3 4 5 temp 21 25 49 25* 08 i = 4 时的排序过程 0 1 2 3 4 5 temp 21 25 25* 49 完成 16 08 16 i = 4 j = 3 i = 4 j = 2

2125 6 25* 49 012345 j=021 2525* 49 08 2345 temp j=-1 6 21目252549 08 2 3 4 5 temp
25 25* 16 16 21 25 49 25* 08 0 1 2 3 4 5 0 1 2 3 4 5 temp 21 49 25* 08 0 1 2 3 4 5 temp 21 25 25* 49 16 08 16 16 25 21 i = 4 j = 1 i = 4 j = 0 i = 4 j = -1 16

直接插入排序的算法 template void datalist : InsertSort(i ∥按排序码Key非递减顺序对表选行排序 Elementtemp; int 1,]; for(i=l; i0;j-)∥从后向前顺序比较 if temp Vectorlj-I) Vector [il= vector[i-1 else break
直接插入排序的算法 template void dataList :: InsertSort ( ) { //按排序码 Key 非递减顺序对表进行排序 Element temp; int i, j; for ( i = 1; i 0; j-- ) //从后向前顺序比较 if ( temp < Vector[j-1] ) Vector[j] = Vector[j-1]; else break;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 厦门大学:《大数据技术原理与应用》课程教学资源(PPT课件讲稿,2017)第9章 Spark.ppt
- 中国科学技术大学:《嵌入式系统设计》课程教学资源(PPT课件讲稿)第2章 ARM微处理器概述与编程模型(王行甫).ppt
- 电子工业出版社:《计算机网络》课程教学资源(第五版,PPT课件讲稿)第二章 物理层.ppt
- 南京大学:可信软件(PPT讲稿)认识、度量与评估.ppt
- 《C语言程序设计》课程电子教案(PPT课件讲稿)第六章 函数.ppt
- “互联网+”与“+互联网”(PPT讲稿).pptx
- 《Computer Networking:A Top Down Approach》英文教材教学资源(PPT课件讲稿,6th edition)Chapter 6 无线和移动网络 Wireless and Mobile Networks.ppt
- 面向服务的业务流程管理(PPT讲稿)Introduction to Business Process Management(BPM).pptx
- 《图像处理与计算机视觉 Image Processing and Computer Vision》课程教学资源(PPT课件讲稿)Chapter 04 Feature extraction and tracking.pptx
- 香港科技大学:Advanced Topics in Next Generation Wireless Networks.ppt
- 《Java语言程序设计》课程教学资源(PPT课件讲稿)第三章 Java面向对象程序设计.ppt
- 《数据结构》课程教学资源(PPT课件讲稿)第六章 树与二叉树(6.1-6.3).ppt
- 四川大学:《Linux操作系统》课程教学资源(PPT课件讲稿)第2章 Linux操作系统管理基础.ppt
- 厦门大学:《数据库系统原理》课程教学资源(PPT课件讲稿,2016版)第五章 数据库完整性.ppt
- 《计算机视觉》课程教学资源(PPT课件讲稿)边缘和线特征提取.ppt
- 中国科学技术大学:《计算机体系结构》课程教学资源(PPT课件讲稿)Chapter 01 量化设计与分析基础(主讲:周学海).ppt
- Peer-to-Peer Networks:Distributed Algorithms for P2P Distributed Hash Tables.ppt
- 山西农业大学:大数据技术原理与应用(PPT讲稿)Development and application of bigdata technology.ppt
- 香港理工大学:数据仓库和数据挖掘(PPT讲稿)Data Warehousing & Data Mining.ppt
- 《信息系统与数据库技术》课程教学资源(PPT课件讲稿)第4章 T-SQL与可编程对象.ppt
- PARALLELISM IN HASKELL(Kathleen Fisher).pptx
- 电子工业出版社:《计算机网络》课程教学资源(第五版,PPT课件讲稿)第八章 因特网上的音频/视频服务.ppt
- 《微机原理与接口技术》课程教学资源(PPT课件讲稿)第1章 微型计算机基础概论.ppt
- 《现代操作系统 Modern Operating Systems》课程教学资源(PPT课件讲稿,Third Edition)Chapter 10 Case Study 1 LINUX.ppt
- 《大学计算机基础》课程教学资源(PPT课件讲稿)第三章 字处理软件 Word2003.ppt
- 《软件测试》课程教学资源(PPT讲稿)集成测试.pptx
- 香港中文大学:Adaboost for building robust classifiers(PPT讲稿).pptx
- 福建工程学院:《软件工程》课程教学资源(实验指导书).doc
- 《数据结构》课程教学资源(PPT课件讲稿)第九章 排序.ppt
- 《图像处理与计算机视觉 Image Processing and Computer Vision》课程教学资源(PPT课件讲稿)Chapter 02 Image processing and computer vision(Camera models and parameters).pptx
- 四川大学:软件设计工具(PPT课件讲稿)Software design tool.ppt
- Homomorphic Secret Sharing:Low-End HSS from OWF、HSS for Branching Programs from DDH、The HSS Construction.ppsx
- 清华大学:《计算机网络》课程教学资源(PPT课件讲稿)Lecture 4 Routing.pptx
- 北京航空航天大学:Graph Search - a New Paradigm for Social Computing.pptx
- 西南民族大学:《软件需求分析与总体设计》课程教学资源(PPT课件讲稿)软件总体(概要)设计.ppt
- 东南大学:《数据结构》课程教学资源(PPT课件讲稿)第五章 树(主讲:方效林).ppt
- 中国科学技术大学:《网络信息安全 NETWORK SECURITY》课程教学资源(PPT课件讲稿)第十章 入侵检测系统(主讲:肖明军).ppt
- 中国科学技术大学:QuickPass系统的排队问题(PPT讲座,谢瑶).ppt
- 《工程计算软件》课程教学资源(PPT课件讲稿)第四章 Maple简介.ppt
- 山东大学:《微机原理及单片机接口技术》课程教学资源(PPT课件讲稿)第六章 中断(主讲:刘忠国).ppt