하이루 ,, 개강을 해버렸음니다...
제가 이번에 학교에서 수강하는 자료구조 과목이
책이나 인프런 강의의 목차와 다르게 진행되기에
학교 수업에 맞춰서 강의를 듣도록 하겠습니다!!
그래서 시간복잡도부터!
시간복잡도 : 쉽게 말해 시간이 얼마나 걸리냐!
시간 복잡도는 실행 환경에 다라 달라지며
실행 시간을 측정하는 대신 연산의 실행 횟수를 카운트 함
이때 횟수를 입력 데이터의 크기레 관한 함수로 표현한다
데이터의 크기가 같더라도 실제 데이터에 따라서 달라지는데
이때는 대푯값을 사용
-> 대푯값 : 최악의 경우 시간 복잡도 , 평균 시간복잡도
->최악의 경우 : 최-경보다 시간이 많이 걸리진 않을을 의미,
평균보다 단순해서 더 많이 사용된다
점근적 표기법
데이터의 갯수가 n->∞ 일 때 수행시간이 증가하는
growth rate로 시간복잡도를 표현하는 기법

등을 사용한다.
특징 : 간단, 비의존적, 광범위하게 사용됨
알고리즘의 포함된 연산들의 실행 횟수를 표기하는 하나의 기법
최고차항의 차수만으로 표시
->가장 자주 실행되는 연산 혹은 문장의 실행횟수를 고려하면 됨!

n에 관계없이 상수시간이 소요됨
->알고리즘의 시간복잡도 : O(1)

실행횟수 n번
선형 시간복잡도를 가진다고 말함
->O(n)

실행횟수 n번
최악의 경우
->O(n)
: if문이 맞을 때 return i , 아니라면 -1

최악의 경우 저장된 모든 원소 쌍을 비교함
비교 연산의 횟수 n(n-1)/2
최악의 경우 시간복잡도 -> O(n^2)

'STUDY > 자료구조' 카테고리의 다른 글
| 컴퓨터 구조를 알아야 하는 이유 (0) | 2023.11.18 |
|---|---|
| [Kmooc] 2. Big-O 표기법 (0) | 2022.04.22 |
| [Kmooc] 중간고사 정리 (1) | 2022.04.22 |
| [C로 배우는 자료 구조] 시간복잡도와 점근적 분석(2) (1) | 2022.03.12 |
| [C로 배우는 자료구조] C언어에서의 포인터, 배열, 그리고 포인터 연산 (0) | 2022.02.27 |
댓글