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

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

chap 5: Trees

14장.탐색

쿠폰형_상품소개서

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

PowerPoint 프레젠테이션

<B4EBC7D0BCF6C7D02DBBEFB0A2C7D4BCF62E687770>

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


<FEFF E002D B E E FC816B CBDFC1B558B202E6559E830EB C28D9>

Microsoft PowerPoint - 알고리즘_5주차_1차시.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

체의원소를계수로가지는다항식환 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

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

Microsoft PowerPoint - ch14 - Hash Map

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

Chapter 4. LISTS

05 암호개론 (2)

KJME-2003-h.hwp

Microsoft PowerPoint - chap06-1Array.ppt

FGB-P 학번수학과권혁준 2008 년 5 월 19 일 Lemma 1 p 를 C([0, 1]) 에속하는음수가되지않는함수라하자. 이때 y C 2 (0, 1) C([0, 1]) 가미분방정식 y (t) + p(t)y(t) = 0, t (0, 1), y(0)

OCW_C언어 기초

statistics

강의 개요

2002년 2학기 자료구조

9. 해시테이블

슬라이드 1

<B0E8BBEABCF6B7D05FC7C1B7CEC1A7C6AEC3D6C1BEBAB8B0EDBCAD5FB1E8C1F8C0CF2E687770>

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

Microsoft PowerPoint - chap06-2pointer.ppt

2 장수의체계 1. 10진수 2. 2진수 3. 8진수와 16진수 4. 진법변환 5. 2진정수연산과보수 6. 2진부동소수점수의표현 한국기술교육대학교전기전자통신공학부전자전공 1

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 PowerPoint - 26.pptx

<3235B0AD20BCF6BFADC0C720B1D8C7D120C2FC20B0C5C1FE20322E687770>

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

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

슬라이드 1

11장 포인터

쉽게배우는알고리즘 10장. 문자열매칭

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

<4D F736F F F696E74202D20C1A637C0E52DB0EDB1DEBFACB0E1B8AEBDBAC6AE2E >

Microsoft PowerPoint Hash Structures.ppt

Microsoft PowerPoint Relations.pptx

= ``...(2011), , (.)''

Discrete Mathematics

31. 을전개한식에서 의계수는? 를전개한식이 일 때, 의값은? 을전개했을때, 의계수와상수항의합을구하면? 을전개했을때, 의 계수는? 를전개했을때, 상수항을 구하여라. 37

4.1 관계

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

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

PowerPoint Presentation

PowerPoint 프레젠테이션

제 5강 리만적분

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

Microsoft PowerPoint - chap04-연산자.pptx

Chapter 4. LISTS

Microsoft PowerPoint - Ch15-1

Microsoft PowerPoint - 08-chap06-Queue.ppt

Microsoft PowerPoint 상 교류 회로

adfasdfasfdasfasfadf


소성해석

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

Microsoft PowerPoint - e pptx


1217 WebTrafMon II

장연립방정식을풀기위한반복법 12.1 선형시스템 : Gauss-Seidel 12.2 비선형시스템 12.1 선형시스템 : Gauss-Seidel (1/10) 반복법은초기근을가정한후에더좋은근의값을추정하는체계적인절차를이용한다. G-S 방법은선형대수방정

슬라이드 1

Microsoft PowerPoint - ºÐÆ÷ÃßÁ¤(ÀüÄ¡Çõ).ppt

완벽한개념정립 _ 행렬의참, 거짓 수학전문가 NAMU 선생 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에

실험. Multimeter 의사용법및기초회로이론 Multimeter 의사용법 멀티미터 (Multimeter) 는저항, 전압, 전류등을측정할수있는계측기로서전면은다음그림과같다. 멀티미터를이용해서저항, 전압, 전류등을측정하기위해서는다음그림과같은프로브 (probe) 를멀티미터


PowerPoint 프레젠테이션

Chapter 4. LISTS

-09- 학습목표 기본정렬알고리즘을이해한다. 정렬을귀납적관점에서볼수있도록한다. 1 장과 2 장에서배운기법을사용해각정렬의수행시간을분석할수있도록한다. 비교정렬의한계를이해하고, 선형시간정렬이가능한조건과선형시간정렬알고리즘을이해한다. - - 한빛미디어 Sortng Algorth

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

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

제 2 교시 2019 학년도 3 월고 1 전국연합학력평가문제지수학영역 1 5 지선다형 1. 의값은? [2점] 일차방정식 의해는? [2 점 ] 두수, 의최대공약수는? [2 점 ] 일차함수 의그래프에서

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

Algorithms

Microsoft PowerPoint - ch07 - 포인터 pm0415

PowerPoint Presentation

Microsoft PowerPoint - C++ 5 .pptx

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

쉽게배우는알고리즘 8장. 동적프로그래밍 프로그래밍 Dynamic Programming (DP)

Microsoft Word - FunctionCall

Microsoft PowerPoint - 08-Queue.ppt

untitled

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

1 경영학을 위한 수학 Final Exam 2015/12/12(토) 13:00-15:00 풀이과정을 모두 명시하시오. 정리를 사용할 경우 명시하시오. 1. (각 6점) 다음 적분을 구하시오 Z 1 4 Z 1 (x + 1) dx (a) 1 (x 1)4 dx 1 Solut

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

제 12강 함수수열의 평등수렴

PowerPoint 프레젠테이션

Microsoft PowerPoint - additional01.ppt [호환 모드]

Algorithms

쉽게 풀어쓴 C 프로그래밍

public key private key Encryption Algorithm Decryption Algorithm 1

C 언어 강의노트

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) 최악의경우 Θ(log n) B-tree 최악의경우 Θ(log n) Balanced binary search tree 보다상수인자가작다 Hash table: 검색효율의극단 평균 Θ() - 4-2

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

크기 3 인 Hash Table 에 5 개의원소가저장된예 입력 : 25, 3, 6, 5, 7 0 3 2 5 3 6 4 5 6 8 0 2 25 Hash function h(x) = x mod 3 적재율 (load factor) = 5/3-7 - Hash Function 해시함수의요구조건 입력원소가 hash table 에고루저장되어야한다. 서로다른원소가한주소에충돌할확률이작아지기때문 계산이간단해야한다. 여러가지방법이있으나가장대표적인것은 division method 와 multiplication method 이다 - 8-4

해시함수 Division Method h(x) = x mod m m: table 사이즈 대개 2 의멱수에가깝지않은소수가바람직 m = 2 p 라면입력원소의하위 p 비트에의해해시값이결정되는문제가있음 해시값은입력원소의모든비트를이용하는것이바람직 - - 해시함수 2 Multiplication Method 원리 먼저입력값을 0 과 사이의수로대응시키고 해시테이블크기 m 을곱하여 0 ~ m- 사이로팽창시킨다. 구현 x 에 A 를곱한다음소수부만취한다. 방금취한소수부에 m 을곱하여그정수부를취함 h(x) = m(xa mod ) A: 0 < A < 인상수 m 은굳이소수일필요없다. 따라서보통 2 p 으로잡는다 (p 는정수 ) 크누스는잘작동하는 A 값으로 ( 5-)/2 를제안 - 0-5

x 0 xa mod 0 Multiplication method 의작동예 - m: 65,536, A=0.68033887 - 원소,025,30 의해시값을구해보자. xa =,025,30 * 0.68033887 = 633,725.8767303 여기서소수부는.8767303 이고, 해시테이블크기 m 을곱하면 57,25.67 결국, 원소,025,30 의해시주소는 57,25 로결정됨. m (xa mod ) m- - - Collision Hash table 의한주소를놓고두개이상의원소가자리를다투는것 Hashing 을해서삽입하려했으나이미다른원소가자리를차지하고있는상황 Collision resolution 방법은크게두가지가있음 Chaining Open Addressing - 2-6

Collision 의예 입력 : 25, 3, 6, 5, 7 0 3 2 5 3 6 4 5 6 8 0 h(2) = 2 mod 3 = 3 2 를삽입하려하자이미다른원소가차지하고있다! 2 25 Hash function h(x) = x mod 3-3 - Collision Resolution Chaining 같은주소로 hashing 되는원소를모두하나의 linked list 로관리한다 해시테이블외에추가적인 linked list 필요 Open addressing Collision 이일어나더라도어떻게든주어진테이블공간에서해결한다 추가적인공간이필요하지않다 - 4-7

Chaining 을이용한 Collision Resolution 의예 0 3 3 40 2 3 4 5 6 7 8 0 2 4 3 42 43 44 70 86 47 74 76 55 효율을위해리스트에삽입시리스트맨앞에삽입함. 리스트순서는삽입역순임 원소삭제시에는리스트에서삭제하면됨 교재 203p. 알고리즘 6- 장점 : 적재율이 을넘어도사용할수있음 - 5 - Open Addressing 빈자리가생길때까지해시값을계속만들어냄 충돌이일어나도어떻게든주어진테이블공간에서해결한다. h 0 (x), h (x), h 2 (x), h 3 (x), 단점 : 모든원소가반드시자신의해시값과일치하는주소에저장된다는보장이없음 충돌시다음주소를결정하는세가지방법 선형조사 (Linear probing) 이차방정식조사 (Quadratic probing) 더블해싱 (Double hashing ) - 6-8

선형조사 (Linear Probing) h i (x) = (h(x) + i) mod m // 충돌이일어난바로뒷자리를본다는의미 예 : 입력순서 25, 3, 6, 5, 7, 28, 3, 20,, 38 0 3 0 3 0 3 2 5 2 5 2 5 3 6 3 6 3 6 4 28 4 28 4 28 5 5 3 5 3 6 6 6 38 8 8 20 8 20 0 0 0 h i (x) = (h(x) + i) mod 3 2 25 2 25 2 25-7 - Linear Probing 은 Primary Clustering 에취약하다 일차군집 (Primary clustering): 특정영역에원소가몰리는현상 0 2 5 3 6 4 28 5 3 6 44 7 8 0 37 2 Primary clustering의예 군집영역이커질수록해당군집영역으로해싱될가능성이커짐 군집이심하지않은영역에비해영역의크기가빨리커짐 그러다두개의군집된영역이붙으면영역이갑자기커지기도함. - 8 -

이차방정식조사 (Quadratic Probing) h i (x) = (h(x) + c i 2 + c 2 i) mod m 예 : 입력순서 5, 8, 43, 37, 45, 30 0 2 5 3 4 43 5 8 6 45 7 8 30 0 37 2 h(x), h(x)+, h(x)+4, h(x)+, 선형조사에서처럼특정영역에원소가몰려도그영역을빨리벗어날수있기를기대함. 단점 : 여러개의원소가같은초기해시값을갖게되면모두같은순서로조사할수밖에없음. h i (x) = (h(x) + i 2 ) mod 3 - - Quadratic Probing 은 Secondary Clustering 에취약하다 0 2 5 3 28 4 5 54 6 4 7 8 2 0 67 2 Secondary clustering: 여러개의원소가동일한초기해시함수값을갖는현상 Secondary clustering의예 h i (x) = (h(x) + i 2 ) mod 3 이라면 원소 28: 두번만에빈자리찾음 원소 4: 세번만에 원소 67: 네번만에 원소 54: 다섯번만에빈자리를찾음. 보폭은넓어지지만최초의해시값이같은원소들은이로인해이득을보지못함. - 20-0

더블해싱 (Double Hashing) h i (x) = (h(x) + if(x)) mod m 예 : 입력순서 5,, 28, 4, 67 h(x) = x mod 3 f(x) = (x mod ) + h i (x) = (h(x)+if(x)) mod 3 m : m 보다조금작은소수로잡는것이바람직 0 2 5 3 4 67 5 6 7 8 28 0 4 2 h 0 (5) = h 0 (28) = h 0 (4) = h 0 (67) = 2 // 첫해시함수값은모두 2 h (67) = (2 + *((67 mod )+)) mod 3 = 4 h (28) = (2 + *((28 mod )+)) mod 3 = h (4) = (2 + *((4 mod )+)) mod 3 = - 첫해시값이같더라도두번째해시값이같을확률은매우작아서로다른보폭으로점프 - 2 차군집문제발생안함 - 2 - 더블해싱에서두번째해시함수 f(x) f(x) 의특징 해시테이블크기 m 과서로소인값이어야바람직 만약 f(x) 와 m 이 보다큰최소공약수 d 를가진다면? x 의자리를찾기위해해시테이블전체중기껏해야 m/d 밖에보지못함. 권고 해시테이블크기 m 을소수로잡고, f(x) 의값이항상 m 보다작은자연수가되게하면이들이항상서로소가될수있음. - 22 -

선형조사를예를들면 : 삭제시조심할것 0 3 2 5 3 6 4 28 5 3 6 38 8 20 0 2 25 0 3 2 5 3 6 4 28 5 3 6 38 8 20 0 2 25 0 3 DELETED 2 5 3 6 4 28 5 3 6 38 8 20 0 2 25 (a) 원소 삭제 (b) 38 검색, 문제발생 (c) 표식을해두면문제없다 - 23 - Hash Table 에서의검색시간 적재율 (Load factor) α Hash table 전체에서얼마나원소가채워져있는지를나타내는수치 Hash table 에 n 개의원소가저장되어있다면 α = n/m 이다 Hash table 에서의검색효율은적재율과밀접한관련이있다. - 24-2

Chaning 에서의검색시간 정리 Chaining 을이용하는 hashing 에서 load factor 가 α 일때, 실패하는검색에서 probe 횟수의기대치는 α 이다 정리 2 Chaining 을이용하는 hashing 에서 load factor 가 α 일때, 성공하는검색에서 probe 횟수의기대치는 + α/2 + α/2n 이다. 증명 : 교재 23p 참조. - 25 - Open Addressing 에서의검색시간 Assumption (uniform hashing) Probe 순서 h 0 (x), h (x),, h m- (x) 가 0 부터 m- 사이의수로이루어진 permutation 을이루고, 모든 permutation 은같은확률로일어난다 정리 3 Load factor α=n/m 인 open addressing hashing 에서실패하는검색에서 probe 횟수의기대치는최대 /(- α ) 이다 정리 4 Load factor α=n/m 인 open addressing hashing 에서성공하는검색에서 probe 횟수의기대치는최대 (/ α) log(/(- α)) 이다 - 26-3

Load Factor 가우려스럽게높아지면 Load factor 가높아지면일반적으로 hash table 의효율이떨어짐 과도한적재율방지알고리즘 일반적으로, threshold 을미리설정해놓고적재율이이에이르면, Hash table 의크기를두배로늘인다음, hash table 에저장되어있는모든원소를다시 hashing 하여저장한다. - 27 - 생각해볼것 Load factor 가아주낮으면각 probing 방법들이차이가많이나는가? 성공적인검색과삽입의관계는? [ 정리 4] 의증명과도관계있음 - 28-4

Thank you - 2 - 한빛미디어 5