merge con pares
unknown
python
4 years ago
3.1 kB
6
Indexable
# importo random import random # función de ordenamiento def ordenamiento(vector, tamaño): intercambio = True while intercambio: intercambio = False for i in range(0,tamaño-1): if vector[i] > vector[i+1]: intercambio = True swap = vector[i] vector[i] = vector[i+1] vector[i+1] = swap # defino cantidad de elementos (sobredimensiono el C) cantidad_de_elementos_a = 8 cantidad_de_elementos_b = 5 cantidad_de_elementos_c = cantidad_de_elementos_a * cantidad_de_elementos_b # defino vectores vector_a = [0] * cantidad_de_elementos_a vector_b = [0] * cantidad_de_elementos_b vector_c = [-1] * cantidad_de_elementos_c # relleno los vectores for i in range(cantidad_de_elementos_a): vector_a[i] = random.randint(1, 20) for i in range(cantidad_de_elementos_b): vector_b[i] = random.randint(1, 20) # ordeno los vectores ordenamiento(vector_a, cantidad_de_elementos_a) ordenamiento(vector_b, cantidad_de_elementos_b) # muestro los vectores ordenados print("VECTOR A:") for i in range(cantidad_de_elementos_a): print(vector_a[i], end = " ") print(" ") print("VECTOR B:") for i in range(cantidad_de_elementos_b): print(vector_b[i], end = " ") print(" ") # inicializo índices indice_a = 0 indice_b = 0 indice_c = 0 # mezclo while (indice_a < cantidad_de_elementos_a) and (indice_b < cantidad_de_elementos_b): if (vector_a[indice_a] < vector_b[indice_b]): if (vector_a[indice_a] % 2 == 0): vector_c[indice_c] = vector_a[indice_a] indice_a = indice_a + 1 indice_c = indice_c + 1 else: indice_a = indice_a + 1 else: if (vector_b[indice_b] % 2 == 0): vector_c[indice_c] = vector_b[indice_b] indice_b = indice_b + 1 indice_c = indice_c + 1 else: indice_b = indice_b + 1 # mezclo en caso de que hayan sobrado # con el vector a while (indice_a < cantidad_de_elementos_a): if (vector_a[indice_a] % 2 == 0): vector_c[indice_c] = vector_a[indice_a] indice_a = indice_a + 1 indice_c = indice_c + 1 else: indice_a = indice_a + 1 # con el vector b while (indice_b < cantidad_de_elementos_b): if (vector_b[indice_b] % 2 == 0): vector_c[indice_c] = vector_b[indice_b] indice_b = indice_b + 1 indice_c = indice_c + 1 else: indice_b = indice_b + 1 # saco la cantidad util del vector c contador_c = 0 for i in range(cantidad_de_elementos_c): if vector_c[i] > -1: contador_c = contador_c + 1 # defino un nuevo vector c vector_c_nuevo = [-1] * contador_c # filtro el vector c j = 0 for i in range(cantidad_de_elementos_c): if vector_c[i] > -1: vector_c_nuevo[j] = vector_c[i] j = j + 1 # muestro el vector c print(" ") print("VECTOR C:") for i in range(0, contador_c): print(vector_c_nuevo[i], end = " ")
Editor is loading...