Условие задачи
Составить программу С++ для выполнения задачи:
Выполнить сортировку массива по возрастанию, подсчитав количество перестановок и сравнений элементов, которое потребовалось для этого.
Вход: (для любого из методов сортировки): 3 целочисленных массива: упорядоченный по возрастанию, упорядоченный по убыванию и произвольный массив;
Выход: (для любого из методов сортировки): количество перестановок и сравнений, которые выполнялись.
Ответ
Текст программы
#include iostream
using namespace std;
int S[2]={0};
void sortBubl(int MyArray[], int size){
int last=size; bool ok;
int srav=0,per=0;
do{
last=last-1;
ok=true;
for(int i=0; ilast; i++){
srav++;
if(MyArray[i]MyArray[i+1]){
int x=MyArray[i];
MyArray[i]=MyArray[i+1];
MyArray[i+1]=x;
ok=false;
per++;
}
}
}while(!ok);
S[0]=srav;
S[1]=per;
}
void ShellSort(int mass[], int n){ int srav=0,per=0; int i, j, step; int tmp; for (step = n / 2; step 0; step /= 2) for (i = step; i n; i++) { tmp = mass[i]; for...