[問題] 資料的比較、插入、排序
是這樣的,最近碰到了一個資料排序的問題
假設我有A、B兩個array的資料
資料(4,10),是做一個動作持續4秒,後delay10秒
而A的array會先做而B會跟A的動作做比較如果B
如果B做一個動作和delay的時間比A的delay時間短
則可以插入到A的delay時間中,減少時間的浪費
而A的一個動作做完移至到B需要兩秒的時間(B移動到A也需要兩秒時間)
這個時間也要包含進去,需要達到密合的動作
沒辦法A或B的delay時間到了,卻還在做別的動作
A B
-------------- --------------
| (4,10) | | (2,2) |
-------------- --------------
| (4,10) | | (2,20) |
-------------- --------------
| (2,5) | | (2,5) |
-------------- --------------
如果B可以插入到A中做排序則可以得到C得array
C
--------------
| (A,4) |
--------------
| (B,2) |
--------------
| (delay,2) |
--------------
| (B,2) |
--------------
| (A,4) |
--------------
| (delay,10) |
--------------
| (A,2) |
--------------
| (delay,2) |
--------------
| (B,2) |
--------------
反之,如果沒辦法排序的話則會得到A動作做完再做B動作的array
想請問各位高手...這有甚麼方法可以解決..
我想了很久完全想不到有甚麼解決的辦法Orz.
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.82.82
※ 文章網址: https://www.ptt.cc/bbs/java/M.1472784265.A.CE2.html
→
09/02 10:49, , 1F
09/02 10:49, 1F
推
09/02 13:21, , 2F
09/02 13:21, 2F
不行...a移動到b點後,b才能做事,且這時a需處於delay的時間或a已完成動作QQ
推
09/02 14:58, , 3F
09/02 14:58, 3F
那...B的delay時間呢...假設b的delay時間結束了但a的動作還沒做完這樣也不成立..
因為沒辦法馬上執行b的動作..
推
09/02 15:15, , 4F
09/02 15:15, 4F
→
09/02 15:16, , 5F
09/02 15:16, 5F
→
09/02 15:17, , 6F
09/02 15:17, 6F
→
09/02 15:18, , 7F
09/02 15:18, 7F
大大 我寄信給你了QQ
→
09/02 15:39, , 8F
09/02 15:39, 8F
大大會有問題..如果A動作的delay去做B動作...那B動作的delay時間也不能超過QQ
假設我給參數是這樣
schedule.addtask(new Task(2, 20, 'A'));
schedule.addtask(new Task(8, 10, 'A'));
schedule.addtask(new Task(10, 15, 'A'));
schedule.addtask(new Task(12, 10, 'A'));
taskBs.add(new Task(2, 2, 'B'));
taskBs.add(new Task(12, 10, 'B'));
taskBs.add(new Task(22, 3, 'B'));
taskBs.add(new Task(12, 50, 'B'));
得到的結果是A B B A A A B B
taskBs.add(new Task(12, 10, 'B')); 的delay只有10秒
可是他卻把
schedule.addtask(new Task(10, 15, 'A'));
schedule.addtask(new Task(12, 10, 'A'));
都執行完了 這樣就超過B的delay10秒..
所以應該得到的排序結果是A A A A B B B B才對QQ"
推
09/02 18:01, , 9F
09/02 18:01, 9F
→
09/02 18:01, , 10F
09/02 18:01, 10F
推
09/02 18:12, , 11F
09/02 18:12, 11F
→
09/02 18:12, , 12F
09/02 18:12, 12F
b的動作需在a的delay內做..而a的動作需要再b的delay內做..
而假如a的delay結束後,就要執行下一個a的動作不能因為在執行b的動作
就耽誤到a的動作..反之b也是如此
只要會耽誤到a或b的動作 就沒辦法去做排程QQ..
→
09/02 20:09, , 13F
09/02 20:09, 13F
→
09/02 20:10, , 14F
09/02 20:10, 14F
→
09/02 20:10, , 15F
09/02 20:10, 15F
往下做幾步後卡delay??如果卡delay就是A做完在換B做..
所以我的意思是兩個排完後才執行動作QQ...應該會有一個array來暫存正在排序的動作
→
09/02 20:33, , 16F
09/02 20:33, 16F
→
09/02 20:35, , 17F
09/02 20:35, 17F
※ 編輯: gene07 (36.230.203.80), 09/02/2016 21:13:18
→
09/02 23:44, , 18F
09/02 23:44, 18F
推
09/03 03:42, , 19F
09/03 03:42, 19F
→
09/03 03:42, , 20F
09/03 03:42, 20F
→
09/03 03:46, , 21F
09/03 03:46, 21F
→
09/03 03:47, , 22F
09/03 03:47, 22F
→
09/03 03:47, , 23F
09/03 03:47, 23F
→
09/03 03:47, , 24F
09/03 03:47, 24F
推
09/03 03:54, , 25F
09/03 03:54, 25F
→
09/03 03:55, , 26F
09/03 03:55, 26F
→
09/03 03:55, , 27F
09/03 03:55, 27F
推
09/03 04:00, , 28F
09/03 04:00, 28F
→
09/03 04:00, , 29F
09/03 04:00, 29F
→
09/03 14:31, , 30F
09/03 14:31, 30F
→
09/03 14:31, , 31F
09/03 14:31, 31F
→
09/03 14:38, , 32F
09/03 14:38, 32F
→
09/03 14:39, , 33F
09/03 14:39, 33F
→
09/03 14:40, , 34F
09/03 14:40, 34F
→
09/03 14:42, , 35F
09/03 14:42, 35F
→
09/03 14:43, , 36F
09/03 14:43, 36F
→
09/03 14:44, , 37F
09/03 14:44, 37F
我的意思是..
(2, 20, 'A')-->A做完後delay20秒(20秒內會做:往B移動2秒+B動作2秒+B delay2秒+
B的第2個洞做12秒+回A的動作2秒)
(2, 2, 'B')
(12, 10, 'B')-->(因為這邊跑到A後需要兩秒 所以B delay只剩八秒)
(8, 10, 'A') -->(而A若做完8秒的動作在+跑去B所需的兩秒就超過B所剩的8秒delay)
就沒辦法做排序了..
→
09/03 14:46, , 38F
09/03 14:46, 38F
→
09/03 14:47, , 39F
09/03 14:47, 39F
→
09/03 14:48, , 40F
09/03 14:48, 40F
→
09/03 14:54, , 41F
09/03 14:54, 41F
→
09/03 14:55, , 42F
09/03 14:55, 42F
→
09/03 14:56, , 43F
09/03 14:56, 43F
→
09/03 14:58, , 44F
09/03 14:58, 44F
→
09/03 15:00, , 45F
09/03 15:00, 45F
→
09/03 15:01, , 46F
09/03 15:01, 46F
→
09/03 15:02, , 47F
09/03 15:02, 47F
→
09/03 15:09, , 48F
09/03 15:09, 48F
→
09/03 15:18, , 49F
09/03 15:18, 49F
→
09/03 15:24, , 50F
09/03 15:24, 50F
→
09/03 15:25, , 51F
09/03 15:25, 51F
→
09/03 15:53, , 52F
09/03 15:53, 52F
→
09/03 15:57, , 53F
09/03 15:57, 53F
→
09/03 15:57, , 54F
09/03 15:57, 54F
...是的
※ 編輯: gene07 (36.230.203.80), 09/03/2016 15:59:03
討論串 (同標題文章)
java 近期熱門文章
PTT數位生活區 即時熱門文章