쉽게배우는알고리즘 6장. 해시테이블 테이블 Hash Table

Similar documents
쉽게배우는알고리즘 6 장. 해시테이블 Hash Table IT COOKBOOK 6 장. 해시테이블 Hash Table 그에게서배운것이아니라이미내속에있었던것이그와공명을한것이다. - 제임스왓슨 한

쿠폰형_상품소개서

Microsoft PowerPoint - 알고리즘_11주차_2차시.pptx

chap 5: Trees

14장.탐색


<FEFF E002D B E E FC816B CBDFC1B558B202E6559E830EB C28D9>

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

2002년 2학기 자료구조

Microsoft PowerPoint - ch14 - Hash Map

05 암호개론 (2)

쉽게 배우는 알고리즘 강의노트

강의 개요

<B0E8BBEABCF6B7D05FC7C1B7CEC1A7C6AEC3D6C1BEBAB8B0EDBCAD5FB1E8C1F8C0CF2E687770>

public key private key Encryption Algorithm Decryption Algorithm 1

PowerPoint 프레젠테이션

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

11장 포인터


설계란 무엇인가?

1217 WebTrafMon II

untitled

기본자료형만으로이루어진인자를받아서함수를결과값으로반환하는고차함수 기본자료형과함수를인자와결과값에모두이용하는고차함수 다음절에서는여러가지예를통해서고차함수가어떤경우에유용한지를설명한다. 2 고차함수의 예??장에서대상체만바뀌고중간과정은동일한계산이반복될때함수를이용하면전체연산식을간 단

Chap 6: Graphs

IoT FND8 7-SEGMENT api

윈도우즈프로그래밍(1)

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

Microsoft PowerPoint - e pptx

4.18.국가직 9급_전산직_컴퓨터일반_손경희_ver.1.hwp

1 1 장. 함수와극한 1.1 함수를표현하는네가지방법 1.2 수학적모형 : 필수함수의목록 1.3 기존함수로부터새로운함수구하기 1.4 접선문제와속도문제 1.5 함수의극한 1.6 극한법칙을이용한극한계산 1.7 극한의엄밀한정의 1.8 연속

9. 해시테이블

슬라이드 1

<B4EBC7D0BCF6C7D02DBBEFB0A2C7D4BCF62E687770>

화판_미용성형시술 정보집.0305

리스트 (list), 선형리스트 (linear list): 순서를가진항목들의모임 집합 : 항목간의순서의개념이없음 L = n ( item0, item1,..., item -1) l 리스트의예 l 요일 : ( 일요일, 월요일,, 토요일 ) l 한글자음의모임 : ( ㄱ, ㄴ

Chapter 4. LISTS

1장. 리스트

11장 포인터

C 언어 강의노트

±â¾÷¼³¸íȸ

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

Ⅰ. 들어가는 말 2005년 6월에 발생한 인터넷뱅킹 해킹 사건이 2005년 가장 기억에 남는 정보보호 뉴 스로 선정되었다고 한다. 해킹 등으로 인해 개인의 PC가 악의적인 해커에 의해 장악이 된 경우에는 어떤 보안시스템도 제 기능을 다하지 못함에도 불구하고, 해킹 사

06장.리스트

한약재품질표준화연구사업단 단삼 ( 丹參 ) Salviae Miltiorrhizae Radix 생약연구과

체의원소를계수로가지는다항식환 Theorem 0.1. ( 나눗셈알고리듬 (Division Algorithm)) F 가체일때 F [x] 의두다항식 f(x) = a 0 + a 1 x + + a n x n, a n 0 F 와 g(x) = b 0 + b 1 x + + b m x

이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2

chap8.PDF

컴파일러

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

歯TC프로그래밍매뉴얼

PowerPoint 프레젠테이션

Chapter 4. LISTS

<4D F736F F F696E74202D20C1A637C0E52DB0EDB1DEBFACB0E1B8AEBDBAC6AE2E >

Microsoft PowerPoint - ch07 - 포인터 pm0415

chap01_time_complexity.key

Microsoft PowerPoint - 알고리즘_1주차_2차시.pptx

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

정의 이진탐색트리 이진탐색트리 (BST: binary search tree) 는각각의노드가 BST 특성을만족하는키 - 주소쌍을가지고있는이진트리 BST 특성 트리에있는각각의키에대해, 왼쪽서브트리에있는모든키는이것보다작고, 오른쪽서브트리에있는모든키는이것보다큼 < > 2

3.2 함수의정의 Theorem 6 함수 f : X Y 와 Y W 인집합 W 에대하여 f : X W 는함수이다. Proof. f : X Y 가함수이므로 f X Y 이고, Y W 이므로 f X W 이므로 F0이만족된다. 함수의정의 F1, F2은 f : X Y 가함수이므로

Microsoft Word - PLC제어응용-2차시.doc

자연언어처리

LIDAR와 영상 Data Fusion에 의한 건물 자동추출

Chapter 4. LISTS

PowerPoint 프레젠테이션

Contents Activity Define Real s Activity Define Reports UI, and Storyboards Activity Refine System Architecture Activity Defin

chap x: G입력

중간고사

함수공간 함수공간, 점열린위상 Definition 0.1. X와 Y 는임의의집합이고 F(X, Y ) 를 X에서 Y 로의모든함수족이라하자. 집합 F(X, Y ) 에위상을정의할때이것을함수공간 (function space) 이라한다. F(X, Y ) 는다음과같이적당한적집합과

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

MS-SQL SERVER 대비 기능

제 3강 역함수의 미분과 로피탈의 정리

11강-힙정렬.ppt

4.1 관계

일반각과호도법 l 삼각함수와미분 1. 일반각 시초선 OX 로부터원점 O 를중심으로 만큼회전이동한위치에동경 OP 가있을때, XOP 의크기를나타내는각들을 ( 은정수 ) 로나타내고 OP 의일반각이라한다. 2. 라디안 rad 반지름과같은길이의호에대한중심각의 크기를 라디안이라한

생명의 신비를 푸는 화학

2

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp

exp

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint Relations.pptx

½½¶óÀ̵å Á¦¸ñ ¾øÀ½

Microsoft PowerPoint Hash Structures.ppt

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

Microsoft PowerPoint - 08-chap06-Queue.ppt

Discrete Mathematics

Vector Differential: 벡터 미분 Yonghee Lee October 17, 벡터미분의 표기 스칼라미분 벡터미분(Vector diffrential) 또는 행렬미분(Matrix differential)은 벡터와 행렬의 미분식에 대 한 표

Microsoft PowerPoint - 26.pptx

Microsoft PowerPoint - 6장 탐색.pptx

C 언어 프로그래밊 과제 풀이

UI TASK & KEY EVENT

02장.배열과 클래스

Sequences with Low Correlation

원형연결리스트에대한설명중틀린것은 모든노드들이연결되어있다 마지막에삽입하기가간단한다 헤더노드를가질수있다 최종노드포인터가 NULL이다 리스트의 번째요소를가장빠르게찾을수있는구현방법은무엇인가 배열 단순연결리스트 원형연결리스트 이중연결리스트 단순연결리스트의노드포인터 가마지막노드를

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역

Transcription:

쉽게배우는알고리즘 6장. 해시테이블 테이블 Hash Table http://academy.hanb.co.kr

6장. 해시테이블 테이블 Hash Table 사실을많이아는것보다는이론적틀이중요하고, 기억력보다는생각하는법이더중요하다. - 제임스왓슨 - 2 -

학습목표 해시테이블의발생동기를이해한다. 해시테이블의원리를이해한다. 해시함수설계원리를이해한다. 충돌해결방법들과이들의장단점을이해한다. 해시테이블의검색성능을분석할수있도록한다. - 3 -

저장 / 검색의복잡도 Array O(n) Binary search tree 최악의경우 Θ(n) 평균 Θ(logn) Balanced binary search tree(e.g. red-black tree) 최악의경우 Θ(logn) B-tree 최악의경우 Θ(logn) Balanced binary search tree 보다상수인자가작다 Hash table 평균 Θ(1) - 4 -

Hash Table 원소가저장될자리가원소의값에의해결정되는자료구조 평균상수시간에삽입, 삭제, 검색 매우빠른응답을요하는응용에유용 예 : 119 긴급구조호출과호출번호관련정보검색 주민등록시스템 Hash table 은최소원소를찾는것과같은작업은지원하지않는다 - 5 -

주소계산 검색키 주소계산 배열모양의테이블 - 6 -

크기 13 인 Hash Table 에 5 개의원소가저장된예 입력 : 25, 13, 16, 15, 7 0 13 1 2 15 3 16 4 5 6 7 7 8 9 10 11 12 25 Hash function h(x) = x mod 13-7 -

Hash Function 입력원소가 hash table 에고루저장되어야한다 계산이간단해야한다 여러가지방법이있으나가장대표적인것은 division method 와 multiplication method 이다 - 8 -

Division Method h(x) = x mod m m: table 사이즈. 대개 prime number 임. Multiplication Method h(x) = (xa mod 1) * m A: 0 < A < 1 인상수 m 은굳이소수일필요없다. 따라서보통 2 p 으로잡는다 (p 는정수 ) - 9 -

x 0 1 xa mod 1 0 1 m (xa mod 1) Multiplication method 의작동원리 - 10 - m-1

Collision Hash table 의한주소를놓고두개이상의원소가자리를다투는것 Hashing 을해서삽입하려하니이미다른원소가자리를차지하고있는상황 Collision resolution 방법은크게두가지가있다 Chaining Open Addressing - 11 -

Collision 의예 입력 : 25, 13, 16, 15, 7 0 13 1 2 15 3 16 4 5 6 7 7 8 9 10 11 h(29) = 29 mod 13 = 3 29 를삽입하려하자이미다른원소가차지하고있다! 12 25 Hash function h(x) = x mod 13-12 -

Collision Resolution Chaining 같은주소로 hashing 되는원소를모두하나의 linked list 로관리한다 추가적인 linked list 필요 Open addressing Collision 이일어나더라도어떻게든주어진테이블공간에서해결한다 추가적인공간이필요하지않다 - 13 -

Chaining 을이용한 Collision Resolution 의예 0 39 13 1 40 2 3 4 5 6 7 8 9 10 11 12 94 3 42 43 44 70 86 47 74 76 55-14 -

Open Addressing 빈자리가생길때까지해시값을계속만들어낸다 h 0 (x), h 1 (x), h 2 (x), h 3 (x), 중요한세가지방법 Linear probing Quadratic probing Double hashing - 15 -

Linear Probing h i (x) = (h(x) + i) mod m 예 : 입력순서 25, 13, 16, 15, 7, 28, 31, 20, 1, 38 0 13 0 13 0 13 1 1 1 1 2 15 2 15 2 15 3 16 3 16 3 16 4 28 4 28 4 28 5 5 31 5 31 6 6 6 38 7 7 7 7 7 7 8 8 20 8 20 9 9 9 10 10 10 11 11 11 h i (x) = (h(x) + i) mod 13 12 25 12 25 12 25-16 -

Linear Probing 은 Primary Clustering 에취약하다 Primary clustering: 특정영역에원소가몰리는현상 0 1 2 15 3 16 4 28 5 31 6 44 7 8 9 10 11 37 12 Primary clustering 의예 - 17 -

Quadratic Probing h i (x) = (h(x) + c 1 i 2 + c 2 i) mod m 예 : 입력순서 15, 18, 43, 37, 45, 30 0 1 2 15 3 4 43 5 18 6 45 7 8 30 9 10 11 37 12 h i (x) = (h(x) + i 2 ) mod 13-18 -

Quadratic Probing 은 Secondary Clustering 에취약하다 0 1 2 15 3 28 4 5 54 6 41 7 8 21 9 10 Secondary clustering: 여러개의원소가동일한초기해시함수값을갖는현상 Secondary clustering 의예 11 67 12-19 -

Double Hashing h i (x) = (h(x) + if(x)) mod m 예 : 입력순서 15, 19, 28, 41, 67 0 1 2 15 h 0 (15) = h 0 (28) = h 0 (41) = h 0 (67) = 2 3 4 67 h 1 (67) = 3 5 6 19 7 8 9 28 10 11 41 12 h 1 (28) = 8 h 1 (41) = 10 h(x) = x mod 13 f(x) = (x mod 11) + 1 h i (x) = (h(x)+if(x)) mod 13-20 -

삭제시조심할것 0 13 1 1 2 15 3 16 4 28 5 31 6 38 7 7 8 20 9 10 11 12 25 0 13 1 2 15 3 16 4 28 5 31 6 38 7 7 8 20 9 10 11 12 25 0 13 1 DELETED 2 15 3 16 4 28 5 31 6 38 7 7 8 20 9 10 11 12 25 (a) 원소 1 삭제 (b) 38 검색, 문제발생 (c) 표식을해두면문제없다 - 21 -

Hash Table 에서의검색시간 Load factor α Hash table 전체에서얼마나원소가차있는지를나타내는수치 Hash table 에 n 개의원소가저장되어있다면 α = n/m 이다 Hash table 에서의검색효율은 load factor 와밀접한관련이있다 - 22 -

Chaning 에서의검색시간 정리 1 Chaining 을이용하는 hashing 에서 load factor 가 α 일때, 실패하는검색에서 probe 횟수의기대치는 α 이다 정리 2 Chaining 을이용하는 hashing 에서 load factor 가 α 일때, 성공하는검색에서 probe 횟수의기대치는 1 + α/2 + α/2n 이다 - 23 -

Open Addressing 에서의검색시간 Assumption (uniform hashing) Probe 순서 h 0 (x), h 1 (x),, h m-1 (x) 가 0 부터 m-1 사이의수로이루어진 permutation 을이루고, 모든 permutation 은같은확률로일어난다 정리 3 Load factor α=n/m 인 open addressing hashing 에서실패하는검색에서 probe 횟수의기대치는최대 1/(1- α ) 이다 정리 4 Load factor α=n/m 인 open addressing hashing 에서성공하는검색에서 probe 횟수의기대치는최대 (1/ α) log(1/(1- α)) 이다 - 24 -

Load Factor 가우려스럽게높아지면 Load factor 가높아지면일반적으로 hash table 의효율이떨어진다 일반적으로, threshold 을미리설정해놓고 load factor 가이에이르면 Hash table 의크기를두배로늘인다음 hash table 에저장되어있는모든원소를다시 hashing 하여저장한다 - 25 -

생각해볼것 Load factor 가아주낮으면각조사방법들이차이가많이나는가? 성공적인검색과삽입의관계는? [ 정리 4] 의증명과도관계있음 - 26 -

Thank you - 27 -