Javascript 更好的搜索算法可以提高性能吗?
我在页面中显示学生列表,我将学生信息存储为id和名称为的对象 如果列表中有滚动条,我想添加搜索框来搜索学生 并根据搜索字符串更新学生列表 现在我正在迭代student对象数组并检查名称中搜索字符串的索引 是否有更好的算法来提高性能 //我的代码: 搜索=函数(数据、查询字符串) { var res=新数组(); 用于(stu输入数据){ if(stu.name.search(queryString)!=-1){ 再推(stu); } } 返回res;Javascript 更好的搜索算法可以提高性能吗?,javascript,algorithm,performance,search,Javascript,Algorithm,Performance,Search,我在页面中显示学生列表,我将学生信息存储为id和名称为的对象 如果列表中有滚动条,我想添加搜索框来搜索学生 并根据搜索字符串更新学生列表 现在我正在迭代student对象数组并检查名称中搜索字符串的索引 是否有更好的算法来提高性能 //我的代码: 搜索=函数(数据、查询字符串) { var res=新数组(); 用于(stu输入数据){ if(stu.name.search(queryString)!=-1){ 再推(stu); } } 返回res; }您希望查找压缩空节点的trie数据结构、基
}您希望查找压缩空节点的trie数据结构、基数trie或临界位trie。您需要查找kart-trie,这是基数trie的一个特殊版本,其中一个节点中只有两条边。一般来说,trie适用于文本搜索算法,例如字典。我在phpclasses.org(karttrie)上用php实现了karttrie。欢迎您下载并使用它 您可以构建排序索引并使用二进制搜索。如果需要按多个条件(例如名称或ID)进行搜索,则可使用多个索引。实现起来比树更简单。显示您当前的代码。除非这个列表中有成千上万的学生,否则这应该是相当快的。一些学生可能会在创建排序索引后添加索引。当然,如果插入新的学生,索引将必须更新。否则就不行了。