Guest User

Untitled

a guest
Jun 2nd, 2014
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.97 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #define size 10
  5.  
  6. void quickSort( int[], int, int);
  7. int partition( int[], int, int);
  8.  
  9.  
  10. void main()
  11. {
  12. srand(time(NULL));
  13.  
  14.     int i;
  15.     int a[size];
  16.  
  17.     printf("\n\nLiczbo do posortowania: ");
  18.     for(i = 0; i <=size-1; ++i)
  19.     {
  20.      a[i]=rand()%100;
  21.             printf(" %d ", a[i]);
  22.     }
  23.     quickSort( a, 0, size-1);
  24.  
  25.     printf("\n\nLiczby po posortowaniu:  ");
  26.     for(i = 0; i <=size-1; ++i)
  27.         printf(" %d ", a[i]);
  28.  
  29. }
  30.  
  31.  
  32. void quickSort( int a[], int p, int r)
  33. {
  34.    int q;
  35.  
  36.    if( p < r )
  37.    {
  38.  
  39.         q = partition( a, p, r);
  40.        quickSort( a, p, q);
  41.        quickSort( a, q+1, r);
  42.    }
  43.  
  44. }
  45.  
  46.  
  47. int partition( int a[], int p, int r) {
  48.    int pivot, i, j, t;
  49.    pivot = a[p];
  50.    i = p-1;
  51.    j = r+1;
  52.  
  53.    while(1)
  54.    {
  55.     do j--; while(a[j] <= pivot);
  56.     do i++; while(a[i] >= pivot);
  57.  
  58.     if(i < j)
  59.     {
  60.     t = a[i]; a[i] = a[j]; a[j] = t;
  61.     }
  62.     else
  63.    return j;
  64.  
  65.     }
  66. }
Advertisement
Add Comment
Please, Sign In to add comment