Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- void swap(vector<int> &a, int e1, int e2)
- {
- int tmp = a[e1];
- a[e1] = a[e2];
- a[e2] = tmp;
- }
- void pvec(vector<int> &v)
- {
- for (int i = 0; i < v.size(); i++)
- cout << v[i] << " ";
- cout << endl;
- }
- int partition(vector<int> &a, int p, int l, int r)
- {
- // move pivot to the right
- swap(a, p, r);
- p = r;
- int P = a[p];
- int sidx = l;
- for (int i = l; i < r; i++)
- {
- if (a[i] < P) {
- swap(a, sidx, i);
- sidx++;
- }
- }
- swap(a, r, sidx);
- return sidx;
- }
- void quick_sort(vector<int> &a, int l, int r)
- {
- if (l >= r)
- return;
- int pind = partition (a, l, l, r);
- quick_sort(a, l, pind-1);
- quick_sort(a, pind+1, r);
- }
- int main()
- {
- int arr[9] = {11, 7, 4, 1, 14, 31, 9, 5, 24};
- vector<int> vec (arr, arr + sizeof(arr) / sizeof(arr[0]) );
- quick_sort(vec, 0, vec.size() - 1);
- pvec(vec);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement