Computer Science
-
Divide and Conquer ( 분할 정복 )Computer Science/Data Structure and Algorithm 2020. 4. 2. 00:56
✔️ 분할 정복 ◾ 주어진 문제를 둘 이상의 부분 문제로 나눈 뒤 각 문제에 대한 답을 재귀 호출을 이용해 계산하고, 각 부분 문제의 답으로부터 전체 문제의 답을 계산하는 알고리즘 기법 ◾ 분할 정복은 대개 아래와 같이 3가지의 구성요소를 가지고 있다. ◾ 문제를 더 작은 문제로 분할하는 과정(Divide) ◾ 각 문제에 대해 구한 답을 원래 문제에 대한 답으로 병합하는 과정(Merge) ◾ 더 이상 답을 분할하지 않고 곧장 풀 수 있는 매우 작은 문제(Base Case) ✔️ Binary Seach(이분 탐색) ◾ 정렬되어 있는 리스트에서 어떤 값을 빠르게 찾는 알고리즘 ⏱️ 시간 복잡도 ◾ 탐색 : 리스트의 크기가 N일때 O(logN)의 시간이 걸린다. 💾 소스 코드 더보기 int binarySear..
-
Hash Table ( 해쉬 테이블 )Computer Science/Data Structure and Algorithm 2020. 4. 1. 13:31
✔️ 테이블 자료구조 ◾ 저장되는 데이터는 키(key)와 값(value)이 하나의 쌍을 이룬다. ◾ 키(key)가 존재하지 않는 값은 저장할 수 없다. ◾ 모든 키(key)는 중복되지 않는다. ◾ 테이블 자료구조는 사전구조 혹은 맵(map)이라 불리기도 한다. ✔️ 해쉬 함수와 충돌💥 ◾ 해쉬 함수는 넓은 범위의 키를 좁은 범위의 키로 변경하는 역할을 한다. ◾ 위 그림의 f(x)는 mod 100 연산을 하는 함수이다. 위 해쉬 함수를 사용하여 8자리의 키를 2자리의 키로 바꾸었다. ◾ 위 그림에서 보이듯이 서로 다른 두 개의 키가 해쉬 함수를 통과했는데, 그 결과가 03으로 동일하다. 이러한 상황을 가리켜 충돌(Collision)이라고 한다. ✔️ 좋은 해쉬 함수의 조건 ◾ 위 그림은 테이블의 메모리 ..
-
데이터베이스 개념 정리Computer Science/Database 2020. 3. 9. 15:37
(수정중) DDL, DML, DCL DDL(Data Definition Language) : 데이터 정의 언어 - 테이블 생성(create), 삭제(drop), 변경(alter) 등 DML(Data Manipulation Language) : 데이터 조작언어 - 조회(select), 삽입(insert), 수정(update), 삭제(delete) 등 DCL(Data Control Language) : 데이터 제어 언어 - 권한부여(grant), 권한회수(revoke) TCL(Transaction Control Language) : 트랜잭션 제어 언어 - commit, rollback 등 데이터 무결성(Data Integrity) 무결성이란 데이터와 현실세계의 실제 값이 일치하는 정확성 개체(Entity) ..