선택 정렬 매번 가장 작은 것을 찾아 제일 앞의 값과 교환하는 것 데이터가 무작위로 여러 개 있을 때, 이 중에서 가장 작은 데이터를 선택해 맨 앞에 있는 값과 교환하고, 그다음 작은 데이터를 선택해 앞에서 두 번째 데이터와 바꾸는 과정을 반복수행 시간복잡도 선택정
데이터를 하나씩 확인하며, 각 데이터를 적절한 위치에 삽입하여 정렬필요할 때만 위치를 바꾸므로 '데이터가 거의 정렬되어 있을 때' 훨씬 효율적선택 정렬은 현재 데이터의 상태와 상관없이 무조건 모든 원소를 비교하고 위치를 바꾸지만 삽입 정렬은 그렇지 않다자신보다 작은 값
정렬 알고리즘 중 가장 많이 사용되는 알고리즘.퀵 정렬만큼 빠른 알고리즘에는 "병합 정렬" 알고리즘이 있으며 이 두 알고리즘은 대부분의 프로그래밍 언어에서 정렬 라이브러리의 근간이 되는 알고리즘이다.pivot(기준 데이터)를 설정하고, 그 기준보다 큰 데이터와 작은 데
fs : File System 모듈 readFileSync : 파일을 읽고 난 후에 실행(동기 처리) stdin : 표준 입력 파일('dev/stdin' 은 stdin 의 경로, 시스템에 따라 변경될 수 있음 toString() : 읽어서 가져온 반환값은 Buffer
버블 정렬은 매우 간단한 정렬이지만 어떻게 설정하느냐에 따라서 수행횟수가 달라질 수 있다. 매번 수행될때마다 마지막에 위치한 배열의 원소가 정렬된다는 특징을 갖는다. 첫번째 방식은 위 특징을 고려하지 않고 매번 수행때마다 처음부터 끝까지 모두 비교한 방법이다. 두번째
dfs의 풀이방법은 2가지(재귀, 스택)이다.그래프 간선 정보가 오름차순으로 정렬되어 있다는 가정 하에,재귀 -> 인접한 노드 중 작은 노드 번호 우선 dfs 탐색스택 -> 인접한 노드 중 큰 노드 번호 우선 dfs 탐색기준만 다를 뿐 원리는 동일하다.주의 사항스택에
큐를 사용하는 것보다 deque 를 이용해 큐처럼 사용하는게 편하다.방법왼쪽에서 입/출력: appendleft(val), popleft()오른쪽에서 입/출력: appeend(val), pop()(오른쪽에서의 입/출력이 기본이고 왼쪽인 경우 'left' 가 붙는다.)
하나의 큰 문제를 여러 개의 작은 문제로 나누어서 그 결과를 저장하여 다시 큰 문제를 해결할 때 사용(재활용)일반적인 재귀보다 훨씬 효율적인 계산이 가능하다. 일반적인 재귀는 다음과 같이 동일한 계산들이 반복되는 경우가 많다그러나 dp를 사용하면 이전에 계산한 값들을
이분 탐색(이진 탐색)은 정렬되어 있는 절반씩 탐색 범위를 좁혀가며 데이터를 탐색하는 방법이다. 이분 탐색은 데이터가 정렬되어 있어야만 사용할 수 있다.이분 탐색은 반복문과 재귀를 이용해 구현할 수 있다.이분 탐색은 일반적으로 찾고자 하는 값을 발견한 후 바로 종료하게
이분 탐색이 정렬된 배열에서 값의 위치를 찾거나 존재 유무를 파악하는데 사용된다면, 파라메트릭 서치는 정렬된 배열에서 조건을 만족하는 "최적의 값"을 찾는데 사용된다. 파라메트릭 서치는 주로 특정한 조건을 만족하는 최소 또는 최대의 값을 찾는 데 사용된다.이분 탐색은