memostack
article thumbnail
블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.github.io/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
반응형

버블 정렬

버블 정렬(Bubble Sort)은 바로 옆의 원소와 크기 비교를 하여 위치를 바꾸는 방법이다.

Credit. Wiki

바로 옆의 원소와 크기 비교를 하고 스왑을 하면 되기 때문에 구현하기 쉬운 알고리즘이다.

 

코딩

아래 코드는 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) 으로 상당히 오래 걸리는 정렬 알고리즘이다.

 

이 밖에 다른 정렬 알고리즘은 아래를 참고한다.

반응형
블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.github.io/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
profile

memostack

@bluemiv_mm

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!