Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo encontrar una disposición completa de una matriz, por ejemplo, dado un número entero.

Cómo encontrar una disposición completa de una matriz, por ejemplo, dado un número entero.

Puede utilizar el lenguaje C para realizar la disposición completa de la matriz. El método detallado es el siguiente

El problema proviene del sitio web de programación integral de Linux C. Defina una matriz. y programa para imprimir su disposición completa

La idea principal del programa es:

1. Mover el primer número al frente (ya está al frente), preparar. para imprimir 1xx y luego comparar los dos últimos números 2 y 3 Haga un arreglo completo.

2. Mueva el segundo número al frente, prepárese para imprimir 2xx y luego organice completamente los dos últimos números 1 y 3.

3. Mueva el tercer número al frente, prepárese para imprimir 3xx y luego organice completamente los dos últimos números 1 y 2.

Se puede ver que este es un proceso recursivo. El problema de organizar completamente toda la secuencia se reduce al problema de organizar completamente sus subsecuencias. Tenga en cuenta que no describí cómo manejar el caso base. Tienes que pensarlo tú mismo. Su programa debe ser versátil. Si cambia la definición de N y la matriz a (por ejemplo, la cambia a una matriz de 4 números), otros códigos pueden hacer todas las permutaciones de 4 números sin modificaciones (***24 permutaciones).

Proceso de resolución de problemas:

1. Cuando N = 1, simplemente imprima la secuencia directamente.

2. Cuando N = 2, sea la matriz [a, b]

Imprima a[0], a[1] (es decir, a, b)

Intercambiar el contenido de a[0], a[1]

Imprimir a[0], a[1] (se ha convertido en [b, a] en este momento)

3. Cuando N = 3, la matriz es [a, b, c]

3.1 Coloque a en la posición de a[0] (originalmente lo mismo es cierto, a[0] = a[0]), imprime la disposición completa de b y c (es decir, la disposición completa de a[1], a[2])

3.2 Coloca b en la posición de a[0] (Esta vez necesita intercambiar a [0] y a [1] de la matriz original), luego imprima la disposición completa de a y c, y luego cámbielas nuevamente a sus posiciones originales después de imprimir, es decir, a aún se restaura a a[0], y b se restaura a a[ 1]

3.3 Coloque c en la posición de a[0] (lo que hay que intercambiar en este momento es a[0] y a[ 2] de la matriz original), y luego imprima el contenido completo de a y b Organice, y luego regrese a la posición original después de imprimir, es decir, a se restaura a a [0] y b se restaura a la posición. de a[1]

En este punto, todo el arreglo está completo