第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

C# 算法求教

C# 算法求教

慕桂英3389331 2018-11-07 09:04:27
今天在做一個小的程序,遇到了一個性能問題,List<User> 中有10W 條記錄,User 中存儲為Id,Name,Ustr,Pwd 這些數(shù)據(jù),當(dāng)一個用戶登錄是,登錄名是Ustr是一個20位的string 類型。且Ustr 是唯一的。不區(qū)分大小寫當(dāng)我從這10W條記錄中查詢是。速度很慢。不知道大家有沒有好的方法。來加快這個速度!
查看完整描述

2 回答

?
慕容3067478

TA貢獻(xiàn)1773條經(jīng)驗 獲得超3個贊

要具體情況具體分析,

1.List<User>是臨時存儲用戶數(shù)據(jù)的對象,如果之做簡單的1到2次使用就不要再排序了,即使是最快的排序算法也需要nlogn的平均時間復(fù)雜度。直接遍歷的速度是O(n).

2.如果是長期保存用戶信息,并且會給其他的用戶使用來驗證用戶密碼等,可以考慮排序。這樣長遠(yuǎn)來看確實效率高了。

3.用戶信息考慮別的方式存儲,不知道是你數(shù)據(jù)源的原因還是代碼實現(xiàn)的問題。一般考慮方式到數(shù)據(jù)庫里處理。這個是通用的做法。

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


查看完整回答
反對 回復(fù) 2018-11-12
?
眼眸繁星

TA貢獻(xiàn)1873條經(jīng)驗 獲得超9個贊

第一種方法:用Ustr做鍵存哈希表。

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


查看完整回答
反對 回復(fù) 2018-11-12
  • 2 回答
  • 0 關(guān)注
  • 387 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號