-
[알고리즘] 데이터 구조, 자료 구조 분류, 알고리즘, 성능 분석, 누적합알고리즘 2023. 1. 25. 16:43
자료구조
: '데이터의 저장'을 담당하는 것을 말한다.분류
선형 구조 ) 리스트 , 큐, 스택
비선형 구조 ) 그래프, 트리
파일 구조 ) 순차 파일, 색인 파일, 직접파일
단순 구조 ) 정수, 실수, 문자, 문자열
알고리즘
: 표현 및 저장된 데이터를 대상으로 하는 '문제 해결 방법'을 말한다.성능 분석 2가지 방법
1. 시간 복잡도 : 최적의 시간
주로 빅 O을 이용한다. (빅 오메가도 있다.)
O(1) < O(logn) < O(n) < O(nlogn) < O (n**2) < O(n**3) < O(2**n)
참고로 log 밑에 숨겨진 숫자는 10이다.
2. 공간 복잡도 : 메모리 분량
누적합
강의 두 개를 듣고 정리한 알고리즘이다.
1. 큰돌
누적합을 이용하면 O(n**n)이 아닌 O(n)의 시간 효율도를 낼 수 있다.
2. 오일러
누적합의 정의를 좀 더 알기 쉽게 설명해준다.
아래는 내가 정리한 누적합의 알고리즘이다.
const arr = [1,2,3,4,5] const psum = [0] arr.forEach((_,i) => psum[i+1] = psum[i]+arr[i]); //psum : (6) [0, 1, 3, 6, 10, 15] function test(s,e) { return psum[s] - psum[e] } test(5,3) //9
'알고리즘' 카테고리의 다른 글
[알고리즘 필수] 소수 구하기 (1) 2024.02.02 [알고리즘] 그래프 탐색 알고리즘 - BFS, DFS (0) 2023.01.26