- / *
- * Programa C para fusionar los elementos de 2 matriz ordenada
- * /
- #include
- vacío principal()
- {
- int matriz1 [50], matriz2 [50], matriz3 [100], m, n, i, j, k = 0;
- printf (“\ n Ingrese el tamaño de la matriz Array 1:”);
- scanf (“% d”, & m);
- printf (“\ n Ingrese elementos ordenados de la matriz 1: \ n”);
- para (i = 0; i <m; i ++)
- {
- scanf (“% d”, & array1 [i]);
- }
- printf (“\ n Ingrese el tamaño de la matriz 2:”);
- scanf (“% d”, & n);
- printf (“\ n Ingrese elementos ordenados de la matriz 2: \ n”);
- para (i = 0; i <n; i ++)
- {
- scanf (“% d”, & array2 [i]);
- }
- i = 0;
- j = 0;
- mientras que (i <m && j <n)
- {
- if (matriz1 [i] <matriz2 [j])
- {
- matriz3 [k] = matriz1 [i];
- i ++;
- }
- más
- {
- matriz3 [k] = matriz2 [j];
- j ++;
- }
- k ++;
- }
- si (i> = m)
- {
- mientras que (j <n)
- {
- matriz3 [k] = matriz2 [j];
- j ++;
- k ++;
- }
- }
- si (j> = n)
- {
- mientras (i <m)
- {
- matriz3 [k] = matriz1 [i];
- i ++;
- k ++;
- }
- }
- printf (“\ n Después de combinar: \ n”);
- para (i = 0; i <m + n; i ++)
- {
- printf (“\ n% d”, matriz3 [i]);
- }
- }
Cómo fusionar dos arreglos ordenados
Related Content
Cómo conectar el modelo BPMN con la estructura de datos existente
¿Cuál es la diferencia entre un árbol AVL y un árbol de búsqueda binario?
¿Para qué sirve un tamaño de obtención de matriz?
¿Podemos, y qué significa, 'crear algoritmos sin codificación'?
Lets say you have two sorted arrays - arr1 and arr2
final result will be stored in array arr. (arr is sufficiently big to store elements of arr1 and arr2)
Aquí hay un pseudocódigo simple que se puede codificar en cualquier idioma:
/ *
* i: índice para arr1
* j: índice para arr2
* k: índice para arr
* n1: tamaño de arr1
* n2: tamaño de arr2
* n: tamaño de arr (n> = n1 + n2)
* /
i = j = k = 0 // inicio del índice
/ * Mientras bucle para escanear cada conjunto y almacenar elementos en un orden no ascendente * /
while (hay algún elemento en arr1 y arr2 ambos)
{
/ * mientras que los elementos de arr1 son menores que los elementos de arr2, almacenar
elementos de arr1 en arr * /
while (arr1 [i] <= arr2 [j] AND i
k = k + 1
i = i + 1
}
if (i> = n1) {// índice de matriz está basado en 0
rotura; // romper desde el bucle while
}
/ * mientras que los elementos de arr2 son menores que los elementos de arr2, almacenar
elementos de arr1 en arr * /
while (arr2 [i] <= arr1 [j] {
arr [k] = arr [j]
k = k + 1
j = i + 1
}
if (j> = n2) {// índice de matriz está basado en 0
rotura; // romper desde el bucle while
}
}
/ * copiar elementos que quedan en arr1 y arr2 en arr arr * /
mientras que (i
k = k + 1
i = i + 1
}
mientras que (i
k = k + 1
j = i + 1
}
Encuentre su programa para fusionar dos conjuntos ordenados en C [correo electrónico protegido] http://www.progspace.com
Por favor verifique el algoritmo Merge Sort.
More Interesting
¿Cómo están sucediendo los campos de entrenamiento de algoritmos?
¿Qué es recursivo en matemáticas?
Cómo ejecutar cruces en algoritmos genéticos con cromosomas codificados por gráficos
Cómo escribir un algoritmo para continuar esta secuencia: x, y, xx, xy, yx, yy, xxx
¿Por qué no hay implementación de montón de Fibonacci en la API Java estándar?
¿Es la prueba de primalidad Rabin-Miller más rápida que el tamiz de Eratóstenes?
Cómo aprender a escribir buenos algoritmos
¿Cuál es el algoritmo de recomendación para StackOverflow?
¿Cuál es la ventaja de buscar en una lista ordenada en lugar de en una lista no ordenada?
Me da miedo mirar las preguntas en GeekForGeeks, ¿cómo superar este miedo?
¿Cómo se calcula el PageRank? ¿Cuál fue el PageRank inicial? ¿Cómo comienza el algoritmo?