Vlad5080

practice СИАОД

Feb 22nd, 2020
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.78 KB | None | 0 0
  1. #include <iostream>
  2. #include <time.h>
  3.  
  4. using namespace std;
  5.  
  6.  
  7.  
  8. // сортировка массива наоборот
  9. void invertSort(int* mas, int n){
  10.     int max_idx;
  11.     for (int i = 0; i < n - 1; i++){
  12.         max_idx = i;
  13.         for (int j = i + 1; j < n; j++){
  14.             if (mas[j] > mas[max_idx]){
  15.                 max_idx = j;
  16.             }
  17.         }
  18.         swap(mas[max_idx], mas[i]);
  19.     }
  20. }
  21.  
  22. //сортировка обменом
  23. void Sort(int* vec, int n) {   
  24.  
  25.     int C = 0, M = 0, chetchik = 0, box = 0;
  26.     for (int i = n - 1; (i >= 1); i--) {
  27.         C++;
  28.         for (int j = 0; j < i; j++) {
  29.             if (vec[j] > vec[j + 1]) {
  30.                 box = vec[j];
  31.                 vec[j] = vec[j + 1];
  32.                 vec[j + 1] = box;
  33.                 chetchik++;
  34.                 M++;
  35.             }
  36.         }
  37.         if (chetchik == 0) break; //Условие Айверсона
  38.     }
  39.     // вывод данных сравнения("C") и перестановок("M")
  40.     if (n != 10) cout << "C = " << C << " M = " << M << "\n";
  41. }
  42.  
  43. int main()
  44.  
  45. {
  46.  
  47.     setlocale(0, "rus");
  48.  
  49.     srand(time(0));
  50.     //srand(static_cast<unsigned int>(time(nullptr)));
  51.  
  52.  
  53.     int mas[10], mas1[6000], mas2[7000], mas3[8000], mas4[9000], mas5[10000];
  54.  
  55.     cout << "\tПрактическая работа №1\nСравнение простых алгоритмов сортировки массивов.\nВладислав Филиппов. ИКБО-19-19\n";
  56.  
  57.     cout << "Введите в строку элементы целочисленного массива через пробел:\n -> ";
  58.  
  59.     for (int i = 0; i < 10; i++)
  60.  
  61.     {
  62.         cin >> mas[i];
  63.     }
  64.  
  65.     cout << "\n\tЗаполненный тестовый массив элементов:\n -> ";
  66.  
  67.     for (int i = 0; i < 10; i++)
  68.  
  69.     {
  70.  
  71.         cout << mas[i] << " ";
  72.  
  73.     }
  74.  
  75.     cout << "\n";
  76.  
  77.     Sort(mas, 10);
  78.  
  79.     cout << "\tРезультат сортировки:\n ->";
  80.  
  81.     for (int i = 0; i < 10; i++)
  82.  
  83.     {
  84.  
  85.         cout << mas[i] << " ";
  86.  
  87.     }
  88.  
  89.     cout << "\n";
  90.  
  91.     //Заполнение массивов с помощью псевдослучайной генерации чисел
  92.  
  93.     for (int i = 0; i < 6000; i++)
  94.  
  95.     {
  96.  
  97.         mas1[i] = rand();
  98.  
  99.     }
  100.  
  101.     for (int i = 0; i < 7000; i++)
  102.  
  103.     {
  104.  
  105.         mas2[i] = rand();
  106.  
  107.     }
  108.  
  109.     for (int i = 0; i < 8000; i++)
  110.  
  111.     {
  112.  
  113.         mas3[i] = rand();
  114.  
  115.     }
  116.  
  117.     for (int i = 0; i < 9000; i++)
  118.  
  119.     {
  120.  
  121.         mas4[i] = rand();
  122.  
  123.     }
  124.  
  125.     for (int i = 0; i < 10000; i++)
  126.  
  127.     {
  128.  
  129.         mas5[i] = rand();
  130.  
  131.     }
  132.  
  133.     cout << "-------------------------\n\tn1 = 6 000\n-Средний случай\n -> ";
  134.  
  135.     Sort(mas1, 6000);
  136.  
  137.     cout << "-Наилучший случай\n -> ";
  138.  
  139.     Sort(mas1, 6000);
  140.  
  141.     invertSort(mas1, 6000);
  142.  
  143.     cout << "-Наихудший случай\n -> ";
  144.  
  145.     Sort(mas1, 6000);
  146.  
  147.     cout << "-------------------------\n\tn2 = 7 000\n-Средний случай\n -> ";
  148.  
  149.     Sort(mas2, 7000);
  150.  
  151.     cout << "-Наилучший случай\n -> ";
  152.  
  153.     Sort(mas2, 7000);
  154.  
  155.     invertSort(mas2, 7000);
  156.  
  157.     cout << "-Наихудший случай\n -> ";
  158.  
  159.     Sort(mas2, 7000);
  160.  
  161.     cout << "-------------------------\n\tn3 = 8 000\n-Средний случай\n -> ";
  162.  
  163.     Sort(mas3, 8000);
  164.  
  165.     cout << "-Наилучший случай\n -> ";
  166.  
  167.     Sort(mas3, 8000);
  168.  
  169.     invertSort(mas3, 8000);
  170.  
  171.     cout << "-Наихудший случай\n -> ";
  172.  
  173.     Sort(mas3, 8000);
  174.  
  175.     cout << "-------------------------\n\tn4 = 9 000\n-Средний случай\n -> ";
  176.  
  177.     Sort(mas4, 9000);
  178.  
  179.     cout << "-Наилучший случай\n  -> ";
  180.  
  181.     Sort(mas4, 9000);
  182.  
  183.     invertSort(mas4, 9000);
  184.  
  185.     cout << "-Наихудший случай\n -> ";
  186.  
  187.     Sort(mas4, 9000);
  188.  
  189.     cout << "-------------------------\n\tn5 = 10 000\n-Средний случай\n -> ";
  190.  
  191.     Sort(mas5, 10000);
  192.  
  193.     cout << "-Наилучший случай\n -> ";
  194.  
  195.     Sort(mas5, 10000);
  196.  
  197.     invertSort(mas5, 10000);
  198.  
  199.     cout << "-Наихудший случай\n  -> ";
  200.  
  201.     Sort(mas5, 10000);
  202.  
  203.     system("pause");
  204.  
  205.     return 0;
  206.  
  207. }
Add Comment
Please, Sign In to add comment