Re: permutation algorithm

看板CSSE (電腦科學及軟體工程)作者 (痞子軍團團長)時間18年前 (2006/11/17 03:27), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/7 (看更多)
※ 引述《jeunder ()》之銘言: : 請教大家一個問題. : 有一個陣列 x[2N] 要將其內容根據某個排列規則做 permutation. : 規則如下: : 就是將 x 的偶數項依序放到 x[0 ~ N-1], : 將 x 的奇數項依序放到 x[N ~ 2N-1]. : 希望能夠做到時間複雜度為 O(N), 這顯然很容易辦到. : 但是我又希望空間複雜度能夠是 O(1), 也就是不可以有隨 N 而變大的暫存變數. : 這是否有可能辦到? : 感覺上似乎和離散數學裡面的 permutation group 有關? : 想請教大家的想法. 謝謝. :) 我不會離散數學 T___T 不過,在存取陣列的時候多包一層就啥事情都沒了 class foo{ private int x[] = new int[2*n]; //普通的取得 element public int getElement(int i){ return x[i] } //特別的取得 element public int getPermutationElement(int i){ if(i>n){ //奇數 return x[(i-n)*2+1]; }else{ return x[i*2]; } } } ===== There is no spoon... -- 侃侃長論鮮窒礙 網站:http://www.psmonkey.idv.tw 眾目睽睽無心顫 個人版:telnet://legend.twbbs.org 煢居少聊常人事 殺頭容易告白難 歡迎參觀 Java 版(@ptt.cc)精華區 \囧/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.228.199.201

11/17 11:28, , 1F
如果每個元素都會用到,這個方法一樣是 O(N)
11/17 11:28, 1F
文章代碼(AID): #15NBkwcX (CSSE)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 2 之 7 篇):
文章代碼(AID): #15NBkwcX (CSSE)