簡體   English   中英

大小為 N 的 java Array 的排列

[英]Perumations of size N java Array

在 C++ 中,可以使用函數next_permutation生成數組的排列。 是否有 Java 等價於這樣的函數來生成大小為 N 的數組的排列?

我正在嘗試提出一個等效的遞歸實現,但正在努力鞏固我的邏輯。

java中沒有這樣的內置函數。 您必須創建自己的,這並不復雜。 我將通過解決方案(不一定是最佳解決方案)立即對此答案進行編輯

public static void printperms(int[] perm, boolean[] used, int k)
{
    if (k == perm.length) print(perm);
    for (int i=0; i<perm.length; i++) {
        if (!used[i]) {
           used[i] = true;
           perm[k] = i;
           printperms(perm, used, k+1);
           used[i] = false;
        }
    }
}

然后你可以像這樣創建一個新方法來調用它:

public void perms(int n){
    printperms(new int[n], new boolean[n], 0);
}

最后,在我有print方法的地方,您可以將數組添加到列表中,以便您可以將它們全部收集在列表中,或者您可以將其打印出來。 你的選擇。 隨心所欲。

暫無
暫無

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

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