Всем привет, помогите пожалуйста с контрольным заданием:
Разработать программу вычислительного эксперимента для исследования
характеристик эффективности сортировки прямого выбора. Проверить совпадение
модельных представлений и результатов вычислительного эксперимента.
Предусмотреть вывод исходной и результирующей информации в файл.
Оценить сложность программы.
C/C++
КОНТРОЛЬНЫЕ ЗАДАНИЯ ПО СОРТИРОВКЕ МАССИВОВ
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <ctime>
using namespace std;
void init_array(int* A, unsigned n, unsigned a, unsigned b);
void print_array(int* A, unsigned n);
unsigned selection_sort(int* A, unsigned n);
int main()
{
setlocale(LC_ALL, "RUS");
srand((unsigned)time(0));
ofstream fout("output.txt");
for (unsigned i = 1000U; i <= 100000U; i += 10000U)
{
int* A = new int[i + 1];
for (unsigned j = 100U; j <= 100000U; j += 10000U)
{
init_array(A, i, 1U, j);
fout << "Количество элементов:" << i << ' ';
fout << "Отрезок: [1;" << j << "]" << ' ';
fout << "Время:" << selection_sort(A, i) << endl;
cout << '.';
}
delete[] A;
cout << endl;
} cout << endl;
fout.close();
cout << "Нажмите клавишу Enter для продолжения...";
cin.get(); //cin.get();
return 0;
}
void init_array(int* A, unsigned n, unsigned a, unsigned b)
{
for (unsigned i = 1; i <= n; i++)
A[i] = a + rand() % b;
}
void print_array(int* A, unsigned n)
{
for (unsigned i = 1; i <= n; i++)
{
cout << A[i] << ' ';
} cout << endl;
}
unsigned selection_sort(int* A, unsigned n)
{
unsigned t = clock();
for (unsigned i = 1; i <= n; i++)
for (unsigned j = i + 1; j <= n; j++)
if (A[j] < A[i])
{
A[j] = A[i] + A[j];
A[i] = A[j] - A[i];
A[j] = A[j] - A[i];
}
return clock() - t;
}
#include <fstream>
#include <cstdlib>
#include <ctime>
using namespace std;
void init_array(int* A, unsigned n, unsigned a, unsigned b);
void print_array(int* A, unsigned n);
unsigned selection_sort(int* A, unsigned n);
int main()
{
setlocale(LC_ALL, "RUS");
srand((unsigned)time(0));
ofstream fout("output.txt");
for (unsigned i = 1000U; i <= 100000U; i += 10000U)
{
int* A = new int[i + 1];
for (unsigned j = 100U; j <= 100000U; j += 10000U)
{
init_array(A, i, 1U, j);
fout << "Количество элементов:" << i << ' ';
fout << "Отрезок: [1;" << j << "]" << ' ';
fout << "Время:" << selection_sort(A, i) << endl;
cout << '.';
}
delete[] A;
cout << endl;
} cout << endl;
fout.close();
cout << "Нажмите клавишу Enter для продолжения...";
cin.get(); //cin.get();
return 0;
}
void init_array(int* A, unsigned n, unsigned a, unsigned b)
{
for (unsigned i = 1; i <= n; i++)
A[i] = a + rand() % b;
}
void print_array(int* A, unsigned n)
{
for (unsigned i = 1; i <= n; i++)
{
cout << A[i] << ' ';
} cout << endl;
}
unsigned selection_sort(int* A, unsigned n)
{
unsigned t = clock();
for (unsigned i = 1; i <= n; i++)
for (unsigned j = i + 1; j <= n; j++)
if (A[j] < A[i])
{
A[j] = A[i] + A[j];
A[i] = A[j] - A[i];
A[j] = A[j] - A[i];
}
return clock() - t;
}
Юлдаш Ураксин
спасибо)))
Похожие вопросы
- Проблемы с сортировкой массива методом пузырька.
- Выполните сортировку массивов ТРЕМЯ СПОСОБАМИ: методом пузырька, прямого поиска и быстрой сортировкой. С++
- Выполните сортировку массивов ТРЕМЯ СПОСОБАМИ: методом пузырька, прямого поиска и быстрой сортировкой. С++
- Сортировка массивов на С++
- Измерение времени на си. Почему-то скорость сортировки массива выводится со второго раза.. И еще надо измерить память
- С++ Сортировка массива
- Как сделать сортировку массива по убыванию, сохранив индексы на языке C
- Программа не выполняет условия задания, исходный массив меняет сам себя, помогите найти ошибку
- Одномерные массивы. Сортировка
- Задание с массивом