알고리즘 공부
Algorithm
알고리즘 : 문제 해결을 위한 전략 (Strategy to solve problem)
Issue of Algorithm
- 단계별로 어떤 작업을 수행하는가?
- 작업들을 어떻게 배치시킬 것인가?
- 얼마나 효율적인가?
- 문제를 해결할 수 있는가?
문제 해결을 위해 가장 먼저 해야하는 것 :
주어진 문제를 알고리즘을 적용할 수 있도록 명확하게 정의하는 것
알고리즘의 종류
-
순차 탐색(Sequential Search) :
모든 데이터를 순차적으로 탐색하는 알고리즘
모든 문제에 적용가능하다.
비효율적이다.
-
이진탐색(Binary Search) :
오름차순(또는 내림차순)으로 정렬된 데이터를 반으로 나누고 나누어진 데이터를 다시 반으로 나누는 과정을 반복해 원하는 데이터를 찾는 알고리즘
-
그리디 알고리즘(Greedy Algorithm) :
미래를 고려하지않고 선택할 때마다 가장 최선의 선택을 하는 알고리즘
잔돈을 거슬러줄 때 사용하는 알고리즘
-
백트래킹(Back tracking) :
조건이 만족하는 경우에만 모든 조합의 수를 살펴보는 알고리즘
미로탈출
오일러 경로 :
오일러 경로 :그래프의 모든 변을 한번씩만 방문하는 연속된 경로
정점에 연결된 변의 개수가 홀수인 정점이 2개여야한다(시작점, 끝점)
오일러 회로 : 시작점과 끝점이 같은 오일러 경로
정점에 연결된 변의 개수가 모두 짝수개이다.