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



Сегодня я затрону тему сортировки методом пузырька. Для начала рассмотрим работу данного алгоритма на простом примере.

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

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

Сравниваем первые два числа так как правое число больше левого, то мы соответственно ничего не делаем.

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

Сравниваем следующие два числа: так как 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, вы делаете образование более доступным для каждого человека, внесите и вы свой вклад -
поделитесь этой статьей в социальных сетях!
кнопка вверх картинка