Re: permutation algorithm

看板CSSE (電腦科學及軟體工程)作者 (York)時間18年前 (2006/11/18 11:31), 編輯推噓3(303)
留言6則, 3人參與, 最新討論串5/7 (看更多)
◆ From: 61.228.199.201

11/17 21:43,
原 po 是問想做到 space 複雜度為 O(1), 不是 time ...
11/17 21:43

11/17 23:23,
我也看走眼了 :p
11/17 23:23

11/18 01:09,
他的意思是 in place permutation ?
11/18 01:09

11/18 04:13,
唔,大概是我弄錯了,可這不是 swap 頭尾成對的偶數項就好?
11/18 04:13

11/18 04:21,
btw, 我所謂頭尾成對偶數項,尾巴那隻是倒數的偶數項。
11/18 04:21
利用多次 swap,有一個 space O(1), time O(N^2) 的方法, 過程舉例如下: 0 (1 2) (3 4) (5 6) (7 8) 9 0 2 (1 4) (3 6) (5 8) 7 9 0 2 4 (1 6) (3 8) 5 7 9 0 2 4 6 (1 8) 3 5 7 9 0 2 4 6 8 1 3 5 7 9 每個 pass 都把括號內的數對 swap... 這其實是以 in place 法求轉置矩陣的一個特例, 換句話說,它是求 N by 2 矩陣的轉置(transpose) 有興趣的人,可以幫忙推廣成適用於 n by m 矩陣 的轉置矩陣。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.59.14.146 ※ 編輯: ykjiang 來自: 61.59.14.146 (11/18 12:12)

11/18 20:56, , 1F
好方法
11/18 20:56, 1F

11/19 02:09, , 2F
從這個方法出發,我幾乎可以確定 space O(1), time O(N)
11/19 02:09, 2F

11/19 02:10, , 3F
的方法存在,有興趣的人可以推推看 :)
11/19 02:10, 3F

11/20 01:19, , 4F
雖然 swap 的順序不同,但我想到的跟這一樣,推~
11/20 01:19, 4F

11/20 01:19, , 5F
BTW, 這個問題應該可以視為 bipartite,所以 space O(1) 應該
11/20 01:19, 5F

11/20 01:20, , 6F
可是同時要 time O(N) 就不知道了,感覺上好像頂多 O(NlogN)
11/20 01:20, 6F
文章代碼(AID): #15Ndvy6X (CSSE)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 5 之 7 篇):
文章代碼(AID): #15Ndvy6X (CSSE)