상세 컨텐츠

본문 제목

개념 정리 : 시간복잡도 정리

밀라 알고리즘 스터디

by qkrtnals 2025. 1. 13. 19:11

본문

밀라 알고리즘 스터디 2주차 개념 정리 

 

시간복잡도 

: 입력값과 연산 수행시간의 상관관계를 나타내는 척도

최상의 경우 - 오메가 표기법
평균의 경우 - 세타 표기법
최악의 경우 - 빅오 표기법
=> 시간복잡도는 최악을 기준으로 빅오 표기법으로 판단하여 성능 예측

 

빅오표기법
 - 시간 복잡도 : 입력된 N의 크기에 따라 실행되는 조작의 수
 - 공간 복잡도 : 알고리즘이 실행될 때 사용하는 메모리의 양
   ( 메모리의 발전으로 공간 복잡도의 중요성이 많이 줄어들었음)

 

1) O(1) 
예제 코드 

const sum = (N+1) * N /2

 

2) O(log n)
예제 코드 

funtion func(n){
 let i = 1;
 while(i<n){
  console.log(i);
  i = i*2;
 }
}

3) O(n) 
예제 코드

let sum = 0;
for(let i = 0; i<=N; i++){
 sum += i ; 
}

3) O(nlogn)

입력의 절반으로 나눌때마다 각 부분을 독립적으로 처리 
ex. 병합정렬, 퀵정렬, 힙정렬

4) O(n^2) 
알고리즘이 실행시간이 입력 크기의 제곱에 비례 , 각 원소를 다른 모든 원소와 비교하는 경우
ex. 버블 정렬, 선택 정렬, 삽입 정렬

function func(n){
 for(let i = 0 ; i < n.length; i++){
  for(let j = 0 ; j < n.length; j++){
   console.log(i,j);
  }
 }
}

 

'밀라 알고리즘 스터디' 카테고리의 다른 글

백준 2578 : 빙고  (0) 2025.01.15
백준 20546 : 기적의 매매법  (0) 2025.01.14
백준 1547 : 공  (0) 2025.01.13
백준 1051 : 숫자 정사각형  (0) 2025.01.11
백준 1018 : 체스판 다시 칠하기  (0) 2025.01.10

관련글 더보기