전체 글207 (Javascript) mergeSort mergeSort 전체 데이터를 하나의 단위로 분할한 후 다시 합치면서 정렬하는 방식 function merge(leftArr, rightArr) { const result = []; let leftIdx = 0, rightIdx = 0; while (leftIdx < leftArr.length && rightIdx < rightArr.length) { if (leftArr[leftIdx] < rightArr[rightIdx]) { result.push(leftArr[leftIdx++]); } else { result.push(rightArr[rightIdx++]); } } return [ ...result, ...leftArr.slice(leftIdx), ...rightArr.slice(rightIdx.. 2023. 1. 16. (Javascript) selectionSort selectionSort(선택정렬) function swap(arr, idx1, idx2) { const temp = arr[idx1]; arr[idx1] = arr[idx2]; arr[idx2] = temp; } function selectSort(arr) { const tempArr = [...arr]; for (let i = 0; i tempArr[j]) minIdx = j; } swap(tempArr, minIdx, i); } return tempArr; } 선택정렬은 배열의 최솟값을 찾아서 그걸.. 2023. 1. 16. (Javascript) InsertSort InsertSort function swap(arr, idx1, idx2) { const temp = arr[idx1]; arr[idx1] = arr[idx2]; arr[idx2] = temp; } function insertSort(arr) { const tempArr = [...arr]; for (let i = 1; i -1; j--) { if (tempArr[j + 1] < tempArr[j]) swap(tempArr, j, j + 1); } } return tempArr; } 왼쪽에서 오른쪽으로 가면서 각 요소들을 왼쪽 요소들과 비교하여 알맞은 자리에 삽입하는 정렬 방식 두 번째 요소부터 왼쪽 요소와 비교하면서.. 2023. 1. 16. (Javascript) bubbleSort bubbleSort(버블정렬) function swap(arr, idx1, idx2) { const temp = arr[idx1]; arr[idx1] = arr[idx2]; arr[idx2] = temp; } function bubbleSort(arr) { const tempArr = [...arr]; for (let i = 0; i tempArr[j + 1]) swap(tempArr, j, j + 1); } } return tempArr; } const tempArr = […arr] 원본 배열을 수정하지 않기 위해 스프레드를 통해 새로운 임시 배.. 2023. 1. 16. (Javascript) 알고리즘 알고리즘 어떤 문제를 해결하기 위한 일련의 절차나 방법을 공식화한 형태로 표현한 것 특정 작업을 수행하기 위한 프로세스 또는 일련의 단계. 프로그래밍과 관련된 대부분의 것들은 항상 일종의 알고리즘을 포함 문제 해결을 위한 기초적인 과정 제한된 공간과 시간 안에서 데이터를 어떻게 처리할 것인지를 정해놓은 로직(주어진 input으로 정의된 계산을 수행한 뒤 output을 내는 것) 조건 입력, 출력, 명확성, 유한성, 효율성 입력 : 하나 이상의 데이터를 입력받는다. (매개변수) 출력 : 2개 이상의 다른 결과가 있어야한다. (return) 명확성 : 과정이 명확하고 모호하지 않은 명령어로 되어야 한다. 유한성(종결성) : 알고리즘이 끝이 나야 한다. 무한대로 실행된다면 유한성에 성립하지 않아 알고리즘이 아.. 2023. 1. 16. (Javascript) [자료구조] Tree(BinarySearch) Tree 관계 기반의 자료구조로, 계층형 구조를 전문적으로 나타낸다 Tree의 최상단을 root node라고 부르며 아래에 연결된 node는 child node class BinaryNode { constructor(data) { this.data = data; this.left = null; this.right = null; } } class BinarySearchTree { constructor(data) { this.root = null; } insert(data) { if (!this.root) { this.root = new BinaryNode(data); return; } let node = this.root; while (true) { if (node.data > data) { if (nod.. 2023. 1. 16. 이전 1 ··· 22 23 24 25 26 27 28 ··· 35 다음