240906 자료구조
| 자료구조 | 일상생활의 예시 |
|---|---|
| 스택 | 그릇을 쌓아 보관하는 것 |
| 큐 | 줄서기 |
| 리스트 | 버킷리스트 |
| 영어사전 | 사전 |
| 지도 | 그래프 |
| 트리 | 컴퓨터 디렉토리 구조 |
자료구조 : 자료를 구조화시켜 저장하는 방법
저장된 자료의 형태에 따라 연산 처리 방법이 달라짐 자료를 저장하는 이유는 연산을 하기 위하여..
Program = Data Structure + Algorithm
Algorithm
- 문제를 해결하기 위한 절차와 방법
- 자료구조와 알고리즘은 Dependency 관계
Exhaustive (전수조사) Max, min 을 알기 위해서는 데이터 전체를 조사해야한다.
배열은 데이터의 최대 크기를 미리 알아야 한다는 단점이 있다.
자료구조의 장/단점을 모두 알아야 한다.
heap 구조?
알고리즘을 표현하기 위하여 만든 코드 : pseudo code assignment operation = cpu operation
알고리즘의 조건
- 입력 : 0개 이상의 입력이 존재
- 출력 : 1개 이상의 출력이 존재
- 명백성 : 각 명령어의 의미는 모호하지 않고 명확해야 한다.
- 유한성 : 한정된 수의 단계 후에는 반드시 종료되어야 한다.
알고리즘의 기술 방법
- 자연어
- e.g. prompt
- Flow Chart
- pseudo-code
- PL(programming language)
사용자 정의 자료형 (UDT, user defined data type)
- Extensible : data type 확장
- e.g. C의 구조체
- R,Python은 굉장히 많은 Data type을 제공한다.
데이터나 연산이 무엇(what)인지 정의 + 어떻게(how) 구현할 것인지 정의 = OOP
추상화 API, 공용 인터페이스 클라우드를 Call하는 형태로까지 발전
알고리즘의 성능 분석