Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива

β„–ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ Π΅ΠΉΡ‚ΠΈΠ½Π³
1 t ourist3804
2 B enq3618
3 M iracle033460
4 e cnerwala3419
5 d jq_cpp3394
6 p eehs_moorhsum3384
7 R adewoosh3366
8 k sun483363
9 m aroonrk3362
10 j iangly3354
β„–ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ’ΠΊΠ»Π°Π΄
1YouKn0wWho214
21-gon206
3 U m_nik196
4Errichto182
5awoo179
6sus178
7 t ourist176
8antontrygubO_o172
9-is-this-fft-170
10 R adewoosh169

Π‘Π»ΠΎΠ³ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ slalex

Попалась Π½Π΅Π΄Π°Π²Π½ΠΎ Π·Π°Π΄Π°Ρ‡ΠΊΠ°, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅ ΠΌΠΎΠ³Ρƒ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ. ((
Когда ΡƒΠΆΠ΅ мысли ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈΡΡŒ, Ρ€Π΅ΡˆΠΈΠ» ΠΏΠΎΠ³ΡƒΠ³Π»ΠΈΡ‚ΡŒ, Π½ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‚Π°ΠΊ ΠΈ Π½Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ». хотя Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΡ‚Π°Ρ‚ΡŒΡΡ… ΠΏΠΈΡˆΡƒΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ сущСствуСт ))

Π—Π°Π΄Π°Ρ‡Π° Ρ‚Π°ΠΊΠΎΠ²Π°, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΌΠ΅Π΄ΠΈΠ°Π½Ρƒ массива (нСотсортированного ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅).
Π’.Π΅. Ρ‚Π°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ послС сортировки массива A[1. n] Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ:
элСмСнту A[n / 2 + 1], ΠΏΡ€ΠΈ Π½Π΅Ρ‡Π΅Ρ‚Π½ΠΎΠΌ n ΠΈ (A[n / 2] + A[n / 2 + 1]) / 2.0, ΠΏΡ€ΠΈ Ρ‡Π΅Ρ‚Π½ΠΎΠΌ n.

НО. самоС интСрСсноС, Ρ‡Ρ‚ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΌ. 8)

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

Золотая сСрСдина. Поиск ΠΌΠ΅Π΄ΠΈΠ°Π½Π½ΠΎΠ³ΠΎ элСмСнта ΠΏΠΎΡ‚ΠΎΠΊΠ° Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… чисСл

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ: поиск ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Ρ‹ срСди Ρ†Π΅Π»Ρ‹Ρ… чисСл, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ. Π’ этом постС ΠΌΡ‹ поставим Π·Π°Π΄Π°Ρ‡Ρƒ, Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π²Π²ΠΎΠ΄Π½Ρ‹Π΅, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠΌ ΠΈ ΠΎΡ†Π΅Π½ΠΈΠΌ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

На Π²Ρ…ΠΎΠ΄ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ подаётся ΠΏΠΎΡ‚ΠΎΠΊ Ρ†Π΅Π»Ρ‹Ρ… чисСл, Ρ‚.Π΅. количСство чисСл Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массивамоТСт Π±Ρ‹Ρ‚ΡŒ нСизвСстно, Π½ΠΎ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ массив Π·Π°Π΄Π°Π½ Π½Π°ΠΏΠ΅Ρ€Ρ‘Π΄ ΠΈ Π΅Π³ΠΎ Π΄Π»ΠΈΠ½Π° ΠΎΡ‡Π΅Π½ΡŒ большая. ВрСбуСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт ΠΌΠ΅Π΄ΠΈΠ°Π½Ρƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ массива, Ρ‚.Π΅. считанного ΠΈΠ· исходного ΠΊ Π΄Π°Π½Π½ΠΎΠΌΡƒ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ. ΠŸΡ€ΠΈ этом трСбуСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π±Ρ‹Π»Π° Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива

МСдиана ряда чисСл

Π›ΠΈΠ±ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ элСмСнт ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива, Ссли Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массивачётноС ΠΈ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массиваСсли Π½Π΅Ρ‡Π΅Ρ‚Π½ΠΎΠ΅.

Наивный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄

Π”Π°Π²Π°ΠΉΡ‚Π΅ обсудим Π±Π΅ΠΉΠ·Π»Π°ΠΉΠ½ΠΎΠ²ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠ΅Π΄ΠΈΠ°Π½Ρƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π° Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива.

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

Как ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅, этот Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΡ‡Π½ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массиваэлСмСнтов ΠΏΠΎΡ‚ΠΎΠΊΠ°, ΠΌΡ‹ выполняСм Π»ΠΈΠ½Π΅ΠΉΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎ поиску мСста ΠΈ вставкС элСмСнта Π² массив.

Π£Π»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ этот Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ структура Π΄Π°Π½Π½Ρ‹Ρ… β€” ΠΊΡƒΡ‡Π°.

ΠšΡƒΡ‡Π°. Min-heap, max-heap

Рассмотрим ΠΊΡƒΡ‡Ρƒ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ min-heap. Min-heap β€” это Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ, ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰Π΅Π΅ двумя ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ свойствами:

Аналогично ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ задаётся max-heap, Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ «мСньшС» Π½Π° «большС» Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ свойствС.
ΠŸΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ опСрациями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ благодаря ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΡŽ ΠΊΡƒΡ‡ΠΈ, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ быстрСС, Ρ‡Π΅ΠΌ Π·Π° Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ врСмя.

ΠŸΠ΅Ρ€Π²Π°Ρ ΠΈΠ· этих ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ: взятиС ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ° (максимума) ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅

Работая с ΠΊΡƒΡ‡Π΅ΠΉ, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ взятия ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ Π·Π° константноС врСмя. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ всСгда хранится Π² ΠΊΠΎΡ€Π½Π΅ Π΄Π΅Ρ€Π΅Π²Π°, Ρ‚ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ составляСт Ρ‚Ρ€ΡƒΠ΄Π°. Если ΠΆΠ΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΈ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Π½Π° Π΅Π³ΠΎ мСсто ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠΎ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π΅ элСмСнт, Ρ‚ΠΎ Π½Π°ΠΌ потрСбуСтся Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ extract, Ρ‡ΡŒΡ врСмСнная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠΆΠ΅ мСньшС Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ ΠΈ Ρ€Π°Π²Π½Π° Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива.

ΠœΠ΅Ρ‚ΠΎΠ΄ extract Π²Π½ΡƒΡ‚Ρ€ΠΈ сСбя запускаСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ процСсс: сначала элСмСнт с самого послСднСго уровня ставится Π² ΠΊΠΎΡ€Π΅Π½ΡŒ Π΄Π΅Ρ€Π΅Π²Π°, Π·Π°Ρ‚Π΅ΠΌ Π½Π° ΠΊΠΎΡ€Π½Π΅ Π΄Π΅Ρ€Π΅Π²Π° стартуСт ΠΌΠ΅Ρ‚ΠΎΠ΄ bubble_down, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π·Π° ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ (Π° Ρ‚Π°ΠΊΠΈΡ… всСго Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массивав ΠΏΠΎΠ»Π½ΠΎΠΌ Π΄Π΅Ρ€Π΅Π²Π΅) опускаСт Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΡƒΠ·Π΅Π».
Код Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° языкС Python смотри Π½ΠΈΠΆΠ΅.

Вторая опСрация: Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнта

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ элСмСнт Π² ΠΊΡƒΡ‡Ρƒ трСбуСтся Π²Ρ‹ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ мСсто, Π½Π΅ ΡƒΡ‚Ρ€Π°Ρ‚ΠΈΠ² 2 свойства ΠΊΡƒΡ‡ΠΈ. Для этого Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт добавляСтся Π½Π° послСдний ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ bubble_up поднимаСтся Π² сторону корня, ΠΏΠΎΠΊΠ° Π½Π°Π΄ Π½ΠΈΠΌ Π½Π΅ окаТСтся элСмСнт мСньший Π½Π΅Π³ΠΎ ΠΈΠ»ΠΈ ΠΎΠ½ Π½Π΅ станСт ΠΊΠΎΡ€Π½Π΅ΠΌ. Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ этой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π²Π½Π° Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива

Код, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ опрСдСлСния min ΠΈ max-heap:

ΠžΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ нСпосрСдствСнно ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° контроля ΠΌΠ΅Π΄ΠΈΠ°Π½Ρ‹, основанном Π½Π° использовании ΠΊΡƒΡ‡ΠΈ. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²Π΅ ΠΊΡƒΡ‡ΠΈ, ΠΎΠ΄Π½Ρƒ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ, Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ. ИдСя Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ: Π΄Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π΄Π΅Π»ΠΈΠΌ ΠΏΠΎΡ‚ΠΎΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½Π° Π²Π΅Ρ€Ρ…Π½ΡŽΡŽ Ρ‡Π°ΡΡ‚ΡŒ, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ большиС значСния ΠΈ ниТнюю, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ мСньшиС значСния. ΠŸΠ΅Ρ€Π²ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ Π½Π° основС min-heap, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π»Π΅ΠΆΠΈΡ‚ Π½Π° Ρ€Π°Π·Π΄Π΅Π»Π΅, Π° Π²Ρ‚ΠΎΡ€ΡƒΡŽ Π½Π° основС max-heap.

Всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Ρ‡ΠΈΡ‚Π°Π΅ΠΌ ΠΈΠ· ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ΅ число, Π±ΡƒΠ΄Π΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π΅Π³ΠΎ Π² Π²Π΅Ρ€Ρ…Π½ΡŽΡŽ Ρ‡Π°ΡΡ‚ΡŒ, Ссли ΠΎΠ½ΠΎ большС наимСньшСго ΠΈΠ· этой ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ‹ ΠΈ Π² ниТнюю Ρ‡Π°ΡΡ‚ΡŒ, Ссли Π²Π΅Ρ€Π½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅. Π—Π°Ρ‚Π΅ΠΌ, осущСствив вставку, Π±ΡƒΠ΄Π΅ΠΌ Π±Π°Π»Π°Π½ΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²Π΅ части, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ содСрТали ΠΏΠΎ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅ ΠΈΠ· Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

ΠšΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ внСшнСго Ρ†ΠΈΠΊΠ»Π°, ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ нСсколько шагов ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива, посколько ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ вставки ΠΈ получСния элСмСнта ΠΈΠ· ΠΊΡƒΡ‡ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ этой ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ. По этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ итоговая ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива.

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

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

Π’ ΠΏΡ€Π΅Π΄Π΄Π²Π΅Ρ€ΠΈΠΈ старта курса «Алгоритмы ΠΈ структуры Π΄Π°Π½Π½Ρ‹Ρ…Β» ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ°Π΅ΠΌ всСх ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΡ… Π½Π° бСсплатный Π΄Π²ΡƒΡ…Π΄Π½Π΅Π²Π½Ρ‹ΠΉ интСнсив ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅: Алгоритм сТатия Π΄Π°Π½Π½Ρ‹Ρ… β€” ΠΊΠΎΠ΄ Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°.

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

Мой Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ: Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Ρ‹ Π·Π° Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ врСмя

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива

НахоТдСниС ΠΌΠ΅Π΄ΠΈΠ°Π½Ρ‹ Π·Π° O(n log n)

Π£ этого способа самый простой ΠΊΠΎΠ΄, Π½ΠΎ ΠΎΠ½ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎ Π½Π΅ самый быстрый.

НахоТдСниС ΠΌΠ΅Π΄ΠΈΠ°Π½Ρ‹ Π·Π° срСднСС врСмя O(n)

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ нашим шагом Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Ρ‹ Π² срСднСм Π·Π° Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ врСмя, Ссли Π½Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π΅Π·Ρ‚ΠΈ. Π­Ρ‚ΠΎΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Β«quickselectΒ», Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π’ΠΎΠ½ΠΈ Π₯ΠΎΠ°Ρ€ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Ρ‘Π» Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ сортировки с ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ β€” quicksort. Π­Ρ‚ΠΎ рСкурсивный Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, ΠΈ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ любой элСмСнт (Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ΅Π΄ΠΈΠ°Π½Ρƒ).

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ quickselect ΠΌΠ΅Π΄ΠΈΠ°Π½Ρƒ, ΠΌΡ‹ Π²Ρ‹Π΄Π΅Π»ΠΈΠΌ quickselect Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. Наша функция quickselect_median Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ quickselect с Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ индСксами.

Π”ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ срСднСго Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ O(n)

Π’ срСднСм pivot Ρ€Π°Π·Π±ΠΈΠ²Π°Π΅Ρ‚ список Π½Π° Π΄Π²Π΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π²Π½Ρ‹Ρ… части. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ каТдая ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ рСкурсия ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ с 1 ⁄2 Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ шага.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива

БущСствуСт мноТСство способов Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ этот ряд сходится ΠΊ 2n. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΡ… здСсь, я сошлюсь Π½Π° Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ Π² Π’ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ, ΠΏΠΎΡΠ²ΡΡ‰Ρ‘Π½Π½ΡƒΡŽ этому бСсконСчному ряду.

Quickselect Π΄Π°Ρ‘Ρ‚ Π½Π°ΠΌ Π»ΠΈΠ½Π΅ΠΉΠ½ΡƒΡŽ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² срСднСм случаС. Π§Ρ‚ΠΎ, Ссли нас Π½Π΅ устраиваСт срСднСС, ΠΈ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ выполнСния Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π·Π° Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ врСмя?

Π”Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ O(n)

Π‘ ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ этого, Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ для ΠΏΠΎΠ΄Π±ΠΎΡ€Π° ΠΎΠΏΠΎΡ€Π½Ρ‹Ρ… элСмСнтов. НашСй Ρ†Π΅Π»ΡŒΡŽ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±ΠΎΡ€ Π·Π° Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ врСмя pivot, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Ρ…ΡƒΠ΄ΡˆΠ΅ΠΌ случаС удаляСт достаточноС количСство элСмСнтов для обСспСчСния скорости O(n) ΠΏΡ€ΠΈ использовании Π΅Π³ΠΎ вмСстС с quickselect. Π­Ρ‚ΠΎΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π² 1973 Π³ΠΎΠ΄Ρƒ Π‘Π»ΡƒΠΌΠΎΠΌ (Blum), Π€Π»ΠΎΠΉΠ΄ΠΎΠΌ (Floyd), ΠŸΡ€Π°Ρ‚Ρ‚ΠΎΠΌ (Pratt), РивСстом (Rivest) ΠΈ Π’Π°Ρ€ΡŒΡΠ½ΠΎΠΌ (Tarjan). Если ΠΌΠΎΠ΅Π³ΠΎ объяснСния Π²Π°ΠΌ Π½Π΅ Ρ…Π²Π°Ρ‚ΠΈΡ‚, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΡ… ΡΡ‚Π°Ρ‚ΡŒΡŽ 1973 Π³ΠΎΠ΄Π°. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, я ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΎΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡŽ мою Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π½Π° Python:

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π΄ΠΎΠΊΠ°ΠΆΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° ΠΌΠ΅Π΄ΠΈΠ°Π½ являСтся Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ pivot. Нам ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚, Ссли ΠΌΡ‹ прСдставим Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ нашСго Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π²Ρ‹Π±ΠΎΡ€Π° ΠΎΠΏΠΎΡ€Π½Ρ‹Ρ… элСмСнтов:

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива

Но достаточно Π»ΠΈ Π½Π°ΠΌ ΠΎΡ‚Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ 30% элСмСнтов Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ этапС? На ΠΊΠ°ΠΆΠ΄ΠΎΠΌ этапС наш Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива

Подводим ΠΈΡ‚ΠΎΠ³

Π£ нас Π΅ΡΡ‚ΡŒ quickselect, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΌΠ΅Π΄ΠΈΠ°Π½Ρƒ Π·Π° Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ врСмя ΠΏΡ€ΠΈ условии наличия достаточно Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΎΠΏΠΎΡ€Π½ΠΎΠ³ΠΎ элСмСнта. Π£ нас Π΅ΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΌΠ΅Π΄ΠΈΠ°Π½Ρ‹ ΠΌΠ΅Π΄ΠΈΠ°Π½, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ O(n) для Π²Ρ‹Π±ΠΎΡ€Π° ΠΎΠΏΠΎΡ€Π½ΠΎΠ³ΠΎ элСмСнта (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ достаточно Ρ…ΠΎΡ€ΠΎΡˆ для quickselect). Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΠ² ΠΈΡ…, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ нахоТдСния ΠΌΠ΅Π΄ΠΈΠ°Π½Ρ‹ (ΠΈΠ»ΠΈ n-Π½ΠΎΠ³ΠΎ элСмСнта Π² списка) Π·Π° Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ врСмя!

ΠœΠ΅Π΄ΠΈΠ°Π½Ρ‹ Π·Π° Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ врСмя Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅

Π’ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ сравнСниС элСмСнтов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ. Π­Ρ‚ΠΎ Π½Π΅ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния, Π° ΠΎΠ±Ρ‰Π΅Π΅ количСство элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ рассматриваСт функция quickselect. Π—Π΄Π΅ΡΡŒ Π½Π΅ учитываСтся Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡŽ ΠΌΠ΅Π΄ΠΈΠ°Π½Ρ‹ ΠΌΠ΅Π΄ΠΈΠ°Π½.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива

ИмСнно этого ΠΌΡ‹ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π»ΠΈ! Π”Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΎΠΏΠΎΡ€Π½Ρ‹ΠΉ элСмСнт ΠΏΠΎΡ‡Ρ‚ΠΈ всСгда рассматриваСт ΠΏΡ€ΠΈ quickselect мСньшСС количСство элСмСнтов, Ρ‡Π΅ΠΌ случайный. Иногда Π½Π°ΠΌ Π²Π΅Π·Ρ‘Ρ‚ ΠΈ ΠΌΡ‹ ΡƒΠ³Π°Π΄Ρ‹Π²Π°Π΅ΠΌ pivot с ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ, Ρ‡Ρ‚ΠΎ проявляСтся ΠΊΠ°ΠΊ Π²ΠΏΠ°Π΄ΠΈΠ½Ρ‹ Π½Π° Π·Π΅Π»Ρ‘Π½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ. ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚!

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

РусскиС Π‘Π»ΠΎΠ³ΠΈ

МСдиана Π΄Π²ΡƒΡ… отсортированных массивов

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ с: https://blog.csdn.net/hk2291976/article/details/51107778

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ

Π­Ρ‚ΠΎ классичСский Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ «раздСляй ΠΈ властвуй»! Π­Ρ‚ΠΎΡ‚ вопрос ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ относится ΠΊ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ Π½Π°ΠΉΡ‚ΠΈ срСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π΄Π°Π½Π½Ρ‹Ρ… Π΄Π²ΡƒΡ… упорядочСнных массивах ΠΈΠ»ΠΈ ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ Π΄Π΅Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΊΠ°ΠΊ Π½Π°ΠΉΡ‚ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Top K Π² Π΄Π²ΡƒΡ… упорядочСнных массивах (ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Top K ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π° Π² поиск ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° k-Π³ΠΎ элСмСнта).

ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΡƒΠ΄Π°Π»Π΅Π½ слСва ΠΎΡ‚ ΠΌΠ΅Π΄ΠΈΠ°Π½Ρ‹ x x Число, ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ΅ справа x x МСдиана ΠΎΡΡ‚Π°Π²ΡˆΠ΅Π³ΠΎΡΡ массива остаСтся исходной ΠΌΠ΅Π΄ΠΈΠ°Π½ΠΎΠΉ.

Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ», Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½:

НСобходимыС знания

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚Π΅ «Ρ€Π°Π·Ρ€Π΅Π·»

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Ρ€Π΅Π·Π°Ρ‚ΡŒ Аккуратный Массив Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° Π»Π΅Π²ΡƒΡŽ ΠΈ ΠΏΡ€Π°Π²ΡƒΡŽ части.Π Π°Π·Ρ€Π΅Π· называСтся Cut.Π‘Π»Π΅Π²Π° ΠΈ справа ΠΎΡ‚ Ρ€Π°Π·Ρ€Π΅Π·Π° Π±ΡƒΠ΄ΡƒΡ‚ Π΄Π²Π° элСмСнта: максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ слСва ΠΈ минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ справа.

ΠœΡ‹ опрСдСляСм L = Max (LeftPart), R = Min (RightPart)

Ps. Π Π°Π·Ρ€Π΅Π· ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Ρ€Π΅Π·Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя числами ΠΈΠ»ΠΈ Π½Π° ΠΎΠ΄Π½ΠΎ число.Если Ρ€Π°Π·Ρ€Π΅Π·Π°Ρ‚ΡŒ Π½Π° ΠΎΠ΄Π½ΠΎ число, Ρ‚ΠΎ число ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Π»Π΅Π²ΠΎΠΉ ΠΈ ΠΏΡ€Π°Π²ΠΎΠΉ. (Π― расскаТу ΠΎΠ± этом ΠΏΠΎΠ·ΠΆΠ΅, ΠΊΠΎΠ³Π΄Π° Π±ΡƒΠ΄Ρƒ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ срСднСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ массива)

НапримСр, для ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ [2 3 5 7] Ρ€Π°Π·Ρ€Π΅Π· находится ΠΌΠ΅ΠΆΠ΄Ρƒ 3 ΠΈ 5.
[2 3 / 5 7]
МСдиана Ρ€Π°Π²Π½Π° (3 + 5) / 2 = 4

Если ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ [2 3 4 5 6] Ρ€Π°Π·Ρ€Π΅Π·Π°Π½Π° Π½Π° 4, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ 4 Π½Π° 2
[2 3 (4/4) 5 7]
МСдиана Ρ€Π°Π²Π½Π° (4 + 4) / 2 = 4

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, являСтся Π»ΠΈ ΠΌΠ΅Π΄ΠΈΠ°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1 числом ΠΈΠ»ΠΈ 2 числами, ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎ.

Π’Ρ‹Ρ€Π΅Π·Π°Ρ‚ΡŒ ΠΈ k-ΠΉ элСмСнт

Π—Π΄Ρ€Π°Π²Ρ‹ΠΉ смысл 1: Если Ρ€Π°Π·Ρ€Π΅Π·Π°Ρ‚ΡŒ Π² ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ k, Ρ‚ΠΎ A [k] Π±ΡƒΠ΄Π΅Ρ‚ L. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Ссли слСва Π΅ΡΡ‚ΡŒ k элСмСнтов, A [k] ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π»Π΅Π²ΠΎΠΉ части. (Π­Ρ‚ΠΎ всС ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ, Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ это ΠΎΠ±ΡŠΡΡΠ½ΡΡ‚ΡŒ!)

Π”Π²ΠΎΠΉΠ½ΠΎΠΉ массив

ΠœΡ‹ устанавливаСм:
C i Ci Π‘Ρ€Π΅Π· i-Π³ΠΎ массива. Π§Ρ‚ΠΎΠ±Ρ‹
L i Li Π›Π΅Π²Ρ‹ΠΉ элСмСнт послС Ρ€Π°Π·Ρ€Π΅Π·Π° i-Π³ΠΎ массива.
R i Ri ΠŸΡ€Π°Π²Ρ‹ΠΉ элСмСнт послС Ρ€Π°Π·Ρ€Π΅Π·Π° i-Π³ΠΎ массива.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива

Как ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ k-ΠΉ элСмСнт ΠΈΠ· массива double

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, Ρ‡Ρ‚ΠΎ k = 3

Π—Π°
[ 1 4 7 9 ] [1 4 7 9]
[ 2 3 5 ] [2 3 5]

УстановитС C1 = 2, Ρ‚ΠΎΠ³Π΄Π° C2 = k-C1 = 1
[ 1 4 / 7 9 ] [1 4/7 9]
[ 2 / 3 5 ] [2/3 5]

Если Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ИзмСнСниС k Π½Π° 4 ΠΈ Π΅ΡΡ‚ΡŒ срСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΡΡ€Π΅Π΄Π½ΡŽΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ особых ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π² Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π½ΠΈΠΆΠ΅.

Π§Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ массива

Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ массив всСгда Π½Π΅Ρ‡Π΅Ρ‚Π½Ρ‹ΠΌ

Π•ΡΡ‚ΡŒ Π»ΠΈ способ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ Π΄Π²ΡƒΡ… массивов Π΄ΠΎ Π½Π΅Ρ‡Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Ρ‡Π΅Ρ‚Π½ΠΎΠ³ΠΎ числа?

ЀактичСски, Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ «#» (этот Ρ‚Ρ€ΡŽΠΊΠ°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΌΠ°Π½Π°Ρ…Π΅Ρ€Π°ΠžΠ½ Ρ‚Π°ΠΊΠΆΠ΅ примСняСтся Π²), Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π΄Π»ΠΈΠ½Π° массива всСгда являСтся Π½Π΅Ρ‡Π΅Ρ‚Π½Ρ‹ΠΌ числом (2n + 1 всСгда являСтся Π½Π΅Ρ‡Π΅Ρ‚Π½Ρ‹ΠΌ числом). Π§Ρ‚ΠΎΠ±Ρ‹
Ps. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ это Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅, Π½Π° самом Π΄Π΅Π»Π΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ шага Π½Π΅Ρ‚ Π²ΠΎΠΎΠ±Ρ‰Π΅, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ прСобразования ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт послС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ добавлСния соотвСтствуСт исходному элСмСнту ΠΎΠ΄ΠΈΠ½ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ

Π΄ΠΎlenпослС Ρ‚ΠΎΠ³ΠΎlen
[ 1 4 7 9 ]4[ # 1 # 4 # 7 # 9 # ]9
[ 2 3 5 ]3[ # 2 # 3 # 5 # ]7

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ

Π’ Ρ‡Π΅ΠΌ прСимущСство этого, Π·Π°Ρ‡Π΅ΠΌ Π²Ρ‹ Π΅Π³ΠΎ добавляСтС? ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ послС этого добавлСния КаТдая позиция ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ / 2, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ исходного элСмСнта.

/Π˜ΡΡ…ΠΎΠ΄Π½ΠΎΠ΅ мСстополоТСниСНовоС ΠΌΠ΅ΡΡ‚ΠΎΠŸΠΎΡΠ»Π΅ дСлСния Π½Π° 2
0011
5252

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ Β«Ρ€Π°Π·Ρ€Π΅Π·Β» Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ массивС

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π΅Π³ΠΎ Π»Π΅Π³Ρ‡Π΅ Ρ€Π°Π·Ρ€Π΅Π·Π°Ρ‚ΡŒ. Если Ρ€Π°Π·Ρ€Π΅Π·Π°Π½ΠΈΠ΅ ΠΏΠΎ Β«#Β» ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π΅Π·Π°Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя элСмСнтами, Ρ€Π°Π·Ρ€Π΅Π·Π°Π½ΠΈΠ΅ ΠΏΠΎ числам Ρ€Π°Π²Π½ΠΎΡΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΡŽ чисСл Π½Π° 2 части.

Π£Π΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² любом случаС:

ΠΏΡ€ΠΈΠΌΠ΅Ρ€:
1. Π Π°Π·Ρ€Π΅Π·Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ 4/7 β€˜#’, C = 4, L = (4-1) / 2 = 1, R = 4/2 = 2
Π­Ρ‚ΠΎ исходная позиция 4 ΠΈ 7! Π§Ρ‚ΠΎΠ±Ρ‹
2. Π’Ρ‹Ρ€Π΅Π·Π°Ρ‚ΡŒ Π½Π° 3, C = 3, L = (3-1) / 2 = 1, R = 3/2 = 1, Ρ‡Ρ‚ΠΎ являСтся ΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ 3!

Π‘ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ Π»Π΅Π³ΠΊΠΎ ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ. Π”ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΎ Π΄Π²ΡƒΡ… массивах ΠΊΠ°ΠΊ ΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ массивС A, Π² настоящСС врСмя сущСствуСт 2m + 2n + 2 элСмСнта, Ρ€Π°Π·Ρ€Π΅Π·Π°Π½Π½Ρ‹Ρ… Π½Π° m + n + 1, поэтому Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°ΠΉΡ‚ΠΈ m + n + 1 ΠŸΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ элСмСнт position ΠΈ элСмСнт position m + n + 2. Π§Ρ‚ΠΎΠ±Ρ‹
БлСва: A [m + n + 1] = Макс (L1 + L2)
Π‘ΠΏΡ€Π°Π²Π°: A [m + n + 2] = Min (R1 + R2)

Π§Ρ‚ΠΎ касаСтся схСмы поиска Ρ€Π°Π·Ρ€Π΅Π·ΠΎΠ² Π² Π΄Π²ΡƒΡ… массивах, Ρ‚ΠΎ это схСма Π²Ρ‹ΡˆΠ΅.

РаздСляй ΠΈ властвуй

Π‘ ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ вопрос Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ идСю «раздСляй ΠΈ властвуй».

Как Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ?

Как Π²Ρ‹Π»Π΅Ρ‡ΠΈΡ‚ΡŒ?

ВрансграничныС вопросы

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли C1 ΠΈΠ»ΠΈ C2 Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈΡΡŒ? Π§Ρ‚ΠΎΠ±Ρ‹
Вакая ситуация Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚: Если массив ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ мСньшС ΠΈΠ»ΠΈ большС ΠΌΠ΅Π΄ΠΈΠ°Π½Ρ‹. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ 4 ситуации:
— C1 = 0 β€”β€” ΠžΠ±Ρ‰ΠΈΠΉ массив 1 большС ΠΌΠ΅Π΄ΠΈΠ°Π½Ρ‹, L1> R2, Π° ΠΌΠ΅Π΄ΠΈΠ°Π½Π° находится Π² 2.
— C2 = 0 β€”β€” Π’Π΅ΡΡŒ массив 1 мСньшС ΠΌΠ΅Π΄ΠΈΠ°Π½Π½ΠΎΠ³ΠΎ значСния L1

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π° массива

β„–ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ Π΅ΠΉΡ‚ΠΈΠ½Π³
1 t ourist3804
2 B enq3618
3 M iracle033460
4 e cnerwala3419
5 d jq_cpp3394
6 p eehs_moorhsum3384
7 R adewoosh3366
8 k sun483363
9 m aroonrk3362
10 j iangly3354
β„–ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ’ΠΊΠ»Π°Π΄
1YouKn0wWho214
21-gon206
3 U m_nik196
4Errichto182
5awoo179
6sus178
7 t ourist176
8antontrygubO_o172
9-is-this-fft-170
10 R adewoosh169

Π‘Π»ΠΎΠ³ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ slalex

Попалась Π½Π΅Π΄Π°Π²Π½ΠΎ Π·Π°Π΄Π°Ρ‡ΠΊΠ°, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅ ΠΌΠΎΠ³Ρƒ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ. ((
Когда ΡƒΠΆΠ΅ мысли ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈΡΡŒ, Ρ€Π΅ΡˆΠΈΠ» ΠΏΠΎΠ³ΡƒΠ³Π»ΠΈΡ‚ΡŒ, Π½ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‚Π°ΠΊ ΠΈ Π½Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ». хотя Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΡ‚Π°Ρ‚ΡŒΡΡ… ΠΏΠΈΡˆΡƒΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ сущСствуСт ))

Π—Π°Π΄Π°Ρ‡Π° Ρ‚Π°ΠΊΠΎΠ²Π°, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΌΠ΅Π΄ΠΈΠ°Π½Ρƒ массива (нСотсортированного ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅).
Π’.Π΅. Ρ‚Π°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ послС сортировки массива A[1. n] Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ:
элСмСнту A[n / 2 + 1], ΠΏΡ€ΠΈ Π½Π΅Ρ‡Π΅Ρ‚Π½ΠΎΠΌ n ΠΈ (A[n / 2] + A[n / 2 + 1]) / 2.0, ΠΏΡ€ΠΈ Ρ‡Π΅Ρ‚Π½ΠΎΠΌ n.

НО. самоС интСрСсноС, Ρ‡Ρ‚ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΌ. 8)

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

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

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