gpt4 book ai didi

java - 给定一个单词列表 - 在 Java 中什么是单词完成的好算法?权衡 : Speed/efficiency/memory footprint

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:42:39 26 4
gpt4 key购买 nike

我正在研究潜在的免费/付费应用程序的硬件/软件要求(最终目标是移动 Java 应用程序)。

应用程序将从这个简单的目标开始:给定数据库中相关单词的列表,以便能够对单个字符串输入进行单词补全。

换句话说,我已经知道数据库的内容——但算法的内存占用/速度/搜索效率将决定支持的数据量。

我从一开始就使用基于后缀的树搜索,但我想知道是否有人有过这种简单方法与 session 中讨论的更复杂方法的速度/内存大小权衡的经验。

老实说,最初的应用程序在上下文中可能只有不到 500 个单词,所以这可能无关紧要,但最终应用程序可能会扩展到数万或数十万条记录 - 因此是关于速度与内存占用的问题。

我想我可以先从简单的东西开始,然后再切换,但我希望能早点理解权衡!

最佳答案

单词补全表明您想要查找以给定前缀开头的所有单词。

Tries对此有好处,如果您要添加或删除元素,则特别有用 - 其他节点不需要重新分配。

如果字典相当静态,并且检索很重要,请考虑一个简单得多的数据结构:将您的单词放入有序 vector 中!你可以做 binary-search发现以正确前缀开头的候选者,并对其每一侧进行线性搜索以发现所有其他候选者。

关于java - 给定一个单词列表 - 在 Java 中什么是单词完成的好算法?权衡 : Speed/efficiency/memory footprint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1248921/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com