Advertisement
epidzhx

qsort

May 11th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.66 KB | None | 0 0
  1. void mQsort(int *arr, int left, int right)
  2. {
  3.    
  4.     if (left < right)
  5.     {
  6.         int l = left, r = right;
  7.         int mid = arr[(l+r) / 2];
  8.         do
  9.         {
  10.             while (arr[l] < mid) // for reverse: while (arr[l] > mid)
  11.                 l++;
  12.             while (arr[r] > mid) // for reverse: while (arr[r] < mid)
  13.                 r--;
  14.            
  15.             if (l <= r)
  16.             {
  17.                 int c = arr[l];
  18.                 arr[l] = arr[r];
  19.                 arr[r] = c;
  20.                 l++;
  21.                 r--;
  22.             }
  23.         } while (l <= r);
  24.        
  25.         mQsort(arr, left, r);
  26.         mQsort(arr, l, right);
  27.     }
  28. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement