namespace Fusionar_cadenas
public class CFusionarListas
public static int Fusionar(string[] listaA, string[] listaB,
int ind = 0, indA = 0, indB = 0, indC = 0;
if (listaA.Length + listaB.Length == 0)
while (indA<listaA.Length && indB<listaB.Length)
if (listaA[indA].CompareTo(listaB[indB])<0)
listaC[indC++] = listaA[indA++];
listaC[indC++] = listaB[indB++];
for (ind = indA; ind < listaA.Length; ind++)
listaC[indC++] = listaA[ind];
for (ind = indB; ind < listaB.Length; ind++)
listaC[indC++] = listaB[ind];
static public void Main(string[] args)
Console.WriteLine("Este programa fusionará dos listas de palabras o cadenas de caracteres ordenadas alfabéticamente. \n\n" +
"Ahora introduce el número de elementos de la PRIMERA LISTA:");
int num1 = int.Parse(Console.ReadLine());
string[] lista1 = new string[num1];
for (int i = 0; i < num1; i++)
Console.Write("Dame la palabra número "+(i+1)+":");
lista1[i] = Console.ReadLine();
Console.Write("Esta es la PRIMERA LISTA ordenada alfabéticamente:");
foreach (string elemento in lista1)
Console.Write("|"+elemento+ "|");
Console.WriteLine("\n\nAhora introduce el número de elementos de la SEGUNDA LISTA:");
int num2 = int.Parse(Console.ReadLine());
string[] lista2 = new string[num2];
for (int i = 0; i < num2; i++)
Console.Write("Dame la palabra número " + (i + 1) + ":");
lista2[i] = Console.ReadLine();
Console.Write("Esta es la SEGUNDA LISTA ordenada alfabéticamente:");
foreach (string elemento in lista2)
Console.Write("|" + elemento + "|");
string[] lista3 = new string[lista1.Length + lista2.Length];
r = Fusionar(lista1, lista2, lista3);
Console.WriteLine("\n\n-----------------------------------------------------------------\n" +
"ESTE ES EL RESULTADO DE FUSIONAR LAS DOS LISTAS DE FORMA ORDENADA\n" +
"-----------------------------------------------------------------\n");
for (ind = 0; ind < lista3.Length; ind++)
Console.WriteLine(lista3[ind]);
Console.WriteLine("Error");