社区
C语言
帖子详情
一个关于索引的问题 火线求救!!!!!
aohan_zhang1
2008-02-25 07:52:52
有一个电话号码前缀和地区的表大致如下:
手机号码前缀 手机前缀长度 电话号码前缀 电话前缀长度 地区
1373902 7 743 3 湖南吉首
1591405 7 755 3 广东深圳
...........
包含全国的地域,大概有6万多行。
要求:来电(手机或电话)显示的时候,要求能根据号码前缀要显示号码所在地区的名称。
请问各位大侠: 用C怎样建立数据结构可以达到既时间和空间都节省的效果??
...全文
176
10
打赏
收藏
一个关于索引的问题 火线求救!!!!!
有一个电话号码前缀和地区的表大致如下: 手机号码前缀 手机前缀长度 电话号码前缀 电话前缀长度 地区 1373902 7 743 3 湖南吉首 1591405 7 755 3 广东深圳 ........... 包含全国的地域,大概有6万多行。 要求:来电(手机或电话)显示的时候,要求能根据号码前缀要显示号码所在地区的名称。 请问各位大侠: 用C怎样建立数据结构可以达到既时间和空间都节省的效果??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
erwin1984
2008-03-03
打赏
举报
回复
用类字典树和Hash算法实现,时间复杂度和空间复杂度均不大。
wjwwgh
2008-03-03
打赏
举报
回复
把手机号码前缀和电话号码前缀分开
不如建两个数据结构
typedef struct
{
long mobPre;//手机号码前缀
int moblong;//手机前缀长度
char cityArea[20];//地区
}MOBNUMBERTYPE;
typedef struct
{
long phoPre;// 电话号码前缀
int pholong;//电话前缀长度
char cityArea[20];//地区
}PHOMOBNUMBERTYPE;
zp1234567
2008-03-03
打赏
举报
回复
用variable code 压缩.
压缩后的数据不但可以节省空间,还可以节省时间.(一般情况下 DESK->MEMORY->CPU CACHE 节省的时间要比 decode 消耗的时间多)
另外的 我建议做多个表 象137,159这样的开头就没必要记录了,还有前缀的长度也没必要记录.这些都很节省空间的.
hustwf
2008-02-26
打赏
举报
回复
根据前缀构造一棵树,每读入一个数字,就往相应的树枝走,找到叶子就行了。算法复杂在树的构造上。
查找应该是最快的。空间上可能需要稍大一点点。
节点数据结构:
typedef struct node{
struct node* path[10];
char* address;
}NODE;
树的结构如图
root
1 2...
1 2...
1234567890 1234567890 ...........
... ...
Jim_King_2000
2008-02-26
打赏
举报
回复
把一个省的前缀集中在一起,构造一个二级哈希表。
szduweibing
2008-02-26
打赏
举报
回复
将号码前缀排序,存储在文件中,由于都是定长的,故二分查找很快
星羽
2008-02-25
打赏
举报
回复
你可以改这个表文件的结构吗?
比如表文件的数据是排序过的,然后再建立一个索引文件,等等
Mnky
2008-02-25
打赏
举报
回复
手机号码前缀,从尾数开始,一位一位筛选,筛到就剩一个就不用再晒了,类似查字典的方法,不要整个字串比较。
电话其实也可以这样,不用特意加上“华东”“华南”等带有意义的判断,直接判断某一位,类似hash表。
lockhall
2008-02-25
打赏
举报
回复
可以先再划分模糊
比如先找到华东地区,然后上海
这样索引效率高点
aohan_zhang1
2008-02-25
打赏
举报
回复
我的想化是:
建立数据结构:
typedef struct
{
long mobPre;//手机号码前缀
long phoPre;// 电话号码前缀
int moblong;//手机前缀长度
int pholong;//电话前缀长度
char cityArea[20];//地区
}NUMBERTYPE;
const NUMBERTYPE numberType[]
{
{1373902, 7 , 743, 3 , "湖南吉首"},
{1591405 , 7 , 755 , 3 , " 广东深圳 "},
.......
{0,0,0,0,NULL},
};
这样做的话耗的内存很大,且查找复杂度比较大。
运算器组成实验报告-下载即用.zip
源码下载地址: https://pan.quark.cn/s/a4b39357ea24 【运算单元构造实验报告】运算单元是计算机硬件系统中的关键构成部分,主要承担执行算术运算和逻辑运算的任务。在本次实验中,我们着重探讨了带有累加器的运算单元的设计,涵盖了溢出识别、有符号数值与无符号数值运算的差异性,以及采用补码方式进行的加法与减法运算的实现机制。 一、实验目标 1. 掌握运算单元的基本构造,理解带有累加器的运算单元的具体实现途径。 2. 学习并领会溢出检测的机制,能够设计并构建溢出检测电路,用以判定运算结果是否超出了数据类型的表示范畴。 3. 明辨有符号数值和无符号数值运算的不同特性,把握它们在运算过程中各自的处理方法。 4. 熟练掌握基于补码方式的加法与减法运算的执行,理解补码形式下的溢出判定准则。 5. 熟悉运算单元内部的数据传输路线,明晰数据在运算过程中的流转路径。 6. 设计
一个
能够支持有符号数值与无符号数值运算、补码加法/减法运算以及有符号数值溢出检测的运算单元电路。 二、实验仪器 采用JZYL—Ⅱ型计算机组成原理实验装置,配备2片74181运算单元芯片作为算术逻辑单元(ALU),2片74LS373用作八位D型锁存器,并辅以一些基础门电路和多路选择器来完成电路设计。 三、实验内容 1. 运用片74181构建
一个
8位运算单元,负责处理数据的高4位与低4位。 2. 设计并实现溢出检测电路,确保在有符号数值与无符号数值的加法运算中均能准确识别溢出状况。 3. 通过74LS373增加累加器功能,使运算结果得以保存。 4. 将所有设计整合,利用多路选择器来支持有符号数值与无符号数值的加法/减法运算。 四、实验电路 1. 8位运算单元由2片74181构成,通过控制...
Xshell-8.0.0102p.rar Xshell
Xshell-8.0.0102p 20260721 uploaded
TeamViewer-Setup-x64
TeamViewer_Setup_x64
Microsoft Root Certificate Authority 2011 zip
源码下载地址: https://pan.quark.cn/s/a4b39357ea24 当尝试安装Microsoft .NET Framework 4.6.2【4.7版本亦可适用】的离线安装包时,系统会弹出提示信息“无法建立到信任根颁发机构的证书链” 1.首先需要获取证书:MicrosoftRootCertificateAuthority2011.cer 2.通过开始菜单中的运行功能启动MMC程序 3.在弹出的窗口中选择文件菜单下的添加/删除管理单元(可以使用快捷键Ctrl+M) 4.在管理单元列表中选中证书并配置为计算机账户(其他选项保持默认设置,直接点击下一步继续) 5.返回主界面,在左侧面板中展开证书节点下的受信任的根证书颁发机构并选择证书文件夹 6.在右侧操作面板中点击所有任务并选择导入功能 7.最后步骤是浏览并选中先前下载好的cer文件进行导入操作。
高校技术转移办公室人员如何通过科创数智大脑推动科研成果转化?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
C语言
70,039
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章