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

BitBul1 BitBul1    2   08.12.2020 22:01    0

Ответы
Marat445372 Marat445372  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  

       }

   }

}

Объяснение:

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика