jedrzejd

Quick Sort

Nov 22nd, 2017
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.10 KB | None | 0 0
  1. //
  2. //  main.cpp
  3. //  Quick Sort
  4. //
  5. //  Created by andy on 22.11.2017.
  6. //  Copyright © 2017 andy. All rights reserved.
  7. //
  8.  
  9. #include <cstdio>
  10. #include <algorithm>
  11. const int MXN=1e6+5;
  12. int tablica[MXN],n;
  13. int poszukiwacz(int lewa,int prawa){
  14.     int srodek=tablica[prawa];
  15.     int i=lewa-1;
  16.     for(int j=lewa;j<prawa;j++){
  17.         if(tablica[j]<=srodek){//jezeli element jest jest mniejszy od srodeka
  18.             i++;
  19.             std::swap(tablica[i],tablica[j]);//to go wrzucam do "grupy tych mniejszych"
  20.         }
  21.     }
  22.     std::swap(tablica[i+1],tablica[prawa]);//zamieniamy element ostanie z "srodkiem ciagu"
  23.     return i+1;
  24. }
  25. void Quicksort(int lewa,int prawa){
  26.     if(lewa<prawa){
  27.         int srodek=poszukiwacz(lewa,prawa);//przeszukuje tablice aby wyszukac srodek
  28.         Quicksort(lewa,srodek-1);//rozpatruje teraz lewa strone od srodeka
  29.         Quicksort(srodek+1,prawa);// i lewą
  30.     }
  31. }
  32. int main(){
  33.     scanf("%d",&n);
  34.     for(int i=1;i<=n;i++)
  35.         scanf("%d",&tablica[i]);
  36.     Quicksort(1,n);
  37.     for(int i=1;i<=n;i++)
  38.         printf("%d ",tablica[i]);
  39.     return 0;
  40. }
Advertisement
Add Comment
Please, Sign In to add comment