★이 파트는 무조건 꼼꼼히 다시 공부해야 함 자료구조 및 정렬 너무 어려워 특히 정렬 다시 공부하기★
스택 :
큐 :
데크 :
선형 리스트 :
연결 리스트 :
트리 :
그래프 :
이진 트리 순회 3가지 방법 : P I PO
Preorder : 근노드 -> 좌측 -> 우측
Inorder : 좌측 -> 근노드 -> 우측
Postorder: 좌측 -> 우측 -> 근노드
트리의 차수 : 자식 제일 많은 놈의 자식 수 / 단말 노드 : 제일 끝 놈
무방향 완전 그래프 간선 수 : n(n-1)/2
방향 완전 그래프 간선 수 : n(n-1)
시간 복잡도 : O(log2n) < O(n) < O(nlog2n) < O(n2) < O(n3)
0(1) : 알고리즘 수행시간이 입력 데이터 수와 관계없이 일정함
0(log2n) : 이분검색, 이진트리검색
0(n) : 수열, 선형(순차)검색
0(nlog2n) : 퀵, 힙, 합병정렬
0(n2) : 버블, 선택, 삽입정렬 (버, 선, 삽)
0(n3) : 행렬 곱셈 알고리즘
선형 검색 : 처음부터 하나씩 비교하여 검색, 순서 상관 없음, 단순 느림, 0(n), 평균비교횟수 = (n+1)/2
이진 검색 : 전체자료를 이등분하면서 검색, 전체 자료수 알 때, 순서대로 정렬 필요, O(log2n)
보간 검색 : 찾고자 하는 자료의 위치값으로 검색, 일정한 규칙 있을 때, 전체 자료 수 알아야, 순서대로 정렬 필요, 순차 검색, 사전식 검색
블록 검색 : 그룹별로 블록화하여 인덱스로 만들어 검색, 순차 검색
가장 이상적인 블록 개수 - 루트n개
이진 트리 검색 : 첫째 자료는 근노드, 근노드와 비교해서 작으면 왼쪽, 크면 오른쪽
해싱 검색 : 자료를 찾는 특별한 규칙(해싱 함수)으로 검색 대상의 자료를 저장하여 자료 찾기,
해싱 함수 종류 7개 (암기) : 제 제 폴댄스 숫기 의 기 소침 중 국감
제산법, 제곱법, 폴딩법, 숫자분석법, 의사 무작위법, 기수 변환법, 중간 제곱법 / 충돌이 적어야 하고 계산이 쉬워야 함
해싱 용어 정리 :
그래프 탐색 : 그래프의 모든 정점을 방문하는 것, 깊이 우선 탐색(DFS), 너비 우선 탐색(BFS)
B-Tree : DB나 파일에 사용되는 구조, 루트 노드, 리프 노드
종류 : 버 선 삽 퀵 힙 쉘 이 버
버블, 선택, 삽입, 퀵, 힙, 쉘, 이진 병합, 버킷 정렬
선택 정렬:
버블 정렬:
삽입 정렬:
쉘 정렬:
힙 정렬:
이진 병합 정렬:
버킷 정렬:
퀵 정렬:
재병화(합) : 재귀적함수호출은 병합정렬
O(n2)는 버 선 삽
단위 모듈 구현시 : 응(집도)등이 높게, 결합도 낮게 / 항상 예외 처리 로직을 고려 / 화이트박스 테스트 기법 사용
HTML 5 - Header, Div, Aside, Section, Nav, Article, Footer
Responsive Web : 리액트, 뷰, 앵귤러 사용