시간복잡도

2023. 2. 18. 19:17알고리즘

반응형

43, 12, 43, 22, 11

위의 다섯개의 숫자가 있다. 이 숫자를 오름차순으로 정열하는 코딩을 할거다. 작성한 코딩을 실행하면 결과가 나올때까지

걸리는 시간이 runnint time이다. 

 

cpu는 코딩을 한줄한줄 처리해 나가는데 각 소스마다 걸리는 시간이 있다. 예를들어 반복문이 한번 실행하는데 1n 걸린다고 하면 반복문을 열번 돌리면 10n이 걸린다. 이 반복분을 이중 반복문으로 10번하면 100n^2이 걸린다. 이중 반복문 말고 다른 소스의 걸리는 시간이 3n + 4  걸린다고 하면 전체 걸리는 시간은 100n^2 + 3n + 4가 된다. 시간복잡도는 빅오로 나타내는데 최고차수만 나타낸다. 빅오로 나타내면 O(n^2)가 된다.

3                            >>>   O(1)

3n^2 + 2n + 4        >>>   O(n^2)

2n^4 + 3n^3 + n     >>>  O(n^4)

 

차수가 높은 순서는 다음과 같다

O(n!) > O(2^n) > O(n^2) > O(nlogn) > O(n) > O(logn) > O(1)

 

시간복잡도는 각 데이터의 상태나 값에 따라서 다른데 시간복잡도가 가장 높은 상황을

worst case

가장 낮은 상황을

best case

그리고 평균을 

average case라고 한다.

반응형

'알고리즘' 카테고리의 다른 글

Linked List  (0) 2023.02.19
Sort & Two Pointer  (0) 2023.02.19
리스트(List)  (0) 2023.02.19
메모리 구조  (0) 2023.02.18
자료구조  (0) 2023.02.18