Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- // Функция для смены местами элементов
- void Swaping(int* a, int* b)
- {
- int temp = *a;
- *a = *b;
- *b = temp;
- }
- // Функция нахождения медианы
- int mediane(int arr[], int low, int high)
- {
- int x = arr[high];
- int i = (low - 1);
- for (int j = low; j <= high - 1; j++) {
- if (arr[j] <= x) {
- i++;
- Swaping(&arr[i], &arr[j]);
- }
- }
- Swaping(&arr[i + 1], &arr[high]);
- return (i + 1);
- }
- /* A[] --> Массив, который будем сортировать, */
- /*low --> Начальный элемент */
- /*high --> Последний элемент */
- void Sortirovka(int A[], int low, int high)
- {
- if (low < high) {
- /* Выбор медианы */
- int p = mediane(A, low, high);
- Sortirovka(A, low, p - 1);
- Sortirovka(A, p + 1, high);
- }
- }
- int main()
- {
- freopen("input.txt","r",stdin); // Перенаправление потока ввода с файла
- freopen("output.txt","w",stdout); // Перенаправление потока вывода в файл
- int n;
- int number;
- cin >> n;
- int arr[n] = {0};
- for(int i = 0;i < n;i++)
- cin >> arr[i];
- cin >> number;
- Sortirovka(arr, 0, n - 1);
- for (int i = 0; i < n; i++) {
- cout << arr[i] << " ";
- }
- cout << arr[number-1];
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement