Advertisement
loulett

qsort

Mar 22nd, 2015
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.65 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3.  
  4. #define D_SCL_SECURE_NO_WARNINGS
  5.  
  6. void swap(int &a, int &b)
  7. {
  8.     int t = a;
  9.     a = b;
  10.     b = t;
  11. }
  12.  
  13. int partition(int* a, int l, int r)
  14. {
  15.     int i = l - 1;
  16.     for (int j = l; j < r - 1; ++j)
  17.     {
  18.         if (a[j] <= a[r-1])
  19.         {
  20.             i++;
  21.             swap(a[j], a[i]);
  22.         }
  23.     }
  24.     swap(a[i + 1], a[r - 1]);
  25.     return i + 1;
  26. }
  27.  
  28. void qsort(int *a, int l, int r)
  29. {
  30.     if (l >= r)
  31.         return;
  32.     int q = partition(a, l, r);
  33.     qsort(a, l, q);
  34.     qsort(a, q + 1, r);
  35. }
  36.  
  37. int main()
  38. {
  39.     int arr[] = { 7, 3, 5, 1, 2 };
  40.     qsort(arr, 0, 5);
  41.     return 0;
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement