Algorithm (PS)

merge sort snippet

minjiwoo 2022. 9. 15. 08:54
728x90
# merge sort

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

def merge_sort(array):
    if len(array) < 2: # 원소가 하나인 경우
        return array
    merged_array = []
    mid = len(array)//2
    left_array = merge_sort(array[:mid])
    right_array = merge_sort(array[mid:])
    l = r = 0
    while l < len(left_array) and r < len(right_array):
        # 여기서는 작은 수 부터 정렬
        if left_array[l] < right_array[r]:
            merged_array.append(left_array[l])
            l += 1
        else:
            merged_array.append(right_array[r])
            r += 1
    merged_array += left_array[l:]
    merged_array += right_array[r:]
    return merged_array

print(array)
result = merge_sort(array)
print(result)
728x90