2011-05-03 85 views
10

可能重複:
Generating all permutations of a given string生成所有排列在Java中

我在Java中任意長度的數組,我想他們產生的所有可能的排列。這種固定長度的簡單方法是一系列嵌套for循環,但由於數組長度未知,因此這裏不是一個選項。有沒有一種簡單的方法可以在Java中實現這一點?

+2

只需在搜索框中鍵入'[java] permutation' ... – MByD 2011-05-03 23:05:23

+4

如果是數組,則可以使用array.length;如果它是一個List,那麼可以使用list.size()。我不明白「不是一個選擇」。 – duffymo 2011-05-03 23:05:55

+2

@duffymo:所以我希望看到您在代碼中獲得數組長度後即可生成嵌套for循環... – 2011-05-03 23:08:15

回答

3

使用遞歸函數而不是循環。每次調用該方法時,都應該放在陣列的較小部分上,並在長度= 0時停止。此link應該可以幫助您設計功能。

0

就性能而言,它可能也可能不是最佳的,但如果您正在尋找一種方法來編寫相對較少的代碼並使其清晰可維護,則需要遞歸方法而不是嵌套方法循環。