Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 02.03.2018
Сообщений: 15
1

Сравнение методов сортировки массива

10.06.2021, 18:44. Показов 653. Ответов 0

Author24 — интернет-сервис помощи студентам
Помогите, пожалуйста, с этим кодом(не мой, пытался добавить вывод времени выполнения +1 сортировки),как сделать вывод времени выполнения этих сортировок?
Нужно, чтобы выводился сгенерированный массив и время выполнения каждой сортировки.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#include <cstdlib>
#include <iostream>
#include <iomanip>
#include <ctime>
 
using namespace std;
 
void bubbleSort(int* arrayPtr, int length_array)
{
    int temp = 0;
    bool exit = false;
 
    while (!exit)
    {
        exit = true;
        for (int i = 0; i < (length_array - 1); i++)
 
            if (arrayPtr[i] > arrayPtr[i + 1])
            {
 
                temp = arrayPtr[i];
                arrayPtr[i] = arrayPtr[i + 1];
                arrayPtr[i + 1] = temp;
                exit = false;
            }
    }
}
 
void selectionSort(int data[], int lenD)
{
    int j = 0;
    int temp = 0;
    bool exit = false;
    while (!exit)
    {
        for (int i = 0; i < lenD; i++) 
        {
        j = i;
        for (int k = i; k < lenD; k++) 
        {
            if (data[j] > data[k]) 
            {
                j = k;
            }
        }
        temp = data[i];
        data[i] = data[j];
        data[j] = temp;
        }
    }
}
 
void insertionSort(int data[], int lenD)
{
    int key = 0;
    int i = 0;
    for (int j = 1; j < lenD; j++) {
        key = data[j];
        i = j - 1;
        while (i >= 0 && data[i] > key) {
            data[i + 1] = data[i];
            i = i - 1;
            data[i + 1] = key;
        }
    }
}
 
void quickSort(int* data, int const len)
{
    int const lenD = len;
    int pivot = 0;
    int ind = lenD / 2;
    int i, j = 0, k = 0;
    if (lenD > 1) {
        int* L = new int[lenD];
        int* R = new int[lenD];
        pivot = data[ind];
        for (i = 0; i < lenD; i++) {
            if (i != ind) {
                if (data[i] < pivot) {
                    L[j] = data[i];
                    j++;
                }
                else {
                    R[k] = data[i];
                    k++;
                }
            }
        }
        quickSort(L, j);
        quickSort(R, k);
        for (int cnt = 0; cnt < lenD; cnt++) {
            if (cnt < j) {
                data[cnt] = L[cnt];;
            }
            else if (cnt == j) {
                data[cnt] = pivot;
            }
            else {
                data[cnt] = R[cnt - (j + 1)];
            }
        }
    }
}
 
int main(int argc, char* argv[])
{
    srand(time(NULL));
    setlocale(LC_ALL, "rus");
    cout << "Введите размер массива: ";
    int C;
    cin >> C;
 
    int* A = new int[C];
    for (int i = 0; i < C; i++)
    {
        A[i] = rand() % 1000;
        cout << setw(2) << A[i] << "  ";
    }
    cout << "\n\n" << endl;
    
    clock_t t = clock();
    bubbleSort(A, C);
    cout << "Время: " << (static_cast<double>(clock() - t) / CLOCKS_PER_SEC) << endl;
    /*
    clock_t t = clock();
    selectionSort(A, C);
    cout << "Время: " << (static_cast<double>(clock() - t) / CLOCKS_PER_SEC) << endl;
 
    ...
    */
    for (int counter = 0; counter < C; counter++)
    {
        cout << setw(2) << A[counter] << "  ";
    }
    cout << "\n" << endl;
 
    system("pause");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.06.2021, 18:44
Ответы с готовыми решениями:

Сравнение быстрого и прямого включения методов сортировки
Есть массив, размер которого задает пользователь. Затем этот массив копируется на две одинаковые...

Сравнение методов сортировки массивов: метод прямого включения и Шелла
Задание: Написать учебно-демонстрационную программу, которая сравнивает методы прямого включения и...

Исследовать возможности адаптации различных методов сортировки к структуре исходного массива
Исследовать возможности адаптации различных методов сортировки к структуре исходного массива. С...

Сравнение алгоритмов сортировки массива
Всем доброго времени суток Получил задание в университете, выполнил его. Результатом не очень...

0
10.06.2021, 18:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.06.2021, 18:44
Помогаю со студенческими работами здесь

Использование методов сортировки
Ввести с клавиатуры массив из 15 элементов. Найти первое число, которое больше 50 и вывести все...

Измерить быстродействие методов сортировки
Нужно измерить время работы различных методов сортировки , но не имею понятия как указателями...

Написать программу: реализация методов сортировки
Помогите , пожалуйста , написать программу. В долгу не останусь. Написать программу , в которой...

Сравнительный анализ методов сортировки одномерных массивов
Товарищи программисты, помогите пожалуйста!!! У меня такое задание, кто сможет решить, напишите...

Сортировки: пять методов на выбор в одной программе
Помогите написать програмку которая сортирует пьятьма методами на выбор 1) вставками 2) выбором 3)...

Сравнение методов доступа к данным класса
Добрый день. Изучаю С++. И маленький перфекционист внутри меня не даёт покоя. Допустим есть класс.В...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru