Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <time.h>
- using namespace std;
- // сортировка массива наоборот
- 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;
- }
- }
- swap(mas[max_idx], mas[i]);
- }
- }
- //сортировка обменом
- void Sort(int* vec, int n) {
- int C = 0, M = 0, chetchik = 0, box = 0;
- for (int i = n - 1; (i >= 1); i--) {
- C++;
- for (int j = 0; j < i; j++) {
- if (vec[j] > vec[j + 1]) {
- box = vec[j];
- vec[j] = vec[j + 1];
- vec[j + 1] = box;
- chetchik++;
- M++;
- }
- }
- if (chetchik == 0) break; //Условие Айверсона
- }
- // вывод данных сравнения("C") и перестановок("M")
- if (n != 10) cout << "C = " << C << " M = " << M << "\n";
- }
- int main()
- {
- setlocale(0, "rus");
- srand(time(0));
- //srand(static_cast<unsigned int>(time(nullptr)));
- int mas[10], mas1[6000], mas2[7000], mas3[8000], mas4[9000], mas5[10000];
- cout << "\tПрактическая работа №1\nСравнение простых алгоритмов сортировки массивов.\nВладислав Филиппов. ИКБО-19-19\n";
- cout << "Введите в строку элементы целочисленного массива через пробел:\n -> ";
- for (int i = 0; i < 10; i++)
- {
- cin >> mas[i];
- }
- cout << "\n\tЗаполненный тестовый массив элементов:\n -> ";
- for (int i = 0; i < 10; i++)
- {
- cout << mas[i] << " ";
- }
- cout << "\n";
- Sort(mas, 10);
- cout << "\tРезультат сортировки:\n ->";
- for (int i = 0; i < 10; i++)
- {
- cout << mas[i] << " ";
- }
- cout << "\n";
- //Заполнение массивов с помощью псевдослучайной генерации чисел
- for (int i = 0; i < 6000; i++)
- {
- mas1[i] = rand();
- }
- for (int i = 0; i < 7000; i++)
- {
- mas2[i] = rand();
- }
- for (int i = 0; i < 8000; i++)
- {
- mas3[i] = rand();
- }
- for (int i = 0; i < 9000; i++)
- {
- mas4[i] = rand();
- }
- for (int i = 0; i < 10000; i++)
- {
- mas5[i] = rand();
- }
- cout << "-------------------------\n\tn1 = 6 000\n-Средний случай\n -> ";
- Sort(mas1, 6000);
- cout << "-Наилучший случай\n -> ";
- Sort(mas1, 6000);
- invertSort(mas1, 6000);
- cout << "-Наихудший случай\n -> ";
- Sort(mas1, 6000);
- cout << "-------------------------\n\tn2 = 7 000\n-Средний случай\n -> ";
- Sort(mas2, 7000);
- cout << "-Наилучший случай\n -> ";
- Sort(mas2, 7000);
- invertSort(mas2, 7000);
- cout << "-Наихудший случай\n -> ";
- Sort(mas2, 7000);
- cout << "-------------------------\n\tn3 = 8 000\n-Средний случай\n -> ";
- Sort(mas3, 8000);
- cout << "-Наилучший случай\n -> ";
- Sort(mas3, 8000);
- invertSort(mas3, 8000);
- cout << "-Наихудший случай\n -> ";
- Sort(mas3, 8000);
- cout << "-------------------------\n\tn4 = 9 000\n-Средний случай\n -> ";
- Sort(mas4, 9000);
- cout << "-Наилучший случай\n -> ";
- Sort(mas4, 9000);
- invertSort(mas4, 9000);
- cout << "-Наихудший случай\n -> ";
- Sort(mas4, 9000);
- cout << "-------------------------\n\tn5 = 10 000\n-Средний случай\n -> ";
- Sort(mas5, 10000);
- cout << "-Наилучший случай\n -> ";
- Sort(mas5, 10000);
- invertSort(mas5, 10000);
- cout << "-Наихудший случай\n -> ";
- Sort(mas5, 10000);
- system("pause");
- return 0;
- }
Add Comment
Please, Sign In to add comment