Алгоритм пузырьковой сортировки

алгоритм, сортировка, bubble

Алгоритм пузырьковой сортировки начинается со сравнения первых двух элементов массива и их замены при необходимости. Наример, если вы хотите отсортировать элементы массива в порядке возрастания, а первый элемент больше второго, вам нужно поменять местами элементы. Если же первый элемент меньше второго, вы не должны менять его местами. Затем второй и третий элементы снова сравниваются и меняются местами, если это необходимо, и этот процесс продолжается до тех пор, пока последний и предпоследний элементы не будут сравнены и заменены. Это завершает первый шаг пузырьковой сортировки.

Если нужно отсортировать n элементов, то процесс, упомянутый выше, следует повторить n-1 раз, чтобы получить требуемый результат. Но для лучшей производительности на втором этапе последние и предпоследние элементы не сравниваются, потому что соответствующий элемент автоматически помещается в конце после первого шага. Аналогично, на третьем этапе последние и предпоследние и предпредпоследние элементы не сравниваются и так далее.

Для лучшего понимания посмотрим на рисунок.

На рисунке представлено 5 элементов для сортировки и 4 шага.

Программа для сортировки элементов с использованием алгоритма пузырьковой сортировки
// Программа для сортировки данных в порядке возрастания с использованием пузырьковой сортировки. 
#include <stdio.h>
int main()
{
    int data[100],i,n,step,temp;
    printf("Enter the number of elements to be sorted: ");
    scanf("%d",&n);
    for(i=0;i<n;++i)
    {
        printf("%d. Enter element: ",i+1);
        scanf("%d",&data[i]);
    }

    for(step=0;step<n-1;++step)
    for(i=0;i<n-step-1;++i)
    {
        if(data[i]>data[i+1])   // Чтобы отсортировать в порядке убывания, измените > на < в этой строке. 
        {
            temp=data[i];
            data[i]=data[i+1];
            data[i+1]=temp;
        }
    }
    printf("In ascending order: ");
    for(i=0;i<n;++i)
         printf("%d  ",data[i]);
    return 0;
}
Enter number of terms(should be less than 100): 5
Enter elements: 12
1
2
5
3
In ascending order: 1     2     3     5     12

Примечание: хотя этот код используется в программировании на C, этот метод может применяться в любом программировании для сортировки элементов массива. Алгоритм пузырьковой сортировки довольно популярен, но есть много других более хороших алгоритмов, чем пузырьковая сортировка.

Внимание! Пузырьковая сортировка не должна использоваться для сортировки больших данных, если производительность в этой программе имеет значение.

10% refund of hotel reservation amount on Booking
10% refund of hotel reservation amount on Booking
We offer a link with a 10% return on the amount of the order when booking a hotel through Booking

Comments

Only authorized users can post comments.
Please, Log in or Sign up
m
May 19, 2019, 1:49 a.m.
mahhaki

Qt - Test 001. Signals and slots

  • Result:78points,
  • Rating points2
S
May 17, 2019, 1:14 p.m.
SunBro

Qt - Test 001. Signals and slots

  • Result:42points,
  • Rating points-8
b
May 17, 2019, 4:18 a.m.
banana

C++ - Тест 003. Условия и циклы

  • Result:57points,
  • Rating points-2
Last comments
P.
May 18, 2019, 2:03 p.m.
PELMYACH .

Спасибо большое! Вскоре буду разбираться!
May 18, 2019, 9:13 a.m.
Евгений Легоцкой

Добрый день! Отнимать значение общего счётчика можно в деструкторе класса кнопки QDynamicButton::~QDynamicButton(){ ResID--;} При этом я бы ещё переустанавливал значения вс...
P.
May 14, 2019, 10:33 p.m.
PELMYACH .

Здравствуйте!А не подскажите, как можно при удалении какой либо кнопки, у щётчика отнять значение?Дабы например четвёртой кнопке соответствовал ID 4, а не 5 скажем
May 6, 2019, 6:39 a.m.
Евгений Легоцкой

Добрый день. Этот урок для Qt Quick Control версии 1, Вы используете вторую версию. Здесь style уже нет, кастомизацию можно делать уже или черещ соответствующие property или через ...
U
May 4, 2019, 3:14 a.m.
Unreal_man

Делаю вроде правильно, а ничего не получается. Что упустил? После button1. в выпадающем списке нет style.Да, и откуда в уроке взялся файл .pri и зачем он нужен?
Now discuss on the forum
May 19, 2019, 12:45 p.m.
Михаиллл

Скачал openssl-1.1.1 от сюда , но не понимаю что делать с этой папкой
May 19, 2019, 10:52 a.m.
Евгений Легоцкой

Если честно, то мне нужно самому время потратить, чтобы глянуть это дело. Я использовал Flutter для разработки, а не Qt. Просто исходя из опыта, могу сказать, что по большей части всё на эмуля...
May 16, 2019, 11:08 p.m.
BlinCT

Решил через indexOf сделать. Возвращает или номер позиции где нашел символ или строку или -1 если не найдено.
May 15, 2019, 3:06 p.m.
Михаиллл

Спасибо , заработало.Получаю ответный сигнал.Но теоретически, в ответ на запрос должен прийти json файл. Скажите пожалуйста, как можно открыть ответные данные, прочитать их, и потом удалить...
May 14, 2019, 11:07 a.m.
Евгений Легоцкой

Из той задачи, которую вы привели, у вас есть база данных и таблица в ней с текстами. Для представления данных из базы данных обычно используют QTableView, а text browser здесь не к мест...

For registered users on the site there is a minimum amount of advertising

EVILEG
About
Services
Join us
© EVILEG 2015-2019
Recommend hosting TIMEWEB