버블 정렬 (Bubble Sort)

array = [8,4,6,2,9,1,3,7,5]

def bubble_sort(array):
    n = len(array)
    for j in range(n-1):
        for i in range (n-1):
            if array[i] > array[i+1]:
                tmp = array[i]
                array[i] = array[i+1]
                array[i+1] = tmp
        print(array)

bubble_sort(array)

선택정렬(Selection Sort)

array = [8,4,6,2,9,1,3,7,5]

def selection_sort(array):
    n = len(array)
    for j in range(n-1):
        min = j
        for i in range(j+1, n):
            if array[i] < array[min]:
                min = i
        array[j], array[min] = array[min], array[j]
        print(array[:i+1])
        
selection_sort(array)

병합 정렬(Merge Sort)

[1,4][2,3] (1과2 비교) -> 1 선택, 완성된 배열은 [1]
[4][2,3] (4와2 비교) -> 2 선택, 완성된 배열은 [1,2]
[4][3] (4와3 비교) -> 3 선택, 완성된 배열은 [1,2,3]
[4][] -> 남는 4 선택, 완성된 배열은 [1,2,3,4]

[알고리즘] 병합 정렬 - Merge Sort (Python, Java)

파이썬으로 구현하는 병합정렬(Merge Sort)