Pop

Algoritmos de ordenación en c# - Algoritmo Quick Sort

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.
  • 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

Curso .NET Core en C# - 34.Creamos nuestro propio log

34.Creamos nuestro propio log Hola a todos. En este curso, analizaremos todos los conceptos básicos, intermedios y avanzados de  ASP.NET...