Array full array (recursivo) -Java

Suponiendo que hay 6 números en disposición completa (1, 2, 3, 4, 5, 6),
entonces debe haber las siguientes seis situaciones
=> 1,2, 3, 4, 5, 6
=> 2 ,1, 3, 4, 5, 6
=> 3 ,2, 1, 4, 5, 6
=> 4 ,2, 3, 1, 5, 6
=> 5 ,2, 3, 4, 1, 6
=> 6 ,2, 3, 4, 5, 1
Entonces la parte seleccionada está completamente ordenada,
es decir, cada número que aparece en este conjunto de datos debe aparecer una vez como inicio,
según este principio, se puede escribir un algoritmo recursivo para realizar la disposición completa del arreglo.

public static void main(String[] args) {
    
    
	int A[] = new int[]{
    
    1, 2, 3};
    perm(A, 0);
}

public static void swap(int A[], int i, int j) {
    
    
    int temp = A[i];
    A[i] = A[j];
    A[j] = temp;
}

public static void printArray(int A[], int n) {
    
    
    for (int i : A) {
    
    
        System.out.print(i + " ");
    }
    System.out.println();
}

public static void perm(int A[], int p) {
    
    
    if (p == A.length) {
    
    
        printArray(A, A.length - 1);
    } else {
    
    
        for (int i = p; i < A.length; i++) {
    
    
            swap(A, i, p);
            perm(A, p + 1);
            swap(A, i, p);
        }
    }
}

Supongo que te gusta

Origin blog.csdn.net/m0_46390568/article/details/107552223
Recomendado
Clasificación