Осуществить сортировку заданного массива двумя методами: адресная сортировка и сортировка вставками
Определить количество проходов по массиву, количество сравнений и количество перестановок элементов массива. C++

Khidjana95 Khidjana95    1   07.02.2022 02:09    0

Ответы
olgagavrikova31 olgagavrikova31  07.02.2022 06:00

Адресная сортировка

#include <iostream>

int main()

{

   int value = 8;

   int *ptr = &value;

   std::cout << ptr << '\n';

   std::cout << ptr+1 << '\n';

   std::cout << ptr+2 << '\n';

   std::cout << ptr+3 << '\n';

   return 0;

}

Сортировка вставками

#include <iostream>

using namespace std;

int main()

{

const int N = 10;

int a[N] = { 12, 5, 3, 2, 45, 96, 6, 8, 11, 24 };

int buff = 0; // для хранения перемещаемого значения

int i, j;  // для циклов  

/ Начало сортировки /

for (i = 1; i < N; i++)

{

 buff = a[i]; // запомним обрабатываемый элемент

 // и начнем перемещение элементов слева от него

 // пока запомненный не окажется меньше чем перемещаемый

 for (j = i - 1; j >= 0 && a[j] > buff; j--)

    a[j + 1] = a[j];

 a[j + 1] = buff; // и поставим запомненный на его новое место

}

/ Конец сортировки /

for (int i = 0; i < N; i++) // вывод отсортированного массива

 cout << a[i] << '\t';

cout << endl;

}

Думаю :)

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