
Глазьев
5 год назад
C++. Пожалуйста посчитайте разобраться с программой! Дайте комментарий к каждой строке и команде к ней , опишите принцип действия.int comb(vector sort){int n = 0; // количество перестановокdouble fakt = 1.2473309; // фактор уменьшенияint step = sort.size() - 1;while (step >= 1){for (int i = 0; i + step < sort.size(); ++i){if (sort[i] > sort[i + step]){swap(sort[i], sort[i + step]);n++;}}step /= fakt;}// сортировка пузырькомfor (int i = 0; i < sort.size() - 1; i++){bool swapped = false;for (int j = 0; j < sort.size() - i - 1; j++){if (sort[j] > sort[j + 1]) {swap(sort[j], sort[j + 1]);swapped = true;++n;}}if (!swapped)break;}return n;}
ОТВЕТЫ

Conka
Oct 24, 2020
int comb(vector sort)
{
int n = 0; // количество перестановок
double fakt = 1.2473309; // фактор уменьшения
int step = sort.size() - 1;
while (step >= 1)
{
for (int i = 0; i + step < sort.size(); ++i)
{
if (sort[i] > sort[i + step])
{
swap(sort[i], sort[i + step]);
n++;
}
}
step /= fakt;
}
// сортировка пузырьком
for (int i = 0; i < sort.size() - 1; i++)
{
bool swapped = false;
for (int j = 0; j < sort.size() - i - 1; j++)
{
if (sort[j] > sort[j + 1]) {
swap(sort[j], sort[j + 1]);
swapped = true;
++n;
}
}
if (!swapped)
break;
}
return n;
}
{
int n = 0; // количество перестановок
double fakt = 1.2473309; // фактор уменьшения
int step = sort.size() - 1;
while (step >= 1)
{
for (int i = 0; i + step < sort.size(); ++i)
{
if (sort[i] > sort[i + step])
{
swap(sort[i], sort[i + step]);
n++;
}
}
step /= fakt;
}
// сортировка пузырьком
for (int i = 0; i < sort.size() - 1; i++)
{
bool swapped = false;
for (int j = 0; j < sort.size() - i - 1; j++)
{
if (sort[j] > sort[j + 1]) {
swap(sort[j], sort[j + 1]);
swapped = true;
++n;
}
}
if (!swapped)
break;
}
return n;
}
935
Смежные вопросы: