亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 395 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號