2. Нахождение времени работы выполнения программы (или ее части)
Для того, чтобы найти время работы программы, можно воспользоваться функцией clock(). Прототип функции clock() находится в заголовочном файле <ctime>, который нужно подключить.
Функция clock() возвращает значение времени в миллисекундах (1 с = 1000 мс). Причём отсчёт времени начинается с момента запуска программы. Если надо измерить работу всей программы, то в конце программы, перед оператором return 0 нужно запустить функцию clock(), которая покажет рабочее время. Для поиска времени работы фрагмента кода нужно найти разницу между конечным и начальным временем, как показано выше.
#include <ctime>
unsigned int start_time = clock(); // начальное время
// здесь должен быть фрагмент кода, время выполнения которого нужно измерить
unsigned int end_time = clock(); // конечное время
unsigned int search_time = (end_time - start_time); // искомое время в миллисекундах (для секунд надо поделить на 1000)
3. Задание на лабораторную работу
Разработать консольное приложение, которое:
– автоматически заполняет входной файл набором сгенерированных целых чисел (количество – 1000 штук);
– считывает из сформированного входного файла (in.txt) последовательность целых чисел;
– преобразует считанную последовательность в массив целых значений;
– сортирует по возрастанию полученный массив методом пузырька (с засечкой времени выполнения);
– записывает полученную отсортированную последовательность в выходной файл (out_bubble.txt);
– считывает из сформированного входного файла (in.txt) последовательность целых чисел;
– преобразует считанную последовательность в массив целых значений;
– сортирует по возрастанию полученный массив методом поиска минимума (с засечкой времени выполнения);
– записывает полученную отсортированную последовательность в выходной файл (out_min.txt);
– считывает из сформированного входного файла (in.txt) последовательность целых чисел;
– преобразует считанную последовательность в массив целых значений;
– сортирует по возрастанию полученный массив методом вставки (с засечкой времени выполнения);
– записывает полученную отсортированную последовательность в выходной файл (out_ins.txt);
– считывает из сформированного входного файла (in.txt) последовательность целых чисел;
– преобразует считанную последовательность в массив целых значений;
– сортирует по возрастанию полученный массив сортировкой Шелла(с засечкой времени выполнения);
– записывает полученную отсортированную последовательность в выходной файл (out_shell.txt);
– сравнить полученные времена.
Рекомендации:
– все методы сортировки должны быть реализованы в одной программе и сортировать одну и ту же последовательность (чтобы можно было корректно сравнить время выполнения);
– заполнение массива из файла и различные методы сортировки следует выполнить отдельными функциями;
– на выходе можно получить примерно следующее окно с результатами, приведенное на следующем рисунке.