C++. реализовать программу, которая принимает на вход количество элементов массива, выполняет генерацию 3 массивов отсортированных по возрастанию, по убыванию и случайным образом соответственно. сортирует каждый из массивов используя сортировку "выбором". после выполнения выводит данные отчета по выполнению сортировки в формате: как отсортирован массив, время, занявшее на сортировку каждым из методов.
165
287
Ответы на вопрос:
Не понятно, что означает "время, занявшее на сортировку каждым из методов" - метод в всего 1.программе нужно сказать количество элементов в массиве, после этого она выведет необходимую информацию. если нужен вывод самих массивов, раскомментируйте соответствующие строки.#include < iostream> #include < ctime> #include < cstdlib> #include < locale.h> void selection_sort(int *arr, int n, std: : string name){ /*std: : cout < < "неотсортированный массив " < < name < < std: : endl; for (int i = 0; i < n; i++) std: : cout < < arr[i] < < " "; std: : cout < < std: : endl; */ std: : clock_t c_start = std: : clock(); for (int i = 0; i < n - 1; i++) { int ind_min = i; for (int j = i + 1; j < n; j++) if (arr[j] < arr[ind_min]) ind_min = j; if (ind_min ! = i) { int t = arr[ind_min]; arr[ind_min] = arr[i]; arr[i] = t; } } std: : clock_t c_end = std: : clock(); std: : cout < < "отсортированный массив " < < name < < " (сортировка выбором)"< < std: : endl; /*for (int i = 0; i < n; i++) std: : cout < < arr[i] < < " "; std: : cout < < std: : endl; */ float time = 1000.0 * (c_end-c_start) / clocks_per_sec; std: : cout < < "времени затрачено: " < < time < < " мс" < < std: : endl; } int main(){ setlocale(lc_all, "rus"); int n; std: : cout < < "число элементов массива: "; std: : cin > > n; int *arr = new int[n]; arr[0] = 0; for (int i = 1; i < n; i++) arr[i] = arr[i-1] + rand() % 3; selection_sort(arr, n, "[отсортирован по возрастанию]"); arr[0] = 10000; for (int i = 1; i < n; i++) arr[i] = arr[i-1] - rand() % 3; selection_sort(arr, n, "[отсортирован по убыванию]"); for (int i = 0; i < n; i++) arr[i] = rand() % 10000; selection_sort(arr, n, "[случайный массив]"); return 0; }пример работы: число элементов массива: 30000отсортированный массив [отсортирован по возрастанию] (сортировка выбором)времени затрачено: 1760 мсотсортированный массив [отсортирован по убыванию] (сортировка выбором)времени затрачено: 2838 мсотсортированный массив [случайный массив] (сортировка выбором)времени затрачено: 1789 мс
Исходный массив: 1 2 3 4 5 6 7 8 9 10 11 далее, каждому элементу начиная с нулевого, присваиваем значение массива с таким же индексом, но считая с конца и получаем: 11 10 9 8 7 6 7 8 9 10 11
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
witruk24.06.2021 19:14
-
2017minikot17.12.2020 21:34
-
матиматик3103.02.2021 22:16
-
Mila67214.07.2020 15:40
-
faets03.01.2023 17:56
-
alina12456117.10.2021 10:10
-
oll507.08.2020 14:02
-
TAMADA12312329.03.2020 17:10
-
malkinzene22.11.2022 18:11
-
лоххз31.12.2022 05:32
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.