- 5
- 0
- 约5.52千字
- 约 29页
- 2019-12-20 发布于广西
- 举报
第10章 排序 10.4 归并排序 归并——将两个或两个以上的有序表组合成一个新的有序表,叫~ 2-路归并排序 设初始序列含有n个记录,则可看成n个有序的子序列,每个子序列长度为1。 两两合并,得到?n/2?个长度为2或1的有序子序列。 再两两合并,……如此重复,直至得到一个长度为n的有序序列为止。 例子:合并两个有序表 例子:归并排序 算法评价 时间复杂度: T(n)=O(nlogn) 空间复杂度: S(n)=O(n) 它是一个稳定的排序方法。 10.5 基数排序 多关键字排序 多关键字排序方法 MSD与LSD不同特点 按MSD排序,必须将序列逐层分割成若干子序列,然后对各子序列分别排序。 按LSD排序,不必分成子序列,对每个关键字都是整个序列参加排序;并且可不通过关键字比较,而通过若干次分配与收集实现排序。 链式基数排序 基数排序:借助“分配”和“收集”对单逻辑关键字进行排序的一种方法。 链式基数排序:用链表作存储结构的基数排序。 基数排序的演示 链式基数排序步骤 设置10个队列,f[i]和e[i]分别为第i个队列的头指针和尾指针。 第一趟分配对最低位关键字(个位)进行,改变记录的指针值,将链表中记录分配至10个链队列中,每个队列记录的关键字的个位相同。 第一趟收集是改变所有非空队列的队尾记录的指针域,令其指向下一个非空队列的队头记录,重新将10个队列链成一个链表。 重复上述两步,进行第二趟、第三趟分配和收集,分别对十位、百位进行,最后得到一个有序序列。 算法评价 排序算法小结 作业 若一组记录的关键码为(46, 79, 56, 38, 40, 84),写出二路归并排序和链式基数排序一趟排序的结果。 * * 数据结构讲义 - 归并与基数排序 SunLand@nuc.edu.cn 顺序比较两者的相应元素,小者移入另一表中,反复如此,直至其中任一表都移入另一表为止。 0 1 2 3 4 49 13 65 97 76 7 80 A B 0 1 2 3 4 5 6 7 C i j k 0 1 2 3 4 49 13 65 97 76 7 80 A B 0 1 2 3 4 5 6 7 C i j k 7 0 1 2 3 4 49 13 65 97 76 7 80 A B 0 1 2 3 4 5 6 7 C i j k 7 0 1 2 3 4 49 13 65 97 76 7 80 A B 0 1 2 3 4 5 6 7 C i j k 7 13 0 1 2 3 4 49 13 65 97 76 7 80 A B 0 1 2 3 4 5 6 7 C i j k 7 13 49 0 1 2 3 4 49 13 65 97 76 7 80 A B 0 1 2 3 4 5 6 7 C i j k 7 13 49 0 1 2
您可能关注的文档
最近下载
- 中医医院感染性疾病科建设与管理指南(2025).docx VIP
- 贵州省贵阳市2022-2023学年九年级上学期期末数学试题(含答案解析).pdf VIP
- 老年病人手术的麻醉PPT课件【40页】.pptx VIP
- (优质!)最新呼吸机技术要求.pdf VIP
- (推荐!)最新呼吸机技术要求(可编辑!).docx VIP
- 2024年全国各地化学中考真题汇编碳和碳的氧化物含详解.pdf VIP
- 5年(2021-2025)中考化学真题分类汇编专题09 化学反应的定量关系(解析版).pdf VIP
- 《低空装备环境感知与识别技术要求》.pdf VIP
- GBZT 205-2007 密闭空间作业职业危害防护规范.docx VIP
- 医院患者急性上消化道出血应急预案演练脚本.docx VIP
原创力文档

文档评论(0)