更好的搜索算法来提高性能?

时间:2011-03-31 13:24:52

标签: javascript algorithm performance search

我有一个在页面中显示的学生列表,我将学生信息存储为具有id和名称的对象。

如果列表中有滚动条,我想添加搜索框来搜索学生。

根据搜索字符串更新学生列表。

现在我正在迭代学生对象数组并检查名称中搜索字符串的索引。

是否有更好的算法来提高性能。

//我的代码:

search = function(data,queryString) {    var res = new array();       for(stu in data){            if(stu.name.search(queryString)!= -1){                  res.push(STU);            }       }    返回资源; }

2 个答案:

答案 0 :(得分:1)

您可以构建排序索引并使用二进制搜索。如果您需要按多个条件搜索多个索引,例如名称或ID。比树更容易实现。

答案 1 :(得分:0)

您想要查找空节点被压缩的trie-datastructure或radix-trie或crit-bit trie。你想找一个kart-trie特殊版本的radix-trie,其中一个节点只有2条边。通常,trie适用于文本搜索算法,例如字典。我已经在phpclasses.org(kart-trie)的php中完成了kart-trie的实现。欢迎您下载并使用它。