菜鸟求一个高效率的java模糊查询算法,希望各位前辈帮帮忙。。。

陈志凯 2011-09-13 05:18:55
这两天我在研究搜索引擎,今天下午好不容易写了个简单易懂的算法,只是。。。
这个效率嘛,就见不得人咯。
25万条数据,竟用了15秒钟,汗。。。
比起谷歌的,我没脸见人了。。。
哪位前辈能给个比较快速的算法或者指点下我刚写的、不成器的算法:

/**
* 根据姓名进行模糊查询
* @param ulist
* @param name
* @return
*/
public static void checkByName(List<UserInfo> ulist,String name){
//int index=0;
int scan=ulist.size();
for(int i=0;i<scan;i++){
UserInfo user=ulist.get(i);
for(int k=0;k<user.getName().length();k++){
char s1=user.getName().charAt(k);
for(int h=0;h<name.length();h++){
char s2=name.charAt(h);
if(s1==s2){
h=name.length();
k=user.getName().length();
}
if(s1!=s2 && h==name.length()-1 && k==user.getName().length()-1){
ulist.remove(i);
//需要重新排序
//paixu(ulist,i);
i--;
scan--;
}
}
}
}
}



万分感谢!
...全文
440 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhanghua_1199 2011-09-13
  • 打赏
  • 举报
回复
if (s1 == s2) {
h = name.length();
k = user.getName().length();
}
if (s1 != s2 && h == name.length() - 1
&& k == user.getName().length() - 1) {
ulist.remove(i);
// 需要重新排序
// paixu(ulist,i);
i--;
scan--;
}



-------------------------------------------------
你这是在进行模糊搜索吗,你这明明只是在比较最后一个字,前面的条件完全可以不要的,
再说如果相等了就直接continue就行了,就不要往下执行了,
好的算法我没有,我只能帮到这
陈志凯 2011-09-13
  • 打赏
  • 举报
回复
大伙,积极点啊,别这麽冷淡。。。
陈志凯 2011-09-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 qq413041153 的回复:]
既然说自己最近才研究搜索引擎 两天写出来的东西你和谷歌比! 自己找虐!
[/Quote]
这个。。。。
KingViker 2011-09-13
  • 打赏
  • 举报
回复
既然说自己最近才研究搜索引擎 两天写出来的东西你和谷歌比! 自己找虐!
lvhongfen 2011-09-13
  • 打赏
  • 举报
回复

帮顶一下……
陈志凯 2011-09-13
  • 打赏
  • 举报
回复
没人吗?自己顶自己一下

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧