Está en la página 1de 3

namespace Burbuja

{
class Program
{
static void Main(string[] args)
{
Console.Title = "P45 - MÉTODO DE INTERCALACIÓN SIMPLE (MÉTODO
DOS) DE MANERA ASCENDENTE - ";
int[] Lista1 = new int[10]; // declaración de arreglos
int[] Lista2 = new int[15];

int C; // contador
Console.BackgroundColor = ConsoleColor.Cyan;
Console.ForegroundColor = ConsoleColor.Red;
Console.Clear();

Random aleatorio = new Random(); // números aleatorios

// Generar arreglos
for (C = 0; C < 10; C++)
{
Lista1[C] = (ushort)aleatorio.Next(); // arreglo 1
}

for (C = 0; C < 15; C++)


{
Lista2[C] = (ushort)aleatorio.Next(); // arreglo 2
}

//Despligue de arreglos originales


Console.Write("-- DESPLIEGUE DE LISTAS GENERADAS (SIN ORDENAR)
--\n\n"); Console.Write("Lista 1:\n");
for (C = 0; C < 10; C++)
{
Console.Write("{0} ", Lista1[C]); // arreglo 1
}
Console.Write("\n\nLista 2:\n");
for (C = 0; C < 15; C++)
{
Console.Write("{0} ", Lista2[C]); // arreglo 2
}
// ordenamiento
Console.Write("\n\n\n-- DESPLIEGUE DE LISTAS ORDENADAS
(ASCENDENTE) --\n\n");
Console.Write("Lista 1: \n");
BurbujaSimple(Lista1); //arreglo 1
Console.Write("\n\nLista 2: \n");
BurbujaSimple(Lista2); // arreglo 2
Console.Write("\n\n\n...Presione ENTER para continuar");
Console.ReadKey(); Console.Clear();
// método de intercalación
Intercalacion_Simple(Lista1, Lista2);

Console.Write("\n\nPrograma finalizado... presione ENTER para


salir"); Console.ReadKey();
}

public static void BurbujaSimple(int[] lista) //método ordenamiento por búrbuja simple
{
int x = 0, T = 0;

while (x < lista.Length)


{
for (int y = x + 1; y < lista.Length; y++)
{
if ((lista[x] > lista[y])) //comparaciones
{
T = lista[x];
lista[x] = lista[y];
lista[y] = T;
}
}
x++; //incremento
}

for (int C1 = 0; C1 < lista.Length; C1++)


{
Console.Write("{0} ", lista[C1]); //despliegue arreglo ordenado
}
}

public static void Intercalacion_Simple(int[] Arreglo1, int[] Arreglo2)


{
int N = Arreglo1.Length; // asignar valor del tamaño de cada arreglo
int M = Arreglo2.Length;

int[] Arreglo3 = new int[N + M]; //declaración nuevo arreglo


int i = 0, j = 0, k = 0;

while (i < N && j < M) // comparaciones en el ordenamiento


{
if (Arreglo1[i] <= Arreglo2[j])
{
Arreglo3[k] = Arreglo1[i];
i++;
}
else
{
Arreglo3[k] = Arreglo2[j];
j++;
}
k++;
}

if (i == N) // copiar los valores al arreglo 3


{
for (int p = j; p < M; p++)
{
Arreglo3[k] = Arreglo2[p];
k++;
}
}
else
{
for (int p = i; p < N; p++)
{
Arreglo3[k] = Arreglo1[p];
k++;
}
}

// despliegue del arreglo resultante


Console.Write("-- ARREGLO 3 (INTERCALADO ASCENDENTE)
--\n\n"); for (int C = 0; C < Arreglo3.Length; C++)
{
Console.Write("{0} ", Arreglo3[C]); // arreglo intercalado
}
}
}
}
////Nombre: Garcia Garcia Alexandra Isabella
////Numero de Control: 20210936
////Materia: Estructura de Datos
//Grupo: R
////Serie: Sc3r

También podría gustarte