SHARE
TWEET

Untitled

a guest Dec 14th, 2019 89 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include "прототипы.h"
  3. #include <time.h>
  4. #include <stdlib.h>  //srand, rand
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9.     setlocale(LC_ALL, "rus");
  10.     int n = 5;
  11.     int srav, perest, i;
  12.     int* a = new int[n];
  13.     int* b = new int[n];
  14.  
  15.     cout << "длина массива = " << n << endl;
  16.  
  17.     cout << "неотсортированный массив: " << endl;
  18.     for (i = 0; i < n; i++)
  19.     {
  20.         *(a + i) = iRandom(-100, 100);
  21.         *(b + i) = *(a + i);
  22.         cout << *(a + i) << " ";
  23.     }
  24.     cout << endl;
  25.  
  26.  
  27.  
  28.     cout << "отсортированный массив:" << endl;
  29.     puzirekvozrast(a, n, &srav, &perest);
  30.     cout << "пузырек возрастание " << endl;
  31.     cout << "сравнения= " << srav << endl;
  32.     cout << "перестановки= " << perest << endl;
  33.  
  34.     for (i = 0; i < n; i++)
  35.     {
  36.         cout << *(a + i) << " ";
  37.     }
  38.     cout << endl;
  39.     cout << endl;
  40.  
  41.     puzirekvozrast(a, n, &srav, &perest);
  42.     cout << "пузырек возрастание" << endl;
  43.     cout << "сравнения= " << srav << endl;
  44.     cout << "перестановки= " << perest << endl;
  45.  
  46.     for (i = 0; i < n; i++)
  47.     {
  48.         cout << *(a + i) << " ";
  49.     }
  50.     cout << endl;
  51.     cout << endl;
  52.  
  53.     cout << "отсортированный массив:" << endl;
  54.     puzirekubiv(a, n, &srav, &perest);
  55.     cout << "пузырек убывание" << endl;
  56.     cout << "сравнения= " << srav << endl;
  57.     cout << "перестановки= " << perest << endl;
  58.  
  59.     for (i = 0; i < n; i++)
  60.     {
  61.         cout << *(a + i) << " ";
  62.     }
  63.     cout << endl;
  64.  
  65.     puzirekubiv(a, n, &srav, &perest);
  66.     cout << "пузырек убывание" << endl;
  67.     cout << "сравнения= " << srav << endl;
  68.     cout << "перестановки= " << perest << endl;
  69.  
  70.     for (i = 0; i < n; i++)
  71.     {
  72.         cout << *(a + i) << " ";
  73.     }
  74.     cout << endl;
  75.     cout << endl;
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.     cout << "отсортированный массив:" << endl;
  83.     minmaxvozrast(b, n, &srav, &perest);
  84.     cout << "минмакс возрастание" << endl;
  85.     cout << "сранения= " << srav << endl;
  86.     cout << "перестановки= " << perest << endl;
  87.  
  88.     for (i = 0; i < n; i++)
  89.     {
  90.         cout << *(b + i) << " ";
  91.     }
  92.     cout << endl;
  93.     cout << endl;
  94.     minmaxvozrast(b, n, &srav, &perest);
  95.     cout << "минмакс возрастание " << endl;
  96.     cout << "сравнения= " << srav << endl;
  97.     cout << "перестановки= " << perest << endl;
  98.  
  99.     for (i = 0; i < n; i++)
  100.     {
  101.         cout << *(b + i) << " ";
  102.     }
  103.     cout << endl;
  104.     cout << endl;
  105.  
  106.  
  107.  
  108.     cout << "отсортированный массив:" << endl;
  109.     minmaxubiv(b, n, &srav, &perest);
  110.     cout << "минмакс убывание" << endl;
  111.     cout << "сравнения= " << srav << endl;
  112.     cout << "перестановки= " << perest << endl;
  113.     for (i = 0; i < n; i++)
  114.     {
  115.         cout << *(b + i) << " ";
  116.     }
  117.     cout << endl;
  118.     cout << endl;
  119.     minmaxubiv(b, n, &srav, &perest);
  120.     cout << "минмакс убывание" << endl;
  121.     cout << "сравнения= " << srav << endl;
  122.     cout << "перестановки= " << perest << endl;
  123.     for (i = 0; i < n; i++)
  124.     {
  125.         cout << *(b + i) << " ";
  126.     }
  127.     cout << endl;
  128.     cout << endl;
  129.  
  130.     n = 5;
  131.     for (int j = 1; j <= 3; j++)
  132.     {
  133.         a = new int[n];
  134.         for (i = 0; i < n; i++)
  135.             * (a + i) = iRandom(-99, 99);
  136.  
  137.         cout << "n=" << n << endl;
  138.         puzirekvozrast(a, n, &srav, &perest);
  139.         cout << "пузырек сравнения= " << srav;
  140.         cout << "  перестановки= " << perest << endl;
  141.  
  142.         for (i = 0; i < n; i++)
  143.             * (a + i) = iRandom(-99, 99);
  144.  
  145.         minmaxvozrast(a, n, &srav, &perest);
  146.         cout << "минмакс сравнения " << srav;
  147.         cout << "  перестановки= " << perest << endl;
  148.         n = n * 10;
  149.     }
  150.  
  151.  
  152.     delete[]a; delete []b;
  153.     system("pause");
  154.  
  155.     return 0;
  156.  
  157. }
  158.  
  159.  
  160.  
  161.  
  162. #include <iostream>
  163. #include <time.h>
  164. #include <stdlib.h>  //srand, rand
  165. using namespace std;
  166.  
  167. int iRandom(int a, int b)               // целое из [a,b]
  168. {
  169.     return a + (b - a + 1) * rand() / RAND_MAX;
  170. }
  171.  
  172. void puzirekvozrast(int* a, int n, int* srav, int* perest)
  173. {
  174.     int t, i, j;
  175.     bool k;
  176.     *perest = 0;
  177.     *srav = 0;
  178.  
  179.  
  180.     for (i = 0; i < n - 1; i++)
  181.     {
  182.         k = true;
  183.         for (j = 0; j < n - i - 1; j++)
  184.         {
  185.  
  186.             *srav = *srav + 1;
  187.             if (*(a + j) > * (a + j + 1))
  188.             {
  189.                 t = *(a + j);
  190.                 *(a + j) = *(a + j + 1);
  191.                 *(a + j + 1) = t;
  192.                 *perest = *perest + 1;
  193.                 k = false;
  194.             }
  195.  
  196.         }
  197.         if (k==true) return;
  198.     }
  199. }
  200.  
  201. void puzirekubiv(int *a, int n, int *srav, int *perest)
  202.  
  203. {
  204.     int t, i, j;
  205.     bool k ;
  206.     *perest = 0;
  207.     *srav = 0;
  208.  
  209.  
  210.     for (i = 0; i < n - 1; i++)
  211.     {
  212.         k = true;
  213.         for (j = 0; j < n - i - 1; j++)
  214.         {
  215.  
  216.             *srav = *srav + 1;
  217.             if (*(a + j) < *(a + j + 1))
  218.             {
  219.                 t = *(a + j);
  220.                 *(a + j) = *(a + j + 1);
  221.                 *(a + j + 1) = t;
  222.                 *perest = *perest + 1;
  223.                 k = false;
  224.  
  225.             }
  226.            
  227.         }
  228.         if (k==true)
  229.             return;
  230.  
  231.     }
  232. }
  233. void minmaxvozrast(int* a, int n, int* srav, int* perest)
  234. {
  235.     int t, i, j, min;
  236.     *perest = 0;
  237.     *srav = 0;
  238.  
  239.     for (i = 0; i < n - 1; i++)
  240.     {
  241.         min = i;
  242.         for (j = i + 1; j < n; j++)
  243.         {
  244.             *srav = *srav + 1;
  245.             if (*(a + j) < *(a + min))
  246.             {
  247.  
  248.                 min = j;
  249.             }
  250.         }
  251.             if (min!= i)
  252.             {
  253.                 t = *(a + i);
  254.                 *(a + i) = *(a + min);
  255.                 *(a + min) = t;
  256.                 *perest = *perest + 1;
  257.             }
  258.            
  259.        
  260.     }
  261. }
  262. void minmaxubiv(int* a, int n, int* srav, int* perest)
  263. {
  264.     int t, i, j, max;
  265.     *perest = 0;
  266.     *srav = 0;
  267.  
  268.     for (i = 0; i < n - 1; i++)
  269.     {
  270.         max = i;
  271.         for (j = i + 1; j < n; j++)
  272.         {
  273.             *srav = *srav + 1;
  274.             if (*(a + j) > * (a + max))
  275.             {
  276.  
  277.                 max = j;
  278.             }
  279.         }
  280.             if (max != i) {
  281.                 t = *(a + i);
  282.                 *(a + i) = *(a + max);
  283.                 *(a + max) = t;
  284.                 *perest = *perest + 1;
  285.             }
  286.    
  287.     }
  288. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top