๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์•Œ๊ณ ๋ฆฌ์ฆ˜14

13-1๊ฐ•. ํ•ด์Ё(Hashing) 1 SUHA(Simple Uniform Hashing Assumption) - ๊ฐ๊ฐ์˜ ํ‚ค๊ฐ€ ๋ชจ๋“  ์Šฌ๋กฏ๋“ค์— ๊ท ๋“ฑํ•œ ํ™•๋ฅ ๋กœ() ๋…๋ฆฝ์ ์œผ๋กœ(independently) ํ•ด์Ё๋œ๋‹ค๋Š” ๊ฐ€์ • => ์‚ฌ์‹ค ํ˜„์‹ค์ ์ด์ง€ ์•Š๋‹ค. - ์„ฑ๋Šฅ๋ถ„์„์„ ์œ„ํ•ด์„œ ์ฃผ๋กœ ํ•˜๋Š” ๊ฐ€์ •์ผ ๋ฟ - hash ํ•จ์ˆ˜๋Š” deterministicํ•˜๋ฏ€๋กœ ํ˜„์‹ค์—์„œ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค - Load factor alpha = n/m: - n : ํ…Œ์ด๋ธ”์— ์ €์žฅ๋  ํ‚ค์˜ ๊ฐฏ์ˆ˜ - m : ํ•ด์‰ฌํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ, ์ฆ‰ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ๊นƒ์ˆ˜ - ๊ฐ ์Šฌ๋กฏ์— ์ €์žฅ๋œ ํ‚ค์˜ ํ‰๊ท  ๊ฐฏ์ˆ˜ - ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ T[j]์˜ ๊ธธ์ด๋ฅผ Nj๋ผ๊ณ  ํ•˜๋ฉด, E[Nj] = alpha - ๋งŒ์•ฝ n = O(m)์ด๋ฉด ํ‰๊ท ๊ฒ€์ƒ‰์‹œ๊ฐ„์€ O(1) 2020. 11. 24.
11-3๊ฐ•. ์ด์ง„๊ฒ€์ƒ‰ํŠธ๋ฆฌ (Binary Search Tree) ์ง€๋‚œ ๊ฐ•์˜ ๊ณต๋ถ€ ๋‚ด์šฉ... ์ด์ง„๊ฒ€์ƒ‰ํŠธ๋ฆฌ์˜ ํƒ์ƒ‰, ์‚ฝ์ž… ์ด์ง„๊ฒ€์ƒ‰ํŠธ๋ฆฌ/์ด์ง„ํƒ์ƒ‰ํŠธ๋ฆฌ์˜ ์‚ญ์ œ Case 1 : ์ž์‹๋…ธ๋“œ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ -> ํ•ด๋‹น ๋…ธ๋“œ๋ฅผ ๊ทธ๋ƒฅ ์‚ญ์ œํ•œ๋‹ค. Case 2 : ์ž์‹๋…ธ๋“œ๊ฐ€ 1๊ฐœ์ธ ๊ฒฝ์šฐ -> ์ž์‹ ์˜ ์ž์‹๋…ธ๋“œ๋ฅผ ์›๋ž˜ ์ž์‹ ์˜ ์œ„์น˜๋กœ ๋ณด๋‚ธ๋‹ค. Case 3 : ์ž์‹๋…ธ๋“œ๊ฐ€ 2๊ฐœ์ธ ๊ฒฝ์šฐ -> ํ•ด๋‹น ๋…ธ๋“œ์˜ ์ž๋ฆฌ๋Š” ๊ทธ๋Œ€๋กœ ๋‘๊ณ , ๋ฐ์ดํ„ฐ๋งŒ ์‚ญ์ œํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•ด๋‹น ๋…ธ๋“œ์™€ ๊ฐ€์ž์•„ ๊ฐ€๊นŒ์šด ๊ฐ’์ธ ๋‹ค๋ฅธ ๋…ธ๋“œ๋ฅผ ํ•ด๋‹น ์ž๋ฆฌ๋กœ ๊ฐ€์ ธ ์˜จ๋‹ค. ๊ทธ ๋‹ค๋ฅธ ๋…ธ๋“œ๋Š” ์‚ญ์ œํ•˜๋ ค๋Š” ๋…ธ๋“œ์˜ successor์ด๋‹ค. ์‚ญ์ œํ•˜๋ ค๋Š” ๋…ธ๋“œ์˜ successor๋Š” ์ตœ๋Œ€ 1๊ฐœ์˜ ์ž์‹๋…ธ๋“œ๋ฅผ ๊ฐ€์ง„๋‹ค. TREE-DELETE(T, z)// z : ์‚ญ์ œํ•  ๋…ธ๋“œ { if left[z] == null or right[z] == null then y 2020. 11. 15.
์ œ11-1๊ฐ•. ์ด์ง„๊ฒ€์ƒ‰ํŠธ๋ฆฌ(Binary Search Tree) ์ด์ง„๊ฒ€์ƒ‰ํŠธ๋ฆฌ(Binary Search Tree) - ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ‚ค(key)๋ฅผ ์ €์žฅ - ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ๋“ค์„ ์ง€์›ํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ INSERT - ์ƒˆ๋กœ์šด ํ‚ค์˜ ์‚ฝ์ž… SEARTCH - ํ‚ค ํƒ์ƒ‰ DELETE - ํ‚ค์˜ ์‚ญ์ œ ex) ์‹ฌ๋ณผํ…Œ์ด๋ธ” search insert delete ๋ฐฐ์—ด ์ •๋ ฌ๋œ ๊ฒฝ์šฐ O(logn) O(n) O(n) ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ O(n) O(1) O(1) ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ์ •๋ ฌ๋œ ๊ฒฝ์šฐ O(n) O(n) O(1) ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ O(n) O(1) O(1) ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•๋“ค - ์ •๋ ฌ๋œ, ํ˜น์€ ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ฐฐ์—ด ํ˜น์€ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ INSERT, SEARCH, DELETE ์ค‘ ์ ์–ด๋„ ํ•˜๋‚˜๋Š” O(n) - ์ด์ง„ํƒ์ƒ‰ํŠธ๋ฆฌ(Binary Search Tree), ๋ ˆ๋“œ-๋ธ”๋ž™ํŠธ๋ฆฌ(red-black tree), A.. 2020. 11. 10.
์ œ 10๊ฐ• ํŠธ๋ฆฌ์™€ ์ด์ง„ํŠธ๋ฆฌ ํŠธ๋ฆฌ (Tree) ๊ณ„์ธต์ ์ธ ๊ตฌ์กฐ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ์กฐ์ง๋„๋‚˜ ๋””๋ ‰ํ† ๋ฆฌ์™€ ์„œ๋ธŒ๋””๋ ‰ํ† ๋ฆฌ์˜ ๊ตฌ์กฐ๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ, ๊ฐ€๊ณ„๋„๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ ์“ด๋‹ค. ํŠธ๋ฆฌ๋Š” ๋…ธ๋“œ(node) ๋“ค๊ณผ ๋…ธ๋“œ๋“ค์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋งํฌ(link)๋“ค๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ๋ฃจํŠธ(root) : ๋งจ ์œ„์˜ ๋…ธ๋“œ ๋งํฌ(link) : ๋…ธ๋“œ๋“ค์„ ์—ฐ๊ฒฐํ•˜๋Š” ์„  (=edge, branch) ํŠธ๋ฆฌ์˜ ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„ ํŠธ๋ฆฌ ๊ตฌ์กฐ ์ƒ์—์„œ ์ƒ๋Œ€์ ์œผ๋กœ ์œ„์— ์žˆ๋Š” ๋…ธ๋“œ๋ฅผ ๋ถ€๋ชจ ๋…ธ๋“œ๋ผ ํ•˜๊ณ , ์•„๋ž˜์— ์žˆ๋Š” ๋…ธ๋“œ๋ฅผ ์ž์‹ ๋…ธ๋“œ๋ผ ํ•œ๋‹ค. ํŠธ๋ฆฌ์˜ ํ˜•์ œ ๊ด€๊ณ„ ๋ถ€๋ชจ๊ฐ€ ๋™์ผํ•œ ๋…ธ๋“œ๋“ค์„ ํ˜•์ œ(sibling) ๊ด€๊ณ„๋ผ๊ณ  ํ•œ๋‹ค. ๋ฃจํŠธ ๋…ธ๋“œ๋ฅผ ์ œ์™ธํ•œ ํŠธ๋ฆฌ์˜ ๋ชจ๋“  ๋…ธ๋“œ๋“ค์€ ์œ ์ผํ•œ ๋ถ€๋ชจ ๋…ธ๋“œ๋ฅผ ๊ฐ€์ง„๋‹ค. ๋ฆฌํ”„๋…ธ๋“œ ์ž์‹์ด ์—†๋Š” ๋…ธ๋“œ๋“ค์„ ๋ฆฌํ”„(leaf) ๋…ธ๋“œ๋ผ ํ•œ๋‹ค. ๋ฆฌํ”„๋…ธ๋“œ๊ฐ€ ์•„๋‹Œ ๋…ธ๋“œ๋“ค์„ ๋‚ด๋ถ€(internal.. 2020. 11. 8.