자료구조란?
다양한 자료를 효율적인 규칙에 따라 정리한 구조이다.
알고리즘을 어떠한 자료구조로 구성할 것인지 선택할 수 있어야 한다
선형 자료구조: 연속적으로 붙는 연결관계를 가진 자료구조
비선형 자료구조: 복잡하고 계층관계를 가진 자료구조
알고리즘이란?
알고리즘 기술 순서는..
자연어로 표현 -> 흐름도로 표현 -> 유사 코드로 표현 -> 프로그래밍 언어로 표현
추상 자료형(ADT – Abstract Data Structure)
프로그래머가 추상적(수학적)으로 정의한 자료형
~ 데이터와 연산이 무엇(what)인지는 정의하지만 어떻게(how) 할지는 모르는 상태
알고리즘의 성능 분석
1. 알고리즘의 실행 시간을 측정하는 방법
~정확한 측정을 위해 동일한 하드웨어에 실제로 구현해야 하기 때문에 현실적으로 어려움
2. 알고리즘의 복잡도를 분석하는 방법 (가장 일반적인 방법!)
~알고리즘이 수행하는 연산의 횟수를 시간 복잡도 함수 T(n) 로 분석한다
이렇게 시간 복잡도 함수로 표현했을 때 실질적인 비중을 고려해
차수가 가장 큰 항만 보는 대략적인 표기법을 빅오 표기법(big-O notation)이라고 한다
시간 복잡도 분석: 순환 알고리즘
함수가 자기 자신을 다시 호출(재귀)해 문제를 해결하는 순환적 프로그래밍 기법이다
'Computer Science > Algorithm' 카테고리의 다른 글
[HUFS/자료구조] #6 연결 리스트 (0) | 2021.10.21 |
---|---|
[HUFS/자료구조] #5 큐와 덱 (2) | 2021.10.14 |
[HUFS/자료구조] #4 스택 (0) | 2021.09.30 |
[HUFS/자료구조] #3 리스트와 집합 (0) | 2021.09.30 |
[HUFS/자료구조] #2 파이썬 리뷰 (2) | 2021.09.23 |