社区
数据结构与算法
帖子详情
请问大量字典查找的算法
billhao
2004-01-03 11:46:28
假设有一个10000词英语字典A为全集,字典B是字典A得子集,要求出字典B的补
集,即字典A中除字典B以外的所有词,请问是否有什么快速算法,否则每个词都
搜索一次太慢了。谢谢。
...全文
197
3
打赏
收藏
请问大量字典查找的算法
假设有一个10000词英语字典A为全集,字典B是字典A得子集,要求出字典B的补 集,即字典A中除字典B以外的所有词,请问是否有什么快速算法,否则每个词都 搜索一次太慢了。谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zqrqq
2004-01-04
打赏
举报
回复
考虑到事先没有排序的情况,进行排序的复杂度是O(nlogn)以上,
这种情况建议你用hash方法存放字典数据。
建立这个hash表的时间复杂度是o(n),如果冲突不过的话,搜索一个记录平均访问量仅用1次多一点(理想情况是1次),也就是说可以通过优化hash散列的方法,使时间复杂度接近与o(n)!
gnefuil
2004-01-04
打赏
举报
回复
方法1:
把A中的单词按字母排序,然后对B中每个单词,在A中二分查找,并标记一下A中在B中出现的单词,最后A中未标记的单词就是B的补集
时间复杂度O(nlogn)
方法2:
按字母顺序建立索引树,我举个例子就清楚了
比如有三个单词abc,acd,ace
建立如下索引树
a__b__c
|_c_d
|_e
就是说从如果两个单词前面一部分相同,就共用前面的结点,从不同的字母开始增加新结点
在这道题里,首先建立A字典的索引树,在每个单词的结束字母处做标记1
然后对每个B中的单词,依次根据每个字母,遍历索引树,当B中的单词到达最后一个字母的时候,把相应的结点做标记2
最后遍历整个索引树,每到达一个做了标记1的地方,判断是否该结点做了标记2
如果没有做标记2,就输出从索引树根节点到该结点所经过的所有字母
如果有标记2,说明该单词在B中,不能输出
这样把索引树遍历一遍之后,所有输出的就是B在A中的补集
这样做的时间复杂度是O(n)
LeeMaRS
2004-01-04
打赏
举报
回复
字典是用什么数据结构存放的?
查找
算法
总结大全(C/C++语言实现)
文章目录1. 顺序
查找
2. 二分
查找
3. 插值
查找
4. 斐波那契
查找
5. 树表
查找
**6. 分块
查找
**7. 哈希
查找
参考:Data Structure & Algorithm] 七大
查找
算法
查找
是在
大量
的信息中寻找一个特定的信息元素,在计算机应用中,
查找
是常用的基本运算,例如编译程序中符号表的
查找
。本文简单概括性的介绍了常见的七种
查找
算法
,说是七种,其实二分
查找
、插值
查找
以及斐波那契
查找
都可以归为一类——插值
查找
。插值
查找
和斐波那契
查找
是在二分
查找
的基础上的优化
查找
算法
。树表
查找
和哈希
查找
会在
数据结构--七大
查找
算法
总结
查找
是在
大量
的信息中寻找一个特定的信息元素,在计算机应用中,
查找
是常用的基本运算,例如编译程序中符号表的
查找
。本文简单概括性的介绍了常见的七种
查找
算法
,说是七种,其实二分
查找
、插值
查找
以及斐波那契
查找
都可以归为一类——插值
查找
。插值
查找
和斐波那契
查找
是在二分
查找
的基础上的优化
查找
算法
。树表
查找
和哈希
查找
会在后续的博文中进行详细介绍。
查找
定义:根据给定的某个值,在
查找
表中确定一个其关键字...
七大
查找
算法
1. 顺序
查找
2. 二分
查找
3. 插值
查找
4. 斐波那契
查找
5. 树表
查找
6. 分块
查找
7. 哈希
查找
查找
是在
大量
的信息中寻找一个特定的信息元素,在计算机应用中,
查找
是常用的基本运算,例如编译程序中符号表的
查找
。本文简单概括性的介绍了常见的七种
查找
算法
,说是七种,其实二分
查找
、插值
查找
以及斐波那契
查找
都可以归为一类——插值
查找
。插值
查找
和斐波那契
查找
是在...
算法
(五)
字典
树
算法
关键词:trie; prefix; search; match;
字典
树,又称单词
查找
树,是一个典型的一对多的字符串匹配
算法
。“一”指的是一个模式串,“多”指的是多个模板串。
字典
树经常被用来统计、排序和保存
大量
的字符串。它利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较。 那它一般应用在什么地方呢?我们举一个例子说明: 假设有一个单词表,里面有10w个单词。如果别人给你2000个...
数据结构–七大
查找
算法
总结
查找
是在
大量
的信息中寻找一个特定的信息元素,在计算机应用中,
查找
是常用的基本运算,例如编译程序中符号表的
查找
。本文简单概括性的介绍了常见的七种
查找
算法
,说是七种,其实二分
查找
、插值
查找
以及斐波那契
查找
都可以归为一类——插值
查找
。插值
查找
和斐波那契
查找
是在二分
查找
的基础上的优化
查找
算法
。树表
查找
和哈希
查找
会在后续的博文中进行详细介绍。
查找
定义:根据给定的某个值,在
查找
表中确定一个其关键字等于...
数据结构与算法
33,007
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章