Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- #include <algorithm>
- using namespace std;
- void sorti(int *arr, int left, int right, int key)
- {
- int a = right;
- int b = left;
- while (right > left)
- {
- while (arr[right]>=key && right > left)
- right--;
- if (right!=left)
- {
- arr[left]=arr[right];
- left++;
- }
- while (arr[left]<=key && right > left)
- left++;
- if (right!=left)
- {
- arr[right] = arr[left];
- right--;
- }
- }
- arr[left] = key;
- key = left;
- left = b;
- right = a;
- if (left < key)
- sorti (arr, left, key-1, arr[left]);
- if (right > key)
- sorti (arr, key+1, right, arr[key+1]);
- }
- int main ()
- {
- int n = 0;
- cin >> n;
- int *arr;
- arr = new int [n];
- for (int i=0; i<n; i++)
- cin >> arr[i];
- int right = n-1;
- int left = 0;
- int key = arr[0];
- sorti(arr, left, right, key);
- for (int i=0; i<n; i++)
- cout << arr[i] << " ";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement