[問題] 如何快速尋找兩陣列的對應關係?

看板C_and_CPP (C/C++)作者 (太妍魂)時間14年前 (2011/08/11 15:08), 編輯推噓5(505)
留言10則, 8人參與, 最新討論串1/1
想詢問有沒有什麼方法,可以快速的尋找兩個陣列中的index對應關係 如果有內建的函式可以幫忙就更好了+_+ 舉例如下 =========================================================================== 假設一陣列P中存放整數(其中數值不會重複) 及排序後陣列Pbar,想要尋找對應關係陣列T,分別如下 一陣列P index 0 1 2 3 4 5 P 32 96 75 43 5 58 排序後陣列Pbar index 0 1 2 3 4 5 Pbar 5 32 43 58 75 96 對應矩陣T index 0 1 2 3 4 5 T 1 5 4 2 0 3 P中矩陣的 index 0 之內容 對應到 排序後Pbar的index 1 之內容 所以T[0]=1 index 1 index 5 T[1]=5 ... ... ============================================================================ 我目前是用最笨的方法, 從P[0]開始去Pbar中掃瞄一次,找到後break, 找P[1],再掃瞄Pbar一次....,找到後break, 找P[2]..... 要用到的矩陣長度是262144,這樣找速度很慢,...囧rz 需要一些hint 謝謝<(_ _)> -- ∥ | ====人生オワタ\^o^/視力檢測==== ∥未 來 |︿ ︿  ︿ ︿ 看不見! ∥  ↖(。ω。) (⊙▽●) / ∥ ̄ ̄ C ) ( と □ ∪ ∪ ∪∪ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.92.107

08/11 15:09, , 1F
C or C++?
08/11 15:09, 1F

08/11 15:13, , 2F
C++ @@
08/11 15:13, 2F

08/11 15:14, , 3F
std::binary_search
08/11 15:14, 3F

08/11 15:17, , 4F
開一個struct存值和原本的index?
08/11 15:17, 4F

08/11 15:17, , 5F
sorting前先做資料結構 把index跟data綁在一起後再排序?
08/11 15:17, 5F

08/11 15:17, , 6F
我慢了><
08/11 15:17, 6F

08/11 15:30, , 7F
08/11 15:30, 7F

08/11 15:42, , 8F
謝謝c大 好厲害
08/11 15:42, 8F

08/11 16:19, , 9F
你可以反過來想-> sort index
08/11 16:19, 9F

08/11 21:51, , 10F
http://codepad.org/04bkBnw5 <= 不綁在一起排序的版本
08/11 21:51, 10F
文章代碼(AID): #1EGt_Min (C_and_CPP)
文章代碼(AID): #1EGt_Min (C_and_CPP)