본문 바로가기

자료구조 알고리즘/정렬 알고리즘(Sort)

[알고리즘] 버블 정렬(Bubble Sort)

 

 

 

 

 

알고리즘 개요 및 소개

Bubble Sort Animation

버블 정렬은 두 인접한 원소를 검사하여 정렬하는 방법이다. 시간 복잡도가 O(N^2)로 상당히 느리지만 코드가 단순하기 때문에 자주 사용되며 원소의 이동이 거품이 수면을 올라오는 듯한 모습을 보이기 때문에 지어진 이름이다.

시간 복잡도 O(N^2)
 장점 코드가 단순하고 간결하다
단점 상당히 느리다.

소스코드

 

#include<iostream>
constexpr int MAX_LIST = 10;

/*
Bubble Sort 알고리즘의 핵심은 옆에 있는 값과 비교해서 더 작은 값을 앞으로 보내면 어떨까?
*/
int main() {

	int list[MAX_LIST] = { 10,1,3,2,8,5,9,4,6,7 };
	int temp;
	for (int i = 0; i < MAX_LIST; ++i) {
		for (int j = 0; j < MAX_LIST; ++j) {
			if (list[i] < list[j]) {
				temp = list[i];
				list[i] = list[j];
				list[j] = temp;
			}
		}
	}

	for (auto i : list) {
		std::cout << i << " ";
	}
	system("pause");
}

결과

후기

두 번째 정렬 알고리즘 버블 정렬이다. 속도는 비록 느리지만 성능은 안 좋지만 빠르게 구현을 해보고 싶거나 테스트용으로 쓰기에는 좋은 알고리즘이라고 생각한다.

 

 

 

 

출처 및 레퍼런스

Wiki:https://blog.naver.com/ndb796/221226803544