알고리즘성능 2

[알고리즘] 알고리즘의 성능

하나의 문제에 상황에 따른 수십가지의 해결 알고리즘이 존재 합니다. Ex. 1 부터 100 까지의 합을 구하는 방법 → 알고리즘 1 : 1 + 2 + 3 + ··· + 98 + 99 + 100 → 알고리즘 2 : ( 1 + 100 ) * 100 / 2 만일 100까지의 합이 아니라 100,000까지의 합이라면 각각의 알고리즘으로 값을 구하는데 걸리는 시간은 많은 차이가 있을 것입니다. 알고리즘 2가 데이터 갯수가 커지더라도 수행시간이 덜 걸리기 때문에 좋은 알고리즘 입니다. 이런 분석방법을 시간복잡도 ( Time Complexity ) 라고 합니다.

알고리즘의 성능

문제는 하나이지만 해결방법은 수십가지. 이런 여러가지 해결방법 중 무엇이 좋은 해결 방법일까? 그것은 자료의 양에 상관없이 시간이 조금 걸리는 알고리즘이 좋은 알고리즘이다. 좋은 알고리즘인지 아닌지를 알 수 있는 방법으로는 시산 복잡도(Time Complexity)로 표현하는 방법이 있다. Q1. 1부터 100까지의 합을 구하시오. A1. 1+2+3+ ... 98+99+100 = A2. (1+100) * 100/2 위의 A1, A2 어느 방법으로든 답은 구할수 있다. 하지만, 더해야 하는 숫자가 100이 아니라 1,000 이나 10,000이라면? 이것보다 더 큰 숫자라면 어떨까? # 알고리즘의 성능 표시 - 빅-오 표기법(Big-Oh Notation) : O(F(n)) 형태로 표시 * 앞의 예에서 알고리..