首页 文章
  • 0 votes
     answers
     views

    将32个项添加到hashmap后,Mapdb停止

    这是我的对象的定义: public class Tuple_comparable implements Serializable, Comparable<Tuple_comparable> { public String arg1_surface; public String arg1_type; public boolean arg1_type_equal...
  • 5 votes
     answers
     views

    动态完美散列和通用散列函数 - 请解释一下?

    所以我正在阅读关于哈希表,哈希函数等的内容 . 我很感兴趣在维基百科上阅读“动态完美哈希”如何使用第二个哈希表作为数据结构来存储特定桶中的多个值 . 然而,当我遇到如何选择通用散列函数来执行第二个散列表的散列时 . 任何人都可以解释这个通用哈希函数是如何根据存储在存储桶中的值确定的?我模糊地遵循维基百科的“通用哈希函数”页面中的推理和逻辑,但我正在努力对它有任何直觉 . 特别是,这些功能如何保证不...
  • 7 votes
     answers
     views

    分析目标并选择一个好的哈希函数

    这不是具体解决方案的具体问题;但这是对我无法找到关于如何为哈希表和类似任务选择好的哈希函数的任何好的Stack Overflow问题的回应 . 所以!让我们来谈谈哈希函数,以及如何选择哈希函数 . 如果一个编程菜鸟需要为他们的特定任务选择一个好的哈希函数,那么选择一个呢?简单快速的Fowler-Noll-Vo什么时候适合?他们什么时候应该在MurmurHash3中供应?在比较各种选项时,您是否有良...
  • 45 votes
     answers
     views

    Java使用什么散列函数来实现Hashtable类?

    从CLRS(“算法导论”)一书中,有几个散列函数,如mod,multiply等 . Java使用什么散列函数将密钥映射到插槽? 我看到这里有一个问题Hashing function used in Java Language . 但它没有回答这个问题,我认为这个问题的明确答案是错误的 . 它说hashCode()允许你为Hashtable做你自己的散列函数,但我认为这是错误的 . hashCode...
  • 4 votes
     answers
     views

    实现哈希表

    几天前我开始阅读关于实现各种数据结构的内容,并开始讨论哈希表并陷入特定点 . 我对如何实现哈希表的理解:将密钥K传递给哈希函数H,哈希函数H返回哈希表K,HK . HK应该至少是一个uint32_t来解释碰撞,我们有一个大小为X的数组,该项存储在这个数组的索引HK ..但是,这不需要预先分配的长度为uint32_t的数组(或者H的返回值是什么)?假设我们不将数据本身存储在该数组中,而是将ptr存...
  • 0 votes
     answers
     views

    C表示任何对象(类型void *)作为整数(计算的标识符)

    我需要实现 hash table (或哈希映射)来存储任何类型的键 . 所以我使用了 void *key 和 size_t key_size . 我需要为这些键写 *hash_function(void key, size_t key_size) . 散列函数需要计算数组中的索引 . 所以我首先需要计算这种对象的整数表示 . 如果这将是字符串,我可以获得字符串中每个字符的ascii数字并将它们...
  • 0 votes
     answers
     views

    将Java LinkedHashMap转换为C std :: map

    我正在尝试将程序从Java移植到C,我似乎无法弄清楚如何将LinkedHashMap转换为std :: map . 我无法更改LinkedHashMap,但我不限于std :: map . 我需要它来生成相同的键/值对,但订购/散列/其他任何不重要的事情 . 要转换的Java代码: List<Face> faces = new ArrayList<Face>(modelFu...
  • -1 votes
     answers
     views

    HashMap还是HashTable?

    我需要读取一个文件:.txt(key1 | username1 key2 | null key3 | username3 key4 | null key5 | username5)...用密钥搜索用户并更改用户名 . 什么有更好的运行时? (这是一个非常简单的程序)
  • 95 votes
     answers
     views

    哈希表真的可以是O(1)吗?

    哈希表可以实现O(1)似乎是常识,但这对我来说从来没有意义 . 有人可以解释一下吗?以下是两种情况: A. The value is an int smaller than the size of the hash table. 因此,该值是它自己的哈希值,因此没有哈希表 . 但如果有,那将是O(1)并且仍然是低效的 . B. You have to calculate a hash of t...
  • 4 votes
     answers
     views

    哈希表:为什么桶?

    据我所知,哈希函数的关键是尽可能均匀地分配数据,当你遇到碰撞时你有几个选择: 寻找下一个空位 生成不同的哈希并尝试将其粘贴到其他位置 把它放在溢出容器中(可以是列表,另一个哈希表或其他) 将它放在下一个空闲存储桶插槽中 最后一个困扰我,因为,如果你要为每个地址制作一个说2个槽的哈希表,为什么不只是制作两倍大的哈希表呢?这是除非动态分配存储桶 . 在我的情况下,表的数据位于磁盘上...
  • 0 votes
     answers
     views

    为什么使用2的幂作为散列大小会使哈希表比使用素数更糟糕?

    我正在实现一个应该存储32位值对的哈希表 . 考虑到我的元素是固定大小,我使用一个非常简单的散列函数: hash(a,b) = asUint64(a) + (asUint64(b) << 32) 有了它,我得到一个哈希表中的元素索引(即它对应的桶): index(a,b) = hash(a,b) % hash_size 其中hash_size是我表上的条目/桶数 . 我已经意识到,...
  • 3 votes
     answers
     views

    是否存在保留插入顺序的无锁哈希表?

    我正在尝试优化我使用基于锁的哈希表的库 . 一种方法是用无锁的结构代替这种基于锁的结构 . 我发现了一些算法,我决定使用这篇论文在C中实现:Split-ordered lists: lock-free extensible hash tables 问题是这种结构不能保留元素的插入顺序,我需要这个功能有两个原因: 1)将下一个元素获取到当前元素(根据插入顺序而不是以hashkey顺序), 2)当达到...
  • 0 votes
     answers
     views

    当C中存在冲突(使用单独的链接)时,无法释放哈希表中的节点

    好的,我有一个我在C中制作的哈希表 . 我使用单独的链接(链表)来解决冲突 . 我注意到如果没有碰撞并且每个项目都散列到它自己的索引,我可以释放整个表 . 但是如果存在冲突且我在索引处有多个值,则它只能释放该索引中的第一个值而不是剩余值 . 当程序尝试释放该索引处的其他程序时崩溃 . 我尝试调试它,我意识到那些其他值已经设置为NULL,我不知道为什么,因为当我将它们插入到表中时我正在使用mallo...
  • -1 votes
     answers
     views

    C哈希表Set / Get void *唯一的内存地址

    Hashtable使用表中每个条目的链接列表 . Hashcode算法生成索引 . 哈希码算法的输入是键/值对的键 . 哈希码算法采用char *输入并输出整数索引 . Hashtable Get / Set方法可以通过使用void *和数据大小来获取任何类型的输入 . 为了生成一个几乎唯一的索引,输入字符串必须是唯一的,但Set / Get函数需要相互对应,这样如果在Set函数中键是“foo...
  • 1 votes
     answers
     views

    用MPI发送glib哈希表

    我最近遇到了我的并行程序的问题 . 每个进程都有几个需要与其他进程交换的glib哈希表,这些哈希表可能非常大 . 实现这一目标的最佳方法是什么? 创建派生数据类型 使用mpi打包并解压缩 将键和值作为数组发送(问题,因为在编译时不知道元素的数量) 我之前没有使用过1和2,甚至不知道那是否可能,这就是我问你们的原因..
  • 4 votes
     answers
     views

    二进制搜索和哈希表搜索

    我想找出字典查找和数组的二进制搜索查找之间的权衡点 . 我期待字典的持续时间查找,以及二进制搜索的对数时间查找,具体取决于集合的大小,二进制搜索对于较小的集合表现更好 . 但是,当我看到以下结果时,我感到很惊讶: 我很惊讶:1 . 二进制搜索首先以对数方式增长,然后增长得更快 . 哈希起初非常一致,但随后开始慢慢增长 . 3.二进制搜索永远不会比哈希查找更好 . 以下是我的代码 . 我做错了什么...
  • 3 votes
     answers
     views

    H中的Hashtable插入/搜索

    你好,我的哈希表有问题,它实现如下: #define HT_SIZE 10 typedef struct _list_t_ { char key[20]; char string[20]; char prevValue[20]; struct _list_t_ *next; } list_t; typedef struct _hash_table_t_ { ...
  • 0 votes
     answers
     views

    Glib HashTable无法正确插入

    我有一个具有以下结构的文件: finance www.lemonde.fr 4 | Brexit: www.lemonde.fr 2 | divorce www.lemonde.fr 2 www.lequipe.fr 8 | amiable www.lemonde.fr 2 | rupture www.lemonde.fr 2 www.leparisien.com 3 www.lequipe.fr...
  • 0 votes
     answers
     views

    C - 更好地替代STL 's map and Boost' s unordered_map? [关闭]

    我总是发现C编程不方便的一件事是缺少一个好的map / dictionary / hash table / associative array容器类 . C#,Java和Objective-C都有这样的类,即Dictionary <>,Hashtable和NSDictionary,它们大多数都是开箱即用的,具有所有数据类型 . 但是STL的stl :: map和Boost的boost...
  • 33 votes
     answers
     views

    有一个很好的哈希函数的C哈希表?

    我需要在C中使用面向性能的哈希函数实现来实现我将要编码的哈希表 . 我已经环顾四周,只发现了一个问题,询问什么是“一般”的好散列函数 . 我考虑过CRC32(但在哪里可以找到很好的实现?)和一些加密算法 . 不过,我的 table 有非常具体的要求 . 这是表格的样子: 100,000 items max 200,000 capacity (so the load is 0.5) hashing ...
  • 505 votes
     answers
     views

    如何在JavaScript中进行关联数组/散列

    我需要使用JavaScript存储一些统计信息,就像我在C#中这样做: Dictionary<string, int> statistics; statistics["Foo"] = 10; statistics["Goo"] = statistics["Goo"] + 1; statistics.Add("Zoo...
  • 419 votes
     answers
     views

    如何在Bash中定义哈希表?

    什么是Python dictionaries,但在Bash中(应该适用于OS X和Linux) .
  • 21 votes
     answers
     views

    字符串的哈希函数

    我们目前正在处理我 class 的哈希函数 . 我们的教练要求我们在互联网上使用哈希函数来与我们在代码中使用的两个函数进行比较 . 第一个: int HashTable::hash (string word) // POST: the index of entry is returned { int sum = 0; for (int k = 0; k < ...
  • 0 votes
     answers
     views

    制作哈希表

    所以我的时间是索引我的数据库文件格式,在查看了各种方法后,我认为哈希表是我最好的选择 . 因为我今天只熟悉了哈希表的内部工作原理,所以我理解它,所以如果我错了请纠正我: 哈希表的常量大小等于其哈希函数输出大小中可存储的最大值键值对大小桶大小溢出桶大小 . 因此,例如,如果散列函数产生16位哈希值且桶大小为4且值为32位则则为2 ^ 16 * 4 * 6 = 1572864或1.5MB加上溢出 . ...
  • 4 votes
     answers
     views

    释放已使用数据的内存会导致分段错误

    我写了一个哈希表,它基本上由这两个结构组成: typedef struct dictEntry { void *key; void *value; struct dictEntry *next; } dictEntry; typedef struct dict { dictEntry **table; unsigned long size; uns...
  • 0 votes
     answers
     views

    不使用唯一键搜索HashTable

    我有一个包含一个键和一个整数的结构: struct MyStruct { guint32 key; guint64 field1; guint64 field2 guint64 field3; }; 我需要存储到某种dictionarty结构中 . 我选择了一个GHashTable(glib) . MyStruct成员密钥是唯一的,因此我选择使用它作为密钥 . 但是我需要通过在field1上搜索...
  • 40 votes
     answers
     views

    如何在Swift中为Int数组实现Hashable Protocol(自定义字符串结构)

    我正在创建一个类似于 String 的结构,除了它只处理Unicode UTF-32标量值 . 因此,它是 UInt32 的数组 . (有关更多背景信息,请参阅this question . ) 我想做什么 我希望能够将自定义 ScalarString 结构用作字典中的键 . 例如: var suffixDictionary = [ScalarString: ScalarString]() //...
  • 254 votes
     answers
     views

    .NET HashTable与字典 - 字典能否同样快?

    我想弄清楚何时以及为什么要使用Dictionary或HashTable . 我在这里做了一些搜索,发现有人在谈论字典的一般优点,我完全赞同,这导致拳击和拆箱优势,以获得轻微的性能提升 . 但是我也读过字典并不总是按照它们插入的顺序返回对象,它被排序的东西 . 作为HashTable的地方 . 据我了解,这导致HashTable在某些情况下更快 . 我的问题是,这些情况可能是什么?我上面的假设我错了...
  • 0 votes
     answers
     views

    来自哈希表的Zip Byte数组

    我有一个类,它从Local驱动器中选择一个图像并将其放入zip中,在将其转换为zip文件后,它将被读取为字节,并将此字节添加到哈希表并写为.pack文件 . 现在我正在尝试读取此.pack文件并从哈希表获取字节,但我收到错误,错误是 at java.util.zip.InflaterInputStream.fill(InflaterInputStream.java:240)at java.uti...
  • -1 votes
     answers
     views

    从csv文件动态创建数据帧列表

    我想一次读取许多csv文件到一个大的哈希结构,在键下面(这将是csv文件的名称)可以访问特定的数据集 . AFAIK R没有哈希值,因此选择使用带有命名元素的列表(如果这不正确的方法请纠正我) . 我的代码到目前为止: csv_files <- list.files(pattern="*.csv"); datasets <- vector("list&...

热门问题