Búsqueda de sitios web

Programa Python para fusionar dos matrices


El proceso de combinar los elementos de las matrices dadas se conoce como fusión. Esta operación se puede realizar de muchas maneras utilizando muchas técnicas. Analicemos todas las técnicas que ayudan a fusionar las matrices dadas en Python. Antes de entrar en las técnicas, comprendamos cómo se produce la fusión de matrices con un escenario simple de entrada y salida.

Escenario de entrada y salida

Considere dos matrices arr1 y arr2.

arr1 = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
arr2 = [ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 ]

Ahora, la matriz fusionada es la matriz resultante que obtenemos después de fusionar las matrices arr1 y arr2.

merged_array = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 ].

Usando el operador "+"

El operador "+" se utiliza para sumar los valores en matemáticas generales. Pero, en el caso de los arrays, su uso es bastante diferente al del resto de aplicaciones. Se puede utilizar para combinar y fusionar las matrices que incorporan la operación de fusión.

Sintaxis

La sintaxis utilizada para fusionar las matrices dadas mediante el operador "+" es la siguiente:

merged_array = arr1 + arr2 + arr3 + arr4 + arr5 + arr6 + arr7 + arr8 + . . . . . . . . . . . . . . . . + arrN

Aquí, arr1, arr2, arr3, arr4, arr5,. . . . . ., arrN son las matrices que se supone que deben fusionarse.

Ejemplo

En este ejemplo, vamos a analizar el proceso de fusionar matrices utilizando el operador "+".

arr1 = [1, 2, 3, 4]
arr2 = [5, 6, 7, 8]
arr3 = [9, 10, 11, 12]
arr4 = [13, 14, 15, 16]
arr5 = [17, 18, 19, 20]
arr6 = [21, 22, 23, 24]
arr7 = [25, 26, 27, 28]
merged_array = arr1 + arr2 + arr3 + arr4 + arr5 + arr6 + arr7 
print("The first array is: ")
print(arr1)

print("The second array is: ")
print(arr2)

print("The third array is: ")
print(arr3)

print("The fourth array is: ")
print(arr4)

print("The fifth array is: ")
print(arr5)

print("The sixth array is: ")
print(arr6)

print("The seventh array is: ")
print(arr7)

print("The merged array of the given arrays after performing merge operation: ")
print(merged_array)

Producción

El resultado del programa anterior es el siguiente:

The first array is: 
[1, 2, 3, 4]
The second array is:
[5, 6, 7, 8]
The third array is:
[9, 10, 11, 12]
The fourth array is:
[13, 14, 15, 16]
The fifth array is:
[17, 18, 19, 20]
The sixth array is:
[21, 22, 23, 24]
The seventh array is:
[25, 26, 27, 28]
The merged array of the given arrays after performing merge operation:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28]

Utilizar el enfoque “ingenuo” o la “técnica ingenua”

Esta técnica se procesa completamente con la ayuda de variables declaradas dentro del programa. Si hay dos matrices que deben fusionarse, entonces se crea una nueva matriz en la que se almacenarán los elementos de ambas matrices. Finalmente, esta matriz se considerará como la matriz fusionada resultante.

De manera similar, si se supone que se fusionarán tres matrices, entonces los elementos de las tres matrices se almacenarán en una cuarta matriz recién creada. Analicemos el algoritmo que sigue esta técnica y luego construyamos el programa.

Ejemplo

En el siguiente ejemplo, analizaremos el proceso de fusionar dos o más matrices utilizando el enfoque Naïve.

  • Paso 1: declare dos o más matrices que desee fusionar.

  • Paso 2: cree una nueva matriz en la que se puedan almacenar los elementos de las matrices iniciales.

  • Paso 3: recorra todos los elementos de las matrices iniciales y almacene esos elementos simultáneamente en la matriz recién creada.

  • Paso 4 : imprime la matriz recién creada después de atravesar todos los elementos.

def merge_arrays(arr1, arr2, size1, size2, arr3):
   i = 0
   j = 0
   k = 0
   while(i < size1):
      arr3[k] = arr1[i]
      k = k + 1
      i = i + 1
   while(j < size2):
      arr3[k] = arr2[j]
      k = k + 1
      j = j + 1
   arr3.sort()

if __name__ == '__main__':

   arr1 = [1, 3, 5, 7, 9, 11]
   size1 = len(arr1)

   arr2 = [0, 2, 4, 6, 8, 10]
   size2 = len(arr2)
   arr3 = [0 for i in range(size1 + size2)]
   merge_arrays(arr1, arr2, size1, size2, arr3)
   print("The first array before merging is: ")
   print(arr1)
   print("The second array before merging is: ")
   print(arr2)

   print("The array after being merged and sorted: ")
   print(arr3)

Producción

El resultado del programa anterior es el siguiente

The first array before merging is: 
[1, 3, 5, 7, 9, 11]
The second array before merging is:
[0, 2, 4, 6, 8, 10]
The array after being merged and sorted:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

Artículos relacionados: