为了账号安全,请及时绑定邮箱和手机立即绑定

C# 算法求教

C# 算法求教

慕桂英3389331 2018-11-07 09:04:27
今天在做一个小的程序,遇到了一个性能问题,List<User> 中有10W 条记录,User 中存储为Id,Name,Ustr,Pwd 这些数据,当一个用户登录是,登录名是Ustr是一个20位的string 类型。且Ustr 是唯一的。不区分大小写当我从这10W条记录中查询是。速度很慢。不知道大家有没有好的方法。来加快这个速度!
查看完整描述

2 回答

?
慕容3067478

TA贡献1773条经验 获得超3个赞

要具体情况具体分析,

1.List<User>是临时存储用户数据的对象,如果之做简单的1到2次使用就不要再排序了,即使是最快的排序算法也需要nlogn的平均时间复杂度。直接遍历的速度是O(n).

2.如果是长期保存用户信息,并且会给其他的用户使用来验证用户密码等,可以考虑排序。这样长远来看确实效率高了。

3.用户信息考虑别的方式存储,不知道是你数据源的原因还是代码实现的问题。一般考虑方式到数据库里处理。这个是通用的做法。

4.HashTable不错,但是受限制。效率很高o(1).信息是只有键值和键。


查看完整回答
反对 回复 2018-11-12
?
眼眸繁星

TA贡献1873条经验 获得超9个赞

第一种方法:用Ustr做键存哈希表。

第二种方法:用Ustr排序,然后用二分查找,不要遍历。


查看完整回答
反对 回复 2018-11-12
  • 2 回答
  • 0 关注
  • 368 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信