文件名称:skip-list:高性能,仅标题跳过列表
文件大小:268KB
文件格式:ZIP
更新时间:2024-06-19 05:01:39
C
跳过列表 高性能,仅标题跳过列表。 将字节数组 ( unsigned char * ) 映射到字值 ( unsigned long ) 的字典。 随机高度 此实现对标准跳过列表概率算法进行了3次优化。 在每次插入之前生成总的“硬币翻转”结果。 不是通过在 while 循环的每次迭代中调用rand()来生成 1 或 0(在最坏的情况下,每次插入最多调用rand() 32 次),该算法被调用一次,结果的位是用于确定高度。 rand()已替换为简单的字符串哈希dbj2() 。 这样做的原因是因为它已被证明可以为硬币翻转测试提供更好的 1 和 0 分布,从而产生更好的加权更可预测的概率。 考虑到更大高度的更合适频率,这会导致更快的搜索和更少的内存使用。 dbj2()实际上每 20 次左右插入只调用一次。 这是通过缓存结果的位来实现的,并且只有在它们用完后才重新生成它们。 散列的字符串是生成
【文件预览】:
skip-list-master
----list.h(3KB)
----README.md(2KB)
----words.txt(956KB)
----makefile(47B)
----main.c(1KB)