Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <time.h>
- void insertionSort(int* mas, int n)
- {
- unsigned long int M = 0, C = 0;
- int last = n; bool ok;
- do {
- last = last - 1;
- ok = true;
- for (int i = 0; i < last; i++) {
- if (mas[i] > mas[i + 1]) {
- int x = mas[i];
- mas[i] = mas[i + 1];
- mas[i + 1] = x;
- ok = false;
- M++;
- }
- }
- } while (!ok);
- if (n != 10) std::cout << "C = " << C << " M = " << M << "\n";
- }
- void invertSort(int* mas, int n)
- {
- int max_idx;
- for (int i = 0; i < n - 1; i++)
- {
- max_idx = i;
- for (int j = i + 1; j < n; j++)
- {
- if (mas[j] > mas[max_idx])
- {
- max_idx = j;
- }
- }
- std::swap(mas[max_idx], mas[i]);
- }
- }
- int main()
- {
- const int n1 = 50000, n2 = 60000, n3 = 70000, n4 = 80000, n5 = 90000;
- setlocale(0, "rus");
- srand(time(0));
- int *mas=new int [10], *mas1=new int[n1], *mas2=new int[n2], *mas3=new int[n3], *mas4=new int[n4], *mas5=new int[n5];
- std::cout << "Практическая работа №1 Сравнение простых алгоритмов сортировки массивов. Нестягин Никита. ИКБО-14-19\n";
- std::cout << "Заполните тестовый массив:\n";
- for (int i = 0; i < 10; i++)
- {
- std::cin >> mas[i];
- }
- std::cout << "Введённый массив:\n";
- for (int i = 0; i < 10; i++)
- {
- std::cout << mas[i] << " ";
- }
- std::cout << "\n";
- insertionSort(mas, 10);
- std::cout << "Результат сортировки:\n";
- for (int i = 0; i < 10; i++)
- {
- std::cout << mas[i] << " ";
- }
- std::cout << "\n";
- //Заполнение массивов с помощью псевдослучайной генерации чисел
- for (int i = 0; i < n1; i++)
- {
- mas1[i] = rand();
- }
- for (int i = 0; i < n2; i++)
- {
- mas2[i] = rand();
- }
- for (int i = 0; i < n3; i++)
- {
- mas3[i] = rand();
- }
- for (int i = 0; i < n4; i++)
- {
- mas4[i] = rand();
- }
- for (int i = 0; i < n5; i++)
- {
- mas5[i] = rand();
- }
- std::cout << "-------------------------\nn1 = 50 000\nСредний случай\n";
- insertionSort(mas1, n1);
- std::cout << "Наилучший случай\n";
- insertionSort(mas1, n1);
- invertSort(mas1, n1);
- std::cout << "Наихудший случай\n";
- insertionSort(mas1, n1);
- std::cout << "-------------------------\nn2 = 60 000\nСредний случай\n";
- insertionSort(mas2, n2);
- std::cout << "Наилучший случай\n";
- insertionSort(mas2, n2);
- invertSort(mas2, n2);
- std::cout << "Наихудший случай\n";
- insertionSort(mas2, n2);
- std::cout << "-------------------------\nn3 = 70 000\nСредний случай\n";
- insertionSort(mas3, n3);
- std::cout << "Наилучший случай\n";
- insertionSort(mas3, n3);
- invertSort(mas3, n3);
- std::cout << "Наихудший случай\n";
- insertionSort(mas3, n3);
- std::cout << "-------------------------\nn4 = 80 000\nСредний случай\n";
- insertionSort(mas4, n4);
- std::cout << "Наилучший случай\n";
- insertionSort(mas4, n4);
- invertSort(mas4, n4);
- std::cout << "Наихудший случай\n";
- insertionSort(mas4, n4);
- std::cout << "-------------------------\nn5 = 90 000\nСредний случай\n";
- insertionSort(mas5, n5);
- std::cout << "Наилучший случай\n";
- insertionSort(mas5, n5);
- invertSort(mas5, n5);
- std::cout << "Наихудший случай\n";
- insertionSort(mas5, n5);
- delete[] mas; delete[] mas1; delete[] mas2; delete[] mas3; delete[] mas4; delete[] mas5;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement