GoralWMoro

QuickSort

Jun 5th, 2019
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.09 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. int tablica[100];
  4. int rozmiar = 0;
  5. void Sortowanie(int start, int end){
  6.     int srodkowy = (start+end+1)/2;
  7.     int dzielnik = tablica[srodkowy];
  8.     printf("%d", dzielnik);
  9.     int a = tablica[srodkowy];
  10.     tablica[srodkowy] = tablica[end];
  11.     tablica[end] = a;
  12.     int j = start;
  13.     for(int i = start; i < end; i++){
  14.         if(tablica[i] < dzielnik){
  15.             a = tablica[j];
  16.             tablica[j] = tablica[i];
  17.             tablica[i] = a;
  18.             j = j +1;
  19.         }
  20.     }
  21.     a = tablica[j];
  22.     tablica[j] = tablica[end];
  23.     tablica[end] = a;
  24.     if(start < j-1) {
  25.         Sortowanie(start, j - 1);
  26.     }
  27.     if(end > j+1){
  28.         Sortowanie(j+1, end);
  29.     }
  30. }
  31. int main() {
  32.     int dzialanie = 1;
  33.     while(dzialanie != -1){
  34.         scanf("%d", &dzialanie);
  35.         if(dzialanie != -1){
  36.             tablica[rozmiar] = dzialanie;
  37.             rozmiar = rozmiar +1;
  38.         }
  39.     }
  40.  
  41.     Sortowanie(0, rozmiar-1);
  42.     printf(" ");
  43.  
  44.     for(int i = 0; i < rozmiar; i++){
  45.         printf("%d", tablica[i]);
  46.     }
  47.  
  48.  
  49.  
  50.     return 0;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment