mihainan

qSort - examen SD

Jun 2nd, 2014
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.76 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void qSort(int vector[], int stg, int dr)
  5. {
  6.     int temp, mijl, min, max;
  7.     min = stg;
  8.     max = dr;
  9.     mijl = vector[stg + (dr - stg) / 2];
  10.     do
  11.     {
  12.         while(vector[min] < mijl)
  13.             min++;
  14.         while(vector[max] > mijl)
  15.             max--;
  16.         if(min <= max)
  17.         {
  18.             temp = vector[min];
  19.             vector[min++] = vector[max];
  20.             vector[max--] = temp;
  21.         }
  22.     }while(min <= max);
  23.     if(stg < max)
  24.         qSort(vector, stg, max);
  25.     if(dr > min)
  26.         qSort(vector, min, dr);
  27. }
  28.  
  29. int main()
  30. {
  31.     int nr, i, x;
  32.     int *v;
  33.     scanf("%d", &nr);
  34.     v = (int*) malloc(nr*sizeof(int));
  35.     for(i=0;i<nr;i++)
  36.     {
  37.         scanf("%d", &x);
  38.         v[i] = x;
  39.     }
  40.     qSort(v, 0, nr);
  41.     for(i=0;i<nr;i++)
  42.     {
  43.         printf("%d ", v[i]);
  44.     }
  45.     printf("\n");
  46.     free(v);
  47.     return 0;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment