알고리즘

    javascript 정렬 알고리즘

    정렬 알고리즘으로 버블, 선택, 삽입, 퀵, 합병 정렬을 배웠었다. 하지만, C언어로만 이 코드들을 작성했었기에 자바스크립트로도 정렬 알고리즘을 기록하기로 하였다. 물론, 자바스크립트에서는 arr.sort((a, b) => a - b) 알고리즘으로 손쉽게 배열을 정렬할 수 있다. 🍇 버블 정렬 가장 쉽게 생각할 수 있는 정렬 방법으로 앞뒤의 숫자를 비교하여 정렬이 필요하다면, 앞뒤의 숫자를 바꾼다. 이미 정렬된 상태라면, 중간에 반복문을 중단할 수 있다. 평균적으로 O(N^2) 시간복잡도를 가진다. (큰 배열을 정렬할 때 부적합하다) const bubbleSort = function (arr) { let sorted; for(let i = 0; i < arr.length; i++){ sorted = fa..

    javascript 순열과 조합 알고리즘

    조합은 배열에서 n개를 선택하는 것으로 순서가 바뀌어도 같은 것으로 취급한다. 순열은 배열에서 n개를 선택해 나열하는 것으로, 순서가 바뀌면 다른 것으로 취급한다. 자바스크립트 조합 알고리즘 const combination = (arr, select) => { const answer = []; const dfs = (idx, num, tmp, visited) => { if(idx === arr.length){ return; } if(num === 0){ answer.push(tmp); } for(let i = idx; i < arr.length; i++){ if(!visited[i]){ // 미방문 visited[i] = true; dfs(i, num - 1, tmp.concat([arr[i]]), vi..