Redian新闻
>
在国内容易买到转换插头吗?
avatar
在国内容易买到转换插头吗?# PDA - 掌中宝
p*8
1
比如一个搜索引擎,打入auto,就会在下拉菜单中出现一连串的词,我们可以用trie列
出所有单词,但是
1)有什么好的方法只列出一定数量的单词?比如10个;
2)还有如果内存存不下所有单词,有什么解决方法?我想了下能不能用类似B-Tree的
方法,存比如2个level的node在内存里,剩下的放disk上,或者用多个机器,比如26台
,每台存相应字母(a-z)开头的单词
大家来讨论下吧
avatar
s*e
2
买了件送礼的小电器,来了才发现插头是120伏的, 国内的电子商店里,容易买到这种
转换插头吗?
谢谢!
avatar
p*p
3
1) dfs就行了吧

【在 p*******8 的大作中提到】
: 比如一个搜索引擎,打入auto,就会在下拉菜单中出现一连串的词,我们可以用trie列
: 出所有单词,但是
: 1)有什么好的方法只列出一定数量的单词?比如10个;
: 2)还有如果内存存不下所有单词,有什么解决方法?我想了下能不能用类似B-Tree的
: 方法,存比如2个level的node在内存里,剩下的放disk上,或者用多个机器,比如26台
: ,每台存相应字母(a-z)开头的单词
: 大家来讨论下吧

avatar
v*r
4
国内沃尔玛都有

【在 s*********e 的大作中提到】
: 买了件送礼的小电器,来了才发现插头是120伏的, 国内的电子商店里,容易买到这种
: 转换插头吗?
: 谢谢!

avatar
a*8
5
既然用trie(prefix tree),每个节点存一定数量的string,比如gg就4个,这样空间也不
大吧,当然也存该节点被查询的次数(num),然后每隔一段时间bottom up 更新下,可以
用heap来更新,我是这么想的,不知是否符合楼主的要求,不太明白为什么要用Btree
avatar
a*8
6
我顺便练个:只贴关键的设计部分,欢迎大家提改进意见
class Node
{
char last_c;
int num;
Node* parent;
Node* child[26];
list lsugg;
hash_map msugg;
};
class PrefixTree
{
private:
Node* m_root;
public:
PrefixTree(){m_root = NULL;}
list giveSugg(string word)
{
Node* cur = m_root;
list empty;
for(int i = 0; i < word.size(); i++)
{
cur = cur->child[word[i]];
if(!cur)return empty;
}
return cur->lsugg;
}
void suggInsert(Node* cur,string word)//当前用户选择了suggestion里的
{
cur->msugg[word]->num++;
//reorder the list
}
void gInsert(string word);//一般插入新的
list updateSugg(Node* root)//run every period of time
{
priority_queue heap;//heap_size set to 4 like google
for(int i = 0; i < 26; i++)
{
//merge heap with all root->child[i].updateSugg();
}
list res(from heap);
return res;
}
}
avatar
P*b
7
如果内存不是问题我觉得这样做挺好的。但是如果内存紧张的话,这个bottom up好像比
较expensive阿

【在 a******8 的大作中提到】
: 既然用trie(prefix tree),每个节点存一定数量的string,比如gg就4个,这样空间也不
: 大吧,当然也存该节点被查询的次数(num),然后每隔一段时间bottom up 更新下,可以
: 用heap来更新,我是这么想的,不知是否符合楼主的要求,不太明白为什么要用Btree

avatar
p*8
8
没有说用btree, 说用类似方法存一定level在内存,剩下的放disk, 其实我也不清楚
内存能不能存下。。我写了半天烙印也不听我解释,一直忙他自己的事,偶尔抬一下头
,我就知道我差不多挂了。。

【在 a******8 的大作中提到】
: 既然用trie(prefix tree),每个节点存一定数量的string,比如gg就4个,这样空间也不
: 大吧,当然也存该节点被查询的次数(num),然后每隔一段时间bottom up 更新下,可以
: 用heap来更新,我是这么想的,不知是否符合楼主的要求,不太明白为什么要用Btree

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。