웹개발

알고리즘 설계 기법(Algorithm Design Paradigm)

업무 중 2021. 1. 26. 23:21

알고리즘은 알고리즘 설계 기법을 기반으로 만들어진다.

퀵정렬과 병합정렬은 구체적인 정렬 방식은 다르지만, 큰 틀에서 정렬 대상 데이터를 둘로 나눠 각각 정렬한 후 그 두 데이터를 연결한다는 점에서 공통점을 가지고 있다.
내용도 다르고 성능도 다르지만 동일한 구조적 기반으로서 알고리즘 설계 기법을 공유하고 있다는 것이다.
(퀵정렬과 병합정렬은 '분할정복'이라는 설계 기법을 기반으로 한다)

이처럼 알고리즘 설계기법은 특정 알고리즘이 만들어지는 기반이 된다.

즉, 알고리즘 설계 기법이란 '알고리즘을 어떤 식으로 만들 수 있는가?'에 대한 이야기인 것이다.

알고리즘 설계 기법은 새로운 알고리즘을 만드는데 도움을 준다.

세상에는 훌륭한 알고리즘들이 많이 알려져 있다.
문제를 만나면 그 알고리즘들을 사용해서 해결하면 된다.
예를 들어 검색에는 퀵정렬이나 병합정렬을 사용하는 셈이다.

하지만 만약 새로운 문제를 만났다면?
내가 아는 알고리즘으로 풀 수 없는 문제를 만났다면?

그때는 새로운 알고리즘을 만들어야한다.
알고리즘 설계기법은 이때 도움을 줄 수 있다.
알고리즘 설계기법은 어떻게 알고리즘을 만들 수 있는지(= 문제를 해결할 수 있는지)에 대한 방법론/사고방식/전략 이기 때문에 효율적으로 새로운 알고리즘을 개발할 수 있게 도와준다.

알고리즘 설계 기법의 종류

  • 분할 정복 Divide And Conquer
  • 탐욕 알고리즘 Greedy Algorithm
  • 동적 프로그래밍 Dynamic Programming

 

출처: developer.qustory.com/post/algorithm-design/

'웹개발' 카테고리의 다른 글

불대수 / 부울대수  (0) 2021.01.21
DMA  (0) 2021.01.20
논리회로  (0) 2021.01.19
WebService  (0) 2021.01.15
트랜잭션(Transaction)이란?  (0) 2021.01.11