数据结构与算法-第八章 归并排序和基数排序(思想)

本文探讨了归并排序的基本思想,包括归并树概念和时间复杂性,以及其O(nlog_2n)的时间效率和稳定性。同时,介绍了基数排序的分配+收集原理,适用于数字范围固定的场景,分析了时间效率O(k*(n+m))和空间效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

归并排序的基本思想

将两个或两个以上的有序子序列"归并"为一个有序序列;
在内部排序中,通常采用2-路归并排序

归并排序
"归并树":归并过程抽象出来的树
归并排序的趟数就是"归并树的高度";
若有n个记录,则整个归并排序仅需"log~2~n";
代码之后再放...
归并排序算法效率分析
时间效率: O(nlog~2~n);
空间效率: O(n);
	因为需要一个与原始序列同样大小的辅助序列(R1),这正是此算法的缺点;
稳定性: 稳定;
基数排序的基本思想
分配+收集
也叫桶排序或箱排序: 设置若干个箱子,将关键字为k的记录放入第k个箱子,然后再按序号将非空的连接.

基数排序: 数字是有范围的,均由0-9这十个数字组成,则只需设置十个箱子,相继按个,,...进行排序
	若存在一组序列中所有的记录最高位是百位:
	第一趟: 按照个位上的数字,放入相应的箱子中,所有记录放入箱子后,依次收集回来;
	第二趟: ,在第一趟收集回来的序列上,按十位上的数字,放入相应的箱子中,然后再收集回来;
	第三趟: 在第二趟收集回来的序列上,按按百位上的数字,放入相应的箱子中,然后再来一次收集;
基数排序算法分析
分配趟数: 根据记录的个数而变化
时间效率: O(k*(n+m))		k:个十百的位数,m:桶的个数
空间效率: O(n+m)
稳定性: 稳定;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值