[Algorithm] 퀵정렬
개요 분할 정복 방식을 적용해 정렬을 진행하는 알고리즘이다. 정렬 알고리즘 계의 최고 존엄격으로, 매우 효율적이다. 원리 리스트 중 하나를 피봇으로 선택하고, 피봇보다 작은 원소는 왼쪽에, 큰 원소는 오른쪽에 정렬한다. 이후 피봇값을 중심으로 리스트를 분할하고, 분할된 각각의...
개요 분할 정복 방식을 적용해 정렬을 진행하는 알고리즘이다. 정렬 알고리즘 계의 최고 존엄격으로, 매우 효율적이다. 원리 리스트 중 하나를 피봇으로 선택하고, 피봇보다 작은 원소는 왼쪽에, 큰 원소는 오른쪽에 정렬한다. 이후 피봇값을 중심으로 리스트를 분할하고, 분할된 각각의...
개요 자료 내 모든 원소들을 앞에서부터 차례대로 이미 정렬된 부분과 비교하여, 자신의 위치를 찾아냄으로써 정렬을 완성하는 알고리즘이다. 도서관 사서가 책을 정렬할 때 일반적으로 활용되는 정렬 방식이다. 사람의 머리로 이해하기는 간단하지만, 코드로 구현했을 때 효율성이 떨어진다....
선택 정렬 선택 정렬은 주어진 자료 중 가장 작은(혹은 가장 큰) 값의 원소부터 차례대로 선택하여 위치를 교환해 나간다. 학교 다닐 때 키순서대로 줄을 섰던 것을 떠올리면 된다. 가장 작은(혹은 가장 큰) 수부터 정렬하기 시작하여 위치를 교환하는 정렬 알고리즘이다. 이를 적용하...
개요 인접한 두 원소를 비교하며 자리를 계속해서 교환해 나가는 정렬 방식이다. 매우 직관적이나, 그만큼 비효율적이다. 원리 각 단계마다 다음과 같은 과정을 거친다. 단계별로 모든 원소에 대해 인접한 두 값을 비교한다. 앞의 값이 뒤의 값보다 크다면(혹은 작다면) 자...
정렬 알고리즘을 살펴보기 전에
알고리즘 스터디 DP팀 발표 내용 및 SW Expert Academy 동적 계획법 강의 내용을 참고하였습니다. 정의 동적 계획법(Dynamic Programming)은 최적화 문제를 해결하는 알고리즘이다. 그리디 알고리즘과 비슷하게, 이 알고리즘 역시 문제를 해결하기 ...
연결 리스트란, 각 노드가 데이터와 포인터를 가지고 연결되어 있는 방식으로 데이터를 저장하는 자료 구조이다. 데이터를 담고 있는 노드들이 포인터를 통해 서로 연결된다.
«Neural Network» CNN 모델에 앙상블을 적용해 보자. (feat.클래스…)
머신러닝 프로젝트의 전 과정을 이해하자.
머신러닝의 개념을 이해하자.
재귀, 피보나치 수열
개념 탐욕 알고리즘은 각 상황에서 최선의 결정을 하여, 최종적으로 최적의 해를 찾아내는 방식이다. 미래를 생각하지 않고, 각 단계 단계만 생각한다고 하여 탐욕적이라고 한다. 엄밀히 말하면, 버블 정렬, 퀵 정렬과 같이 구체적인 알고리즘이라기 보다는, 문제를 해결하는 논리 설...