В
Все
У
Українська література
Г
Геометрия
Д
Другие предметы
Э
Экономика
Г
География
О
ОБЖ
М
Математика
М
МХК
Х
Химия
Қ
Қазақ тiлi
Л
Литература
У
Українська мова
О
Обществознание
Ф
Физика
А
Английский язык
А
Алгебра
И
История
Б
Беларуская мова
Б
Биология
М
Музыка
П
Право
И
Информатика
П
Психология
В
Видео-ответы
Н
Немецкий язык
Ф
Французский язык
О
Окружающий мир
Р
Русский язык
тимур370
тимур370
27.08.2021 08:02 •  Информатика

Дан одномерный массив K, из P элементов. Отсортироваь данный массив по убыванию.

Ответ:
мамкакактус
мамкакактус
07.01.2021 22:02

#include <iostream> // подключаем библиотеку ввода-вывода  

using namespace std; // объявляем пространство имен std  

void insertSort(int[], int); // прототип функции сортировки

int main() // функция main выполняется первой  

{

   setlocale(LC_CTYPE, "Russian"); // русифицируем вывод  

   cout << "Введите кол-во элементов: ";

   int p;

   cin >> p;

   int *k = new int[p]; // объявляем одномерный массив

   cout << "Одномерный массив:" << endl;

   for (int i = 0; i < p; i++)

   {

       k[i] = 5 + rand() % 40; //заполняем массив случайными числами

       cout << "k[" << i << "] = " << k[i] << endl; // выводим массив

   }

   cout << endl;

   cout << "Сортировка массива вставками по убыванию:"<<endl;

   insertSort(k, p); // сортируем массив  

   for (int i = 0; i < p; i++)

   {

       cout << "k[" << i << "] = " << k[i] << endl; // выводим массив

   }

   cout << endl;

   delete[]k;

   return 0; // успешное окончание программы  

} // конец функции main  

// функция сортировки вставками по убыванию  

void insertSort(int c[], int d)

{ // c[] - массив для сортировки, d - количество элементов массива  

   int save, // переменная для хранения элемента сортируемого массива  

       iPred; // индекс предыдущего элемента  

   // цикл алгоритма начинается с 1-го элемента  

   // поскольку массив, состоящий из одного элемента является  

   // отсортированным и уже относительно него вставляются остальные  

   for (int i = 1; i < d; i++)

   {

       save = c[i]; // инициализируем переменную текущим значением  элемента  

       iPred = i - 1; // запоминаем индекс предыдущего элемента массива  

       //вложенный цикл ищет место для вставки, меняя местами элементы c[iPred+1] и c[iPred]  

       while (iPred >= 0 && c[iPred] < save)

       {

           c[iPred + 1] = c[iPred]; // переставляем элемент массива  

           c[iPred] = save; // через save  

           iPred--; // декрементируем индекс iPred  

       }

   }

}

Объяснение:

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?