VasilM

qwe

Oct 21st, 2013
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.28 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int arr[] = {1,33,21,6,18,9,100,232,13,43};
  5.  
  6. void QuickSort (int begin, int end) {
  7.  
  8.     int middle = (begin + end)/2;
  9.     int j = begin;
  10.     int k = end;
  11.  
  12.     if( end == 0 ) {
  13.         do {
  14.             while( arr[j]<arr[middle] ) j++;
  15.             while( arr[k]>arr[middle] ) k--;
  16.             if( j>=k ) continue;
  17.             else {
  18.                 int x = arr[j];
  19.                 arr[j] = arr[k];
  20.                 arr[k] = x;
  21.                                 cout << j << " " << arr[j] << " " << k << " "  << arr[k] << " "  << endl;
  22.            
  23.                 j++, k--;
  24.             }
  25.         }while (j<k);
  26.         QuickSort(begin,k);
  27.     }else   QuickSort(j,end);
  28. }
  29. /*
  30.       int i = left, j = right;
  31.       int tmp;
  32.       int pivot = arr[(left + right) / 2];
  33.  
  34.       /* partition */
  35.       while (i <= j) {
  36.             while (arr[i] < pivot)
  37.                   i++;
  38.             while (arr[j] > pivot)
  39.                   j--;
  40.             if (i <= j) {
  41.                   tmp = arr[i];
  42.                   arr[i] = arr[j];
  43.                   arr[j] = tmp;
  44.                   i++;
  45.                   j--;
  46.             }
  47.       };
  48.  
  49.       /* recursion */
  50.       if (left < j)
  51.             quickSort(arr, left, j);
  52.       if (i < right)
  53.             quickSort(arr, i, right);
  54. */
  55.  
  56. int main () {
  57.     QuickSort(1,9);
  58.     for (int i=0; i<10; i++) cout<< arr[i] <<" ";
  59.     cout<< endl;
  60.     return EXIT_SUCCESS;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment