对于下面的问题,我想用c语言给出一个建议:
我需要字符串和整数之间的关联,如下所示:
"foo" => 45,
"bar" => 1023,
etc...并且能够使用相关联的整数找到该字符串,并且能够使用相关联的字符串找到该整数。对于字符串到整数,我可以使用哈希表,但我将失去返回的方法。
我使用的简单解决方案是创建一个表: static bar params [] ={{ "foo",45 },{“param_t”,1023 },... };然后使用两个函数比较每个条目(字符串或整数),以获得字符串或整数。这就是线性搜索,它非常慢。我可以使用什么来使用O(1)中的搜索算法来查找字符串和O(字符串的大小)来查找整数?有什么想法吗?
发布于 2014-06-05 20:53:13
一种低效的方法是将它转换为基数256。第一个字母-ASCII乘以0 (1)的256次方,加上第二个字母-ASCII乘以1的256次方,依此类推。效率非常低(因为long还不够,所以要么将数字包含在另一个字符串中,要么使用数学C库。我知道在Ruby和Perl中有散列,它基本上是一个数组,你可以用某个键(可以是一个字符串)进入它,但我不知道它是如何工作的。
https://stackoverflow.com/questions/24058784
复制相似问题