3. Algoritmo Quick 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 ordenación Quick Sort.
- En este algoritmo se toma un elemento x de una posición del array. Se trata de ubicar a x en la posición correcta del array, de tal forma que todos los elementos que se encuentran a su izquierda sean menores o iguales a x y todos los elementos que se encuentren a su derecha sean mayores o iguales a x.
- Os dejo un enlace al pseudocódigo y a información más detallada sobre este algoritmo:https://es.wikipedia.org/wiki/Quicksort
- Una vez visto esto ya podemos ver el vídeo con la explicación:
- Os dejo el codigo visto en el vídeo:
public static void Quicksort()
{
int[] array = { 12, 17, 16, 8, 67, 1, 4, 876,21,6789, 99, 77, 6, 10, 88, 45 };
mostrar(array);
Console.WriteLine("");
Quicksort(array, 0, array.Length - 1);
Console.ReadLine();
mostrar(array);
Console.ReadLine();
}
static private void Quicksort(int[] array, int inicio, int fin)
{
int x, y, central;
double pivote;
central = (inicio + fin) / 2;
pivote = array[central];
x = inicio;
y = fin;
do
{
while (array[x] < pivote) x++;
while (array[y] > pivote) y--;
if (x <= y)
{
int aux;
aux = array[x];
array[x] = array[y];
array[y] = aux;
x++;
y--;
}
} while (x <= y);
if (inicio < y)
{
Console.WriteLine();
mostrar(array);
Quicksort(array, inicio, y);
}
if (x < fin)
{
Console.WriteLine();
mostrar(array);
Quicksort(array, x, fin);
}
}
No hay comentarios:
Publicar un comentario