CS/알고리즘 개념

합병 정렬(merge sort)

Mev01 2020. 9. 5. 00:33

합병 정렬 알고리즘 개념


과정 설명

  • 배열을 길이가 0 또는 1이 될 때까지 두 개의 배열로 나눈다.
  • 각 나눠진 두개의 배열을 정렬하면서 합병
  • 하나의 배열이 될 때까지 계속 합병

과정 상세 설명

정렬되지 않은 배열을 다른 배열에 정렬하면서 합병

 

4 3 7 1 5 6 2
3 4 1 7 5 6 2

두 개의 원소를 하나의 배열로 묶으면서 정렬한다. ex) (4,3)->(3,4)

 

 

3 4 1 7 5 6 2
1 3 4 7 2 5 6

두 개의 원소로 이루어진 배열 두 개를 하나의 배열로 묶으면서 정렬한다. ex) (3,4,1,7)->(1,3,4,7)

 

 

1 3 4 7 2 5 6
1 2 3 4 5 6 7

하나의 배열로 묶어서 정리

 

 

퀵 정렬 알고리즘 시간복잡도


Best: nlogn

Avg: nlogn

Worst: nlogn

 

개선방법


레코드를 연결리스트로 구성했을 경우, 링크 인덱스만 변경되어 데이터의 이동을 줄일 수 있다.(공부 필요)

 

References


https://gmlwjd9405.github.io/2018/05/08/algorithm-merge-sort.html

 

[알고리즘] 합병 정렬(merge sort)이란 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

'CS > 알고리즘 개념' 카테고리의 다른 글

가장 긴 증가하는 부분 수열(LIS)  (0) 2021.05.15
수학  (0) 2020.10.24
힙 정렬(heap sort)  (0) 2020.09.07
퀵 정렬(Quick Sort)  (0) 2020.08.21
KMP 알고리즘  (0) 2020.03.01