1_3 자료구조와 알고리즘의 이해

2023. 3. 4. 20:12자료구조_C

※ 알고리즘의 성능 분석 방법

 

순차 탐색 알고리즘 적용된 함수

 

1. 중심이 되는 연산자 ( == )

2. 주변 연산자 ( <, ++ )

 

* 주변 연산자의 연산횟수는 중심이 되는 연산자의 연산 횟수에 의존한다.

 

 

최악의 경우와 최상의 경우

 1) 순차 탐색 상황 하나 : ( 운이 좋은 경우 )

 - 배열의 맨 앞에서 대상을 찾는 경우

 - 만족스러운 상황이므로 성능평가의 주 관심이 아니다!

 - '최상의 경우(base case)' 라고 한다.

    T(n) = 1

* 시간 복잡도, 공간 복잡도 각각에 대해서 최악의 경우와 최상의 경우를 구할 수 있다.

 

 2) 순차 탐색 상황 둘 : ( 운이 좋지 않은 경우 )  

- 배열의 끝에서 찾거나 대상이 저장되지 않은 경우

- 만족스럽지 못한 상황이므로 성능평가의 주 관심이다!

- 최악의 경우 (worst case) 라고 한다. 

   T(n) = n

 

 

평균적인 경우(Average Case)

 1) 가장 현실적인 경우에 해당한다.

 - 일반적으로 등장하는 상황에 대한 경우의 수 이다.

 - 최상의 경우와 달리 알고리즘 평가에 도움이 된다.

 - 하지만 게산하기가 어렵고 객관적 평가가 쉽지않다.

 

2) 평균적인 경우의 복잡도 계산이 어려운 이유

 - '평균적인 경우'의 연출이 어렵다

 - '평균적인 경우'임을 증명하기 어렵다.

 - '평균적인 경우'는 상황에 따라 달라진다.

 

* 반면 최악의 경우는 늘 동일하다.

 

 

순차 탐색 최악의 경우 시간 복잡도

- 데이터의 수가 n개 일때, 최악의 경우에 해당하는 연산횟수는(비교연산의 횟수는) n이다.

=> T(n) = n    -> 최악의 경우를 대상으로 정의한 함수 T(n)