![]() |
1
7
编辑: 根据注释,如果您希望常见情况下除了“此颜色不显示在输入中”跳过值以外的条目数量相对较少,那么您应该继续使用哈希图(显然只存储实际显示在输入中的值)。 (忽略先前对其他数据结构的讨论,这些数据结构基于对讨论中的算法的错误记忆——您希望使用哈希表) |
![]() |
2
3
如果要创建的数组(大小为0xffffff)比较稀疏,可以尝试创建一个较小的数组作为一个简单的哈希表,其大小为
这是我能预见的唯一出路
|
![]() |
3
1
您可以在堆上malloc(3)0xffffff大小的块(为了简单起见),并像处理数组一样对它们进行寻址。 至于栈溢出。基本上,程序接收到一个sigsegv,这可能是堆栈溢出或访问非法内存或在只读段上写入等的结果。它们都是在相同的错误消息“分段错误”下抽象出来的。 但是为什么不使用更高级的语言,比如支持关联数组的Python呢? |
![]() |
4
0
以可能的速度代价,您可以尝试修改算法,只找到与某个边界对齐的匹配项(每三个或四个符号一次),然后在字节级别执行搜索。 |
![]() |
5
0
您可以创建一个类似“pages”的稀疏排序数组(本例使用256个“pages”,因此最上面的字节是页码):
这将在第一次触摸、读取或写入页面时分配页面。 |
![]() |
6
0
为了避免malloc的开销,可以使用hashtable,其中表中的条目是您的结构,假设它们很小。在您的例子中,一对整数应该足够了,用一个特殊的值来表示表中槽的空性。 |
![]() |
7
0
输出空间中有多少值,即多少 不同的 您映射到的值在0-0xfffff范围内? 使用 randomized universal hashing 您可以使用一个不超过输出空间中值数量2倍的表(对于静态表)来创建一个无冲突哈希函数。 |
![]() |
Community wiki · C中有哪些耗时的操作? 1 年前 |
![]() |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
![]() |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
![]() |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |