no slide titlesoar.snu.ac.kr/course/ds/20181/notes/chapter13-2.ppt · ppt file · web...
TRANSCRIPT
![Page 1: No Slide Titlesoar.snu.ac.kr/course/ds/20181/notes/Chapter13-2.ppt · PPT file · Web view2018-03-07 · Title: No Slide Title Author: 문병로 Last modified by: 임희창 Created](https://reader033.vdocuments.net/reader033/viewer/2022051602/5b3385bd7f8b9a2b238b59de/html5/thumbnails/1.jpg)
자료구조 강의 노트 , 문병로
Ch. 13-2 Hash Tables• Array or linked list
– Overall O(n) time• Binary search trees
– Expected O(log n)-time search, insertion, and deletion– But, O(n) in the worst case
• Balanced binary search trees– Guarantees O(log n)-time search, insertion, and deletion – Red-black tree, AVL tree
• Balanced k-ary trees– Guarantees O(log n)-time search, insertion, and deletion w/ smaller
constant factor– 2-3 tree, 2-3-4 tree, B-trees
• Hash table– Expected O(1)-time search, insertion, and deletion
![Page 2: No Slide Titlesoar.snu.ac.kr/course/ds/20181/notes/Chapter13-2.ppt · PPT file · Web view2018-03-07 · Title: No Slide Title Author: 문병로 Last modified by: 임희창 Created](https://reader033.vdocuments.net/reader033/viewer/2022051602/5b3385bd7f8b9a2b238b59de/html5/thumbnails/2.jpg)
자료구조 강의 노트 , 문병로
• Stack, queue, priority queue– do not support search operation– i.e., do not support dictionary
• But, hash table does not support finding the minimum (or maximum) element
• Applications that need radically fast operations– 119 emergent calls and locating caller’s address– Air flight information system– 주민등록 시스템
![Page 3: No Slide Titlesoar.snu.ac.kr/course/ds/20181/notes/Chapter13-2.ppt · PPT file · Web view2018-03-07 · Title: No Slide Title Author: 문병로 Last modified by: 임희창 Created](https://reader033.vdocuments.net/reader033/viewer/2022051602/5b3385bd7f8b9a2b238b59de/html5/thumbnails/3.jpg)
자료구조 강의 노트 , 문병로
Figure 1Figure 1Address calculator
![Page 4: No Slide Titlesoar.snu.ac.kr/course/ds/20181/notes/Chapter13-2.ppt · PPT file · Web view2018-03-07 · Title: No Slide Title Author: 문병로 Last modified by: 임희창 Created](https://reader033.vdocuments.net/reader033/viewer/2022051602/5b3385bd7f8b9a2b238b59de/html5/thumbnails/4.jpg)
자료구조 강의 노트 , 문병로
Figure 2Figure 2A collision
![Page 5: No Slide Titlesoar.snu.ac.kr/course/ds/20181/notes/Chapter13-2.ppt · PPT file · Web view2018-03-07 · Title: No Slide Title Author: 문병로 Last modified by: 임희창 Created](https://reader033.vdocuments.net/reader033/viewer/2022051602/5b3385bd7f8b9a2b238b59de/html5/thumbnails/5.jpg)
자료구조 강의 노트 , 문병로
Insert
tableInsert(x){ // A[ ]: hash table, x: new key to insert
if (A[h(x)] is not occupied) {A[h(x)] = x;} else {Find an appropriate index i by a collision-resolution method;A[i] =x ;}
}
![Page 6: No Slide Titlesoar.snu.ac.kr/course/ds/20181/notes/Chapter13-2.ppt · PPT file · Web view2018-03-07 · Title: No Slide Title Author: 문병로 Last modified by: 임희창 Created](https://reader033.vdocuments.net/reader033/viewer/2022051602/5b3385bd7f8b9a2b238b59de/html5/thumbnails/6.jpg)
자료구조 강의 노트 , 문병로
Hash Functions• Toy functions
– Selection digits• h(001364825) = 35
– Folding• h(001364825) = 1190
• Modulo arithmetic– h(x) = x mod tableSize– tableSize is recommended to be prime
• Multiplication method– h(x) = (xA mod 1) * tableSize– A: constant in (0, 1)– tableSize is not critical, usually 2p for an integer p
![Page 7: No Slide Titlesoar.snu.ac.kr/course/ds/20181/notes/Chapter13-2.ppt · PPT file · Web view2018-03-07 · Title: No Slide Title Author: 문병로 Last modified by: 임희창 Created](https://reader033.vdocuments.net/reader033/viewer/2022051602/5b3385bd7f8b9a2b238b59de/html5/thumbnails/7.jpg)
자료구조 강의 노트 , 문병로
Collision Resolution
• Collision– The situation that two keys are mapped into the same
location in the hash table• Collision resolution
– resolves collision by a seq. of hash values– h0(x), h1(x), h2(x), h3(x), …
![Page 8: No Slide Titlesoar.snu.ac.kr/course/ds/20181/notes/Chapter13-2.ppt · PPT file · Web view2018-03-07 · Title: No Slide Title Author: 문병로 Last modified by: 임희창 Created](https://reader033.vdocuments.net/reader033/viewer/2022051602/5b3385bd7f8b9a2b238b59de/html5/thumbnails/8.jpg)
자료구조 강의 노트 , 문병로
Collision-Resolution Methods
• Open addressing (resolves in the array)– Linear probing
• hi(x) = (h0(x) + i) mod tableSize
– Quadratic probing• hi(x) = (h0(x) + i2) mod tableSize
– Double hashing• hi(x) = (α(x) + i•β(x)) mod tableSize• α(x), β(x): hash functions
• Separate chaining– Each table[i] is maintained by a linked list
![Page 9: No Slide Titlesoar.snu.ac.kr/course/ds/20181/notes/Chapter13-2.ppt · PPT file · Web view2018-03-07 · Title: No Slide Title Author: 문병로 Last modified by: 임희창 Created](https://reader033.vdocuments.net/reader033/viewer/2022051602/5b3385bd7f8b9a2b238b59de/html5/thumbnails/9.jpg)
자료구조 강의 노트 , 문병로
• Linear probing– hi(x) = (h0(x) + i) mod tableSize– bad w/ primary clustering
Figure 3Figure 3Linear probing with h(x) = x mod 101
![Page 10: No Slide Titlesoar.snu.ac.kr/course/ds/20181/notes/Chapter13-2.ppt · PPT file · Web view2018-03-07 · Title: No Slide Title Author: 문병로 Last modified by: 임희창 Created](https://reader033.vdocuments.net/reader033/viewer/2022051602/5b3385bd7f8b9a2b238b59de/html5/thumbnails/10.jpg)
자료구조 강의 노트 , 문병로
Figure 4Figure 4Quadratic probing withh(x) = x mod 101
• Quadratic probing– hi(x) = (h0(x) + i2) mod tableSize– bad w/ secondary clustering
![Page 11: No Slide Titlesoar.snu.ac.kr/course/ds/20181/notes/Chapter13-2.ppt · PPT file · Web view2018-03-07 · Title: No Slide Title Author: 문병로 Last modified by: 임희창 Created](https://reader033.vdocuments.net/reader033/viewer/2022051602/5b3385bd7f8b9a2b238b59de/html5/thumbnails/11.jpg)
자료구조 강의 노트 , 문병로
Figure 5Figure 5Double hashing during the insertion of 58, 14, and 91
h0(14)
h0(91)
![Page 12: No Slide Titlesoar.snu.ac.kr/course/ds/20181/notes/Chapter13-2.ppt · PPT file · Web view2018-03-07 · Title: No Slide Title Author: 문병로 Last modified by: 임희창 Created](https://reader033.vdocuments.net/reader033/viewer/2022051602/5b3385bd7f8b9a2b238b59de/html5/thumbnails/12.jpg)
자료구조 강의 노트 , 문병로
• Increasing the size of hash table– Load factor α
• The rate of occupied slots in the table• A high load factor harms performance
– We need to increase the size of hash table
– Increasing the hash table• Roughly double the table size• Rehash all the items on the new table
![Page 13: No Slide Titlesoar.snu.ac.kr/course/ds/20181/notes/Chapter13-2.ppt · PPT file · Web view2018-03-07 · Title: No Slide Title Author: 문병로 Last modified by: 임희창 Created](https://reader033.vdocuments.net/reader033/viewer/2022051602/5b3385bd7f8b9a2b238b59de/html5/thumbnails/13.jpg)
자료구조 강의 노트 , 문병로
Figure 6Figure 6Separate chaining
![Page 14: No Slide Titlesoar.snu.ac.kr/course/ds/20181/notes/Chapter13-2.ppt · PPT file · Web view2018-03-07 · Title: No Slide Title Author: 문병로 Last modified by: 임희창 Created](https://reader033.vdocuments.net/reader033/viewer/2022051602/5b3385bd7f8b9a2b238b59de/html5/thumbnails/14.jpg)
자료구조 강의 노트 , 문병로
The Efficiency of Hashing• Approximate average # of comparisons for a search
– Linear probing• ½(1 + 1/(1-α ) ) for a successful search• ½(1 + 1/(1-α )2) for an unsuccessful search
– Quadratic probing and double hashing• –ln (1-α) /α for a successful search• 1/1-α for an unsuccessful search
– Separate chaining (except the access for the indexing array)• 1 + α/2 for a successful search• α for an unsuccessful search
![Page 15: No Slide Titlesoar.snu.ac.kr/course/ds/20181/notes/Chapter13-2.ppt · PPT file · Web view2018-03-07 · Title: No Slide Title Author: 문병로 Last modified by: 임희창 Created](https://reader033.vdocuments.net/reader033/viewer/2022051602/5b3385bd7f8b9a2b238b59de/html5/thumbnails/15.jpg)
자료구조 강의 노트 , 문병로
The Relative Efficiency of Collision-Resolution Methods
![Page 16: No Slide Titlesoar.snu.ac.kr/course/ds/20181/notes/Chapter13-2.ppt · PPT file · Web view2018-03-07 · Title: No Slide Title Author: 문병로 Last modified by: 임희창 Created](https://reader033.vdocuments.net/reader033/viewer/2022051602/5b3385bd7f8b9a2b238b59de/html5/thumbnails/16.jpg)
자료구조 강의 노트 , 문병로
Good Hash Functions
• should be easy and fast to compute• should scatter the data evenly on the hash table
![Page 17: No Slide Titlesoar.snu.ac.kr/course/ds/20181/notes/Chapter13-2.ppt · PPT file · Web view2018-03-07 · Title: No Slide Title Author: 문병로 Last modified by: 임희창 Created](https://reader033.vdocuments.net/reader033/viewer/2022051602/5b3385bd7f8b9a2b238b59de/html5/thumbnails/17.jpg)
자료구조 강의 노트 , 문병로
Observation
• Load factor 가 낮을 때는 probing 방법들은 대체로 큰 차이가 없다 .
• Successful search 는 insertion 할 당시의 궤적을 그대로 밟는다 .