목록전체 글 (298)
\(@^0^@)/

- 제로베이스 알고리즘 정렬 퀵 정렬 (Quick Sort) - 특정한 값을 기준으로 큰 숫자와 작은 숫자를 분할하여 정렬하는 알고리즘 - 평균 시간 복잡도 : O(n log n) - 분할 -> 부분 배열 정렬 -> 전체 정렬 위의 알고리즘 동작 방식은 가장 이해하기 쉽고 심플한 Qsort이다. function swap(arr, idx1, idx2) { let temp = arr[idx1]; arr[idx1] = arr[idx2]; arr[idx2] = temp; } function quickSort(arr, s = 0, e = arr.length - 1) { let start = s; let pivot = arr[e]; for (let i = s; i arr[i]) { swap(arr, start, i..

- 제로베이스 알고리즘 정렬 병합 정렬 (Merge Sort) - 하나의 배열을 두 개의 균등한 크기로 분할하고, 부분 정렬하며, 이를 다시 합하면서 전체를 정렬해가는 알고리즘 - 평균 시간 복잡도 : O(n log n) function mergeSort (arr, compare) { if (arr.length === 1) return arr; let m = (arr.length / 2).toFixed(0); let left = mergeSort(arr.slice(0, m), compare); let right = mergeSort(arr.slice(m), compare); let i = 0, j = 0, k = 0; while (i < left.length && j < right.length) { ar..

- 유데미 알고리즘 정렬 선택 정렬 최적화 코드 변수 lowest를 생성하여 해당 숫자가 이미 lowest인 경우에는 스왑을 하지 않아도 되므로 해당 로직은 스킵해주면, 기존의 코드보다 속도가 빨라진다. function swap (arr, idx1, idx2) { let temp = arr[idx1]; arr[idx1] = arr[idx2]; arr[idx2] = temp; } function selectionSort (arr) { for(let i = 0; i < arr.length; i++) { let lowest = i; for (let j = i+1; j < arr.length; j++) { if(arr[j] < arr[lowest]) { lowest = j; } } if(i !== lowest)..