Está en la página 1de 3

UNIVERSIDAD TECNOLÓGICA DE PUEBLA

Educación Tecnológica de Puebla

TSU: SISTEMAS INFORMÁTICOS

ESTRUCTURA DE DATOS

CÓDIGO: MERGE SORT

ALUMNOS:
PÉREZ PÉREZ FERNANDO
CALVARIO LOPEZ OSCAR
OCTAVIANO EDGAR
ESPINOZA CORTES GUILLERMO
SANTOS VAZQUEZ FRANCISCO

DOCENTE: ROLDAN OROPEZA NORMA


ANGELICA
CLASE ORDENAMIENTO
public class Ordenamiento
{
public int[] MezclaDirecta(int [] arreglo)//52
{
int i, j, k;
if (arreglo.Length > 1)
{
int nElemIzq = arreglo.Length / 2;
int nElemDer = arreglo.Length - nElemIzq;
int[] arrIzq = new int[nElemIzq];
int[] arrDer = new int[nElemDer];
for (i = 0; i < nElemIzq; i++)
{ arrIzq[i] = arreglo[i]; }
for (i = nElemIzq; i < nElemIzq+nElemDer; i++)
arrDer[i - nElemIzq] = arreglo[i];
//Recursividad
arrIzq = MezclaDirecta(arrIzq);
arrDer = MezclaDirecta(arrDer);
i = 0;j = 0;k = 0;
while (arrIzq.Length != j && arrDer.Length != k)
{
if (arrIzq[j] < arrDer[k])
{
arreglo[i] = arrIzq[j];
i++;
j++;
}
else
{
arreglo[i] = arrDer[k];
i++;
k++;
}
}
while (arrIzq.Length != j)
{
arreglo[i] = arrIzq[j];
i++;
j++;
}
while (arrDer.Length != k)
{
arreglo[i] = arrDer[k];
i++;
k++;
}
}
return arreglo;
}
public void muestraArreglo(int[] arreglo)
{
for (int i = 0; i < arreglo.Length; i++)
{
Console.WriteLine(arreglo[i] + "\t");
}
Console.ReadKey();
}
}

CLASE MAIN

class Program
{
static void Main(string[] args)
{
Ordenamiento obj = new Ordenamiento();
int[] ejemplo = new int[] { 15, 12, 22, -4, 1, -8, 157 };
Console.WriteLine("Arreglo Ordenado");
ejemplo = obj.MezclaDirecta(ejemplo);
obj.muestraArreglo(ejemplo);
}
}

También podría gustarte