名著阅读 > 算法技术手册 > 解决方案 >

解决方案

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

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

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

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

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