Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include "прототипы.h"
- #include <time.h>
- #include <stdlib.h> //srand, rand
- using namespace std;
- int main()
- {
- setlocale(LC_ALL, "rus");
- int n = 5;
- int srav, perest, i;
- int* a = new int[n];
- int* b = new int[n];
- cout << "длина массива = " << n << endl;
- cout << "неотсортированный массив: " << endl;
- for (i = 0; i < n; i++)
- {
- *(a + i) = iRandom(-100, 100);
- *(b + i) = *(a + i);
- cout << *(a + i) << " ";
- }
- cout << endl;
- cout << "отсортированный массив:" << endl;
- puzirekvozrast(a, n, &srav, &perest);
- cout << "пузырек возрастание " << endl;
- cout << "сравнения= " << srav << endl;
- cout << "перестановки= " << perest << endl;
- for (i = 0; i < n; i++)
- {
- cout << *(a + i) << " ";
- }
- cout << endl;
- cout << endl;
- puzirekvozrast(a, n, &srav, &perest);
- cout << "пузырек возрастание" << endl;
- cout << "сравнения= " << srav << endl;
- cout << "перестановки= " << perest << endl;
- for (i = 0; i < n; i++)
- {
- cout << *(a + i) << " ";
- }
- cout << endl;
- cout << endl;
- cout << "отсортированный массив:" << endl;
- puzirekubiv(a, n, &srav, &perest);
- cout << "пузырек убывание" << endl;
- cout << "сравнения= " << srav << endl;
- cout << "перестановки= " << perest << endl;
- for (i = 0; i < n; i++)
- {
- cout << *(a + i) << " ";
- }
- cout << endl;
- puzirekubiv(a, n, &srav, &perest);
- cout << "пузырек убывание" << endl;
- cout << "сравнения= " << srav << endl;
- cout << "перестановки= " << perest << endl;
- for (i = 0; i < n; i++)
- {
- cout << *(a + i) << " ";
- }
- cout << endl;
- cout << endl;
- cout << "отсортированный массив:" << endl;
- minmaxvozrast(b, n, &srav, &perest);
- cout << "минмакс возрастание" << endl;
- cout << "сранения= " << srav << endl;
- cout << "перестановки= " << perest << endl;
- for (i = 0; i < n; i++)
- {
- cout << *(b + i) << " ";
- }
- cout << endl;
- cout << endl;
- minmaxvozrast(b, n, &srav, &perest);
- cout << "минмакс возрастание " << endl;
- cout << "сравнения= " << srav << endl;
- cout << "перестановки= " << perest << endl;
- for (i = 0; i < n; i++)
- {
- cout << *(b + i) << " ";
- }
- cout << endl;
- cout << endl;
- cout << "отсортированный массив:" << endl;
- minmaxubiv(b, n, &srav, &perest);
- cout << "минмакс убывание" << endl;
- cout << "сравнения= " << srav << endl;
- cout << "перестановки= " << perest << endl;
- for (i = 0; i < n; i++)
- {
- cout << *(b + i) << " ";
- }
- cout << endl;
- cout << endl;
- minmaxubiv(b, n, &srav, &perest);
- cout << "минмакс убывание" << endl;
- cout << "сравнения= " << srav << endl;
- cout << "перестановки= " << perest << endl;
- for (i = 0; i < n; i++)
- {
- cout << *(b + i) << " ";
- }
- cout << endl;
- cout << endl;
- n = 5;
- for (int j = 1; j <= 3; j++)
- {
- a = new int[n];
- for (i = 0; i < n; i++)
- * (a + i) = iRandom(-99, 99);
- cout << "n=" << n << endl;
- puzirekvozrast(a, n, &srav, &perest);
- cout << "пузырек сравнения= " << srav;
- cout << " перестановки= " << perest << endl;
- for (i = 0; i < n; i++)
- * (a + i) = iRandom(-99, 99);
- minmaxvozrast(a, n, &srav, &perest);
- cout << "минмакс сравнения " << srav;
- cout << " перестановки= " << perest << endl;
- n = n * 10;
- }
- delete[]a; delete []b;
- system("pause");
- return 0;
- }
- #include <iostream>
- #include <time.h>
- #include <stdlib.h> //srand, rand
- using namespace std;
- int iRandom(int a, int b) // целое из [a,b]
- {
- return a + (b - a + 1) * rand() / RAND_MAX;
- }
- void puzirekvozrast(int* a, int n, int* srav, int* perest)
- {
- int t, i, j;
- bool k;
- *perest = 0;
- *srav = 0;
- for (i = 0; i < n - 1; i++)
- {
- k = true;
- for (j = 0; j < n - i - 1; j++)
- {
- *srav = *srav + 1;
- if (*(a + j) > * (a + j + 1))
- {
- t = *(a + j);
- *(a + j) = *(a + j + 1);
- *(a + j + 1) = t;
- *perest = *perest + 1;
- k = false;
- }
- }
- if (k==true) return;
- }
- }
- void puzirekubiv(int *a, int n, int *srav, int *perest)
- {
- int t, i, j;
- bool k ;
- *perest = 0;
- *srav = 0;
- for (i = 0; i < n - 1; i++)
- {
- k = true;
- for (j = 0; j < n - i - 1; j++)
- {
- *srav = *srav + 1;
- if (*(a + j) < *(a + j + 1))
- {
- t = *(a + j);
- *(a + j) = *(a + j + 1);
- *(a + j + 1) = t;
- *perest = *perest + 1;
- k = false;
- }
- }
- if (k==true)
- return;
- }
- }
- void minmaxvozrast(int* a, int n, int* srav, int* perest)
- {
- int t, i, j, min;
- *perest = 0;
- *srav = 0;
- for (i = 0; i < n - 1; i++)
- {
- min = i;
- for (j = i + 1; j < n; j++)
- {
- *srav = *srav + 1;
- if (*(a + j) < *(a + min))
- {
- min = j;
- }
- }
- if (min!= i)
- {
- t = *(a + i);
- *(a + i) = *(a + min);
- *(a + min) = t;
- *perest = *perest + 1;
- }
- }
- }
- void minmaxubiv(int* a, int n, int* srav, int* perest)
- {
- int t, i, j, max;
- *perest = 0;
- *srav = 0;
- for (i = 0; i < n - 1; i++)
- {
- max = i;
- for (j = i + 1; j < n; j++)
- {
- *srav = *srav + 1;
- if (*(a + j) > * (a + max))
- {
- max = j;
- }
- }
- if (max != i) {
- t = *(a + i);
- *(a + i) = *(a + max);
- *(a + max) = t;
- *perest = *perest + 1;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement