[알고리즘]병합정렬


[알고리즘]병합정렬

병합정렬은 데이터를 쪼개서 각각을 정렬하고, 이를 합치는 과정을 반복하면서 모든 데이터를 정렬하는 방식입니다. 이러한 접근 방식은 문제를 더 작은 문제로 쪼개는 과정을 반복해서 작은 문제 여러개를 풀고 합친다는 의미로 Divide and Conquer라고도 합니다. 정렬의 과정을 나타내면 아래와 같습니다. 주어진 데이터를 현재 기준 반으로 나눕니다. 해당 과정은 데이터의 크기가 1이 될때까지 반복합니다.(Divide and Conquer에서 Divide 과정) 쪼개진 데이터들을 병합합니다.(Divide and Conquer에서 Conquert 과정) 최종적으로 데이터의 크기가 될때까지 병합하는 과정을 반복 합니다. 전체적인 과정을 나타내면 아래와 같습니다. 그림에서 보면 데이터의 크기가 1이 될때까지 나누고, 이후 병합을 하는 것을 볼 수 있습니다. 병합정렬의 핵심알고리즘은 병합하는 과정 입니다. 데이터가 병합이 될때마다, 전체의 관점에서 보면 부분데이터들이 정렬이 되고, 이게 최종...


#머지소트 #병합정렬 #알고리즘 #코딩테스트 #프로그래밍언어

원문링크 : [알고리즘]병합정렬