社区
C语言
帖子详情
关于字符串到整数的映射问题.
predawning
2003-04-10 06:35:20
这个问题是这样的:
提供唯一字符串作为标识,并产生一个对应的整数.这个整数在整个数据集中也应该是唯一的.这样这个整数又可以作为数据库记录集中的索引.从而通过查找字符串完成数据库的查询.
那么有什么好的算法能够完成字符串到整数的映射呢.即生成一一对应的<字符串,整数>元组.
希望有这方面经验的人热心帮助,如有相关材料,或例子也可推荐.谢谢.
...全文
420
8
打赏
收藏
关于字符串到整数的映射问题.
这个问题是这样的: 提供唯一字符串作为标识,并产生一个对应的整数.这个整数在整个数据集中也应该是唯一的.这样这个整数又可以作为数据库记录集中的索引.从而通过查找字符串完成数据库的查询. 那么有什么好的算法能够完成字符串到整数的映射呢.即生成一一对应的元组. 希望有这方面经验的人热心帮助,如有相关材料,或例子也可推荐.谢谢.
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
predawning
2003-04-11
打赏
举报
回复
kicool(多米诺)
这个例子是个字符串到整数(正负都有)的hash函数.不知道生成的整数是否没有重复?
.
我现在还无法验证.
predawning
2003-04-11
打赏
举报
回复
hash算法我也考虑过.但是,hash出来的值可能会有重复,这不是我想要得.如果hash出来的值唯一,当然是最理想的.因为这个整数是做数据库的标识用的,所以范围不会超过长整形的最大数.
predawning
2003-04-11
打赏
举报
回复
补充一句,这个字符串说到底是路径(数据存放的位置)
kicool
2003-04-10
打赏
举报
回复
详见<<数据结构与算法-面向对象的c++设计模式>>
kicool
2003-04-10
打赏
举报
回复
#include <string>
#include <iostream>
#include <cstdlib>
using namespace std;
typedef int HashValue ;
unsigned int const shift = 6;
HashValue const mask =~0U << (sizeof(HashValue)*8-shift);
HashValue Hash(string const& s)
{
HashValue result = 0;
for(unsigned int i = 0; s[i] !=0; ++i)
result = (result & mask) ^(result <<shift)^s[i];
return result;
};
int main()
{
cout <<Hash("Hash1")<<endl;
cout <<Hash("Hash2")<<endl;
cout <<Hash("Hash33")<<endl;
cout <<Hash("Hash444")<<endl;
cout <<Hash("Hash5555")<<endl;
system("pause");
}
zhoory
2003-04-10
打赏
举报
回复
关注
zhouzhaohan
2003-04-10
打赏
举报
回复
我想这应该是找一个哈希算法。你应该把字符串的特点再说的详细一点,整数的范围有多大等等,这样才有利于找到最有效的算法。我想也许再网上搜搜,又比较经典的算法。但愿这不会变成一个高深的数学问题。
practicaldoing
2003-04-10
打赏
举报
回复
我想,用c++标准程序库中的映射(map)类可以解决问题
28个java常用的工具类源码
这些工具类通常包含了各种实用方法,可以处理
字符串
、集合、日期时间、数学计算等常见任务。以下是一些Java中常见的工具类及其相关知识点: 1. **`java.util.Arrays`**:这个工具类提供了一系列静态方法来操作数组...
将数字转换成文本的程序
当我们谈论将数字转换为文本,如将数字32转换为“thirty two”,这个过程实际上涉及到编程中的
字符串
格式化和数值处理技术。这种功能在日常应用中广泛存在,例如数据报告生成、用户界面交互、以及简单的数据录入验证...
python
字符串
转64位数字_python-将String转换为64位
整数
映射
字符以自定义两位值
映射
...
您将4个不同“数字”的
字符串
解释为数字,因此以4为基数.如果您有一串实际数字,范围为0-3,则可以让int()真正快速地生成一个
整数
.def seq_to_int(seq, _m=str.maketrans('ACGT', '0123')):return int(seq.translate(_m...
8.
字符串
转换
整数
(atoi)(JS实现)
请你来实现一个 atoi 函数,使其能将
字符串
转换成
整数
。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下: 如果第一个非空字符为正或者负号时,则将该符号...
字符串
关键字的散列
映射
(25 分)
再用除留余数法将
整数
映射
到长度为P的散列表中。例如将
字符串
AZDEG插入长度为1009的散列表中,我们首先将26个大写英文字母顺序
映射
到
整数
0~25;再通过移位将其
映射
为3×322+4×32+6=3206;然后根据表长得到,...
C语言
70,020
社区成员
243,264
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章