Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <vector>
- #include <iostream>
- using namespace std;
- void QuickSort(vector<int> &a, int l, int r);
- int partiziona(vector<int> &a, int l, int r);
- void scambia(int &a, int &b);
- int main()
- {
- cout<<"Inserisci il numero di elementi da ordinare del vettore: ";
- int tot;
- cin>>tot;
- vector<int> arr1;
- int x;
- cout<<"Inserimento: "<<endl;
- for(int i=0; i < tot ; i++){
- cin>>x;
- arr1.push_back(x);
- }
- cout<<"\nQuickSort"<<endl;
- QuickSort(arr1,0,tot-1); //tot-1 = arr1.size()-1;
- for(auto z : arr1)
- cout<<"\n"<<z;
- return 0;
- }
- void QuickSort(vector<int> &a, int l, int r){
- if(l >= r)return;
- int m = partiziona(a,l,r);
- QuickSort(a,l,m-1);
- QuickSort(a,m+1,r);
- }
- int partiziona(vector<int> &a, int l, int r)
- {
- int pivot = a.at(r), J = l, i;
- for(i = l; i < r; i++)
- if(pivot >= a.at(i))
- scambia(a.at(i), a.at(J++));
- scambia(a.at(i), a.at(J));
- return J;
- }
- void scambia(int &a, int &b)
- {
- int temp;
- temp = a;
- a = b;
- b = temp;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement