-
[알고리즘] Merge Sort🧠𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺 2020. 8. 11. 18:13
정렬된 두 배열
merge_sort(num_list, start_idx, end_idx)
처음부터 끝 인덱스 까지는 0, len(num_list)-1
중간값 mid_idx = (start_idx + end_idx) // 2
start_idx < end_idx 일 때 : merge_sort() 두번 호출하고, 합친다.
1. merge_sort(num_list, start_idx, mid_idx)
2. merge_sort(num_list, mid_idx+1, end_idx)
그리고 합친다! combine(num_list, start_idx, mid_idx, end_idx)
l_idx = start_idx # start_idx ~ mid_idx
r_idx = mid_idx + 1 # mid_idx+1 ~ end_idx
l_idx <= mid_idx and r_idx <= end_idx인 동안 진행.
num_list[l_idx] < num_list[r_idx] 이면, 정렬된 리스트에 num_list[l_idx] 추가.
'🧠𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺' 카테고리의 다른 글
시간복잡도와 공간복잡도 (0) 2020.08.14 [C++] 2차원 배열의 동적할당 (0) 2020.06.04 백준 6588번 - 골드바흐의 추측 (0) 2020.05.11 백준 11389번 - 흑백 이미지 (0) 2020.05.08