C++ 개념 공부/알고리즘

[C++] 정렬 - 버블 정렬(Bubble Sort)

taene_ 2024. 4. 2. 23:00

- 서로 인접한 두 값을 검사해 정렬한다.
(인접한 2개의 값을 비교하여 크기가 순서대로 되어 있지 않으면 서로 교환한다.)

- swap을 많이 해야하기 때문에 전반적인 효율성은 떨어지나, best case에서는 빨리 끝나고, stability하다.

#include <iostream>
using namespace std;

void Print(int* arr)
{
	for (int i = 0; i < 5; i++)
		cout << arr[i] << ' ';
	cout << '\n';
}

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	int arr[] = { 5,4,3,2,1 };
	int size = sizeof(arr) / sizeof(arr[0]);

	Print(arr);
	for (int j = 0; j < size - 1; j++)
	{
		for (int i = 0; i < size - 1 - j; i++)
		{
			if (arr[i + 1] < arr[i])
			{
				swap(arr[i + 1], arr[i]);
			}
			Print(arr);
		}
		cout << '\n';
	}

	return 0;
}