고정 소수점

1의 보수

+0 -0 존재

상위 1비트는 무조건 부호

2의 보수

0 하나만 존재

상위 1비트는 무조건 부호

1100 → -4

부동 소수점

부호부 | 지수부 | 기수부

저장 용량 단위

KB 2^10byte

KB MB GB TB

PB EB ZB YB

자료형 변환

Widening : 정수형 → 실수형 , 정보손실 없다.

Narrowing : 실수형 → 정수형, 정보손실

Truncation : 자료 임의 부분 잘라낸다.

Underflow : 없는 자료 가져올 때 발생


자료구조

선형\비선형

선형 구조

스택

사용 예)

함수 호출, 인터럽트 수행, 깊이 우선 탐색

사용 예)

프로세스 스케줄, 스풀, 입출력 버퍼

데크

배열

자료 삽입 시 : (n+1)/2

자료 삭제 시 : (n-1)/2

선형구조

연결 리스트(Linked List)

희소 행렬(0이 많은 행렬)을 표현하는 데 효율적

임의의 위치 삽입하는 비용 크다.

연결 리스트가 n 크기의 배열보다 메모리 사용량이 더 크다.

비선형 구조

트리, 그래프

트리

이진 트리 순회

Preorder

근 좌 우

Inorder

좌 근 우

Postorder

좌 우 근

노드의 차수 : 자식 노드의 개수

트리의 차수 : 노드의 차수가 가장 큰 값

신장트리의 간선의 개수 n -1

신장트리 : 모든 정점 연결하고 사이클이 없는 그래프

그래프

최대 간선 수

무방향 : n(n-1) /2

방향성 : n(n-1)

시간 복잡도

이진 탐색 트리 logn

배열 n

정렬된 이진 탐색 logn

순차탐색 n

해싱함수

제산법: 전체 자료수 나눈 나머지 값

폴딩법: XOR


선형 검색

자료가 적을 떄 유리

정렬 되어 있지 않아도 된다.

검색 속도가 매우 느리다.

블록 검색

순차 검색을 이용

보간 검색 보다 느리다.

블록 개수 : 루트 n

블록 끼리 정렬, 블록 내부 정렬 x


정렬

시간복잡도

전체 nlogn : 힙, 합병

최소 평균 nlogn : 퀵 → 최대 n’2

선택 정렬

최소값과 가장 앞부분과 교환

버블 정렬

인접 2개씩 묶어서

간격

힙 정렬

트리

삽입 정렬

앞부분 2개, 3개 , 4개씩 늘려가며 정렬

병합 : 재귀적으로 가장 작은 2개 단위로 나누고 합치면서 정렬


단일 모듈

모듈들을 종류별로 분류하여 컴포넌트화

항상 예외처리 로직 고려하여 구현

공통 모듈을 먼저 구현한 후, 개별 단위 모듈 구현 시 공통 모듈 재사용