c - 什么是一组整数集的简单 C 库?

标签 c integer set

我必须修改一个 C 程序,我需要包含一组无符号整数集。也就是说,我有数百万组整数(每个整数组包含 3 到 100 个整数),我需要将它们存储在某种结构中,我们称之为目录,它可以在对数时间内告诉我是否给定目录中已存在整数集。唯一需要在目录上定义的操作是查找和插入。

这在内置支持有用数据结构的语言中会很容易,但我是 C 语言的外行,环顾 Google 并没有(令人惊讶地)令人满意地回答我的问题。这个项目看起来不错:

http://uthash.sourceforge.net/

但我需要想出我自己的哈希 key 生成器。

这是一个标准的、简单的问题,所以我希望有一个标准的、简单的解决方案。

最佳答案

这取决于您要对数据做什么。但也许tsearch已经做了你想要的。您还可以为每个集合构建一个排序数组并使用 bsearch 查找值,尽管在插入过程中性能可能会受到影响。

编辑:如果您正在寻找(外部)库,您会找到一些 C 和 C++ 哈希表实现的比较 here .这篇文章的作者写了一个通用的头文件实现,叫做khash。 .所以你编译的二进制文件没有任何额外的依赖。

关于c - 什么是一组整数集的简单 C 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2500447/

相关文章:

java - 如何: Java listening for events captured by C thread

c - 缓冲区溢出后的函数调用

java - 如何使 JavaFX Slider 以离散的步骤移动?

将整数或 double 加在一起时的 C++ 奇怪输出

java - 关于这段Java代码的问题,为什么这么写

Java JNI 调用比预期慢(至少 2 毫秒/调用)

c - 如何使用整数的小数

python - 如何测试列表的所有项目都是不相交的?

Scala:我可以依赖集合中项目的顺序吗?

c - 共享库是否使用与应用程序相同的堆?