ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90

2-3-4 ํŠธ๋ฆฌ๋ž€?

ํƒ์ƒ‰ํŠธ๋ฆฌ ์ค‘ ํ•˜๋‚˜๋กœ, ์ด์ง„ ํŠธ๋ฆฌ๊ฐ€ ์•„๋‹ˆ๋‹ค. ์ฆ‰, ์ž์‹ ๋…ธ๋“œ๊ฐ€ 2๊ฐœ๋ณด๋‹ค ๋งŽ์„ ์ˆ˜ ์žˆ๋‹ค.

ํŠน์ง•์œผ๋กœ

1. ์ด๋ฆ„์ฒ˜๋Ÿผ ์ž์‹ ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜๋Š” 2๊ฐœ ๋˜๋Š” 3๊ฐœ ๋˜๋Š” 4๊ฐœ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. (์ฆ‰, ์ตœ์†Œ 2๊ฐœ ~ ์ตœ๋Œ€ 4๊ฐœ)

2. ๋ชจ๋“  leaf ๋…ธ๋“œ๊ฐ€ ๊ฐ™์€ level์— ์กด์žฌํ•œ๋‹ค.

3. ์‚ฝ์ž… ์‹œ, leaf ๋…ธ๋“œ์— ์‚ฝ์ž…ํ•œ๋‹ค.

 


์‚ฝ์ž…

์ถ”๊ฐ€ํ•  key๊ฐ€ root๋ถ€ํ„ฐ leaf ๋…ธ๋“œ๊นŒ์ง€ ๋‚ด๋ ค๊ฐ€๋ฉด์„œ, 4-๋…ธ๋“œ์ด๋ฉด splitํ•˜๋ฉด์„œ ๋‚ด๋ ค๊ฐ„๋‹ค.

splitํ•  ๋•Œ ์ค‘๊ฐ„ ๊ฐ’์€ ๋ถ€๋ชจ ๋…ธ๋“œ๋กœ ๋ฌด์กฐ๊ฑด ์˜ฌ๋ผ๊ฐˆ ์ˆ˜ ์žˆ๋Š”๋ฐ, ๊ทธ ์ด์œ ๋Š” key๊ฐ€ ๋‚ด๋ ค์˜ค๋ฉด์„œ 4-๋…ธ๋“œ์ธ ๊ฒฝ์šฐ split์„ ์ด๋ฏธ ํ•ด๋†จ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

2-3-4 ํŠธ๋ฆฌ์˜ ์‚ฝ์ž…

 

splitํ•˜๋Š”๋ฐ O(1)์ด ๊ฑธ๋ฆฌ๊ณ ,

์ตœ์•…์˜ ๊ฒฝ์šฐ leaf๋…ธ๋“œ๊นŒ์ง€ ๋‚ด๋ ค๊ฐ€๋ฉด์„œ ๋งค๋ฒˆ split ํ•ด์•ผํ•˜๋ฏ€๋กœ(log n๋ฒˆ), ์‚ฝ์ž… ์‹œ์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(logn)์ด๋‹ค.

 


์‚ญ์ œ

2-3-4 ํŠธ๋ฆฌ์—์„œ๋Š” ์‚ญ์ œ์—์„œ ํŠน๋ณ„ํ•œ ์ž‘์—…์ด ์ง„ํ–‰๋œ๋‹ค.

์‚ญ์ œํ•˜๋ ค๋Š” key๊ฐ’์ด root๋ถ€ํ„ฐ leaf ๋…ธ๋“œ๊นŒ์ง€ ๋‚ด๋ ค๊ฐ€๋ฉด์„œ, 2-๋…ธ๋“œ์ธ ๊ฒฝ์šฐ =>  3-๋…ธ๋“œ ๋˜๋Š” 4-๋…ธ๋“œ๊ฐ€ ๋˜๋„๋ก ๋งŒ๋“ค์–ด์ค€๋‹ค.

(underflow๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—)

 

์•„๋ž˜ <๊ทธ๋ฆผ 1>์—์„œ root์—์„œ leaf๋กœ ๋‚ด๋ ค๊ฐ€๋ฉด์„œ [30] ์ด 2-๋…ธ๋“œ์ธ ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ํ˜•์ œ ๋…ธ๋“œ ์ค‘ ๊ฟ”์ค„ ์ˆ˜ ์žˆ๋Š” 3-๋…ธ๋“œ์ธ [10,15]์—์„œ ๋นŒ๋ ค์˜ค๊ฒŒ ๋œ๋‹ค.

์ด ๋•Œ ํ˜•์ œ๋…ธ๋“œ์˜ key๋Š” ๋ถ€๋ชจ ๋…ธ๋“œ๋กœ ์˜ฌ๋ผ๊ฐ€๊ณ , ๋ถ€๋ชจ๋…ธ๋“œ์˜ key ๊ฐ’์ด [30] ๋…ธ๋“œ๋กœ ๋‚ด๋ ค์˜ค๊ฒŒ ๋œ๋‹ค. (์•„๋ž˜ ๊ทธ๋ฆผ์—์„œ 20์ด ๋‚ด๋ ค์˜ด)

(์ด๋ ‡๊ฒŒ ํ˜•์ œ ๋…ธ๋“œ์˜ ๊ฐ’์ด ์˜ค์ง€ ๋ชปํ•˜๋Š” ์ด์œ ๋Š” [30] ๋…ธ๋“œ์—์„œ๋Š” 20๋ณด๋‹ค ํฐ ๊ฐ’์ด ์™€์•ผํ•˜๋Š” ํŠธ๋ฆฌ์˜ ์ƒํ™ฉ๋•Œ๋ฌธ์ด๋‹ค. ํƒ์ƒ‰ํ•  ๋•Œ ๋ฒ”์œ„๋กœ ์ฐพ๋Š” ๊ฒƒ์„ ์ƒ๊ฐํ•˜๋ฉด ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๋‹ค!)

 

<๊ทธ๋ฆผ 1>

 

 

์•„๋ž˜ <๊ทธ๋ฆผ 2>์—์„œ๋Š” ํ˜•์ œ ๋…ธ๋“œ๋„ ํ˜•ํŽธ์ด ๋˜์ง€ ์•Š์„ ๊ฒฝ์šฐ, ๋ถ€๋ชจ ๋…ธ๋“œ์˜ key๊ฐ’๊ณผ 2-๋…ธ๋“œ์ธ key๊ฐ’, ํ˜•์ œ๋…ธ๋“œ์˜ key๊ฐ’์ด ๋ณ‘ํ•ฉ๋˜๋Š” ๋ชจ์Šต์„ ๋ณด์—ฌ์ค€๋‹ค.

<๊ทธ๋ฆผ2>

์ถ”๊ฐ€๋กœ ์—ผ๋‘ํ•  ์ ์€, root ๋…ธ๋“œ์ธ ๊ฒฝ์šฐ 2-๋…ธ๋“œ์—ฌ๋„ ์œ„์˜ ์ž‘์—…๋“ค์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๊ณ  ๋„˜์–ด๊ฐ„๋‹ค. 

์•„๋ž˜ ๊ทธ๋ฆผ์—์„œ๋Š” root ๋…ธ๋“œ๋Š” ๋„˜์–ด๊ฐ”๊ณ , [30]์ด 2-๋…ธ๋“œ์ธ ์ƒํ™ฉ์ด๊ณ  + ํ˜•์ œ ๋…ธ๋“œ๊ฐ€ ๊ฟ”์ค„ ํ˜• ํŽธ์ด ์•ˆ๋˜๋ฏ€๋กœ -> ๋ณ‘ํ•ฉ์ด ์ผ์–ด๋‚œ ์ƒํ™ฉ์ด๋‹ค.

<๊ทธ๋ฆผ 3>

 

1) ์‚ญ์ œํ•˜๊ณ ์ž ํ•˜๋Š” key๊ฐ’์ด leaf ๋…ธ๋“œ๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ

ํ•ด๋‹น key ๊ฐ’์˜ predecessor(key๋ณด๋‹ค ์ž‘์€ ๊ฐ’์ค‘์— ๊ฐ€์žฅ ํฐ ๊ฐ’) ๋˜๋Š” successor(key๋ณด๋‹ค ํฐ ๊ฐ’์ค‘์— ๊ฐ€์žฅ ์ž‘์€๊ฐ’)๊ณผ ์ž๋ฆฌ๋ฅผ ๋ฐ”๊พผ ํ›„์— ์‚ญ์ œํ•œ๋‹ค.

(์ฐธ๊ณ ๋กœ, predecessor์™€ successor๋Š” ํ•ญ์ƒ leaf ๋…ธ๋“œ์— ์œ„์น˜ํ•ด์žˆ๋‹ค)

 

2) leaf ๋…ธ๋“œ๋ฅผ ์‚ญ์ œํ•œ๋‹ค.

 

2-๋…ธ๋“œ๋ฅผ 3-๋…ธ๋“œ ๋˜๋Š” 4-๋…ธ๋“œ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ์ž‘์—…์„ ํ•˜๋Š”๋ฐ O(1)์ด ๊ฑธ๋ฆฌ๊ณ ,

์ตœ์•…์˜ ๊ฒฝ์šฐ leaf๋…ธ๋“œ๊นŒ์ง€ ๋‚ด๋ ค๊ฐ€๋ฉด์„œ ๋งค๋ฒˆ ํ•ด์•ผํ•˜๋ฏ€๋กœ(log n๋ฒˆ), ์‚ฝ์ž… ์‹œ์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(logn)์ด๋‹ค.

 

์ •๋ฆฌํ•˜๋ฉด, ์‚ฝ์ž…๊ณผ ์‚ญ์ œ ๋ชจ๋‘ log(n)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง„๋‹ค.

 

 


์ •๋ฆฌ ๋‚ด์šฉ ๋ฐ ์ปจํ…์ธ  ์ถœ์ฒ˜

https://www.youtube.com/watch?v=ad3tnpLCxYk&t=1585s 

 

728x90
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
ยซ   2025/01   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ
250x250