๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ–ฅ Computer Science/Data Structure

[Data Structure] AVL(Adelson-Velsky and Landis) ํŠธ๋ฆฌ๋ž€?

by Fomagran ๐Ÿ’ป 2021. 12. 1.
728x90
๋ฐ˜์‘ํ˜•

์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ’ป ์ž…๋‹ˆ๋‹ค!

 

์˜ค๋Š˜์€ ์ €๋ฒˆ์— ์ •๋ฆฌํ–ˆ๋˜ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋ฅผ ๋” ์—…๊ทธ๋ ˆ์ด๋“œ(?)ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์ธ AVL ํŠธ๋ฆฌ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

(ํ˜น์‹œ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์— ๋Œ€ํ•ด ๋ชจ๋ฅด์‹œ๋Š” ๋ถ„๋“ค์€ ์—ฌ๊ธฐ ์—์„œ ๋ณด๊ณ  ์™€์ฃผ์„ธ์š”!)

 

๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~


AVL(Adelson-Velsky and Landis) ํŠธ๋ฆฌ๋ž€? ๐Ÿค”

 

์ปดํ“จํ„ฐ ๊ณผํ•™์—์„œ AVL ํŠธ๋ฆฌ(๋ฐœ๋ช…์ž์˜ ์ด๋ฆ„์ธ Adelson-Velsky and Landis์—์„œ ๋”ฐ์˜จ ์ด๋ฆ„)๋Š” ์Šค์Šค๋กœ ๊ท ํ˜•์„ ์žก๋Š” ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์ด๋‹ค.
์Šค์Šค๋กœ ๊ท ํ˜•์„ ์žก๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์ค‘ ์ฒ˜์Œ์œผ๋กœ ๋ฐœ๋ช…๋˜์—ˆ๋‹ค. AVL ํŠธ๋ฆฌ์—์„œ, ๋‘ ์ž์‹ ์„œ๋ธŒํŠธ๋ฆฌ์˜ ๋†’์ด๋Š” ํ•ญ์ƒ ์ตœ๋Œ€ 1๋งŒํผ ์ฐจ์ด๋‚œ๋‹ค. ๋งŒ์•ฝ ์–ด๋–ค ์‹œ์ ์—์„œ ๋†’์ด ์ฐจ์ด๊ฐ€ 1๋ณด๋‹ค ์ปค์ง€๋ฉด ์ด ์†์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์Šค์Šค๋กœ ๊ท ํ˜•์„ ์žก๋Š”๋‹ค.  - ์œ„ํ‚ค ๋ฐฑ๊ณผ -

 

์ฆ‰, ํ•œ ๋งˆ๋””๋กœ ์Šค์Šค๋กœ ๊ท ํ˜•์„ ์žก๋Š” ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋ผ๊ณ  ๋ณด์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

"AVL ํŠธ๋ฆฌ๊ฐ€ ์™œ ํ•„์š”ํ•˜์ง€?"

 

์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“ค ๋•Œ ์•„๋ž˜์™€ ๊ฐ™์ด ํ•œ ์ชฝ์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ ๋ฆฐ ๊ฒฝ์šฐ ๋”ฑ ๋ด๋„ ๊ท ํ˜•์ด ์™ผ์ชฝ์œผ๋กœ ์น˜์šฐ์ณ์ ธ ์žˆ์ฃ ?

 

์ด๋Ÿฐ ๊ฒฝ์šฐ์—” ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋ฅผ ํƒ์ƒ‰ํ•  ๋•Œ O(n)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

 

 

์ด๋ ‡๊ฒŒ ๋น„ํšจ์œจ์ ์œผ๋กœ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๊ฐ€ ๊ตฌ์„ฑ๋˜๋Š” ๊ฒƒ์„ ๋ง‰๊ธฐ ์œ„ํ•ด ํŠธ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ ๊ท ํ˜•์„ ์žก์•„์ฃผ๋Š” ๊ฒƒ์ด์ฃ .

 

์ด๊ฒƒ์ด ๋ฐ”๋กœ AVLํŠธ๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ ์ด๊ณ  ๊ท ํ˜•์„ ์žก์•„์คŒ์œผ๋กœ์จ ํƒ์ƒ‰ํ•  ๋•Œ O(logn)์— ๊ฐ€๊น๊ฒŒ ๋งŒ๋“ค์–ด ์ฃผ๋Š” ๊ฒƒ์ด์ฃ !


Balance Factor

 

๊ทธ๋ ‡๋‹ค๋ฉด ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์˜ ๊ท ํ˜•์€ ์–ด๋–ค ์‹์œผ๋กœ ์žก๋Š” ๊ฒƒ์ผ๊นŒ์š”?

 

๊ท ํ˜•์„ ์žก์„ ๋•Œ ํ•ต์‹ฌ๋˜๋Š” ๊ฒƒ์€ ๋ฐ”๋กœ Balance Factor๋ผ๋Š” ๊ฒƒ์ธ๋ฐ์š”.

 

Balance Factor๋Š” ์™ผ์ชฝ๊ณผ ์˜ค๋ฅธ์ชฝ์˜ ์ž์‹์˜ ๋†’์ด ์ฐจ์ด๋ฅผ ๋œปํ•ฉ๋‹ˆ๋‹ค.

 

Balance Factor๋ฅผ ํŠธ๋ฆฌ์— ํ‘œํ˜„ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

(์™ผ์ชฝ ์ž์‹์˜ ๋†’์ด - ์˜ค๋ฅธ์ชฝ ์ž์‹์˜ ๋†’์ด๋ฅผ ๋นผ์„œ ๊ณ„์‚ฐํ–ˆ์Šต๋‹ˆ๋‹ค.)

 

 

๊ทธ๋Ÿฌ๋ฉด BF๊ฐ€ -2๋ถ€ํ„ฐ 2๊นŒ์ง€ ์กด์žฌํ•˜์ฃ ?

 

์ด ๋•Œ ๊ท ํ˜•์ด ์žกํ˜”๋‹ค๋Š” ๊ฒƒ์€ BF๊ฐ€ ์ตœ๋Œ€ 1๊นŒ์ง€ ์ฐจ์ด๋‚˜๋Š” ๊ฒƒ, ์ฆ‰ -1๋ถ€ํ„ฐ 1๊นŒ์ง€์ผ ๋•Œ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

๊ณ ๋กœ 2๋‚˜ -2๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ์€ ๋ถˆ๊ท ํ˜•ํ•˜๋‹ค๋Š” ๊ฒƒ์ด์ฃ .


ํšŒ์ „(๊ท ํ˜• ์žก๊ธฐ)

 

๋ถˆ๊ท ํ˜•ํ•œ ํŠธ๋ฆฌ๋ฅด ๋ฐ”๋กœ์žก๊ธฐ ์œ„ํ•ด์„  ํšŒ์ „์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

 

์™ผ์ชฝ์œผ๋กœ ๋Œ๋ฆฌ๋Š” ํšŒ์ „(L), ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋Œ๋ฆฌ๋Š” ํšŒ์ „(LR), ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ(RL)์œผ๋กœ ๋Œ๋ฆฌ๋Š” ํšŒ์ „, ์˜ค๋ฅธ์ชฝ(R)์œผ๋กœ ๋Œ๋ฆฌ๋Š” ํšŒ์ „ ์ด๋ ‡๊ฒŒ 4๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

7 4 3 2 5 8 10 11 9 ์ˆœ์œผ๋กœ ์‚ฝ์ž…๋œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ์„ค๋ช…๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๊ฐ€์žฅ ๋จผ์ € 7์ด ์‚ฝ์ž…๋˜๊ฒ ์ฃ ?

4๊ฐ€ ์‚ฝ์ž…๋˜๋Š” ์ˆœ๊ฐ„ 7์˜ ์™ผ์ชฝ ์ž์‹์ด ๋†’์ด๊ฐ€ 1์ด๋ฏ€๋กœ BF๋Š” 1์ด ๋ฉ๋‹ˆ๋‹ค.

 

3์ด ์‚ฝ์ž…๋˜๋Š” ์ˆœ๊ฐ„ 7์˜ ์™ผ์ชฝ ์ž์‹ ๋†’์ด๊ฐ€ 2๊ฐ€ ๋˜๋ฏ€๋กœ BF๊ฐ€ 2๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

 

๊ณ ๋กœ ๋ถˆ๊ท ํ˜•ํ•œ ํŠธ๋ฆฌ๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด์ฃ .

 

 

์ด๊ฒƒ์„ ๋ฐ”๋กœ ์žก๊ธฐ ์œ„ํ•ด์„  ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ์š”?

 

์™ผ์ชฝ์œผ๋กœ ์น˜์šฐ์ณ์ ธ ์žˆ๋Š” ํŠธ๋ฆฌ์ด๋ฏ€๋กœ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํšŒ์ „์„ ํ•ด์„œ ๊ท ํ˜•์„ ์žก์•„์ฃผ์–ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

ํšŒ์ „์„ ํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์€ ๋ถˆ๊ท ํ˜•์ด ์‹œ์ž‘๋œ ๋…ธ๋“œ๋ถ€ํ„ฐ ๋์˜ ์ž์‹ ์ค‘ ์ค‘๊ฐ„๊ฐ’์„ ์‹œ์ž‘๋œ ๋…ธ๋“œ๋กœ ๋Œ€์ฒดํ•˜๊ณ  ๊ฐ’์— ๋”ฐ๋ผ ์ž์‹์„ ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค.

 

 

2๊ฐ€ ์‚ฝ์ž…๋˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๊ตฌ์„ฑ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

 

5๊ฐ€ ์‚ฝ์ž…๋˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๊ตฌ์„ฑ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

 

8์ด ์‚ฝ์ž…๋˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๊ตฌ์„ฑ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

 

 

 

10์ด ์‚ฝ์ž…๋˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๊ตฌ์„ฑ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

 

11์ด ์‚ฝ์ž…๋˜๋Š” ์ˆœ๊ฐ„ BF๊ฐ€ -2๊ฐ€ ๋˜๋ฉฐ ๊ท ํ˜•์ด ๊นจ์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

์ด ๋•Œ๋Š” ์˜ค๋ฅธ์ชฝ์˜ ์ž์‹์ด ์น˜์šฐ์ณ์ ธ ์žˆ์œผ๋ฏ€๋กœ ์™ผ์ชฝ์œผ๋กœ ํšŒ์ „์„ ํ•ด์ค˜์•ผ๊ฒ ์ฃ ?

 

ํšŒ์ „์„ ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ํŠธ๋ฆฌ๊ฐ€ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

 

 

๋งˆ์ง€๋ง‰์œผ๋กœ 9๋ฅผ ์‚ฝ์ž…ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ํŠธ๋ฆฌ๊ฐ€ ๊ตฌ์„ฑ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์ด ๋•Œ๋Š” ์กฐ๊ธˆ ๋” ๋ณต์žกํ•ด์ง€๋Š”๋ฐ์š”.

 

 

 

์ดˆ๋ก์ƒ‰์œผ๋กœ ํ‘œ์‹œํ•œ 3๊ฐœ์˜ ์ˆซ์ž๋ฅผ ์™ผ์ชฝ์œผ๋กœ ํšŒ์ „ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ธ๋ฐ์š”.

 

 

์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ ํšŒ์ „์„ ํ•˜๊ฒŒ ๋˜๋ฉด ๊ทธ ์•„๋ž˜ ์žˆ๋Š” ์ž์‹๋“ค์€ ๋–ผ์–ด์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

์ด ๋•Œ๋Š” ๋–ผ์–ด์ง„ ์ž์‹๋“ค์„ ์ฐจ๋ก€๋กœ ์œ„์™€ ๊ฐ™์ด ์‚ฝ์ž…ํ•˜๊ณ  ๊ท ํ˜•์„ ์žก์•„์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ๋ชจ๋‘ ์‚ฝ์ž…ํ•˜๋ฉด ๊ท ํ˜•์žกํžŒ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๊ฐ€ ์™„์„ฑ๋˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

 


์˜ค๋Š˜์€ ์ด๋ ‡๊ฒŒ AVL ํŠธ๋ฆฌ๊ฐ€ ๋ฌด์—‡์ด๊ณ , ์™œ ํ•„์š”ํ•œ์ง€, ๊ทธ๋ฆฌ๊ณ  ๊ท ํ˜•์„ ์žก์•„๊ฐ€๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค.

 

๋‹ค์Œ ์‹œ๊ฐ„์—๋Š” AVLํŠธ๋ฆฌ๋ฅผ ์ฝ”๋“œ๋กœ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€