哈希与计数排序 、桶排序、基数排序

本文深入探讨了计数排序和桶排序的实现原理及步骤,解析了如何使用哈希表进行元素计数,以及桶排序如何作为计数排序的升级版处理更大范围的数据。通过具体示例,读者将理解基数排序的概念及其在万位数以下数据排序中的应用。

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

哈希index2 == max(67)是可以出现的,所以index2<68

length在大部分语言里是最大的数字下标+1

完整的计数排序

a <- {'0':0, '1':2,'.':56,'4':4,'5':67,'6':3,
'length':67}
hash<-{}
index <- 0
while(index < a['length'])
    number = a[index]
    if hash[number] == undefined //hash[number] 不存在
        hash[number] = 1
        else // hash[number]存在
        hash[number] = hash[number] + 1
    end
    index <- index + 1
end
index2 <- 0
max <- findmax(a)
index2 <- 1
while index < findmax['length']
    if findmax[index2] < max
        max <- findmax[index2]
    end
    index2 <- index2 + 1
end
nawarr <- {}
while(index2 < max + 1)
    count=hash[index2]
    if count !=undefined
        countIndex = 0
        while(countIndex < count)
            newArr.push(index2)
            countIndex <- countIndex + 1
        end
    end
    index2 <- index2 + 1
end
print newArr

桶排序

桶排序是计数排序的升级版
排序,要么浪费时间,要么浪费空间
桶排序里可以进行二次排序


桶排序
10个一个桶或者100个一个桶

基数排序

基数排序适合万位数以下,适应与大基数的排序
基数排序就是10进制排序
出桶和入桶顺序顺序
先按照个位数进行排序
十位数入桶
按照十位数进行排序
百位数入桶
按照百位数进行排序
千位数入桶
按照千位数进行排序
万位数入桶
按照万位数进行排序

可参考网站:VisuAlgo

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值