블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.github.io/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
반응형
버블 정렬
버블 정렬(Bubble Sort)은 바로 옆의 원소와 크기 비교를 하여 위치를 바꾸는 방법이다.
바로 옆의 원소와 크기 비교를 하고 스왑을 하면 되기 때문에 구현하기 쉬운 알고리즘이다.
코딩
아래 코드는 unittest 기반으로 작성되었다.
# -*- coding: utf-8 -*-
import unittest
class Exam12(unittest.TestCase):
@classmethod
def setUp(cls):
pass
def test_bubble_sort(self):
data = [2, 6, 3, 4, 8, 9, 1, 10]
n = len(data)
for _ in range(n-1):
for i in range(n-1):
if data[i] > data[i+1]:
data[i], data[i+1] = data[i+1], data[i]
self.assertEqual([1, 2, 3, 4, 6, 8, 9, 10], data)
if __name__ == "__main__":
unittest.main()
시간 복잡도는 O(N^2) 으로 상당히 오래 걸리는 정렬 알고리즘이다.
이 밖에 다른 정렬 알고리즘은 아래를 참고한다.
반응형
'Algorithm' 카테고리의 다른 글
큐(Queue) 와 스택(Stack) 자료구조 (0) | 2020.03.28 |
---|---|
이진 탐색 (Binary Search) 알고리즘 with Python3 (0) | 2020.03.25 |
퀵 정렬 (Quick Sort) 알고리즘 (with Python3) (4) | 2020.03.25 |
병합 정렬 (Merge Sort) 알고리즘 (with Python3) (0) | 2020.03.25 |
삽입 정렬 (Insertion Sort) 알고리즘 (with Python3) (0) | 2020.03.21 |