Advertisement
rootuss

Untitled

Jun 7th, 2020
1,350
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.77 KB | None | 0 0
  1. /* C++ implementation of QuickSort */
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4. void printArray(int arr[], int size)
  5. {
  6.     int i;
  7.     for (i = 0; i < size; i++)
  8.     cout << arr[i] << " ";
  9. //  cout << endl;
  10. }
  11.  
  12. int partition (int tab[], int left, int right)
  13. {
  14.     int pivot = tab[right]; // pivot
  15.             cout<<"\n\n###### Pivot to: "<<pivot<<" ######"<<endl;
  16.     int l=left;
  17.     int r=right;
  18.    
  19.     while(true){
  20.         while(tab[l]>pivot) ++l;
  21.         while(tab[r]<pivot) --r;
  22.                 cout<<"\n---L: "<<l<<"  R: "<<r<<endl;
  23.        
  24.         if(l<r){
  25.            
  26.             cout<<"                         swap "<<tab[l]<< " z " <<tab[r]<<endl;
  27.             swap(tab[l],tab[r]);
  28.             ++l;
  29.             --r;
  30.                     printArray(tab, 8);  
  31.                    
  32.         }
  33.         else{
  34.             if (r==right) r--;
  35.                     printArray(tab, 8);
  36.                     cout<<"        r==right (koniec partycjonowania) " ;
  37.             return r;
  38.         }
  39.     }
  40. }
  41.  
  42.  
  43. void quickSort(int tab[], int l, int p)
  44. {
  45.     if (l>=p)  return;
  46.  
  47.         int m = partition(tab, l, p);
  48.                  cout<<"!!!!  m to: "<<m<<endl<<endl;
  49.                  cout<<"\nquicksort1(tab,"<<l<<","<<m<<")"<<endl;
  50.         quickSort(tab, l, m);
  51.                 //printArray(tab, 8);
  52.                 //cout<<"\ntu1\n"<<endl;
  53.                 cout<<"\nquicksort2(tab,"<<m+1<<","<<p<<")"<<endl;
  54.      
  55.         quickSort(tab, m + 1, p);
  56.                 //printArray(tab, 8);
  57.                 //cout<<"\ntu2\n"<<endl;
  58.                 cout<<endl;
  59.      
  60. }
  61.  
  62. // Driver Code
  63. int main()
  64. {
  65.     int arr[] = {4,8,7,5,3,9,10,6};
  66.     int n = sizeof(arr) / sizeof(arr[0]);
  67.     quickSort(arr, 0, n - 1);
  68.  
  69.     cout << "\nSorted array: \n";
  70.     printArray(arr, n);
  71.     return 0;
  72. }
  73.  
  74. // This code is contributed by rathbhupendra
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement