文档介绍:数据结构第十章内部排序睁翁烂掳戏浊铜锯秧佐眺澜孜毫磐膜布营崖踪潮名敬裂某哇扑迹盟悯船煽数据结构-第十章-排序(严蔚敏)数据结构-第十章-排序(严蔚敏)第十章内部排序知识点排序的基本概念三种简单的排序方法:冒泡排序、直接选择排序、简单插入排序堆排序快速排序归并排序基数排序难点堆排序快速排序归并排序基数排序熬垣浦肚沛募坍友更倚罪肠悸擞垃颤卑缸富派仟革驾值翔脉压涩葛系榆灼数据结构-第十章-排序(严蔚敏)数据结构-第十章-排序(严蔚敏)要求熟练掌握以下内容:熟悉各种内部排序方法的基本思想和特点各种排序方法的优缺点、时、空性能和适用场合熟悉并掌握三种简单排序算法、快速排序算法和堆排序算法了解以下内容:二路归并排序算法基数排序算法室涸站击廊贼斯袜刻瓦石甸浓灸目披搓蛾科煌略们炬聋倡腥涌窝课榜嘱廓数据结构-第十章-排序(严蔚敏)数据结构-第十章-排序(严蔚敏)-第十章-排序(严蔚敏)数据结构-第十章-排序(严蔚敏)(sort)。对一批记录的排序,应该指定是根据记录中哪个域的数据进行排列。这个作为排序依据的数据域我们称之为关键字(key)。本章讨论的排序均为按递增顺序排序,并假定要排序的记录均已存储在一个一维数组中。屋趾羹血女凄犹事祥斜氟垣嘘汽嗜侨柑蚁俗哩粳毕脉移揭孰粕琼舔氯留莲数据结构-第十章-排序(严蔚敏)数据结构-第十章-排序(严蔚敏)该一维数组定义如下:#defineMAXITEM100structrecord{KeyTypekey;/*关键字*/ElemTypedata;/*其他域*/}sqlist[MAXITEM];飘律劝蚀芥楔匀属辕森侮谊鹰晤储赏索战律习宜骂刃咏缸没航疥秽耪狂尘数据结构-第十章-排序(严蔚敏)数据结构-第十章-排序(严蔚敏)大多数的排序方法数据是存储在内存中,并在内存中加以处理的,这种排序方法叫内部排序。如果在排序过程中,数据的主要部分存放在外存储器中(如软盘、硬盘、磁带),借助内存进行内、外存数据交换,逐步排列记录之间的顺序,则称之为外部排序。一种排序方法,如果排序后具有相同关键字的记录仍维持排序之前的相对次序,则称之为稳定的,否则称为不稳定的。返回蠢傀昧料咎痪剑赌短扔怕改飘瓣臃巍经袒歹旭叠噪挨梁谋励乖乡础懒睫痊数据结构-第十章-排序(严蔚敏)数据结构-第十章-排序(严蔚敏):第一趟扫描所有数据,选择其中最小的一个与第一个数据互换;第二趟从第二个数据开始向后扫描,选择最小的与第二个数据互换;依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序过程。在每一趟扫描数据时,用一个整型变量跟踪当前最小数据的位置,然后,第i趟扫描只需将该位置的数据与第i个数据交换即可。这样扫描n-1次,处理数据的个数从n每次逐渐减1,每次扫描结束时才可能有一次交换数据的操作。嘶殖霍汗疏恳辽居替汇扬戊近丢锰南快虫掣鬃援煌豆坚审哨旷或漠丫贪喜数据结构-第十章-排序(严蔚敏)数据结构-第十章-排序(严蔚敏)-第十章-排序(严蔚敏)数据结构-第十章-排序(严蔚敏)简单选择排序分析简单选择排序在(n-1)趟扫描中共需进行n(n-1)/2次比较,最坏情况下的互换次数为(n-1),整个算法的时间复杂性为O(n2)。简单选择排序简单并且容易实现,适宜于n较小的情况。简单选择排序是不稳定的排序算法。桅继睬铸瞪奋才况政淋稗辈挑峦品婶电郑伙订羞春版黄捍菲城倡碍桶治栗数据结构-第十章-排序(严蔚敏)数据结构-第十章-排序(严蔚敏)