解决方案

在桶排序的C语言实现中,如例4-11所示,每一个桶存储一个元素的链表,每个元素都是使用散列映射到这个桶中。适用于输入数据的函数numBuckets和hash是外部提供的。

例4-11:桶排序的C语言实现

阅读 ‧ 电子书库
阅读 ‧ 电子书库
阅读 ‧ 电子书库

对于从[0,1)中均匀选择的数字,例4-12即hash和numBuckets函数实现的例子。

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

例4-12:处理[0,1)范围内的元素时使用的hash和numBuckets函数

阅读 ‧ 电子书库

桶也能够用固定大小的数组来存储,当桶都满之后,数组可以重新分配空间,但是链表的实现要快30%~40%。