排序之表排序、基数排序及所有排序算法比较

本学习笔记部分内容来自浙江大学网易云课堂,谢谢!

1、表排序

定义一个指针数组做为表。排序的时候,数组位置上的数值不变,改变的是指针的指向。

如该图,初始数值:f d c a g b h e   开始时,比较f>d,则指针0指向d,指针1指向f。之后比较f>c,d>c,则指针0指向c,指针1指向d,指针2指向f。以此类推,最终指针0指向a的位置(即table[0]=3,A[3]那个位置)

2、基数排序

基本思想:比如十进制数字排序,先按个位数大小排,再按十位数大小排,依次。举例如下:

基数排序可以用来进行多关键字排序。如扑克牌:花色和数字大小两种关键字。

3、排序算法比较

注:稳定性是指如果两个数相等,排完序后,其相对位置有没有发生变化,没变的话就是稳定的。希尔排序的d取决于增量序列的选择,最大为2。
当待排序列已经基本有序时, 快速排序 算法效率最差。
插入排序 ,在最后一趟开始之前,可能所有的元素都不在自己的位置上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值