j4ggi

lab10_szybkie

Dec 2nd, 2014
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.17 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. void quicksort(int tab[], int left, int right)
  6. {
  7.      int i=left;
  8.      int j=right;
  9.      int k=(left+right)/2;
  10.      int x=tab[k];
  11.      do{
  12.          while(tab[i]<x) i++;
  13.          while(tab[j]>x) j--;
  14.          if(i<=j)
  15.          {    
  16.              int a=tab[j];
  17.              tab[j]=tab[i];
  18.              tab[i]=a;
  19.              i++;
  20.              j--;
  21.          }
  22.      }while(i<=j);
  23.      if(left<j) quicksort(tab,left,j);
  24.      if(right>i) quicksort(tab,i,right);  
  25. }
  26.  
  27. void main()
  28. {
  29.         const int SIZE=100000;
  30.     int * tab=malloc(SIZE*sizeof(int));
  31.     int i;
  32.         srand(time(0));
  33.     for (i=0;i<SIZE;i++)
  34.         tab[i]=rand()%SIZE+1;
  35.     printf("100 elementow przed posortowaniem tablicy %i elementow:\n", SIZE);
  36.     for(i=0;i<SIZE;i+=SIZE/100)
  37.             printf("%i ", tab[i]);
  38.     int x=time(0);
  39.     printf("\nSortowanie start!\n");
  40.     quicksort(tab, 0, SIZE-1);
  41.     int y=time(0);
  42.         printf("\nStop!\nCzas: %i sekund\n",y-x);
  43.     printf("100 elementow po posortowaniu tablicy %i elementow:\n", SIZE);
  44.     for(i=0;i<SIZE;i+=SIZE/100)
  45.             printf("%i ", tab[i]);
  46.     getchar();
  47. }
Advertisement
Add Comment
Please, Sign In to add comment