Дана последовательность, состоящая из 10 чисел [6, 2, 1, 9, 7, 8, 5, 4, 10, 3]. Вы умеете за один ход поменять в ней местами два любых соседних числа. За


какое минимальное количество ходов вы сможете получить последовательность, в которой все числа идут по возрастанию?
какое минимальное количество ходов вы сможете получить последовательность, в которой все числа идут по возрастанию?

Так? результат на скриншоте, пример реализации на c++ ниже:
#include <iostream><br />
using namespace std; <br />
<br />
int main() <br />
{ <br />
int count=0; <br />
int mass[10] = {6, 2, 1, 9, 7, 8, 5, 4, 10, 3}; <br />
cout <<«Исходный массив:» <<endl; <br />
for(int i=0; i<10; ++i) <br />
cout <<mass[i] <<» «;
cout <<endl; <br />
<br />
// Сортируем массив <br />
int cn = 0; <br />
for(int i=0; i<10; i++) <br />
for(int j=0; j<9; j++) <br />
{ <br />
int t=mass[j+1]; <br />
if(mass[j]>mass[j+1]) <br />
{ <br />
mass[j+1]=mass[j]; <br />
mass[j]=t; <br />
count++; <br />
} <br />
cn++; <br />
} <br />
<br />
cout <<«Отсортированный массив:» <<endl; <br />
for(int i=0; i<10; ++i) <br />
cout <<mass[i] << » «;
cout <<endl; <br />
cout <<«Было выполнено » <<cn <<» сравнений и «<<count <<» замен» <<endl; <br />
<br />
return 0; <br />
} <br />

Нет ответа? Добавь свой!

Добавить комментарий

Ваш e-mail не будет опубликован.