Написать функции для сортировки массива методами пузырька, Шелла, выбора,
пирамидальной сортировки, быстрой сортировки.
C/C++
Нужен код на с++
Давненько я не проверяла что быстрее работает - выбор или пузырёк (у них обоих временная сложность ~n²)? В такой вот реализации
#include <ctime>
#include <cstdlib>
#include <iomanip>
#include <iostream>
using namespace std;
void bubble(int x[], int size)
{ int i, j; for (i = 1; i < size; i++)
for (j = size - 1; j >= i; j--)
if (x[j - 1] > x[j]) swap(x[j - 1], x[j]); }
void choice(int x[], int size)
{ int m, n, mini, indexmini;
for (n = 0; n < size - 1; n++)
{ mini = x[n]; indexmini = n;
for (m = n + 1; m < size; m++)
if (x[m] < mini) { mini = x[m];
indexmini = m; }
swap(x[n], x[indexmini]); } }
int main()
{ int i, j, n, t, T, *a, *b; for (;;)
{ cout << "\033[1mn: "; cin >> n;
if (n < 2) break; a = new int [n];
b = new int [n]; srand(time(NULL));
for (i = 0; i < n; i++) a[i] = b[i] = rand() % 10000;
t = time(NULL); bubble(a, n); T = time(NULL);
cout << "Bubble: " << T - t << endl; t = T;
choice(b, n); cout << "Choice: " <<
time(NULL) - t << endl; delete [] a;
delete [] b; } cin.get(); cin.get(); return 0; }
получается, что choice быстрее bubble'a раза в три (ну или в два там с чем-то):
А насчёт других методов сортировки и функций, их реализующих (в том числе и на плюсах !), могу сказать одно: их до такой-то Фени полным-полно в Сети...
#include <ctime>
#include <cstdlib>
#include <iomanip>
#include <iostream>
using namespace std;
void bubble(int x[], int size)
{ int i, j; for (i = 1; i < size; i++)
for (j = size - 1; j >= i; j--)
if (x[j - 1] > x[j]) swap(x[j - 1], x[j]); }
void choice(int x[], int size)
{ int m, n, mini, indexmini;
for (n = 0; n < size - 1; n++)
{ mini = x[n]; indexmini = n;
for (m = n + 1; m < size; m++)
if (x[m] < mini) { mini = x[m];
indexmini = m; }
swap(x[n], x[indexmini]); } }
int main()
{ int i, j, n, t, T, *a, *b; for (;;)
{ cout << "\033[1mn: "; cin >> n;
if (n < 2) break; a = new int [n];
b = new int [n]; srand(time(NULL));
for (i = 0; i < n; i++) a[i] = b[i] = rand() % 10000;
t = time(NULL); bubble(a, n); T = time(NULL);
cout << "Bubble: " << T - t << endl; t = T;
choice(b, n); cout << "Choice: " <<
time(NULL) - t << endl; delete [] a;
delete [] b; } cin.get(); cin.get(); return 0; }
получается, что choice быстрее bubble'a раза в три (ну или в два там с чем-то):

Похожие вопросы
- Очень нужен код на c++ (тема: ГРАФЫ)
- Очень нужна помощь. нужен код на C. Задачка будет в описании.
- Программа на с++ (нужен код) пожалуйста помогите
- Задание с использование библиотечных функций С++. Нужен код. Помогите, пожалуйста.
- Нужен код на С. Подробней в описании
- Нужен код на Си помогите пж
- Функция на рекурсию. Нужен код на С
- Нужен код на Си помогите пожалуйста
- Нужен код на Си помогите пж
- Нужен код на С :)