All :L
[DataStructure] 자료구조의 큰 그림 본문
반응형
[자료구조와 알고리즘]
자료구조
자료구조
: 데이터를 다루기 위한 어떠한 구조
알고리즘
알고리즘
: 어떠한 목적을 이루기 위해 필요한 일련의 연산 절차
⇒ 어떤 자료구조가 사용되었는지에 따라 사용 가능한 알고리즘이 달라짐
[시간 복잡도와 공간 복잡도]
시간 복잡도
시간 복잡도(time complexity)
: 입력 크기에 따른 프로그램 실행 시간(연산 횟수)의 척도- 실행 시간은 연산의 횟수에 비례
공간 복잡도
공간 복잡도(space complexity)
: 입력에 따른 메모리 사용량의 척도- 메모리 사용량 多 → 공간 복잡도 大 / 메모리 사용량 少 → 공간 복잡도 小
⇒ 소스 코드나 프로그램이 얼마나 효율적인지 판단하는 척도 (대부분 시간 복잡도 사용)
표기법
빅 오 표기법(big O notation)
: 함수의 점근적 상한을 표기하는 방법→ 공간 복잡도를 표현 시입력에 따라 필요한 메모리 자원의 양에 대한 점근적 상한
을 의미- 점근적 상한이란?
- n이 증가해 무한대로 커진다고 가정 → 실행 시간도도 n에 따라 증가 → 실행 시간 증가에도 한계 존재 (한계 = 점근적 상한)
- O(상한(n))
- n이 점점 증가해 무한대로 커져도 실행 시간이 대략 이 이상(상한)은 커지지 않는 것을 의미
- 점근적 상한이란?
O(n^2) : n이 증가하더라도 실행 시간 증가율이 n^2보다 작다는 것을 의미
O(n) : n이 증가하더라도 대략 n번 이상으로 연산하지는 않는 것을 의미
-
-
- 빅 오 표기법 유의점
- 점근적 상한 표현시 최고차항의 차수만 고려
- 점근적 상한 표현시 최고차항의 차수만 고려
-
- → 시간 복잡도를 표현 시
입력에 따른 실행 시간의 점근적 상한
을 의미 빅 세타 표기법(big θ notation)
: 평균적인 실행 시간
θ(n^2) : n이 증가하더라도 실행 시간 증가율은 n^2와 같다는 것을 의미
빅 오메가 표기법(big Ω notation)
: 입력에 대한 실행 시간의 점근적 하한
Ω(n^2) : n이 증가하더라도 실행 시간 증가율은 n^2보다 크다는 것을 의미
- 정렬 알고리즘의 시간 복잡도
- 삽입 정렬 : O(n^2)
- 선택 정렬 : O(n^2)
- 버블 정렬 : O(n^2)
- 병합 정렬 : O(n log n)
- 퀵 정렬 : O(n log n)
- 힙 정렬 : O(n log n)
💡 참고 자료
반응형
'STUDY > DataStructure' 카테고리의 다른 글
[DataStructure] 그래프 (0) | 2024.10.27 |
---|---|
[DataStructure] 트리 (0) | 2024.10.25 |
[DataStructure] 해시 테이블 (0) | 2024.10.23 |
[DataStructure] 스택과 큐 (0) | 2024.10.21 |
[DataStructure] 배열과 연결 리스트 (0) | 2024.10.19 |
Comments