C# 算法求教

今天在做一个小的程序,遇到了一个性能问题,List<User> 中有10W 条记录,

User 中存储为Id,Name,Ustr,Pwd 这些数据,

当一个用户登录是,登录名是Ustr是一个20位的string 类型。且Ustr 是唯一的。不区分大小写

当我从这10W条记录中查询是。速度很慢。不知道大家有没有好的方法。来加快这个速度!


慕桂英3389331
浏览 369回答 2
2回答

慕容3067478

要具体情况具体分析,1.List<User>是临时存储用户数据的对象,如果之做简单的1到2次使用就不要再排序了,即使是最快的排序算法也需要nlogn的平均时间复杂度。直接遍历的速度是O(n).2.如果是长期保存用户信息,并且会给其他的用户使用来验证用户密码等,可以考虑排序。这样长远来看确实效率高了。3.用户信息考虑别的方式存储,不知道是你数据源的原因还是代码实现的问题。一般考虑方式到数据库里处理。这个是通用的做法。4.HashTable不错,但是受限制。效率很高o(1).信息是只有键值和键。

眼眸繁星

第一种方法:用Ustr做键存哈希表。第二种方法:用Ustr排序,然后用二分查找,不要遍历。
打开App,查看更多内容
随时随地看视频慕课网APP