목차

버블 정렬 (Bubble Sort)

두 인접한 데이터를 비교하여, 큰 값을 뒤로 바꾸는 정렬 알고리즘.

Bubble Sort

  • n개의 리스트가 있을 경우 n-1번의 로직이 필요
  • 로직을 1회 적용할 때마다 가장 큰 수가 뒤에서부터 1개씩 정렬
  • 이미 정렬된 경우 일찍 종료 가능
def bubble_sort(data):
    data_len = len(data)
    for index in range(data_len - 1):
        swap_flag = False
        for bubble in range(data_len - index - 1):
            if data[bubble] > data[bubble + 1]:
                data[bubble], data[bubble + 1] = data[bubble + 1], data[bubble]
                swap_flag = True
        if not swap_flag:
            break
    return data
경우복잡도
일반O(n²)
최악n*(n-1)/2
완전 정렬 상태O(n)