Advertisement
Guest User

Untitled

a guest
Sep 20th, 2019
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.60 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. // Функция для смены местами элементов
  6. void Swaping(int* a, int* b)
  7. {
  8.     int temp = *a;
  9.     *a = *b;
  10.     *b = temp;
  11. }
  12.  
  13. // Функция нахождения медианы
  14.  
  15. int mediane(int arr[], int low, int high)
  16. {
  17.     int x = arr[high];
  18.     int i = (low - 1);
  19.  
  20.     for (int j = low; j <= high - 1; j++) {
  21.         if (arr[j] <= x) {
  22.             i++;
  23.             Swaping(&arr[i], &arr[j]);
  24.         }
  25.     }
  26.     Swaping(&arr[i + 1], &arr[high]);
  27.     return (i + 1);
  28. }
  29.  
  30.     /* A[] --> Массив, который будем сортировать, */  
  31.    /*low -->          Начальный элемент          */
  32.   /*high -->         Последний элемент          */
  33.  
  34.  
  35. void Sortirovka(int A[], int low, int high)
  36. {
  37.     if (low < high) {
  38.        
  39.         /* Выбор медианы */
  40.         int p = mediane(A, low, high);
  41.         Sortirovka(A, low, p - 1);
  42.         Sortirovka(A, p + 1, high);
  43.     }
  44. }
  45.  
  46.  
  47. int main()
  48. {
  49.  
  50.     freopen("input.txt","r",stdin); // Перенаправление потока ввода с файла
  51.    freopen("output.txt","w",stdout); // Перенаправление потока вывода в файл
  52.  
  53.     int n;
  54.     int number;
  55.  
  56.     cin >> n;
  57.  
  58.     int arr[n] = {0};
  59.  
  60.     for(int i = 0;i < n;i++)
  61.         cin >> arr[i];
  62.  
  63.     cin >> number;
  64.  
  65.     Sortirovka(arr, 0, n - 1);
  66.  
  67.     for (int i = 0; i < n; i++) {
  68.         cout << arr[i] << " ";
  69.     }
  70.     cout << arr[number-1];
  71.  
  72.     return 0;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement