[Python]버블 정렬(Bubble Sort)

nongnola·2024년 7월 2일

Python

목록 보기
16/17

버블 정렬이란?

버블 정렬은 가장 간단한 정렬 알고리즘 중 하나입니다. 이 알고리즘은 인접한 두 원소를 비교하고, 그 순서가 잘못된 경우 서로 교환하는 방식을 반복하여 전체 리스트를 정렬합니다. 버블 정렬의 이름은 정렬 과정에서 큰 원소가 "거품"처럼 리스트의 끝으로 이동하는 모습에서 유래했습니다.


버블 정렬을 사용하는 이유

버블 정렬은 단순하고 구현하기 쉬운 알고리즘입니다. 특히, 컴퓨터 과학을 처음 배우는 학생들에게 기초적인 정렬 개념을 익히는 데 유용합니다. 또한, 데이터가 이미 거의 정렬되어 있는 경우에는 빠르게 동작할 수 있습니다.


버블 정렬의 사용법

버블 정렬의 사용법은 다음과 같습니다:

  1. 리스트의 첫 번째 원소와 두 번째 원소를 비교합니다.

  2. 첫 번째 원소가 두 번째 원소보다 크면, 두 원소를 교환합니다.

  3. 두 번째 원소와 세 번째 원소를 비교하고, 필요하면 교환합니다.

  4. 리스트의 끝까지 이 과정을 반복합니다.

  5. 한 번의 패스가 끝나면 가장 큰 원소가 리스트의 끝에 위치하게 됩니다.

  6. 이 과정을 리스트의 길이만큼 반복하면 전체 리스트가 정렬됩니다.


버블 정렬 예시

다음은 파이썬 코드로 작성한 버블 정렬의 예시입니다:

def bubble_sort(arr):
    n = len(arr)
    # 리스트의 길이만큼 반복
    for i in range(n):
        # 리스트의 끝에서부터 i번째 원소까지 비교
        for j in range(0, n-i-1):
            # 인접한 두 원소를 비교
            if arr[j] > arr[j+1]:
                # 순서가 잘못된 경우 교환
                arr[j], arr[j+1] = arr[j+1], arr[j]

# 예시 리스트
example_list = [64, 34, 25, 12, 22, 11, 90]

print("정렬 전:", example_list)
bubble_sort(example_list)
print("정렬 후:", example_list)

위 코드에서 bubble_sort 함수는 주어진 리스트를 오름차순으로 정렬합니다. example_list는 정렬 전과 후의 상태를 보여줍니다.


버블 정렬을 사용할 때 주의할 점

버블 정렬은 단순하지만 비효율적인 알고리즘입니다. 시간 복잡도가 O(n^2)이기 때문에, 데이터의 개수가 많아질수록 성능이 급격히 저하됩니다. 따라서, 실무에서는 더 효율적인 정렬 알고리즘을 사용하는 것이 좋습니다. 예를 들어, 퀵 정렬이나 병합 정렬이 더 나은 성능을 보입니다.

또한, 버블 정렬은 안정 정렬이므로, 동일한 값의 순서를 보장합니다. 이것은 데이터의 안정성이 중요한 경우 유용할 수 있습니다.


결론

버블 정렬은 학습 목적으로는 유용하지만, 실제 응용에서는 성능상의 이유로 잘 사용되지 않습니다. 그러나 기본 원리를 이해하면 다른 정렬 알고리즘을 배우는 데 큰 도움이 됩니다. 버블 정렬의 간단한 예시와 구현을 통해 정렬의 기본 개념을 이해하는 데 도움이 되었기를 바랍니다.

0개의 댓글