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

Slides:



Advertisements
Similar presentations
지리산 둘레길지리산 둘레길 사천 비토섬 (30m) 광양 매화마을 (40m) 사천 와룡산 철쭉 (1h) 사천 한려수도 (1h) 순천 순천만 갈대밭 (1h) 순천 삼보사찰 송광사 (1h20m) 구례 산수유마을 (1h30m) 산청 웅석계곡 (1h30m) 거제 외도 (1h50m)
Advertisements

시스템 프로그래밍 박진희 컴퓨터 시스템 연구실. 2 Project 3 Key-value store 유일한 Key 에 하나의 Value 를 가지고 있는 방식 - Key 와 Value 를 쌍으로 관리 - Hash table, B-Tree, B+ Tree 등 분산형 데이터베이스에서.
지도교수 : 박진식 교수님 조 원 : 홍승기, 이병용, 백승준, 조근용, 조동현, 한정협, 이상하.
1 ‘ 우리나라의 주요공업 ’ - 정도웅, 주민혁, 안수진, 백경민, 엄다운, 박경찬 -.
수유부의 약물복용 시 주의점 발표자 조기성. 모유 수유의 장점 모유 수유의 장점은 ? 위장관 질환 발생감소 영아 돌연사 발생감소 아토피 질환 발생감소 정서적 안정.
언어의 자서전 소단원 (1) 단원. 언어의 특성 기호성 자의성 사회성 규칙성 창조성 역사성.
똘기 : 채 익지 않은 과일. 똘기 소개 일명 발표동아리. 똘기는 발표에 대한 두려움을 가지고 있는 학우들에게 ‘ 자신감 ’ 을 키워줄 수 있도록 하자는 취지에서 만들어졌다. 평소 강의 시간보다 편안하고 자유롭게 발표해 볼 수 있는 기회를 제공함으로써 발표력 향상에 기여하는.
2015학년도 1학기 버디 프로그램 오리엔테이션 (목) 16:00.
전도축제 계획서 *일시 : 2013년 4월 21, 28일 주일 (연속 2주)
2013년도 2학기 학습튜터링 O.T.
이공계의 현실과 미래 제조업 立國 / 이공계 대학생의 미래 준비
Digital BibleⅢ 폰속의 성경 디지털 바이블 2008년 12월 ㈜씨엔커뮤니케이션 ㈜씨엔엠브이엔오.
제 1장. 멀티미디어 개론 1.1 멀티미디어란 무엇인가? 1.2 멀티미디어와 하이퍼미디어 1.3 월드 와이드 웹
FXOpen E-Sports Team(약칭 FXO)
2008 대한민국*조경박람회 한국조경사회 / 환경조경발전재단 / 리드엑스포.
초등학교 학습지 사업계획서. 초등학교 학습지 사업계획서 목 차 Ⅰ. 회사개요 Ⅱ. 사업추진배경 Ⅲ. 시장현황 및 사업성도출 Ⅳ. △△△ 소개 Ⅴ. 사업운영계획 Ⅵ. 사업추진계획 목 차 Ⅰ. 회사개요 Ⅱ. 사업추진배경 Ⅲ. 시장현황 및 사업성도출 Ⅳ. △△△ 소개.
광주경영자총협회 위기극복을 위한 변화창조 리더십 광진구청080911/건국대행정대학원 정 용 진 교수.
중소기업 기술과 경영을 융합하는 컨설팅 지향! 경영혁신 활동을 통한 기업의 가치창조!! 사업영역 연구개발
Korea Under Japanese Rule
3. 나라 안에서 전개된 민족 운동 실력 양성 운동의 전개 2.
HOT100 소개.
병원 감염 Nosocomial Infection
노인범죄의 증가 피해자에서 가해자로 변화하는 노인들 금상욱.
미국의 미디어교육 신문방송학과 강진구 한인수 곽모란 이명현.
1. 자료구조 개념 (1) 자료구조의 개요 1) 자료구조 ① 일련의 자료들을 조직하고 구조화하는 것 ② 자료의 표현과 그것과 관련된 연산 2) 자료구조에 따라 저장공간의 효율성과 프로그램의 실행시간이 달라짐 3) 어떠한 자료구조에서도 필요한 모든 연산들을 처리하는 것이.
PRESENTATION 저온화상이란?
공부할 내용 조상들이 살던 곳 자연과 잘 어울리는 한옥 지방에 따라 서로 다른 집의 모양 섬 지방의 집
사랑, 데이트와 성적 자율성 :데이트 성폭력!!! 성폭력예방교육 전문강사 / 여성학 전공 신 순 옥.
퇴계와 율곡의 사회사상 비교 남 일 재 동서대학교 교수/ 정치학 박사 1. 퇴계 이황과 율곡 이이의 약전(略傳)
Chapter 7. Binary Search Trees - 보충 자료-
501. 군인들의 세상 502. 민정 이양과 한일회담 이선용.
쌓지 말고 해소하자 이 주휘 이 진영 전 민석 전 혜림.
2015년 하반기 소방교육 자 유 전 공 학 부 (금) 안녕하십니까 자유전공학부 행정실 입니다.
8장 직접 파일.
쉽게 배우는 알고리즘 5장. 검색트리
서울 메트로 노조파업 수강과목 : 노사 관계론 담당교수 : 정형진 교수님
해싱(hashing) Ref. C로 쉽게 풀어쓴 자료구조, 생능출판사, 2005.
CHAP 11: 해싱 순천향대학교 하상호.
전자상거래 보안 (암호학과 네트워크보안) Chul Ho Rhee
Chapter 10. 파일 시스템 인터페이스(File System Interface)
파일 시스템 인터페이스(File System Interface)
12 검색.
쉽게 배우는 알고리즘 6장. 해시 테이블Hash Table
CHAP 11: 해싱 순천향대학교 하상호.
AVLTree vs 편향 Tree.
자료구조(SCSC) Data Structures
CHAP 11 : 해싱 C로 쉽게 풀어쓴 자료구조 생능출판사 2011.
패시브하우스 신안산대학교 l 건축과 l 박효동, 박창준, 지예림.
해쉬함수 충돌해결법과 특징 강원대학교 컴퓨터과학과 이해원.
정치개혁의 가능성 논의 권력구조 개편을 통하여 본 -개헌을 통한 정부형태의 변화를 중심으로 [한국정치론] 윤성이 교수님
해시와 해시 함수.
7장. 해시 테이블Hash Table.
CHAP 11 : 해싱.
CHAP 11 : 해싱.
치료 레크레이션 프로그램 (지적 장애 대상) 과 목: 학 과: 학 번: 이 름: 제 출 일 자 담 당 교 수:
CHAPTER 04 파일 설계(FiLE Design).
Chapter 11 해쉬(Hash) SANGJI University Kwangman KO
C언어 응용 제 15 주 검색.
노년기 발달 장안대 행정법률과 세류반 정 오 손
정렬(Sorting)과 해싱(Hashing)
알고리즘(Algorithm) 유비쿼터스 컴퓨팅학과 교수 송 창근
제 8 장 계산복잡도 개론 검색 문제 알고리즘 강의 슬라이드 8 검색 문제
태국 문학 욜라다 왓짜니 싸란차나 팟차라와라이 끼따야펀 르앙다우 타니다.
정의역, 공역, 치역 수학 7-가 함수 > 함수의 뜻 > 5-6/14 수업계획 수업활동 [제작의도]
4장 IEP를 실행으로 옮기기 중등특수교육과 임 은, 김 화 윤 1조.
(Ⅰ) 독서와 언어의 본질 언어의 본질 1 2 [고등 국어] – 독서와 문법 독서의 본질 (1) 독서의 특성
데이터 베이스의 내부 구조.
워밍업 실뭉치 전달게임.
음파성명학 최종욱.
사회복지협의회와 지역사회복지협의체.
Presentation transcript:

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

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

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

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

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

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

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

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

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

Multiplication method의 작동 원리 x xA mod 1 1 1 m (xA mod 1) Multiplication method의 작동 원리 m-1

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

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

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

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

Open Addressing 빈자리가 생길 때까지 해시값을 계속 만들어낸다 중요한 세가지 방법 h0(x), h1(x), h2(x), h3(x), … 중요한 세가지 방법 Linear probing Quadratic probing Double hashing

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

Linear Probing은 Primary Clustering에 취약하다 1 2 15 3 16 4 28 5 31 6 44 7 8 9 10 11 37 12 Primary clustering의 예

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

Quadratic Probing은 Secondary Clustering에 취약하다 초기 해시 함수값을 갖는 현상 1 2 15 3 28 4 5 54 6 41 7 8 21 9 10 11 67 12 Secondary clustering의 예

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

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

Hash Table에서의 검색 시간 Load factor α Hash table에 n 개의 원소가 저장되어 있다면 α = n/m 이다 Hash table에서의 검색 효율은 load factor와 밀접한 관련이 있다

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

Open Addressing에서의 검색 시간 Assumption (uniform hashing) Probe 순서 h0(x), h1(x), …, hm-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- α)) 이다

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

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

Thank you