6. Algoritmo de ordenación Shell Sort
- En este capítulo del curso de programación en c# con visual studio 2017 vamos a continuar viendo algunos algoritmos de ordenación de vectores o arrays. En esta ocasión veremos el algoritmo de de ordenación Shell Sort.
- El Shell sort es una generalización del ordenamiento por inserción, teniendo en cuenta que el ordenamiento por inserción es eficiente si la entrada está "casi ordenada". El ordenamiento por inserción es ineficiente, en general, porque mueve los valores sólo una posición cada vez. El algoritmo Shell sort mejora el ordenamiento por inserción comparando elementos separados por un espacio de varias posiciones
- Os dejo un enlace a información más detallada sobre este algoritmo: https://es.wikipedia.org/wiki/Ordenamiento_Shell
- Una vez visto esto ya podemos ver el vídeo con la explicación:
- Os dejo el código del algoritmo visto en el vídeo:
public static void ShellShort()
{
int[] array = { 15,50, 17, 72, 12, 23, 54, 76, 75, 43, 8654, 87, 654, 9 };
mostrar(array);
Console.WriteLine("");
ShellShort(array);
Console.ReadLine();
mostrar(array);
Console.ReadLine();
}
public static void ShellShort(int[] array)
{
int mitad = 0;
bool ejecutar = false;
int aux = 0;
int x = 0;
mitad = array.Length / 2;
while (mitad > 0)
{
ejecutar = true;
while (ejecutar)
{
ejecutar = false;
x = 1;
while (x <= (array.Length - mitad))
{
if (array[x - 1] > array[(x - 1) + mitad])
{
aux = array[(x - 1) + mitad];
array[(x - 1) + mitad] = array[x - 1];
array[(x - 1)] = aux;
ejecutar = true;
}
x++;
}
}
mitad = mitad / 2;
}
}
- También os dejo el código del proyecto con todos los algoritmos de ordenación vistos hasta ahora para descargar
No hay comentarios:
Publicar un comentario