簡體   English   中英

遍歷數組的排列

[英]Iterating over Permutations of an Array

我正在研究一些Java代碼,以進行一些研究,並且需要一種方法來遍歷ArrayList的所有排列。 我已經看過以前在這里問過的一些問題,但是大多數問題都不是我想要做的,而最接近的問題則有關於用Perl編寫的字符串和示例代碼的答案,或者在一個似乎實現的情況下像它會工作...實際上不工作。

理想情況下,我正在尋找提示/代碼段以幫助我編寫一個函數permute(list,i),當我從0轉到list.size()時! 給了我ArrayList的所有排列。

有一種從0到(n!-1)的計數方法,該方法將列出n個元素列表的所有排列。 想法是使用階乘數系統重寫數字,並將數字解釋為確定使用哪種排列的編碼方式。 如果您對此感到好奇,可以使用該算法的C ++實現 我還曾經對此進行過討論 ,以防您需要有關該主題的一些視覺效果。

希望這可以幫助!

如果對所有排列進行迭代就足夠了,請參見以下答案: 逐步遍歷所有排列一次 對於給定的n ,迭代器生成數字0(n-1)所有排列。 您可以將其包裝到另一個迭代器中,該迭代器將數字的排列轉換為數組元素的排列。 (請注意,您不能只將迭代器中的int[]替換為任意數組/列表。該算法需要使用數字。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM