Do it! 자료구조와 함께 배우는 알고리즘 입문 C 언어 편
01 기본 알고리즘
01-1 알고리즘이란?
세 값의 최댓값
조건 판단과 분기
순서도의 기호
01-2 반복
1부터 n까지의 정수 합 구하기
양수만 입력하기
구조적 프로그래밍
다중 루프
직각 이등변 삼각형 출력
02 기본 자료구조
02-1 배열
자료구조
배열
메모리 할당 기간과 동적 객체 생성
배열의 동적 생성
배열 요소의 최댓값 구하기
배열 요소를 역순으로 정렬하기
기수 변환
소수의 나열
다차원 배열
한 해의 지난 날 수를 계산하는 프로그램
02-2 구조체
구조체란?
구조체의 배열
03 검색
03-1 검색 알고리즘
검색과 키
배열에서 검색하기
03-2 선형 검색
선형 검색
보초법
03-3 이진 검색
이진 검색
복잡도
bsearch 함수
비교 함수
구조체 배열에서 검색하기
04 스택과 큐
04-1 스택
스택이란?
스택 만들기
04-2 큐
큐란?
배열로 큐 만들기
링 버퍼로 큐 만들기
05 재귀 알고리즘
05-1 재귀의 기본
재귀란?
순차곱셈 구하기
유클리드 호제법
05-2 재귀 알고리즘 분석
재귀 알고리즘의 분석
재귀 알고리즘의 비재귀적 표현
05-3 하노이의 탑
하노이의 탑
05-4 8퀸 문제
8퀸 문제란?
퀸 놓기
가지 뻗기
분기 한정법
8퀸 문제를 푸는 프로그램
06 정렬
06-1 정렬
정렬이란?
06-2 버블 정렬
버블 정렬
06-3 단순 선택 정렬
단순 선택 정렬
06-4 단순 삽입 정렬
단순 삽입 정렬
06-5 셸 정렬
단순 삽입 정렬의 특징
셸 정렬
06-6 퀵 정렬
퀵 정렬 살펴보기
배열을 두 그룹으로 나누기
퀵 정렬
비재귀적인 퀵 정렬
06-7 병합 정렬
정렬을 마친 배열의 병합
병합 정렬
06-8 힙 정렬
힙이란?
힙 정렬
배열을 힙으로 만들기
06-9 도수 정렬
도수 정렬
07 집합
07-1 집합
집합과 원소
부분집합과 진부분집합
집합의 연산
07-2 배열로 집합 만들기
배열로 집합 만들기
07-3 비트 벡터로 집합 만들기
비트 벡터로 집합 만들기
08 문자열 검색
08-1 문자열의 기본
문자열이란?
문자열 리터럴
배열에 문자열 저장하기
포인터와 문자열
문자열의 길이
문자열에서 문자 검색하기
문자열 비교
08-2 브루트-포스법
문자열 검색이란?
브루트-포스법
08-3 KMP법
KMP법
08-4 Boyer-Moore법
Boyer-Moore법
09 리스트
09-1 선형 리스트
선형 리스트란?
배열로 선형 리스트 만들기
09-2 포인터로 연결 리스트 만들기
포인터로 연결 리스트 만들기
09-3 커서로 연결 리스트 만들기
커서로 연결 리스트 만들기
프리 리스트
09-4 원형 이중 연결 리스트
원형 리스트
이중 연결 리스트
원형 이중 연결 리스트
10 트리
10-1 트리
트리란?
순서 트리 탐색
10-2 이진트리와 이진검색트리
이진트리
완전이진트리
이진검색트리
이진검색트리 만들기
11 해시
11-1 해시법
정렬된 배열에 새로운 값 추가하기
해시법
충돌
체인법
오픈 주소법
1주 |
2주 |
3주 |
4주 |
5주 |
6주 |
7주 |
8주 |
1장 2장 |
3장 |
4장 -1 |
4장 -2 |
5장 -1 |
5장 -2 |
6장 -1 |
6장 -2 |
9주 |
10주 |
11주 |
12주 |
13주 |
14주 |
15주 |
16주 |
7장 |
8장 |
9장 -1 |
9장 -2 |
10장 -1 |
10장 -2 |
11장 |
복습 |
3월 넷째 주 시작
시험기간을 제외하면 7월까지는 끝낼 수 있을 것 같다