Форум программистов, компьютерный форум CyberForum.ru

Добавление флага в алгоритм сортировки способом пузырька (С++) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Отсортировать строки массива целых чисел по убыванию. http://www.cyberforum.ru/cpp-beginners/thread433919.html
Отсортировать строки массива целых чисел по убыванию.
C++ Подсчитайте количество элементов одномерного массива, которые совпадают со своим номером Подсчитайте количество элементов одномерного массива, которые совпадают со своим номером и при этом кратны 3 http://www.cyberforum.ru/cpp-beginners/thread433917.html
C++ подпрограммы
Найти три таких простых числа, чтобы их сумма была в 5 раз меньше их произведения.
C++ линейный алгоритм
В озеро, имеющее среднюю глубину L м и площадь поверхности S кв.км, бросили кристалл поваренной соли массой 0,05 г. Сколько граммов соли оказалось бы в наперстке воды объемом 2 см3, зачерпнутой из озера, если полагать, что соль растворилась равномерно во всем объеме воды?
C++ Анимация в Borland C++ http://www.cyberforum.ru/cpp-beginners/thread433901.html
Здравие желаю, товарищи программисты. Нужна ваша помощь. Необходимо сделать анимацию в C++ на тему "Кинофильмы" (К примеру "Полотно кинотеатра, а на нем обратный отсчёт перед показом фильма") Буду очень признателен. Спасибо!
 

Показать сообщение отдельно
Evgeniy_
0 / 0 / 0
Регистрация: 17.11.2011
Сообщений: 7

Добавление флага в алгоритм сортировки способом пузырька (С++) - C++

23.01.2012, 21:41. Просмотров 1459. Ответов 1
Метки (Все метки)

Всем добрый вечер. Помогите пожалуйста добавить флажок в этот алгоритм.
Идея – если при выполнении метода пузырька не было обменов, массив уже отсортирован и остальные проходы не нужны.
Реализация: переменная-флаг, показывающая, был ли обмен; если она равна False, то выход.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
void sort(team &arr,unsigned *field,unsigned left,unsigned right)
{
    unsigned i=left,j=right,buf,buf2;
    buf=field[(left+right)/2];
    do
    {
        while((field[i]<buf)&&(i<right))
            i++;
        while((buf<field[j])&&(j>left))
            j--;
        if(i<=j)
        {
            buf2=field[i];
            field[i]=field[j];
            field[j]=buf2;
            copy(arr,i,j);
            buf2=field[i];
            field[i]=field[j];
            field[j]=buf2;
            if(i<right)
                i++;
            if(j>left)
                j--;
        }
    }
    while(i<=j);
    if(left<j)
        sort(arr,field,left,j);
    if(i<right)
        sort(arr,field,i,right);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru