marcoshuck

Ordenamiento QuickSort

Sep 13th, 2013
321
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.97 KB | None | 0 0
  1. /* QuickSort */
  2. void quickSort (int *v, int start, int end);
  3.  
  4. void quickSort (int *v, int start, int end)
  5. {
  6.     int tmp, /* Variable auxiliar */
  7.     i, /* Contador */
  8.     flag = 0, /* Bandera */
  9.     pivote = v[end], /* Valor del pivote */
  10.     izq = start-1, /* Valor por izquierda */
  11.     der = end, /* Valor por derecha */
  12.     if (start < end)
  13.     {
  14.         while (!flag)
  15.         {
  16.             while (v [++izq] < pivote);
  17.             while (v [--der] > pivote);
  18.             if (izq < der)
  19.             {
  20.                 tmp = v [izq];
  21.                 v [izq] = v [der];
  22.                 v [der] = tmp;
  23.             }
  24.             else
  25.                 flag = 1;
  26.             }
  27.                 tmp = v[izq];
  28.                 v [izq] = v[end];
  29.                 v [end] = tmp;
  30.                 for(i=0; i < T; i++){
  31.                     printf("%3d", v[i]);
  32.         }
  33.         printf("\n");
  34.         quickSort (v, start, izq-1);
  35.         quickSort (v, izq+1, end);
  36.     }
  37. }
Advertisement
Add Comment
Please, Sign In to add comment