Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Задать вопрос эксперту Задать вопрос эксперту Задать вопрос эксперту Задать вопрос эксперту33123

Маша МАША Искусственный Интеллект (198344), на голосовании 1 месяц назад
Дополнен 3 месяца назад
void comb(std::vector<int> &data) // data — название вектора (передаём по ссылке, чтобы вызов comb(array) менял вектор array)
{
double factor = 1.2473309; // фактор уменьшения
int step = data.size() - 1; // шаг сортировки

//Последняя итерация цикла, когда step==1 эквивалентна одному проходу сортировки пузырьком
while (step >= 1)
{
for (int i = 0; i + step < data.size(); i++)
{
if (data[i] > data[i + step])
{
std::swap(data[i], data[i + step]);
}
}
step /= factor;
}
}
Дополнен 3 месяца назад
Голосование за лучший ответ
Похожие вопросы