[알고리즘] Javascript로 병합 정렬 구현하기
업데이트:
병합 정렬이란?
배열을 가장 작은 단위부터 합칩니다.
분할, 병합 하다 보면(nlogn) 최종적으로 원본 배열이 정렬됩니다.
구현 전체 코드 (Javascript)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
let array = [0, 2, 1, 3, 7, 6, 4, 8, 5];
function merge(array) {
if (array.length === 1) {
return [array[0]];
}
let l = merge(array.slice(0, array.length / 2));
let r = merge(array.slice(array.length / 2, array.length));
let m = [];
while( l.length !== 0 && r.length !== 0 ) {
if ( l[0] < r[0] ) {
m.push(l.shift());
} else {
m.push(r.shift());
}
}
return [...m, ...l, ...r];
}
console.log(merge(array));
댓글남기기