метод пузырька c



Автор Sasha Bezkrovniy задал вопрос в разделе Другие языки и технологии

оптимизированный метод пузырька c++ и получил лучший ответ

Ответ от Николай Веселуха[гуру]
Сортировка "Расчёской"
#include <iostream>
using namespace std;
void comb_sort(double*, const size_t);
void print_array(double*, const size_t);
int main() {
double test[] = {1.22, 12.6, .35, 7.14, .54, .04, 4.68, .99, 6.31, 4.08, 2.16, 1.45 };
size_t size = sizeof(test) / sizeof(test[0]);
print_array(test, size);
comb_sort(test, size);
print_array(test, size);
cin.get();
return 0;
}
void print_array(double* _array, const size_t _size) {
for (size_t n = 0; n < _size; ++n) cout << ' ' << _array[n];
cout << endl;
}
void comb_sort(double* _array, const size_t _size) {
if (_array && _size) {
size_t jump = _size;
bool swapped = true;
while (jump > 1 || swapped) {
if (jump > 1) jump = size_t(jump / 1.25);
swapped = false;
for (size_t n = 0; n + jump < _size; n++) {
if (_array[n] > _array[n + jump]) {
swap(_array[n], _array[n + jump]);
swapped = true;
}
}
}
}
}

Ответ от A[гуру]
Ну например так.
...
p=true;
k=1;
while (p)
{
p=false;
for (i=1;i<=n-k;i++)
{
if (x[i] > x[i+1])
{
a = x[i];
x[i]=x[i+1];
x[i+1]=a;
p=true;
}
k++;
}
...
Оптимизаций и модификаций у пузырька-то много. У Кнута увесистый труд по сортировкам 🙂

Ответ от 22 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: оптимизированный метод пузырька c++
Сортировка пузырьком на Википедии
Посмотрите статью на википедии про Сортировка пузырьком
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*