關于兩集合對比,請教各位高手一個高效的演算法或問題解決辦法
現有LIST1和LIST2, 行*列=5000*5
表1 第一學期
姓名 語文 數學 英語 物理
老大 10 20 30 40
老二 10 20 30 40
老三 10 20 30 40
老四 10 20 30 40
.
.
.
表2 第二學期
姓名 語文 數學 英語 物理
老二 10 20 30 50
老大 10 20 30 40
老三 10 20 40 40
老四 10 20 30 40
.
.
.
存放名字所在行位置會變,名字沒有重復
想找出第二學期考式比第一學期單科高出10分的人,不管哪科高出10分都推出名字
兩層回圈實在是太慢了
例,結果推出老二,老三
另:處理這類問題有沒有先放到庫里落地,對比完,再拿結果這樣的解決辦法
uj5u.com熱心網友回復:
放資料庫里join 一下就出結果何樂而不為?uj5u.com熱心網友回復:
況且你后面應該不止這點需求,有人轉學了也要找出來吧。。。。。。。。。。。。。。。uj5u.com熱心網友回復:
今天第2個一模一樣的問題你不打算先把L1變成hash字典么
如果L1是字典,那么你只需要回圈L2
這樣演算法算2N,而不是二重回圈的指數級別
uj5u.com熱心網友回復:
可以給段代碼么。。。如果方便的話
uj5u.com熱心網友回復:
也考慮過先落地,不過一存一取效率可能會影響不少,這只是個例子,實際情況是需要不段的對比兩個表,看有沒有可以不落地又高效些的辦法uj5u.com熱心網友回復:
先考慮把其中一個list轉成hashmap,key取list[0],這樣查詢變o(1),另一個list遍歷,list[0]是hashmap中的key,有映射關系可以做比較轉載請註明出處,本文鏈接:https://www.uj5u.com/net/232282.html
標籤:C#
