(이론 -> 수도코드 -> 시간복잡도증명)
기본 정렬(버블, 선택, 삽입)
복잡 정렬(퀵, 병합, 힙, 기수, 버킷)
탐색(이진, 힙)
이진트리
이진탐색트리 + 순회
최소신장트리(크루스칼(유니온파인드), 프림, 솔린? )
크루스칼
탐욕 알고리즘을 기반으로 간선을 기준으로 확장한다.
모든 간선을 오름차순으로 정렬한 후 cycle이 형성되지 않도록 간선을 하나씩 총 N-1개 선택해서 최소 신장 트리를 완성하는 알고리즘
프림
노드를 기준으로 확장한다. 시작 노드를 선택하고 노드와 연결된 모든 간선을 오름차순으로 정렬하여 선택되지 않은 노드를 하나씩 선택해 최소 신장 트리를 완성하는 알고리즘.
최단경로 알고리즘(DFS, BFS, 백트랙킹, 다익스트라, 벨만포드, 플로이드 워샬)
복잡 트리(비트리, 레드블랙트리, 등)
스트링 관련(라빈카프, 보이어.무어, KMP)
기하 (두 선분 교차, 점과 다각형 상대 위치 검사, 블록껍질찾기, 최근접 점쌍 찾기)
NP (배낭문제, CNF 만족성, 해밀토니언 사이클)
기타