알고리즘 개요 및 소개
버블 정렬은 두 인접한 원소를 검사하여 정렬하는 방법이다. 시간 복잡도가 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
'자료구조 알고리즘 > 정렬 알고리즘(Sort)' 카테고리의 다른 글
[알고리즘] 병합 정렬(Merge Sort) (1) | 2020.01.10 |
---|---|
[알고리즘] 퀵 정렬(Quick Sort) (1) | 2020.01.02 |
[알고리즘] 삽입 정렬(揷入整列, insertion sort) (1) | 2019.12.30 |
[알고리즘] 선택 정렬(選擇整列, Selection Sort) (1) | 2019.12.29 |