社区
数据结构与算法
帖子详情
请教词典查询单词的算法?
solitarystar
2003-09-14 08:48:51
查询效率要高的算法
...全文
68
3
打赏
收藏
请教词典查询单词的算法?
查询效率要高的算法
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
caoxic
2003-09-15
打赏
举报
回复
2分法太慢,不能模糊查询,要快可以建索引树,
词典依字母排序后,根据单词分布建树。
数据结构如下:
typedef struct tagSEARCHTREE SEARCHTREE,*LPSEARCHTREE;
struct tagSEARCHTREE
{
LONG position;//索引树的起始位置
LONG wordnumber;//索引树包含单词个数
DWORD reserve;
LPSEARCHTREE sontree[27];//子树,sontree[0]代表‘ ’分支,
//sontree[1]到sontree[26]代表阿a~z分支
};
为解决索引大小与查询速度快慢的矛盾定义一个宏
#define TREELEAFMAXWORD 100
标志叶节点最大包含单词个数。
建索引树为代码如下:
void MakeSearchTree(char *parentname, int pos, int wordnum,int depth)
{
LPSTR treename;
int i,len,sonpos,sonsum[27];
char c;
memset(sonsum,0,sizeof(sonsum));
for(i=0;i< wordnum;i++)
{
c=第 pos+I 单词的 第depth字母;
if(c==空格) sonsum[0]++;
else if(c>=’a’&&c<=’z’) sonsum[c-‘a’+1]++;
}
sonpos=pos;
for(i=0;i<27;i++)
{
if(sonsum[i]> TREELEAFMAXWORD)
{
if(I==0)
sonname= parentname+’_’;
else
sonname= parentname+(I-1+’a’);
MakeSearchTree(sonname,sonpos,sonsum[I],depth+1);
}
sonpos+=sonsum[i];
}
}
将单词每个翻转(ab-ba,abc->cba)以后排序,并将翻转后的索引建表
查询时遇“?”如果有子树进行递归查询,没有子树顺序查找(最多查找TREELEAFMAXWORD次)。
查询时遇“*”,(不允许出现关键词前后都是“*”)。假设__代表一个或多个已知字母。
1,——*型:查找——即可。
2,*——型:在翻转后的树查找——
3,——*——型:1,2查找结果取交集处理(需注意“ba*ad”查找到“bad”)
zzwu
2003-09-15
打赏
举报
回复
用折半查找法(或称2分法)就行了.
solitarystar
2003-09-14
打赏
举报
回复
还有词库的数据结构应该怎么设计
JAVA开发常见
单词
(*)
41.consulting:咨询、
请教
。42.delegated:授权。43.truncated:缩减的、删减的。 44.sufficient:足够的、充足的。45.perform:表演、执行。46.encountered:遇到、遭遇。47.internal(内部的服务器错误):内部的...
how to read paper ——知乎
首先声明,我的方向是机器学习...个人觉得做研究的不同时期读论文的方式也不一样,最开始刚入行的时候当然会一个字一个字的读,甚至还会用
词典
把
单词
的意思查出来标在旁边(我非常反对这么做!你不是在学英语!),我见
【作业四】软件案例分析之必应
词典
比如,你
查询
你一个
单词
,
查询
结果的字体在当前界面中是最大也最明显的,很容易让你一眼找到。下面先来看看两个软件的一些基本界面。 从我使用过的这两款软件上来看,我觉得还是金山词霸的界面更好一些,不管...
今日头条面经汇总
算法
翻转二叉树 最大连续子串和 给一棵边权树树找到最大路径,要找到两个端点怎么办 给一个字符串和
单词
列表,判断字符串能不能由这些
单词
组成 给定一组股票的价格,最多买卖0一次,问最大收益 !!!...
谭浩强《C程序设计》(第四版)错误不完全汇集
前言 p12 ① 数据类型介绍中,增加了C99扩充的双长整型(long long int)、复数浮点型(float complex,double complex ,long ...数据类型都整不明白,还谈什么语言、
算法
呢? C99并没有要求main函数的类型一律指定为int型
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章