8.5 数据结构——归并排序和基数排序

8.5.1 归并排序

基本思想:将两个或两个以上的有序子序列“归并”为一个有序序列,在内部排序中,通常采用2-路归并排序,即将两个位置相邻的有序子序列R[1~m]和R[m+1~n]归并为一个有序序列R[1~n]。

例:{48,,34,60,75,12,26,48'}

整个归并排序需要\left \lceil log_{2}n \right \rceil趟。

8.5.2 基数排序 

基本思想:分配+收集

也叫桶排序或箱排序,设置若干个箱子,将关键字为k的记录放入低k个箱子,然后按序号将非空的连接。

基数排序:数字是有范围的,均由0~9这十个数字组成,则只需设置十个箱子,相继按个、十、百……进行排序。

例:{614,738,921,485,637,101,215,790,306}

第一趟分配(按个位):

e[0]e[1]e[2]e[3]e[4]e[5]e[6]e[7]e[8]e[9]

530

790

921

101

614

485

215

306637738

第一趟收集:{530,790,921,101,614,485,215,306,637,738}

第二趟分配(按百位):

e[0]e[1]e[2]e[3]e[4]e[5]e[6]e[7]e[8]e[9]

101

306

614

215

921

530

637

738

485790

第二趟收集:{101,306,614,215,921,530,637,738,485,790}

第三趟分配(按千位):

e[0]e[1]e[2]e[3]e[4]e[5]e[6]e[7]e[8]e[9]
101215306485530

614

637

738

790

921

第三趟收集:{101,215,306,485,530,614,637,738,790,921}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值