Vla_DOS

Untitled

May 6th, 2022
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.71 KB | None | 0 0
  1. #include <iostream>
  2. #include <conio.h>
  3. #include <time.h>
  4. using namespace std;
  5.  
  6. int S = 0, C = 0;
  7. void quickSort(int* mass, int left, int right) {
  8.     int i = left, j = right;
  9.     int tmp;
  10.     int pivot = mass[(left + right) / 2];
  11.     while (i <= j) {
  12.         S++;
  13.  
  14.         while (mass[i] < pivot)
  15.             i++;
  16.         while (mass[j] > pivot)
  17.             j--;
  18.         if (i <= j) {
  19.             C++;
  20.             tmp = mass[i];
  21.             mass[i] = mass[j];
  22.             mass[j] = tmp;
  23.             i++;
  24.             j--;
  25.         }
  26.     };
  27.     if (left < j)
  28.         quickSort(mass, left, j);
  29.     if (i < right)
  30.         quickSort(mass, i, right);
  31. }
  32. void SelectSort(int mass[], int num) {
  33.     for (int i = 0; i < num; i++)
  34.     {
  35.         int temp = mass[0];
  36.  
  37.         for (int j = i + 1; j < num; j++)
  38.         {
  39.             C++;
  40.             if (mass[i] > mass[j])
  41.             {
  42.                 S++;
  43.                 temp = mass[i];
  44.                 mass[i] = mass[j];
  45.                 mass[j] = temp;
  46.             }
  47.         }
  48.     }
  49. }
  50. void bubbleSort(int* mass, int num)
  51. {
  52.     int tmp;
  53.  
  54.     for (int i = 0; i < num - 1; ++i)
  55.     {
  56.         for (int j = 0; j < num - 1; ++j)
  57.         {
  58.             C++;
  59.             if (mass[j + 1] < mass[j])
  60.             {
  61.                 tmp = mass[j + 1];
  62.                 mass[j + 1] = mass[j];
  63.                 mass[j] = tmp;
  64.                 S++;
  65.             }
  66.         }
  67.     }
  68. }
  69. void GetArray(int* mass, int num) {
  70.     for (int i = 0; i < num; i++) {
  71.         cout << mass[i] << "\t";
  72.     }
  73. }
  74. int main() {
  75.     setlocale(LC_CTYPE, "");
  76.     int num;
  77.     cout << "Кiлькiсть елементiв: ";
  78.     cin >> num;
  79.  
  80.     int* mass = new int[num];
  81.     for (int i = 0; i < num; i++) {
  82.         mass[i] = rand() % 20 + 100;
  83.         cout << mass[i] << "\t";
  84.     }
  85.     int n;
  86.     cout << "\n\n Виберiть метод сортування:\n 1. Сортування Хоара;\n 2. Сортування вибором;\n 3. Сортування бульбашкою." << endl;
  87.     cin >> n;
  88.     switch (n)
  89.     {
  90.     case 1: {
  91.         cout << endl;
  92.         cout << "Сортування Хоара:" << endl;
  93.         quickSort(mass, 0, num - 1);
  94.     }break;
  95.     case 2: {
  96.         cout << endl;
  97.         cout << "Сортування вибором:" << endl;
  98.         SelectSort(mass, num);
  99.     } break;
  100.     case 3: {
  101.         cout << endl;
  102.         cout << "Сортування бульбашкою:" << endl;
  103.         bubbleSort(mass, num);
  104.     }
  105.     default: break;
  106.     }
  107.     cout << endl;
  108.     cout << "Кiлькiсть порiвнянь: " << C << endl;
  109.  
  110.     cout << "Кiлькiсть обмiнiв: " << S << endl;
  111.     system("pause");
  112.     return 0;
  113. }
Advertisement
Add Comment
Please, Sign In to add comment