Комплексные алгоритмы сортування, підрахувати кількість операцій порівняння та обміну (зсуву)
Автор: Andrey Kravchenko • Ноябрь 24, 2022 • Лабораторная работа • 2,107 Слов (9 Страниц) • 172 Просмотры
ЛАБОРАТОРНА РОБОТА
за курсом “Інформаційні технології та програмування”
Кафедра “Автоматика і управління в технічних системах”
Виконав:
Студент групи
ІКМ-721г
Кравченко А.О.
Перевірив:
Зуєв А.О.
Харків 2022
Мета роботи: Дослідити дію комплексних алгоритмів сортування, підрахувати кількість операцій порівняння та обміну (зсуву).
Завдання:
алгоритм для дослідження- - шc з вибором місця розподілу по середині послідовності
розмір (N) тип та діапазон вхідних данних - 4200, double, [-1.3, 1.457]
Опис дій:
В файлі реалізаціїї змінили алгоритм сортування, в змінну m записуємо середнє значення лівої та правої межі.
В заголовковому файлі оголосили розмір та діапазон значень послідовності
Лістинг коду у файлі lab09.h
#pragma once
#include <iostream>
#include <fstream>
#include <iomanip>
#include <time.h>
#include <stdlib.h>
using namespace std;
const int N = 4200;
const int Ns = 10;
const int deltaN = N / Ns;
const int minN = deltaN;
const int numT = 50;
//тип елементу для пошуку
typedef double t_elem;
//діапазон елементів
const t_elem minRange = -1.3, maxRange = 1.457;
//створення послідовності ПВЧ
void make_seq(t_elem* T, int tstN, t_elem mn, t_elem mx);
//тестування сортування
void test(fstream& res, t_elem* T, int tstN, t_elem mn, t_elem mx);
//рекурсивний алгоритм швидкого сортування
void sort_quick(t_elem* T, int L, int R, int& cmp_count, int& swap_count);
Лістинг коду у файлі lab09.cpp
#include "lab09.h"
void sort_quick(t_elem* T, int L, int R, int& cmp_count, int& swap_count)
{
if (L >= R) return;
//місце початкового розподілу
int m = (L + R) / 2;
cmp_count += 3;
int l = L, r = R;
while (l < r)
{
//шукаємо елемент, що порушує порядок (більший за T[m]) зліва
...