推 cowbaying: 我大概了解了 B的延遲可以切割 09/08 13:38
我完全沒有頭緒...~"~
→ cowbaying: 你等我用FX寫一個有進度表的模擬程式給你看看吧 XD 09/08 18:51
魯弟我想到了一個方法,不知道這樣行不行....
(4,10,'A1') | (2,2,'B1')
|
(4,10,'A2') | (2,20,'B2')
|
(2,5,'A3') | (2,5,'B3')
創一個最後輸出的array
然後把執行動作和delay的時間都拆成1秒1秒去判斷
執行動作假設為1,delay動作為0
A1 (往B移兩秒) A2 (往B移兩秒) A3
1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,0,0
(往A移動兩秒) (往A移動兩秒)
B1 B2 B3
1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0
然後把A動作跟B動作去做 & 如果不行A就往後一格繼續跟B比較,
全部都等於0代表排序完成
※ 編輯: gene07 (36.230.202.56), 09/09/2016 22:25:29
→ ssccg: 一秒一秒去比是對的,但是不用把輸出轉出來,用範圍去比 09/10 09:37
→ ssccg: 但是就是我之前說的,如果輸入n個,每個值為k bit,這演算 09/10 09:43
→ ssccg: 法複雜度是O(n^2 * 2^k),雖然是對的... 09/10 09:44
→ ssccg: 其實我一開始想到的作法就是 09/10 09:45
→ ssccg: AAAAAA********AAAAAA********AAAA***(後面可補*****... 09/10 09:47
→ ssccg: BBBBBBBB******************BBBB*** 09/10 09:48
→ ssccg: 然後直接用string match的演算法去跑就好了 09/10 09:50