전체 글(31)
-
합병정렬
병합정렬도 정렬 방법 중 하나이다. 방법은 주어진 배열을 반으로 나누어 크기 순으로 새로운 배열에 넣는 방식이다. 이 방식은 앞의 버블정렬, 삽입정렬, 선택정렬과 다르게 시간복잡도가 O(nlogn)이다. 그래서 앞의 세가지보다 더 사용하기 좋지만, 최악의 경우를 고려한다면 퀵정렬이 조금 더 앞선다고 한다. function mergeSort(array) { if(array.length < 2) return array; var pivot = Math.floor(array.length / 2); var left_arr = array.slice(0, pivot); var right_arr = array.slice(pivot); return merge(mergeSort(left_arr), mergeSort(rig..
2020.11.20 -
삽입정렬
삽입정렬이란 배열의 정렬 방법 중 하나인데, 배열의 첫번째 원소는 두고, 두번쨰부터 첫번째 원소와 크기를 비교해 작으면 왼쪽 크면 오른쪽에 두는 방식이다. 세번쨰 원소도 같은 방식으로 하는데, 이때는 비교할 값이 두개이므로 두개 다 비교해서 알맞은 위치에 둔다. function insertionSort(arr) { for (let i = 0; i arr[index]) { let temp = arr[index - 1]; arr[index - 1] = arr[index]; arr[index] = temp; index--; } }
2020.11.18 -
선택정렬
선택정렬이란, 정렬되 있지 않은 배열에서 가장 작은 값을 찾아 앞의 값과 바꿔나가는 방식이다. 이 또한, 잘 사용되지는 않지만 편리하고 이해하기 쉽다는 장점을 가지고있다. function SelectSort (arr) { var result = [...arr]; for(let i = 0; i result[j]){ minimum = j } } if(minimum !== i){ swap(result,i,j); } } return result; } function swamp(array, i_index, ..
2020.11.17 -
버블 정렬
버블정렬은 정렬 중 가장 기본적인 정렬이다. 구동 방식은 배열의 가장 앞의 두개의 값을 비교 후 , 만약 뒤의 값이 더 작다면, 위치를 바꾼다음 인덱스를 둘다 +1한 다음 똑같은 방식으로 진행을 계속하는 것이다. 사실 다른 사이트들에서 많이 설명이 자세한 것들이 많아 여기서는 빠르게 코드를 보고 싶은 사람만 봤으면 좋겠다. 시간복잡도는 n제곱이다. 버블 정렬의 장점은 쉽게 구현을 할 수 있다는 것이지만, 복잡도의 문제에 따라 배열의 크기가 커지면 커질수록 시간이 상당해져서 큰 경우에는 잘 사용하지 않는다. 그나마 리턴값이 배열 그대로라 메모리를 잡아먹지 않는다는 점이 장점?인 것 같다. function BubbleSort(array){ for(let i = 0; i < array.length; i++){..
2020.11.16 -
Helmet에 대해 알아보자
Express의 성능 및 보안을 블로깅하면서 대게 사용해보지 않거나, 모르는 것들이 많았다. 그래서 하나하나 npm을 통해 어떤 것인지 확인해보고자 한다. npm helmet을 검색해 사이트를 들어가면 가장 위에 이런 문구가 있다. Helmet helps you secure your Express apps by setting various HTTP headers. It's not a silver bullet, but it can help! HTTP 헤더를 설정해서, Express 보안을 해 준다는 것이다. 사용방법은 그냥 사용하는 방법과 옵션을 설정해 사용하는 두가지가 있는데, 미들웨어답게 사용법은 편리하다. app.use(helmet()) 위의 방법이 기본적인 사용방법이며, 옵션으로는 다음과 같은 것들..
2020.11.12 -
TypeScript (2) 어떻게 쓰는 걸까?
이번 장에서는 타입스크립트에 대해 완벽한 이해가 있는 상황이 아니었기 때문에, 사용법과 에시륻 들면서 써보겠다. 1. 추론 자바스크립트의 원시타입으로 String, Number, Object를 들 수 있다. 그렇지만, 일관된 타입을 사용하였는지 알기 해 필요한 것이 타입스크립트이다. ts파일을 만들어 다음과 같이 String을 변수에 할당하고, 변수에 마우스를 올려보면 주석과 같은 안내가 뜬다. var example = 'Let's learn TypeScript!'; //var example:string //물론 아래와 같이 먼저 정의해줄 수 있다. var str:string; str = "Good!" example 변수는 string타입이라는 뜻인데, 이 말은 이제 example은 string타입으로 ..
2020.11.10