void CombSort(vector<int>& values) {
const double factor = 1.247; // Фактор уменьшения
double step = values.size() - 1;
while (step >= 1) {
for (int i = 0; i + step < values.size(); ++i) {
if (values[i] > values[i + step]) {
swap(values[i], values[i + step]);
}
}
step /= factor;
}
// сортировка пузырьком
for (size_t idx_i = 0; idx_i + 1 < values.size(); ++idx_i) {
for (size_t idx_j = 0; idx_j + 1 < values.size() - idx_i; ++idx_j) {
if (values[idx_j + 1] < values[idx_j]) {
swap(values[idx_j], values[idx_j + 1]);
}
}
}
}
view raw CombSort.cpp hosted with ❤ by GitHub