用Java实现搜索算法的关键技术是什么呀?
发布网友
发布时间:2022-04-19 19:43
我来回答
共2个回答
热心网友
时间:2023-09-05 10:30
这个。。。我随便乱说几句啊,说的不对别见笑。
有一个数组 当中存有一些字符串
另外有一个字典文件 我也将它导入一个数组 有50000多个单词
然后要找出字符串中包含的单词
由你给的条件可知:
1。数组 应该是从前到后依次顺序扫描字符串。
2。50000多个单词的字典文件一定优化。具体优化要看具体内容吧。
比如你可以按单词的首字母排序,然后分组。等扫描字符串的时候可以分组比较。但这种方法应该没省多少时间。
你还可以把50000多个单词的字典文件按单词的长度进行分组。比如1个字母的分成一组,二个字母的分成一组。。。。N个字母的分成一组,这样就分成了N组。然后扫描字符串的时候你可以按后续匹配(好象叫这个算法吧,名字记不清了)算法,这样就可以省很多时间了。
你还可以这样做,因为你要查的是单词,单词一定有意义。那你可以直接把你的字符串数组先进行语法、语义分析并分割,然后再去匹配你的字典。这样应该是最快的。但这要用到自然语言处理。。。
热心网友
时间:2023-09-05 10:30
最简单的是 Array.BinarySearch () ;二分法查找。
前提是先排序,也就是:Array.Sort () ;
楼上说的是K叉树或者是N-trie tree,也好的