알고리즘개요 - comdangi.co.kr · •고지식한검색...
TRANSCRIPT
알고리즘 개요
1주차 1차시
1. 알고리즘 및 자료구조의 정의
1. 알고리즘및자료구조의정의
01 알고리즘(Algorithm)이란 ?
어떤 문제를 해결하기 위한 절차를기술해 놓은 것(한글, 영문, 그림 등)
알고리즘(Algorithm)
• 컴퓨터를이용해서문제를해결하기위한절차를가리킴
• 알고리즘을컴퓨터에서실행하기위해서는컴퓨터가이해할수있는언어로표현해야함
컴퓨터 알고리즘
1. 알고리즘및자료구조의정의
02 자료구조(Data Structure)
효율적인 알고리즘을 작성하기 위하여컴퓨터 내부에서 데이터를 표현하는 방법
자료구조(Data
Structure)
1. 알고리즘및자료구조의정의
02 자료구조(Data Structure)
자료구조
선형구조
비선형구조
배 열
행 열
리스트
트리
링크드리스트
스택
큐
그래프
1. 알고리즘및자료구조의정의
03 알고리즘과 자료구조의 활용
고전적 자료구조와 알고리즘을 사용이해하기 쉽고 검증된 성능의 프로그램 작성
활용
1. 알고리즘 및 자료구조의 정의 에 대한 학습을 마치겠습니다.
2. 자료구조 및 알고리즘
2. 자료구조및알고리즘
01 자료구조
1장리스트(List)
2장스택(Stack)
제 1 부 자료구조목록형 자료구조(자료구조의 기초)
• 링크드 리스트(노드와 링크로 구성)• 더블 링크드 리스트• 환형 링크드 리스트
• C언어의 자동메모리가 스택으로 구현• 지역변수는 스택(자동 메모리)에 할당
LIFO(Last In First Out) 자료구조
2. 자료구조및알고리즘
01 자료구조
3장큐(Queue)
4장트리(Tree)
제 1 부 자료구조FIFO(First In First Out) 자료구조
• 대기형렬• 큐, 순환 큐, 링크드 큐• 버퍼 등에 응용되는 자료구조
• 탐색, 압축등에응용• 뿌리(Root), 가지(Branch), 잎(Leaf)으로구성• 이진트리(Binary Tree)• 수식트리(Expression Tree)
나무(Tree) 자료구조
2. 자료구조및알고리즘
02 알고리즘
5장정렬(Sorting)
6장탐색(Search)
제 2 부 알고리즘정렬 알고리즘
• 데이터 집합를 정렬하는 기법• 버블정렬, 삽입정렬, 퀵 정렬
• 데이터의 집합에서 원하는 데이터를효율적으로 찾는 기법• 순차 탐색, 이진 탐색• 이진탐색트리, 레드블랙 트리
탐색 알고리즘
2. 자료구조및알고리즘
02 알고리즘
7장우선순위
큐와힙(Heap)
제 2 부 알고리즘우선순위 큐와 힙
• 먼저 입력된 데이터가 아닌우선순위가 높은 데이터를먼저 출력하는 큐
• 선순위 큐(Priority Queue)• 힙(Heap : Complete Binary Tree)
2. 자료구조및알고리즘
02 알고리즘
제 2 부 알고리즘
8장해시테이블
해시 테이블
• 원본 데이터를 해시 함수를 적용하여테이블 내 주소값을 얻는 방법
• 해시 테이블• 해시 함수• 충돌해결하기
(Chaining, Open Addressing)
2. 자료구조및알고리즘
02 알고리즘
제 2 부 알고리즘
• 고지식한 검색• 카프-라빈 알고리즘 (해시 이용)• KMP 알고리즘• 보이어-무어 알고리즘
9장그래프
10장문자열 검색
• 그래프의 표현, 최단 경로 구하기• 위상정렬(Topological Sort)• 최소신장트리
(Minimum Spanning Tree)
그래프
문자열 검색
2. 알고리즘 강의에서 학습할자료구조 및 알고리즘의 범위에 대한 학습을 마치겠습니다.
3. 알고리즘 설계 기법
3. 알고리즘설계기법
11장알고리즘성능분석
12장분할정복
제 3 부알고리즘 설계기법
알고리즘 성능분석
• 구현전의 설계단계에서알고리즘 성능 파악
• 알고리즘 수행시간의 분석• 점근 표기법, O(n ) 등
• 문제를 나눠서 풀어가는분할 정복 알고리즘
• 분할정복 알고리즘(Divide & Conquer)
• 피보나치(Fibonacci)
분할정복
2
3. 알고리즘설계기법
13장동적계획법
마무리
제 3 부알고리즘 설계기법
동적 계획법
• 단계적으로 문제를 풀어나가는• 피보나치 수 구하기• 최장공통부분순서
• 자료구조 요약• 알고리즘 요약• 알고리즘 설계기법 요약
마무리
3. 알고리즘 설계 기법에 대한 학습을 마치겠습니다.