для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

ПонимаСм красно-Ρ‡Π΅Ρ€Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ. Π§Π°ΡΡ‚ΡŒ 2. Балансировка ΠΈ вставка

Π§Π°ΡΡ‚ΡŒ 1. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅
Π§Π°ΡΡ‚ΡŒ 2. Балансировка ΠΈ вставка

Π­Ρ‚ΠΎ вторая Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠ· сСрии статСй «ΠŸΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ красно-Ρ‡Π΅Ρ€Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ». Если Π²Ρ‹ пропустили ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ, Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π½Π΅ΠΉ здСсь. Π’Π°ΠΌ ΠΌΡ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ появлСния ΠΊΡ‡Π΄ ΠΈ расставили ΠΏΠΎ ΠΏΠΎΠ»ΠΎΡ‡ΠΊΠ°ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Π³ΠΎ свойства.

Π’ Π΄Π°Π½Π½ΠΎΠΉ части ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ вставку ΠΈ балансировку. Π­Ρ‚ΠΈ Π²Π΅Ρ‰ΠΈ ΠΈΠ΄ΡƒΡ‚ Π±ΠΎΠΊ ΠΎ Π±ΠΎΠΊ, Π±Π΅Π· балансировки Π΄Π΅Ρ€Π΅Π²ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π΅Ρ€ΡΡ‚ΡŒ свои свойства, ΠΈ Ρ‚ΠΎΠ»ΠΊΠ° ΠΎΡ‚ Π½Π΅Π³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ°Π»ΠΎ.

ВсС вставлСнныС Π½ΠΎΠ΄Ρ‹, ΠΊΡ€ΠΎΠΌΠ΅ корня Π΄Π΅Ρ€Π΅Π²Π°, Π²ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ с красным Ρ†Π²Π΅Ρ‚ΠΎΠΌ. ΠžΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ это Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ всСгда сначала добавляСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π½ΠΎΠ΄Π΅ ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС этого занимаСмся балансировкой (вспомнитС ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ с ΠΏΠΎΠ»ΡƒΡ‡Π°Π²ΡˆΠΈΠΌΠΈΡΡ 4-Π½ΠΎΠ΄Π°ΠΌΠΈ).

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΉ части ΠΌΡ‹ выяснили, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌ лСвостороннСС красно-Ρ‡Π΅Ρ€Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ, ΠΈΠ· этого слСдуСт, Ρ‡Ρ‚ΠΎ красныС Π½ΠΎΠ΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π»Π΅ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ слСва (ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ случай Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ балансировки).

Π’Π°ΠΊΠΆΠ΅ Π΄Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся с трСмя опСрациями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ понадобятся Π½Π°ΠΌ ΠΏΡ€ΠΈ балансировкС. Π― ΠΏΡ€ΠΎΡˆΡƒ Π½Π΅ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒΡΡ ΠΎ Π½ΠΈΡ… сСйчас ΠΈ Π²Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΡƒΠΆΠ΅ Π²ΠΎ врСмя построСния Π΄Π΅Ρ€Π΅Π²Π°. Π― ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ ΠΈΡ… описаниС здСсь, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π½Π΅ мСшались ΠΏΠΎΡ‚ΠΎΠΌ:)

Если ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ для вас Π½Π΅ понятны ΠΈΠ· этой ΡΡ‚Π°Ρ‚ΡŒΠΈ, Ρ‚ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π½ΠΈΡ… ΠΏΠΎΠ»Π½ΠΎ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. Π― ΠΆΠ΅ Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ.

ЛСвосторонний ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚(Π»Π΅Π²Ρ‹ΠΉ ΠΌΠ°Π»Ρ‹ΠΉ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚)

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ наш ΡƒΠ·Π΅Π» Π²Π»Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ.

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π°

ΠŸΡ€Π°Π²ΠΎΡΡ‚ΠΎΡ€ΠΎΠ½Π½ΠΈΠΉ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚(ΠΌΠ°Π»Ρ‹ΠΉ ΠΏΡ€Π°Π²Ρ‹ΠΉ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚)

Π’ΠΎΡ‚ ΠΆΠ΅ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚, Π½ΠΎ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ сторону. Π›ΠΎΠ³ΠΈΠΊΠ° Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° лСвостороннСму.

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π°

Π‘Π²Π°ΠΏ Ρ†Π²Π΅Ρ‚Π°

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

Π’Π°ΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ всС Ρ‚Ρ€ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ Π΄Π΅Ρ€Π΅Π²ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ локально (свап Ρ†Π²Π΅Ρ‚Π° измСняСт Π½ΠΎΠ΄Ρƒ Π½Π° ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π²Ρ‹ΡˆΠ΅, Π½ΠΎ ΠΌΡ‹ считаСм это Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ), ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ ΠΌΡ‹ ΠΈΡ… Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ parentNode! ΠœΡ‹ Π½Π΅ тСряСм ΡΠ±Π°Π»Π°Π½ΡΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… этаТах (Ссли ΠΎΠ½Π° Π±Ρ‹Π»Π°). Π’ этом Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ красно-Ρ‡Π΅Ρ€Π½ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π°.

Π˜Ρ‚Π°ΠΊ, Π½Π°Ρ‡Π½Π΅ΠΌ построСниС нашСго Π΄Π΅Ρ€Π΅Π²Π°.

Π‘Π½Π°Ρ‡Π°Π»Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΊΠΎΡ€Π΅Π½ΡŒ со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 24. Π’ΡƒΡ‚ ΠΊΠ°ΠΊ всСгда всС просто. Π’Ρ‹ ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ всС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π½ΠΎΠ΄Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ красный Ρ†Π²Π΅Ρ‚, ΠΊΡ€ΠΎΠΌΠ΅ корня Π΄Π΅Ρ€Π΅Π²Π°.

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Π½ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ вставим, ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 5. По ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π°, Π½ΠΎΠ΄Π° опускаСтся Π²Π»Π΅Π²ΠΎ ΠΈ ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ ΠΊΡ‡Π΄ становится красной Π½ΠΎΠ΄ΠΎΠΉ.

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

Нода со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 1 становится ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠΌ Π½ΠΎΠ΄Ρ‹ 5. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Π΄Π²Π΅ ΠΈΠ΄ΡƒΡ‰ΠΈΠ΅ подряд красныС Π½ΠΎΠ΄Ρ‹. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Π½Π°ΡˆΡƒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ балансировку!

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

Π’ ΠΊΠΎΠ½Ρ†Π΅ этой части я ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΈ порядок ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ балансировки для ΠΊΡ‡Π΄. Но для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ поняли балансировку, Π° Π½Π΅ просто Π·Π°ΠΏΠΎΠΌΠ½ΠΈΠ»ΠΈ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΏΠΎΠΊΠΎΠΏΠ°Ρ‚ΡŒΡΡ сами.

Π˜Ρ‚Π°ΠΊ, Π² нашСм арсСналС 3 ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ: правостороний ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚, лСвостороСний ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚, свап Ρ†Π²Π΅Ρ‚ΠΎΠ².

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ корня Π΄Π²Π° красных ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°. Π’ΠΎΡ‚ здСсь Ρ‚ΠΎ Π½Π°ΠΌ ΠΈ понадобится опСрация свапа Ρ†Π²Π΅Ρ‚Π°! Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½ΠΈΠΆΠ΅. (По ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ свапа Π½ΠΎΠ΄Π° 24 Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Π»Π° ΡΡ‚Π°Ρ‚ΡŒ красной, Π½ΠΎ Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это ΠΊΠΎΡ€Π΅Π½ΡŒ, Ρ†Π²Π΅Ρ‚ снова стал Ρ‡Π΅Ρ€Π½Ρ‹ΠΌ)

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

Π’ ΠΈΡ‚ΠΎΠ³Π΅ Ρƒ нас снова ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ лСвостороннСС ΠΊΡ‡Π΄ (ΠΈ Π΄Π°ΠΆΠ΅ Π±Π΅Π· красных Π½ΠΎΠ΄)! А Π²ΠΎΡ‚ ΠΊΠ°ΠΊ это выглядСло Π±Ρ‹ Π² 2-3 Π΄Π΅Ρ€Π΅Π²Π΅.

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

ДвигаСмся дальшС. ВставляСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 15. Нода ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ Π² Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ° Π½ΠΎΠ΄Ρ‹ 24. Π—Π΄Π΅ΡΡŒ балансировка Π½Π΅ Π½ΡƒΠΆΠ½Π°.

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

ВставляСм 3. Нода Π±ΡƒΠ΄Π΅Ρ‚ мСньшС корня, Π½ΠΎ ΡƒΠΆΠ΅ большС 1, поэтому Π½ΠΎΠ΄Π° становится ΠΏΡ€Π°Π²Ρ‹ΠΌ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠΌ Π½ΠΎΠ΄Ρ‹-1.

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

Как ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, красная Π½ΠΎΠ΄Π° находится справа. И снова балансировка. Π’ ΠΏΡ€ΠΎΡˆΠ»Ρ‹ΠΉ Ρ€Π°Π· нас спасла комбинация правосторонний ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ + свап Ρ†Π²Π΅Ρ‚Π°. Π’ этот Ρ€Π°Π· ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ Π² ΠΏΡ€Π°Π²ΠΎ нас Π½Π΅ спасСт (ΠΊΠ°ΠΊ ΠΈ свап Ρ†Π²Π΅Ρ‚Π°, я Π΄ΡƒΠΌΠ°ΡŽ, это ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ). Π‘Π΄Π΅Π»Π°Π΅ΠΌ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ Π²Π»Π΅Π²ΠΎ ΠΈ посмотрим, Ρ‡Ρ‚ΠΎ получится.

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

Вуаля! НашС Π΄Π΅Ρ€Π΅Π²ΠΎ снова ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.

Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ сСйчас Π²Ρ‹Ρ€ΠΈΡΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈ закономСрности дСйствий, Π½ΠΎ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ Ρ‚ΠΎΡ€ΠΎΠΏΠΈΡ‚ΡŒΡΡ ΠΈ рассмотрим Π΅Ρ‰Π΅ ΠΏΠ°Ρ€Ρƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ².

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

ΠŸΡ€Π°Π²ΠΎΡΡ‚ΠΎΡ€ΠΎΠ½Π½ΠΈΠΉ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ + свап Ρ†Π²Π΅Ρ‚Π° Π΄Π°Π΅Ρ‚ Π½Π°ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

Π’Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΏΠ΅Ρ€Π΅ΡΡ‚Ρ€ΠΎΠΈΠ»ΠΎΡΡŒ ΠΊΠ°Ρ€Π΄ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Но Ссли ΠΏΡ€ΠΈΠ³Π»ΡΠ΄Π΅Ρ‚ΡŒΡΡ, Ρ‚ΠΎ станСт понятно, Ρ‡Ρ‚ΠΎ это Π½Π΅ Ρ‚Π°ΠΊ. ПослСдний лСвосторонний ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ помСнял нашС Π΄Π΅Ρ€Π΅Π²ΠΎ лишь Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅. ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π½ΠΎΠ΄Ρ‹ ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ Π½Π° мСстС.

Π’ΠΎΡ‚ Π² Ρ†Π΅Π»ΠΎΠΌ ΠΈ всС. Π—Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°Ρ€Ρ‹ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ², построСниС Π΄Π΅Ρ€Π΅Π²Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ. Как ΠΈ Π² случаС 2-3 Π΄Π΅Ρ€Π΅Π²Π° ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ сСйчас сами Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² Π΄Π΅Ρ€Π΅Π²ΠΎ (Π½ΠΎΠ΄Ρ‹ 13 ΠΈ 16, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, интСрСсный случай).

НиТС Π² спойлСрС я ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡ€Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ написании ΠΊΠΎΠ΄Π°, Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ привСсти Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ сами.

Алгоритм балансировки ΠΊΡ‡Π΄

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ±Π΅ΠΆΠ°Ρ‚ΡŒΡΡ ΠΏΠΎ ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΡŽ Π΄Π΅Ρ€Π΅Π²Π° Π΅Ρ‰Π΅ Ρ€Π°Π· ΠΈ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΡΠ²Π΅Ρ€ΠΈΡ‚ΡŒΡΡ со свойствами ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ, Π·Π°Π΄Π°Ρ‚ΡŒΡΡ вопросами «Π° Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ссли. » (ΠΏΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, это ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ!). Π’ Ρ†Π΅Π»ΠΎΠΌ, это всС, Ρ‡Ρ‚ΠΎ я Ρ…ΠΎΡ‚Π΅Π» Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π°ΠΌ ΠΏΡ€ΠΎ вставку Π½ΠΎΠ΄Ρ‹ Π² лСвостороннСС красно-Ρ‡Π΅Ρ€Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ.

НСмного ΠΎΠ± ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ поиска значСния

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

АВЛ-Π΄Π΅Ρ€Π΅Π²ΠΎ.

АВЛ-Π΄Π΅Ρ€Π΅Π²ΠΎ – структура Π΄Π°Π½Π½Ρ‹Ρ…, изобрСтСнная Π² 1968 Π³ΠΎΠ΄Ρƒ двумя совСтскими ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°ΠΌΠΈ: Π•Π²Π³Π΅Π½ΠΈΠ΅ΠΌ ΠœΠΈΡ…Π°ΠΉΠ»ΠΎΠ²ΠΈΡ‡Π΅ΠΌ Ландисом ΠΈ Π“Π΅ΠΎΡ€Π³ΠΈΠ΅ΠΌ ΠœΠ°ΠΊΡΠΈΠΌΠΎΠ²ΠΈΡ‡Π΅ΠΌ АдСльсон-Π’Π΅Π»ΡŒΡΠΊΠΈΠΌ. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π΄Π°Ρ‚ΡŒ конструктивноС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ АВЛ-Π΄Π΅Ρ€Π΅Π²Ρƒ, сдСлаСм это для сбалансированного Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π° поиска.

Ббалансированным называСтся Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ поиска, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ высота ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π², ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ΠΎΠ±Ρ‰ΠΈΠΉ ΠΊΠΎΡ€Π΅Π½ΡŒ, отличаСтся Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ константу k, ΠΈ ΠΏΡ€ΠΈ этом Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ условия Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹Π΅ для Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π° поиска.

АВЛ-Π΄Π΅Ρ€Π΅Π²ΠΎ – сбалансированноС Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ поиска с k=1. Для Π΅Π³ΠΎ ΡƒΠ·Π»ΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ коэффициСнт сбалансированности (balance factor). Balance factor – это Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ высот ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ ΠΈ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π², ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π°Ρ ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· мноТСства <-1, 0, 1>. НиТС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ АВЛ-Π΄Π΅Ρ€Π΅Π²Π°, ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΡƒΠ·Π»Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ поставлСн Π² соотвСтствиС Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ коэффициСнт сбалансированности.

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎΠŸΡ€ΠΈΠΌΠ΅Ρ€ АВЛ-Π΄Π΅Ρ€Π΅Π²Π°

ПолоТим Bi – коэффициСнт сбалансированности ΡƒΠ·Π»Π° Ti (i – Π½ΠΎΠΌΠ΅Ρ€ ΡƒΠ·Π»Π°, отсчитываСмый свСрху Π²Π½ΠΈΠ· ΠΎΡ‚ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° ΠΏΠΎ уровням слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ). Balance factor ΡƒΠ·Π»Π° Ti рассчитываСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. ΠŸΡƒΡΡ‚ΡŒ функция h() с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ TiΠΈ L Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ высоту Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π° L ΡƒΠ·Π»Π° Ti, Π° с Ti ΠΈ R – ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ. Π’ΠΎΠ³Π΄Π° Bi=h(Ti, R)-h(Ti, L). НапримСр, B4=-1, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ h(T4, R)-h(T4, L)=0-1=-1.

БбалансированноС Π΄Π΅Ρ€Π΅Π²ΠΎ эффСктивно Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, Ρ‡Ρ‚ΠΎ слСдуСт ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… рассуТдСний. МаксимальноС количСство шагов, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ для обнаруТСния Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ ΡƒΠ·Π»Π°, Ρ€Π°Π²Π½ΠΎ количСству ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ самого Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π° поиска. А Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΡŒΡ сбалансированного Π΄Π΅Ρ€Π΅Π²Π°, «растущиС» ΠΈΠ· ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ корня, практичСски симмСтричны, Ρ‚ΠΎ ΠΈ Π΅Π³ΠΎ Π»ΠΈΡΡ‚ΡŒΡ располоТСны Π½Π° ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ нСвысоком ΡƒΡ€ΠΎΠ²Π½Π΅, Ρ‚. Π΅. высота Π΄Π΅Ρ€Π΅Π²Π° ΡΠ²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ баланса ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сказываСтся Π½Π° ΠΎΠ±Ρ‰Π΅ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Но Π² процСссС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ АВЛ-Π΄Π΅Ρ€Π΅Π²Π°, балансировка ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒΡΡ, Ρ‚ΠΎΠ³Π΄Π° потрСбуСтся ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ балансировки. Помимо Π½Π΅Π΅, Π½Π°Π΄ АВЛ-Π΄Π΅Ρ€Π΅Π²ΠΎΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ вставки ΠΈ удалСния элСмСнта. ИмСнно Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ послСдних ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ дисбалансу Π΄Π΅Ρ€Π΅Π²Π°.

Π”ΠΎΠΊΠ°Π·Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ высота АВЛ-Π΄Π΅Ρ€Π΅Π²Π°, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎ N ΡƒΠ·Π»ΠΎΠ², ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π²Π½Π° log2N. БСря Π² Π²ΠΈΠ΄Ρƒ это, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚ΠΎ, Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ врСмя выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ добавлСния ΠΈ удалСния Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ зависит ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ поиска, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ‚Ρ€Π΅Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ для Ρ…ΡƒΠ΄ΡˆΠ΅Π³ΠΎ ΠΈ срСднСго случая – O(logN).

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ основныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ АВЛ-Π΄Π΅Ρ€Π΅Π²ΠΎΠΌ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ структуру для прСдставлСния Π΅Π³ΠΎ ΡƒΠ·Π»ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Ρ€ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

АВЛ-Π΄Π΅Ρ€Π΅Π²ΠΎ

АВЛ-Π΄Π΅Ρ€Π΅Π²ΠΎ (Π°Π½Π³Π». AVL-Tree) β€” сбалансированноС Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ поиска, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ поддСрТиваСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ свойство: для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π΅Π³ΠΎ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ высота Π΅Ρ‘ Π΄Π²ΡƒΡ… ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² различаСтся Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π½Π° 1.

АВЛ-Π΄Π΅Ρ€Π΅Π²ΡŒΡ Π½Π°Π·Π²Π°Π½Ρ‹ ΠΏΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π±ΡƒΠΊΠ²Π°ΠΌ Ρ„Π°ΠΌΠΈΠ»ΠΈΠΉ ΠΈΡ… ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π°Ρ‚Π΅Π»Π΅ΠΉ, Π“. М. АдСльсона-Π’Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΈ Π•. М. Ландиса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ АВЛ-Π΄Π΅Ρ€Π΅Π²ΡŒΡ Π² 1962 Π³ΠΎΠ΄Ρƒ.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Высота Π΄Π΅Ρ€Π΅Π²Π° [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

Допустим [math]m_h = F_ — 1[/math] β€” Π²Π΅Ρ€Π½ΠΎ.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, равСнство [math]m_h = F_ — 1[/math] β€” Π΄ΠΎΠΊΠ°Π·Π°Π½ΠΎ.[math]\triangleleft[/math]

[math]n \geqslant \varphi^[/math]

[math]\log_<\varphi>n \geqslant h[/math]

Балансировка [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

Для балансировки Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· 4 Ρ‚ΠΈΠΏΠΎΠ² Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ:

[math]diff[a] = 0[/math] ΠΈ [math]diff[b] = 0[/math]

ΠœΠ°Π»Ρ‹ΠΉ Π»Π΅Π²Ρ‹ΠΉ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚:

Π‘ΠΎΠ»ΡŒΡˆΠΎΠΉ Π»Π΅Π²Ρ‹ΠΉ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΎΡ‰Π΅:

МалоС ΠΏΡ€Π°Π²ΠΎΠ΅ ΠΈ большоС ΠΏΡ€Π°Π²ΠΎΠ΅ Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ симмСтрично ΠΌΠ°Π»ΠΎΠΌΡƒ Π»Π΅Π²ΠΎΠΌΡƒ ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΎΠΌΡƒ Π»Π΅Π²ΠΎΠΌΡƒ Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΡŽ. Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ случаС опСрация ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π½ΡƒΠΆΠ½ΠΎΠΌΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ, Π° полная высота ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π½Π° [math]1[/math] ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒΡΡ.

ВсС вращСния, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ [math]O(1)[/math] ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² процСссС добавлСния Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΌΡ‹ рассматриваСм Π½Π΅ Π±ΠΎΠ»Π΅Π΅, Ρ‡Π΅ΠΌ [math] O(h) [/math] Π²Π΅Ρ€ΡˆΠΈΠ½ Π΄Π΅Ρ€Π΅Π²Π°, ΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ запускаСм балансировку Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π°, Ρ‚ΠΎ суммарноС количСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ Π² Π΄Π΅Ρ€Π΅Π²ΠΎ составляСт [math] O(\log) [/math] ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

Поиск Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹, ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ/максимум Π² Π΄Π΅Ρ€Π΅Π²Π΅, etc. [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π΅ ΠΌΠ΅Π½ΡΡŽΡ‚ структуры Π΄Π΅Ρ€Π΅Π²Π°, поэтому Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² Π½Π°ΠΈΠ²Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π΅Ρ€Π΅Π²Π° поиска.

БлияниС Π΄Π²ΡƒΡ… AVL-Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

Π”Π΅Ρ€Π΅Π²ΠΎ [math]T_1[/math] ΠΈ [math]T_2[/math] Π΄ΠΎ слияния

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

Π”Π΅Ρ€Π΅Π²ΠΎ [math]T_2[/math] послС слияния

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

Алгоритм раздСлСния AVL-Π΄Π΅Ρ€Π΅Π²Π° Π½Π° Π΄Π²Π° [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

Алгоритм ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

Π”Π°Π»Π΅Π΅ дСйствуСм ΠΏΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ ΠΈ Π² ΠΈΡ‚ΠΎΠ³Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ (рис. 4):

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

Алгоритм Π²Ρ‚ΠΎΡ€ΠΎΠΉ [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

АВЛ-Π΄Π΅Ρ€Π΅Π²ΠΎ с O(1) Π±ΠΈΡ‚ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡƒΠ·Π»Π΅ [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

ИдСя [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

Балансировка [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

Π’ΠΈΠΏ Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΡΠ˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡΠšΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡΠ Π°ΡΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° балансов
МалоС Π»Π΅Π²ΠΎΠ΅ вращСниСдля ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

1 Π²Π°Ρ€ΠΈΠ°Π½Ρ‚: [math]balance[a] = 0[/math] ΠΈ [math]balance[b] = 0[/math]

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ добавлСния ΠΈ удалСния Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ с подписанными измСнСниями Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² баланса ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

АВЛ-Π΄Π΅Ρ€Π΅Π²ΡŒΡ

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» дСрСвоЕсли Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΌΠΎΠΈΡ… ΠΏΡ€ΠΎΡˆΠ»Ρ‹Ρ… постов Ρ€Π΅Ρ‡ΡŒ шла ΠΎ довольно соврСмСнном ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΡŽ сбалансированных Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² поиска, Ρ‚ΠΎ этот пост посвящСн Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ АВЛ-Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² β€” Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, самого ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° сбалансированных Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² поиска, ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π½Π½Ρ‹Ρ… Π΅Ρ‰Π΅ Π² 1962 Π³ΠΎΠ΄Ρƒ нашими (Ρ‚ΠΎΠ³Π΄Π° совСтскими) ΡƒΡ‡Π΅Π½Ρ‹ΠΌΠΈ АдСльсон-Π’Π΅Π»ΡŒΡΠΊΠΈΠΌ ΠΈ Ландисом. Π’ сСти ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ АВЛ-Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΡƒΡ‚), Π½ΠΎ всС, Ρ‡Ρ‚ΠΎ Π»ΠΈΡ‡Π½ΠΎ я Π²ΠΈΠ΄Π΅Π», Π½Π΅ Π²Π½ΡƒΡˆΠ°Π΅Ρ‚ особСнного ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΌΠ°, особСнно, Ссли ΠΏΡ‹Ρ‚Π°Π΅ΡˆΡŒΡΡ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π²ΠΎ всСм с нуля. Π’Π΅Π·Π΄Π΅ утвСрТдаСтся, Ρ‡Ρ‚ΠΎ АВЛ-Π΄Π΅Ρ€Π΅Π²ΡŒΡ ΠΏΡ€ΠΎΡ‰Π΅ красно-Ρ‡Π΅Ρ€Π½Ρ‹Ρ… Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π², Π½ΠΎ глядя Π½Π° ΠΏΡ€ΠΈΠ»Π°Π³Π°Π΅ΠΌΡ‹ΠΉ ΠΊ этому ΠΊΠΎΠ΄, Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΡˆΡŒ ΡΠΎΠΌΠ½Π΅Π²Π°Ρ‚ΡŒΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΈ. БобствСнно, ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ Π½Π° ΠΏΠ°Π»ΡŒΡ†Π°Ρ…, ΠΊΠ°ΠΊ устроСны АВЛ-Π΄Π΅Ρ€Π΅Π²ΡŒΡ, ΠΈ послуТило ΠΌΠΎΡ‚ΠΈΠ²Π°Ρ†ΠΈΠ΅ΠΉ ΠΊ написанию Π΄Π°Π½Π½ΠΎΠ³ΠΎ поста. ИзлоТСниС ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° Π‘++.

ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ АВЛ-Π΄Π΅Ρ€Π΅Π²Π°

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» дСрСвоАВЛ-Π΄Π΅Ρ€Π΅Π²ΠΎ β€” это ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ поиска, ΠΊΠ»ΡŽΡ‡ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‚ стандартному свойству: ΠΊΠ»ΡŽΡ‡ любого ΡƒΠ·Π»Π° Π΄Π΅Ρ€Π΅Π²Π° Π½Π΅ мСньшС любого ΠΊΠ»ΡŽΡ‡Π° Π² Π»Π΅Π²ΠΎΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° ΠΈ Π½Π΅ большС любого ΠΊΠ»ΡŽΡ‡Π° Π² ΠΏΡ€Π°Π²ΠΎΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π΅ этого ΡƒΠ·Π»Π°. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ для поиска Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° Π² АВЛ-Π΄Π΅Ρ€Π΅Π²Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стандартный Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ. Для простоты дальнСйшСго излоТСния Π±ΡƒΠ΄Π΅ΠΌ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ всС ΠΊΠ»ΡŽΡ‡ΠΈ Π² Π΄Π΅Ρ€Π΅Π²Π΅ цСлочислСнны ΠΈ Π½Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‚ΡΡ.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ АВЛ-Π΄Π΅Ρ€Π΅Π²Π° являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ являСтся сбалансированным Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ смыслС: для любого ΡƒΠ·Π»Π° Π΄Π΅Ρ€Π΅Π²Π° высота Π΅Π³ΠΎ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π° отличаСтся ΠΎΡ‚ высоты Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π° Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ. Π”ΠΎΠΊΠ°Π·Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ этого свойства достаточно для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ высота Π΄Π΅Ρ€Π΅Π²Π° логарифмичСски зависСла ΠΎΡ‚ числа Π΅Π³ΠΎ ΡƒΠ·Π»ΠΎΠ²: высота h АВЛ-Π΄Π΅Ρ€Π΅Π²Π° с n ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ Π»Π΅ΠΆΠΈΡ‚ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ log2(n + 1) Π΄ΠΎ 1.44 log2(n + 2) βˆ’ 0.328. А Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ основныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π΄Π΅Ρ€Π΅Π²ΡŒΡΠΌΠΈ поиска (поиск, вставка ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡƒΠ·Π»ΠΎΠ²) Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ зависят ΠΎΡ‚ Π΅Π³ΠΎ высоты, Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π»ΠΎΠ³Π°Ρ€ΠΈΡ„ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ этих Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΎΡ‚ числа ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… Π² Π΄Π΅Ρ€Π΅Π²Π΅. Напомним, Ρ‡Ρ‚ΠΎ Ρ€Π°Π½Π΄ΠΎΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄Π΅Ρ€Π΅Π²ΡŒΡ поиска ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ΡΠ±Π°Π»Π°Π½ΡΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² вСроятностном смыслС: Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ получСния сильно нСсбалансированного Π΄Π΅Ρ€Π΅Π²Π° ΠΏΡ€ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… n хотя ΠΈ являСтся ΠΏΡ€Π΅Π½Π΅Π±Ρ€Π΅ΠΆΠΈΠΌΠΎ ΠΌΠ°Π»ΠΎΠΉ, Π½ΠΎ остаСтся Π½Π΅ Ρ€Π°Π²Π½ΠΎΠΉ Π½ΡƒΠ»ΡŽ.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΡƒΠ·Π»ΠΎΠ²

Π‘ΡƒΠ΄Π΅ΠΌ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΡƒΠ·Π»Ρ‹ АВЛ-Π΄Π΅Ρ€Π΅Π²Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ структурой:

ПолС key Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΊΠ»ΡŽΡ‡ ΡƒΠ·Π»Π°, ΠΏΠΎΠ»Π΅ height β€” высоту ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π° с ΠΊΠΎΡ€Π½Π΅ΠΌ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡƒΠ·Π»Π΅, поля left ΠΈ right β€” ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° Π»Π΅Π²ΠΎΠ΅ ΠΈ ΠΏΡ€Π°Π²ΠΎΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΡŒΡ. ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ конструктор создаСт Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΠ·Π΅Π» (высоты 1) с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ k.

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Ρ‚Ρ€ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, связанныС с высотой. ΠŸΠ΅Ρ€Π²Π°Ρ являСтся ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΎΠΉ для поля height, ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ с Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌΠΈ указатСлями (с пустыми Π΄Π΅Ρ€Π΅Π²ΡŒΡΠΌΠΈ):

Вторая вычисляСт balance factor Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° (ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Π½Π΅Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌΠΈ указатСлями):

Π’Ρ€Π΅Ρ‚ΡŒΡ функция восстанавливаСт ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поля height Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° (ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ значСния этого поля Π² ΠΏΡ€Π°Π²ΠΎΠΌ ΠΈ Π»Π΅Π²ΠΎΠΌ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… ΡƒΠ·Π»Π°Ρ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌΠΈ):

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ всС Ρ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ нСрСкурсивными, Ρ‚.Π΅. врСмя ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΅ΡΡ‚ΡŒ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° О(1).

Балансировка ΡƒΠ·Π»ΠΎΠ²

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

Код, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€Π°Π²Ρ‹ΠΉ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚, выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ (ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, каТдая функция, ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰Π°Ρ Π΄Π΅Ρ€Π΅Π²ΠΎ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΡ€Π΅Π½ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π°):

Π›Π΅Π²Ρ‹ΠΉ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ являСтся симмСтричной ΠΊΠΎΠΏΠΈΠ΅ΠΉ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ:

Рассмотрим Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ дисбаланса, ΠΊΠΎΠ³Π΄Π° высота ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π° ΡƒΠ·Π»Π° p Π½Π° 2 большС высоты Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π° (ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ случай являСтся симмСтричным ΠΈ рСализуСтся Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ). ΠŸΡƒΡΡ‚ΡŒ q β€” ΠΏΡ€Π°Π²Ρ‹ΠΉ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ ΡƒΠ·Π΅Π» ΡƒΠ·Π»Π° p, Π° s β€” Π»Π΅Π²Ρ‹ΠΉ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ ΡƒΠ·Π΅Π» ΡƒΠ·Π»Π° q.

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

Анализ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… случаСв Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π΄Π°Π½Π½ΠΎΠΉ ситуации ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ для исправлСния расбалансировки Π² ΡƒΠ·Π»Π΅ p достаточно Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π»ΠΈΠ±ΠΎ простой ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ Π²Π»Π΅Π²ΠΎ Π²ΠΎΠΊΡ€ΡƒΠ³ p, Π»ΠΈΠ±ΠΎ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ большой ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ Π²Π»Π΅Π²ΠΎ Π²ΠΎΠΊΡ€ΡƒΠ³ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ p. ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ выполняСтся ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ высота Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π° ΡƒΠ·Π»Π° q большС высоты Π΅Π³ΠΎ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π°: h(s)≀h(D).

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

Π‘ΠΎΠ»ΡŒΡˆΠΎΠΉ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ примСняСтся ΠΏΡ€ΠΈ условии h(s)>h(D) ΠΈ сводится Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΊ Π΄Π²ΡƒΠΌ простым β€” сначала ΠΏΡ€Π°Π²Ρ‹ΠΉ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ Π²ΠΎΠΊΡ€ΡƒΠ³ q ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π»Π΅Π²Ρ‹ΠΉ Π²ΠΎΠΊΡ€ΡƒΠ³ p.

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

Код, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ балансировку, сводится ΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ условий ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ΠΎΠ²:

ΠžΠΏΠΈΡΠ°Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ΠΎΠ² ΠΈ балансировки Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ содСрТат Π½ΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ², Π½ΠΈ рСкурсии, Π° Π·Π½Π°Ρ‡ΠΈΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π·Π° постоянноС врСмя, Π½Π΅ зависящСС ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° АВЛ-Π΄Π΅Ρ€Π΅Π²Π°.

Вставка ΠΊΠ»ΡŽΡ‡Π΅ΠΉ

Вставка Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° Π² АВЛ-Π΄Π΅Ρ€Π΅Π²ΠΎ выполняСтся, ΠΏΠΎ Π±ΠΎΠ»ΡŒΡˆΠΎΠΌΡƒ счСту, Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ это дСлаСтся Π² простых Π΄Π΅Ρ€Π΅Π²ΡŒΡΡ… поиска: спускаСмся Π²Π½ΠΈΠ· ΠΏΠΎ Π΄Π΅Ρ€Π΅Π²Ρƒ, выбирая ΠΏΡ€Π°Π²ΠΎΠ΅ ΠΈΠ»ΠΈ Π»Π΅Π²ΠΎΠ΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ двиТСния Π² зависимости ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° сравнСния ΠΊΠ»ΡŽΡ‡Π° Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΡƒΠ·Π»Π΅ ΠΈ вставляСмого ΠΊΠ»ΡŽΡ‡Π°. ЕдинствСнноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΈΠ· рСкурсии (Ρ‚.Π΅. послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠ»ΡŽΡ‡ вставлСн Π»ΠΈΠ±ΠΎ Π² ΠΏΡ€Π°Π²ΠΎΠ΅, Π»ΠΈΠ±ΠΎ Π² Π»Π΅Π²ΠΎΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎ, ΠΈ это Π΄Π΅Ρ€Π΅Π²ΠΎ сбалансировано) выполняСтся балансировка Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΡƒΠ·Π»Π°. Π‘Ρ‚Ρ€ΠΎΠ³ΠΎ доказываСтся, Ρ‡Ρ‚ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΉ вставкС дисбаланс Π² любом ΡƒΠ·Π»Π΅ ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ двиТСния Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ Π΄Π²ΡƒΡ…, Π° Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ балансировки являСтся ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ соотвСтствиС Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° вставки тСорСтичСским ΠΎΡ†Π΅Π½ΠΊΠ°ΠΌ для высоты АВЛ-Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π², Π±Ρ‹Π» ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ нСслоТный Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ экспСримСнт. ГСнСрировался массив ΠΈΠ· случайно располоТСнных чисСл ΠΎΡ‚ 1 Π΄ΠΎ 10000, Π΄Π°Π»Π΅Π΅ эти числа ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΡΡ‚Π°Π²Π»ΡΠ»ΠΈΡΡŒ Π² ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ пустоС АВЛ-Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΈ ΠΈΠ·ΠΌΠ΅Ρ€ΡΠ»Π°ΡΡŒ высота Π΄Π΅Ρ€Π΅Π²Π° послС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ вставки. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π±Ρ‹Π»ΠΈ усрСднСны ΠΏΠΎ 1000 расчСтам. На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ n срСднСй высоты (красная линия); минимальной высоты (зСлСная линия); максимальной высоты (синяя линия). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ вСрхняя ΠΈ ниТняя тСорСтичСскиС ΠΎΡ†Π΅Π½ΠΊΠΈ.

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

Π’ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ для случайных ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Π΅ высоты ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π² тСорСтичСскиС Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π΄Π°ΠΆΠ΅ с нСбольшим запасом. НиТняя Π³Ρ€Π°Π½ΠΈΡ†Π° достиТима (ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚ΠΎΡ‡ΠΊΠ°Ρ…), Ссли исходная ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ являСтся упорядочСнной ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ

Π‘ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΡƒΠ·Π»ΠΎΠ² ΠΈΠ· АВЛ-Π΄Π΅Ρ€Π΅Π²Π°, ΠΊ соТалСнию, всС Π½Π΅ Ρ‚Π°ΠΊ шоколадно, ΠΊΠ°ΠΊ с Ρ€Π°Π½Π΄ΠΎΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π΄Π΅Ρ€Π΅Π²ΡŒΡΠΌΠΈ поиска. Бпособа, основанного Π½Π° слиянии (join) Π΄Π²ΡƒΡ… Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π², Π½ΠΈ Π½Π°ΠΉΡ‚ΠΈ, Π½ΠΈ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ. для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π·Π° основу Π±Ρ‹Π» взят Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, описываСмый практичСски Π²Π΅Π·Π΄Π΅ (ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ примСняСтся ΠΈ ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΡƒΠ·Π»ΠΎΠ² ΠΈΠ· стандартного Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π° поиска). ИдСя ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ: Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ ΡƒΠ·Π΅Π» p с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ k (Ссли Π½Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ, Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π½Π°Π΄ΠΎ), Π² ΠΏΡ€Π°Π²ΠΎΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ ΡƒΠ·Π΅Π» min с наимСньшим ΠΊΠ»ΡŽΡ‡ΠΎΠΌ ΠΈ замСняСм удаляСмый ΡƒΠ·Π΅Π» p Π½Π° Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ ΡƒΠ·Π΅Π» min.

ΠŸΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ нСсколько нюансов. ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, Ссли Ρƒ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ ΡƒΠ·Π΅Π» p Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π°, Ρ‚ΠΎ ΠΏΠΎ свойству АВЛ-Π΄Π΅Ρ€Π΅Π²Π° слСва Ρƒ этого ΡƒΠ·Π»Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ СдинствСнный Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ ΡƒΠ·Π΅Π» (Π΄Π΅Ρ€Π΅Π²ΠΎ высоты 1), Π»ΠΈΠ±ΠΎ ΡƒΠ·Π΅Π» p Π²ΠΎΠΎΠ±Ρ‰Π΅ лист. Π’ ΠΎΠ±ΠΎΠΈΡ… этих случаях Π½Π°Π΄ΠΎ просто ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΡƒΠ·Π΅Π» p ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π² качСствС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π»Π΅Π²Ρ‹ΠΉ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ ΡƒΠ·Π΅Π» ΡƒΠ·Π»Π° p.

ΠŸΡƒΡΡ‚ΡŒ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€Π°Π²ΠΎΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎ Ρƒ p Π΅ΡΡ‚ΡŒ. Находим ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π² этом ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π΅. По свойству Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π° поиска этот ΠΊΠ»ΡŽΡ‡ находится Π² ΠΊΠΎΠ½Ρ†Π΅ Π»Π΅Π²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ, начиная ΠΎΡ‚ корня Π΄Π΅Ρ€Π΅Π²Π°. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΠ²Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° слуТСбная функция Ρƒ нас Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ минимального элСмСнта ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π°. ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅, ΠΏΠΎ свойству АВЛ-Π΄Π΅Ρ€Π΅Π²Π° Ρƒ минимального элСмСнта справа Π»ΠΈΠ±ΠΎ подвСшСн СдинствСнный ΡƒΠ·Π΅Π», Π»ΠΈΠ±ΠΎ Ρ‚Π°ΠΌ пусто. Π’ ΠΎΠ±ΠΎΠΈΡ… случаях Π½Π°Π΄ΠΎ просто Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΏΡ€Π°Π²Ρ‹ΠΉ ΡƒΠ·Π΅Π» ΠΈ ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ Π½Π°Π·Π°Π΄ (ΠΏΡ€ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΈΠ· рСкурсии) Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ балансировку. Π‘Π°ΠΌ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΠ·Π΅Π» Π½Π΅ удаляСтся, Ρ‚.ΠΊ. ΠΎΠ½ Π½Π°ΠΌ Π΅Ρ‰Π΅ пригодится.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ всС Π³ΠΎΡ‚ΠΎΠ²ΠΎ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ удалСния ΠΊΠ»ΡŽΡ‡Π° ΠΈΠ· АВЛ-Π΄Π΅Ρ€Π΅Π²Π°. Π‘Π½Π°Ρ‡Π°Π»Π° Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΡƒΠ·Π΅Π», выполняя Ρ‚Π΅ ΠΆΠ΅ дСйствия, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΡ€ΠΈ вставкС ΠΊΠ»ΡŽΡ‡Π°:

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ»ΡŽΡ‡ k Π½Π°ΠΉΠ΄Π΅Π½, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ ΠΏΠ»Π°Π½Ρƒ Π‘: Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ ΠΊΠΎΡ€Π½ΠΈ q ΠΈ r Π»Π΅Π²ΠΎΠ³ΠΎ ΠΈ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² ΡƒΠ·Π»Π° p; удаляСм ΡƒΠ·Π΅Π» p; Ссли ΠΏΡ€Π°Π²ΠΎΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎ пустоС, Ρ‚ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π»Π΅Π²ΠΎΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎ; Ссли ΠΏΡ€Π°Π²ΠΎΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎ Π½Π΅ пустоС, Ρ‚ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ Ρ‚Π°ΠΌ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт min, ΠΏΠΎΡ‚ΠΎΠΌ Π΅Π³ΠΎ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ ΠΎΡ‚Ρ‚ΡƒΠ΄Π°, слСва ΠΊ min подвСшиваСм q, справа β€” Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ ΠΈΠ· r, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ min послС Π΅Π³ΠΎ балансировки.

ΠŸΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· рСкурсии Π½Π΅ Π·Π°Π±Ρ‹Π²Π°Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ балансировку:

Π’ΠΎΡ‚ собствСнно ΠΈ всС! Поиск минимального ΡƒΠ·Π»Π° ΠΈ Π΅Π³ΠΎ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅, Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΡ€ΠΈ этом придСтся Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ (Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ) ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠ°Ρ€Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ. Π—Π°Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π΅ ΠΏΠΎ ΠΏΡ€Π°Π²ΠΎΠΌΡƒ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Ρƒ.

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ вставки ΠΈ удалСния (Π° Ρ‚Π°ΠΊΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ простая опСрация поиска) Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π·Π° врСмя ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ высотС Π΄Π΅Ρ€Π΅Π²Π°, Ρ‚.ΠΊ. Π² процСссС выполнСния этих ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ производится спуск ΠΈΠ· корня ΠΊ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ ΡƒΠ·Π»Ρƒ, ΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ выполняСтся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ фиксированноС число дСйствий. А Π² силу Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ АВЛ-Π΄Π΅Ρ€Π΅Π²ΠΎ являСтся сбалансированным, Π΅Π³ΠΎ высота зависит логарифмичСски ΠΎΡ‚ числа ΡƒΠ·Π»ΠΎΠ². Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, врСмя выполнСния всСх Ρ‚Ρ€Π΅Ρ… Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ логарифмичСски зависит ΠΎΡ‚ числа ΡƒΠ·Π»ΠΎΠ² Π΄Π΅Ρ€Π΅Π²Π°.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

АВЛ-Π΄Π΅Ρ€Π΅Π²ΡŒΡ

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» дСрСвоЕсли Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΌΠΎΠΈΡ… ΠΏΡ€ΠΎΡˆΠ»Ρ‹Ρ… постов Ρ€Π΅Ρ‡ΡŒ шла ΠΎ довольно соврСмСнном ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΡŽ сбалансированных Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² поиска, Ρ‚ΠΎ этот пост посвящСн Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ АВЛ-Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² β€” Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, самого ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° сбалансированных Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² поиска, ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π½Π½Ρ‹Ρ… Π΅Ρ‰Π΅ Π² 1962 Π³ΠΎΠ΄Ρƒ нашими (Ρ‚ΠΎΠ³Π΄Π° совСтскими) ΡƒΡ‡Π΅Π½Ρ‹ΠΌΠΈ АдСльсон-Π’Π΅Π»ΡŒΡΠΊΠΈΠΌ ΠΈ Ландисом. Π’ сСти ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ АВЛ-Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΡƒΡ‚), Π½ΠΎ всС, Ρ‡Ρ‚ΠΎ Π»ΠΈΡ‡Π½ΠΎ я Π²ΠΈΠ΄Π΅Π», Π½Π΅ Π²Π½ΡƒΡˆΠ°Π΅Ρ‚ особСнного ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΌΠ°, особСнно, Ссли ΠΏΡ‹Ρ‚Π°Π΅ΡˆΡŒΡΡ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π²ΠΎ всСм с нуля. Π’Π΅Π·Π΄Π΅ утвСрТдаСтся, Ρ‡Ρ‚ΠΎ АВЛ-Π΄Π΅Ρ€Π΅Π²ΡŒΡ ΠΏΡ€ΠΎΡ‰Π΅ красно-Ρ‡Π΅Ρ€Π½Ρ‹Ρ… Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π², Π½ΠΎ глядя Π½Π° ΠΏΡ€ΠΈΠ»Π°Π³Π°Π΅ΠΌΡ‹ΠΉ ΠΊ этому ΠΊΠΎΠ΄, Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΡˆΡŒ ΡΠΎΠΌΠ½Π΅Π²Π°Ρ‚ΡŒΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΈ. БобствСнно, ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ Π½Π° ΠΏΠ°Π»ΡŒΡ†Π°Ρ…, ΠΊΠ°ΠΊ устроСны АВЛ-Π΄Π΅Ρ€Π΅Π²ΡŒΡ, ΠΈ послуТило ΠΌΠΎΡ‚ΠΈΠ²Π°Ρ†ΠΈΠ΅ΠΉ ΠΊ написанию Π΄Π°Π½Π½ΠΎΠ³ΠΎ поста. ИзлоТСниС ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° Π‘++.

ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ АВЛ-Π΄Π΅Ρ€Π΅Π²Π°

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» дСрСвоАВЛ-Π΄Π΅Ρ€Π΅Π²ΠΎ β€” это ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ поиска, ΠΊΠ»ΡŽΡ‡ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‚ стандартному свойству: ΠΊΠ»ΡŽΡ‡ любого ΡƒΠ·Π»Π° Π΄Π΅Ρ€Π΅Π²Π° Π½Π΅ мСньшС любого ΠΊΠ»ΡŽΡ‡Π° Π² Π»Π΅Π²ΠΎΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° ΠΈ Π½Π΅ большС любого ΠΊΠ»ΡŽΡ‡Π° Π² ΠΏΡ€Π°Π²ΠΎΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π΅ этого ΡƒΠ·Π»Π°. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ для поиска Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° Π² АВЛ-Π΄Π΅Ρ€Π΅Π²Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стандартный Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ. Для простоты дальнСйшСго излоТСния Π±ΡƒΠ΄Π΅ΠΌ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ всС ΠΊΠ»ΡŽΡ‡ΠΈ Π² Π΄Π΅Ρ€Π΅Π²Π΅ цСлочислСнны ΠΈ Π½Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‚ΡΡ.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ АВЛ-Π΄Π΅Ρ€Π΅Π²Π° являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ являСтся сбалансированным Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ смыслС: для любого ΡƒΠ·Π»Π° Π΄Π΅Ρ€Π΅Π²Π° высота Π΅Π³ΠΎ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π° отличаСтся ΠΎΡ‚ высоты Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π° Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ. Π”ΠΎΠΊΠ°Π·Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ этого свойства достаточно для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ высота Π΄Π΅Ρ€Π΅Π²Π° логарифмичСски зависСла ΠΎΡ‚ числа Π΅Π³ΠΎ ΡƒΠ·Π»ΠΎΠ²: высота h АВЛ-Π΄Π΅Ρ€Π΅Π²Π° с n ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ Π»Π΅ΠΆΠΈΡ‚ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ log2(n + 1) Π΄ΠΎ 1.44 log2(n + 2) βˆ’ 0.328. А Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ основныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π΄Π΅Ρ€Π΅Π²ΡŒΡΠΌΠΈ поиска (поиск, вставка ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡƒΠ·Π»ΠΎΠ²) Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ зависят ΠΎΡ‚ Π΅Π³ΠΎ высоты, Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π»ΠΎΠ³Π°Ρ€ΠΈΡ„ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ этих Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΎΡ‚ числа ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… Π² Π΄Π΅Ρ€Π΅Π²Π΅. Напомним, Ρ‡Ρ‚ΠΎ Ρ€Π°Π½Π΄ΠΎΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄Π΅Ρ€Π΅Π²ΡŒΡ поиска ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ΡΠ±Π°Π»Π°Π½ΡΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² вСроятностном смыслС: Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ получСния сильно нСсбалансированного Π΄Π΅Ρ€Π΅Π²Π° ΠΏΡ€ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… n хотя ΠΈ являСтся ΠΏΡ€Π΅Π½Π΅Π±Ρ€Π΅ΠΆΠΈΠΌΠΎ ΠΌΠ°Π»ΠΎΠΉ, Π½ΠΎ остаСтся Π½Π΅ Ρ€Π°Π²Π½ΠΎΠΉ Π½ΡƒΠ»ΡŽ.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΡƒΠ·Π»ΠΎΠ²

Π‘ΡƒΠ΄Π΅ΠΌ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΡƒΠ·Π»Ρ‹ АВЛ-Π΄Π΅Ρ€Π΅Π²Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ структурой:

ПолС key Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΊΠ»ΡŽΡ‡ ΡƒΠ·Π»Π°, ΠΏΠΎΠ»Π΅ height β€” высоту ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π° с ΠΊΠΎΡ€Π½Π΅ΠΌ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡƒΠ·Π»Π΅, поля left ΠΈ right β€” ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° Π»Π΅Π²ΠΎΠ΅ ΠΈ ΠΏΡ€Π°Π²ΠΎΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΡŒΡ. ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ конструктор создаСт Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΠ·Π΅Π» (высоты 1) с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ k.

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Ρ‚Ρ€ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, связанныС с высотой. ΠŸΠ΅Ρ€Π²Π°Ρ являСтся ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΎΠΉ для поля height, ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ с Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌΠΈ указатСлями (с пустыми Π΄Π΅Ρ€Π΅Π²ΡŒΡΠΌΠΈ):

Вторая вычисляСт balance factor Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° (ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Π½Π΅Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌΠΈ указатСлями):

Π’Ρ€Π΅Ρ‚ΡŒΡ функция восстанавливаСт ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поля height Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° (ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ значСния этого поля Π² ΠΏΡ€Π°Π²ΠΎΠΌ ΠΈ Π»Π΅Π²ΠΎΠΌ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… ΡƒΠ·Π»Π°Ρ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌΠΈ):

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ всС Ρ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ нСрСкурсивными, Ρ‚.Π΅. врСмя ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΅ΡΡ‚ΡŒ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° О(1).

Балансировка ΡƒΠ·Π»ΠΎΠ²

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

Код, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€Π°Π²Ρ‹ΠΉ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚, выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ (ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, каТдая функция, ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰Π°Ρ Π΄Π΅Ρ€Π΅Π²ΠΎ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΡ€Π΅Π½ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π°):

Π›Π΅Π²Ρ‹ΠΉ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ являСтся симмСтричной ΠΊΠΎΠΏΠΈΠ΅ΠΉ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ:

Рассмотрим Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ дисбаланса, ΠΊΠΎΠ³Π΄Π° высота ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π° ΡƒΠ·Π»Π° p Π½Π° 2 большС высоты Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π° (ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ случай являСтся симмСтричным ΠΈ рСализуСтся Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ). ΠŸΡƒΡΡ‚ΡŒ q β€” ΠΏΡ€Π°Π²Ρ‹ΠΉ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ ΡƒΠ·Π΅Π» ΡƒΠ·Π»Π° p, Π° s β€” Π»Π΅Π²Ρ‹ΠΉ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ ΡƒΠ·Π΅Π» ΡƒΠ·Π»Π° q.

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

Анализ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… случаСв Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π΄Π°Π½Π½ΠΎΠΉ ситуации ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ для исправлСния расбалансировки Π² ΡƒΠ·Π»Π΅ p достаточно Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π»ΠΈΠ±ΠΎ простой ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ Π²Π»Π΅Π²ΠΎ Π²ΠΎΠΊΡ€ΡƒΠ³ p, Π»ΠΈΠ±ΠΎ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ большой ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ Π²Π»Π΅Π²ΠΎ Π²ΠΎΠΊΡ€ΡƒΠ³ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ p. ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ выполняСтся ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ высота Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π° ΡƒΠ·Π»Π° q большС высоты Π΅Π³ΠΎ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π°: h(s)≀h(D).

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

Π‘ΠΎΠ»ΡŒΡˆΠΎΠΉ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ примСняСтся ΠΏΡ€ΠΈ условии h(s)>h(D) ΠΈ сводится Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΊ Π΄Π²ΡƒΠΌ простым β€” сначала ΠΏΡ€Π°Π²Ρ‹ΠΉ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ Π²ΠΎΠΊΡ€ΡƒΠ³ q ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π»Π΅Π²Ρ‹ΠΉ Π²ΠΎΠΊΡ€ΡƒΠ³ p.

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

Код, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ балансировку, сводится ΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ условий ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ΠΎΠ²:

ΠžΠΏΠΈΡΠ°Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ΠΎΠ² ΠΈ балансировки Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ содСрТат Π½ΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ², Π½ΠΈ рСкурсии, Π° Π·Π½Π°Ρ‡ΠΈΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π·Π° постоянноС врСмя, Π½Π΅ зависящСС ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° АВЛ-Π΄Π΅Ρ€Π΅Π²Π°.

Вставка ΠΊΠ»ΡŽΡ‡Π΅ΠΉ

Вставка Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° Π² АВЛ-Π΄Π΅Ρ€Π΅Π²ΠΎ выполняСтся, ΠΏΠΎ Π±ΠΎΠ»ΡŒΡˆΠΎΠΌΡƒ счСту, Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ это дСлаСтся Π² простых Π΄Π΅Ρ€Π΅Π²ΡŒΡΡ… поиска: спускаСмся Π²Π½ΠΈΠ· ΠΏΠΎ Π΄Π΅Ρ€Π΅Π²Ρƒ, выбирая ΠΏΡ€Π°Π²ΠΎΠ΅ ΠΈΠ»ΠΈ Π»Π΅Π²ΠΎΠ΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ двиТСния Π² зависимости ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° сравнСния ΠΊΠ»ΡŽΡ‡Π° Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΡƒΠ·Π»Π΅ ΠΈ вставляСмого ΠΊΠ»ΡŽΡ‡Π°. ЕдинствСнноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΈΠ· рСкурсии (Ρ‚.Π΅. послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠ»ΡŽΡ‡ вставлСн Π»ΠΈΠ±ΠΎ Π² ΠΏΡ€Π°Π²ΠΎΠ΅, Π»ΠΈΠ±ΠΎ Π² Π»Π΅Π²ΠΎΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎ, ΠΈ это Π΄Π΅Ρ€Π΅Π²ΠΎ сбалансировано) выполняСтся балансировка Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΡƒΠ·Π»Π°. Π‘Ρ‚Ρ€ΠΎΠ³ΠΎ доказываСтся, Ρ‡Ρ‚ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΉ вставкС дисбаланс Π² любом ΡƒΠ·Π»Π΅ ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ двиТСния Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ Π΄Π²ΡƒΡ…, Π° Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ балансировки являСтся ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ соотвСтствиС Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° вставки тСорСтичСским ΠΎΡ†Π΅Π½ΠΊΠ°ΠΌ для высоты АВЛ-Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π², Π±Ρ‹Π» ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ нСслоТный Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ экспСримСнт. ГСнСрировался массив ΠΈΠ· случайно располоТСнных чисСл ΠΎΡ‚ 1 Π΄ΠΎ 10000, Π΄Π°Π»Π΅Π΅ эти числа ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΡΡ‚Π°Π²Π»ΡΠ»ΠΈΡΡŒ Π² ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ пустоС АВЛ-Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΈ ΠΈΠ·ΠΌΠ΅Ρ€ΡΠ»Π°ΡΡŒ высота Π΄Π΅Ρ€Π΅Π²Π° послС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ вставки. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π±Ρ‹Π»ΠΈ усрСднСны ΠΏΠΎ 1000 расчСтам. На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ n срСднСй высоты (красная линия); минимальной высоты (зСлСная линия); максимальной высоты (синяя линия). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ вСрхняя ΠΈ ниТняя тСорСтичСскиС ΠΎΡ†Π΅Π½ΠΊΠΈ.

для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ

Π’ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ для случайных ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Π΅ высоты ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π² тСорСтичСскиС Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π΄Π°ΠΆΠ΅ с нСбольшим запасом. НиТняя Π³Ρ€Π°Π½ΠΈΡ†Π° достиТима (ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚ΠΎΡ‡ΠΊΠ°Ρ…), Ссли исходная ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ являСтся упорядочСнной ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ

Π‘ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΡƒΠ·Π»ΠΎΠ² ΠΈΠ· АВЛ-Π΄Π΅Ρ€Π΅Π²Π°, ΠΊ соТалСнию, всС Π½Π΅ Ρ‚Π°ΠΊ шоколадно, ΠΊΠ°ΠΊ с Ρ€Π°Π½Π΄ΠΎΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π΄Π΅Ρ€Π΅Π²ΡŒΡΠΌΠΈ поиска. Бпособа, основанного Π½Π° слиянии (join) Π΄Π²ΡƒΡ… Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π², Π½ΠΈ Π½Π°ΠΉΡ‚ΠΈ, Π½ΠΈ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ. для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π·Π° основу Π±Ρ‹Π» взят Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, описываСмый практичСски Π²Π΅Π·Π΄Π΅ (ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ примСняСтся ΠΈ ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΡƒΠ·Π»ΠΎΠ² ΠΈΠ· стандартного Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π° поиска). ИдСя ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ: Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ ΡƒΠ·Π΅Π» p с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ k (Ссли Π½Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ, Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π½Π°Π΄ΠΎ), Π² ΠΏΡ€Π°Π²ΠΎΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ ΡƒΠ·Π΅Π» min с наимСньшим ΠΊΠ»ΡŽΡ‡ΠΎΠΌ ΠΈ замСняСм удаляСмый ΡƒΠ·Π΅Π» p Π½Π° Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ ΡƒΠ·Π΅Π» min.

ΠŸΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ нСсколько нюансов. ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, Ссли Ρƒ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ ΡƒΠ·Π΅Π» p Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π°, Ρ‚ΠΎ ΠΏΠΎ свойству АВЛ-Π΄Π΅Ρ€Π΅Π²Π° слСва Ρƒ этого ΡƒΠ·Π»Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ СдинствСнный Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ ΡƒΠ·Π΅Π» (Π΄Π΅Ρ€Π΅Π²ΠΎ высоты 1), Π»ΠΈΠ±ΠΎ ΡƒΠ·Π΅Π» p Π²ΠΎΠΎΠ±Ρ‰Π΅ лист. Π’ ΠΎΠ±ΠΎΠΈΡ… этих случаях Π½Π°Π΄ΠΎ просто ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΡƒΠ·Π΅Π» p ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π² качСствС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π»Π΅Π²Ρ‹ΠΉ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ ΡƒΠ·Π΅Π» ΡƒΠ·Π»Π° p.

ΠŸΡƒΡΡ‚ΡŒ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€Π°Π²ΠΎΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎ Ρƒ p Π΅ΡΡ‚ΡŒ. Находим ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π² этом ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π΅. По свойству Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π° поиска этот ΠΊΠ»ΡŽΡ‡ находится Π² ΠΊΠΎΠ½Ρ†Π΅ Π»Π΅Π²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ, начиная ΠΎΡ‚ корня Π΄Π΅Ρ€Π΅Π²Π°. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΠ²Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° слуТСбная функция Ρƒ нас Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ минимального элСмСнта ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π°. ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅, ΠΏΠΎ свойству АВЛ-Π΄Π΅Ρ€Π΅Π²Π° Ρƒ минимального элСмСнта справа Π»ΠΈΠ±ΠΎ подвСшСн СдинствСнный ΡƒΠ·Π΅Π», Π»ΠΈΠ±ΠΎ Ρ‚Π°ΠΌ пусто. Π’ ΠΎΠ±ΠΎΠΈΡ… случаях Π½Π°Π΄ΠΎ просто Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΏΡ€Π°Π²Ρ‹ΠΉ ΡƒΠ·Π΅Π» ΠΈ ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ Π½Π°Π·Π°Π΄ (ΠΏΡ€ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΈΠ· рСкурсии) Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ балансировку. Π‘Π°ΠΌ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΠ·Π΅Π» Π½Π΅ удаляСтся, Ρ‚.ΠΊ. ΠΎΠ½ Π½Π°ΠΌ Π΅Ρ‰Π΅ пригодится.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ всС Π³ΠΎΡ‚ΠΎΠ²ΠΎ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ удалСния ΠΊΠ»ΡŽΡ‡Π° ΠΈΠ· АВЛ-Π΄Π΅Ρ€Π΅Π²Π°. Π‘Π½Π°Ρ‡Π°Π»Π° Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΡƒΠ·Π΅Π», выполняя Ρ‚Π΅ ΠΆΠ΅ дСйствия, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΡ€ΠΈ вставкС ΠΊΠ»ΡŽΡ‡Π°:

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ»ΡŽΡ‡ k Π½Π°ΠΉΠ΄Π΅Π½, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ ΠΏΠ»Π°Π½Ρƒ Π‘: Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ ΠΊΠΎΡ€Π½ΠΈ q ΠΈ r Π»Π΅Π²ΠΎΠ³ΠΎ ΠΈ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² ΡƒΠ·Π»Π° p; удаляСм ΡƒΠ·Π΅Π» p; Ссли ΠΏΡ€Π°Π²ΠΎΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎ пустоС, Ρ‚ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π»Π΅Π²ΠΎΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎ; Ссли ΠΏΡ€Π°Π²ΠΎΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎ Π½Π΅ пустоС, Ρ‚ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ Ρ‚Π°ΠΌ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт min, ΠΏΠΎΡ‚ΠΎΠΌ Π΅Π³ΠΎ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ ΠΎΡ‚Ρ‚ΡƒΠ΄Π°, слСва ΠΊ min подвСшиваСм q, справа β€” Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ ΠΈΠ· r, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ min послС Π΅Π³ΠΎ балансировки.

ΠŸΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· рСкурсии Π½Π΅ Π·Π°Π±Ρ‹Π²Π°Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ балансировку:

Π’ΠΎΡ‚ собствСнно ΠΈ всС! Поиск минимального ΡƒΠ·Π»Π° ΠΈ Π΅Π³ΠΎ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅, Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΡ€ΠΈ этом придСтся Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ (Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ) ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠ°Ρ€Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ. Π—Π°Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π΅ ΠΏΠΎ ΠΏΡ€Π°Π²ΠΎΠΌΡƒ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Ρƒ.

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ вставки ΠΈ удалСния (Π° Ρ‚Π°ΠΊΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ простая опСрация поиска) Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π·Π° врСмя ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ высотС Π΄Π΅Ρ€Π΅Π²Π°, Ρ‚.ΠΊ. Π² процСссС выполнСния этих ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ производится спуск ΠΈΠ· корня ΠΊ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ ΡƒΠ·Π»Ρƒ, ΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ выполняСтся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ фиксированноС число дСйствий. А Π² силу Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ АВЛ-Π΄Π΅Ρ€Π΅Π²ΠΎ являСтся сбалансированным, Π΅Π³ΠΎ высота зависит логарифмичСски ΠΎΡ‚ числа ΡƒΠ·Π»ΠΎΠ². Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, врСмя выполнСния всСх Ρ‚Ρ€Π΅Ρ… Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ логарифмичСски зависит ΠΎΡ‚ числа ΡƒΠ·Π»ΠΎΠ² Π΄Π΅Ρ€Π΅Π²Π°.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *

Π’ΠΈΠΏ Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΡΠ˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡΠ€Π°ΠΊΡ‚ΠΎΡ€Ρ‹ балансов Π΄ΠΎ вращСнияЀакторы балансов послС вращСния
МалоС Π»Π΅Π²ΠΎΠ΅ вращСниСдля ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ. Π€ΠΎΡ‚ΠΎ для ΠΊΠ°ΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ коэффициСнт балансировки послС добавлСния ΡƒΠ·Π»Π° Π² Π°Π²Π» Π΄Π΅Ρ€Π΅Π²ΠΎ