Алгоритм пузырьковой сортировки в последовательности массива
Сегодня я затрону тему сортировки методом пузырька. Для начала рассмотрим работу данного алгоритма на простом примере.
Алгоритм пузырьковой сортировки
У нас имеется некоторая последовательность и требуется сделать так, чтобы эти числа стали упорядоченными по возрастанию. Как это делается в алгоритме пузырьковой сортировки. Мы начинаем с самого начала нашей последовательности и сравниваем последовательно два числа. Если правое число меньше левого, то мы меняем эти числа местами. В противном случае мы ничего не делаем.
Сравниваем первые два числа так как правое число больше левого, то мы соответственно ничего не делаем.

Сравниваем следующие два числа: так как 5<8, то мы меняем эти числа местами. Далее сравниваем 3 и 4 позиции: 7<8 -> меняем местами. Сравниваем 4 и 5 позиции 3<8, следовательно их тоже меняем местами.

Когда доходим до предпоследней позиции, то мы заканчиваем алгоритм сортировки пузырьком. И теперь начинаем снова с первой позиции, но при этом восьмерку уже не берем в рассмотрении( она уже на своем месте).
Теперь снова сравниваем первые два числа нашей последовательности: 5>1, поэтому ничего не меняем. Следующие два числа тоже оставляем на своих позициях. А вот последние два числа 3 и 7 меняем местами.

Опять уменьшаем количество рассматриваемых чисел нашей последовательности(цифры 7 и 8 уже на своих местах).
Снова начинаем с самого начала и проделываем то же самое.

И вот осталось сравнить два последних числа(3>1), поэтому ничего не делаем.

На этом алгоритм пузырьковой сортировки завершает свою работу – числа нашей последовательности отсортированы в порядке возрастания.
Давайте теперь я продемонстрирую реализацию данного алгоритма на языке си++.
Сортировка пузырьком с++
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <clocale>
using namespace std;
int main()
{
setlocale(LC_CTYPE,"rus");
const int N=5; //размер массива
int array[N];// массив куда будут считываться пять чисел
ifstream f("arr.txt");// файл содержащий последовательность чисел
cout<<"Неотсортированный массив:";
for(int i=0;i<N;i++)
{
f>>array[i];// запись в массив чисел из файла
cout<<array[i]<<" ";
}
cout<<endl;
// собственно сам алгоритм сортировки пузырьком
for(int i=N-1;i>=1;i--)
for(int j=0;j<i;j++)
{
if(array[j]>array[j+1])
{// меняем местами элементы
int temp(0);
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
// выводим отсортированный с помощью пузырька массив
cout<<"Пузырьковая сортировка:";
for(int i=0;i<N;i++)cout<<array[i]<<" ";
cout<<endl;
return 0;
}
Результат выполненной программы:

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