PS/제코베 JS 100제
제코베 JS 100제 / 52 / quick sort
function quickSort(arr) { if (arr.length parseInt(n, 10)); console.log(quickSort(array)); 위의 코드에선 pivot을 배열의 가장 첫번째 값으로 잡았지만, 중간값으로 잡는게 좋다고 한다. quick sort는 정렬이 불필요한 배열이 들어와도 수행하게 되는데, 이 경우 최악의 경우로 O(n^2)의 시간 복잡도를 가지게 된다. 어떤 배열이 들어올지 미지수인 상태에서 quick sort를 구현하게 된다면, 그나마 최소나 최대값이 아닌 확률이 가장적은 중간값으로 pivot을 잡는것이다.
제코베 JS 100제 / 51 / merge sort를 만들어보자
병합정렬은(merge sort)은 대표적인 정렬 알고리즘 중 하나로 다음과 같이 동작한다. 1. 리스트의 길이가 0 또는 1이면 이미 정렬된 것으로 본다. 그렇지 않은 경우에는 2. 정렬되지 않은 리스트를 절반으로 잘라 비슷한 크기의 두 부분 리스트로 나눈다. 3. 각 부분 리스트를 재귀적으로 합병 정렬을 이용해 정렬한다. 4. 두 부분 리스트를 다시 하나의 정렬된 리스트로 합병한다. function mergeSort(arr) { if (arr.length parseInt(n, 10)); console.log(mergeSort(array)); 2022.08.18 - [ALGORITHM/정렬] - Algorithm / 정렬 / Merge Sort (합병 정렬) (따로 포스팅했던 Merge Sort의 동작 ..