데이타구조
2016-03-08
수업 계획 및 기본 개념 소개
수업계획
- 학점 평가 방침
- 실습 환경 안내
- 과제 제출 안내
학점 평가 방침
- 출석/퀴즈 25%
- 과제 25%
- 중간 25%
- 기말 25%
실습 환경 안내
- 화요일 농심관 컴퓨터실 강의에서는
컴퓨터실에 설치된 Visual Studio 활용 - 노트북 등 개인 컴퓨터로 과제시에는
Visual Studio Express (무료버전) 활용
https://www.visualstudio.com/ko-kr/products/visual-studio-express-vs.aspx - 윈도우즈 이외의 다른 OS로 개인 컴퓨터 활용시
해당 환경에 적합한 개발환경을 선택하되
첫 프로그래밍 과제 제출 전에 교수와 상담 권장
과제 제출 안내
- Google Drive 공유 폴더를 통해 (종이 X, 메일 X)
- DS16<이름><학번> 폴더를 만들고 (예: DS16김연아123456)
폴더 공유설정으로 kyagrd@gmail.com 에게 공유 (편집권한) - Google 메일 계정만 있으면 Google Drive 서비스 이용 가능
- Google 메일 계정은 무료로 만들 수 있으며
참고로 안드로이드 스마트폰 사용자는 누구나 이미 보유
기본개념
- 데이타 구조와 알고리듬
- 알고리듬의 복잡도 분석 관련
- 추상 데이타 타입 (Abstract Data Type)
- 되돌기(recursion)와 귀납(induction)원리 - 다음 시간에
데이타 구조와 알고리듬
- 프로그램 = 데이타 구조 + 알고리듬
-- Niklaus Wirth
(스위스 컴퓨터 과학자.
파스칼, 모듈라, 오베론 등의 프로그래밍 언어 설계) - 알고리듬
- 명확한 수행 과정 명시
- 반드시 끝나야 함
(끝나기를 원하지 않는 프로그램도 있다: OS, 서버 등)
알고리듬의 복잡도 분석
- 시간복잡도, 공간복잡도 중 시간복잡도를 주로 많이 분석
- 시간복잡도 - 끝날 때까지 얼마나 걸리는지
- 공간복잡도 - 메모리 공간이 얼마나 필요한지
-
알고리듬의 복잡도는 입력의 크기(n)에 대한 함수로 표현
- O(1) 상수 알고리듬 constant time algorithm
- O(log n) 로그 알고리듬 logarithmic algorithm
- O(n) 선형 알고리듬 linear time algorithm
- 다항식 알고리듬 polynomial algorithm
O(n^k) 임의의 k차 다항식 복잡도 - O(2^n) 지수 알고리듬 exponential algorithm
아래로
갈수록
복잡
!!!
추상 데이타 타입
- 인터페이스(interface)를
구현(implementation)으로부터 분리 - 비유 - 시계, 자동차
- 인터페이스(시침/분침, 핸들/페달)는 그대로
- 예전에는 주로 기계부품으로 구현
- 요즘에는 주로 전자부품으로 구현
- SW유지보수 및 재사용성 향상에 도움 되는 중요한 개념
Abstract Data Type (ADT)
데이타구조 2016-03-08 수업 계획 및 기본 개념 소개
데이타구조
By 안기영 (Ahn, Ki Yung)
데이타구조
2016-03-08
- 1,980