М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
artem759342
artem759342
03.10.2020 19:38 •  Информатика

C++. реализовать программу, которая принимает на вход количество элементов массива, выполняет генерацию 3 массивов отсортированных по возрастанию, по убыванию и случайным образом соответственно. сортирует каждый из массивов используя сортировку "выбором". после выполнения выводит данные отчета по выполнению сортировки в формате: как отсортирован массив, время, занявшее на сортировку каждым из методов.

👇
Ответ:
fokslov69
fokslov69
03.10.2020
Не очень понятно, что означает "время, занявшее на сортировку каждым из методов" - метод в задании всего 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 мс
4,7(93 оценок)
Открыть все ответы
Ответ:
mathewkichunov
mathewkichunov
03.10.2020

использовать Чертежник

алг

нач

опустить перо

сместиться в точку (0,100)

сместиться в точку (200,300)

сместиться в точку (300,200)

сместиться в точку (300,100)

сместиться в точку (200,100)

сместиться в точку (200,0)

сместиться в точку (100,0)

сместиться в точку (200,-100)

сместиться в точку (100,-200)

сместиться в точку (0,-100)

сместиться в точку (0,-200)

сместиться в точку (0,200)

сместиться в точку (0,100)

сместиться в точку (-200,300)

сместиться в точку (-300,200)

сместиться в точку (-300,100)

сместиться в точку (-200,100)

сместиться в точку (-200,0)

сместиться в точку (-100,0)

сместиться в точку (-200,-100)

сместиться в точку (-100,-200)

сместиться в точку (0,-100

кон

4,6(48 оценок)
Ответ:
hatikomurka
hatikomurka
03.10.2020

задача 1.

var

   a, s : integer;

begin

   writeln('введите числа:');

   while s < 101 do begin

       read(a);

       s += a;

   end;

   writeln('Стоп! Сумма чисел больше 100, s=', s);

end.

задача 2.

var

   h : char;

   n : integer;

begin

   writeln('введите символы:');

   while n < 5 do begin

       read(h);

       if h = 'F' then n += 1;

   end;

   writeln('Стоп! Символ F был введен 5 раз')

end.

задача 3.

var

   a : integer;

begin

   write('Введите число от 1 до 4 : ');

   readln(a);

   if (a = 1) or (a = 2) then begin

       for var i := 3 downto 1 do begin

           for var j := 1 to i do write('*');

           writeln;

       end;

   end

   else if (a = 3) or (a = 4) then begin

       for var i := 1 to 3 do begin

           for var j := 1 to i do write('*');

           writeln;

       end;

   end

   else writeln('вы ввели не правильное число :(');

end.

4,6(77 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ