ΠΊΠ°ΠΊΠ°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅
ΠΠ»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ. ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ ΠΏΠΎΠΈΡΠΊΠ°. ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ.
ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ Π·Π°Π΄Π°ΡΠΈ ΡΠ°ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ΄ΡΠΌΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°. Π ΡΠ²ΡΠ·ΠΈ Ρ ΡΠ΅ΠΌ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ: ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² βΠ»ΡΡΡΠ΅β?
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π², βΠ»ΡΡΡΠ΅β, Π²ΠΈΠ΄ΠΈΠΌΠΎ, ΡΠ°ΠΊΠΎΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π° ΡΠ΅Ρ ΠΆΠ΅ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ, ΠΏΠΎΡΡΠ΅Π±Π»ΡΡ ΠΌΠ΅Π½ΡΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² (ΠΏΠ°ΠΌΡΡΠΈ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ). ΠΡΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π΅ΡΡΡΠΎΠ³ΠΎΠ΅ ΡΠ°ΡΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅. ΠΠ»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠΎΠ³ΠΎΠ³ΠΎ ΡΠ°ΡΡΡΠΆΠ΄Π΅Π½ΠΈΡ Π²Π²Π΅Π΄Π΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ½ΡΡΠΈΠΉ.
ΠΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ°Π³ΠΎΠ², ΠΏΡΠΎΠΉΠ΄Π΅Π½Π½Π°Ρ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ .
ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°ΠΌΠΈΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ ΠΈ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ, ΠΏΠΎΡΠΎΠΆΠ΄Π°Π΅ΠΌΡΠΌ ΡΡΠΈΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ. ΠΠ΅ΡΠ²ΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ Π²ΡΠΎΡΠΎΠ³ΠΎ.
Π―ΡΠ½ΠΎ, ΡΡΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ. Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΠΉ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ ΠΈ ΡΡΠΏΠ΅ΡΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ°Π·Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ.
ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΅ΠΌΡ \(T\) Π²ΡΡΠ°Π·ΠΈΡΡ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ \(k\) ΠΈ ΡΡΠ΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ \(t\) :
ΠΡΠΈ ΡΡΠΎΠΌ, \(k\) ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ ΡΠ°ΠΌΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°, Π° \(t\) β ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ.
ΠΠ²ΠΈΠ΄Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ \(t\) ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΎΠΉ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ, ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅ΡΡΡ Ρ ΡΠΎΡΠ½ΠΎΡΡΡΡ Π΄ΠΎ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»Ρ. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠΌ ΡΠΎΡΡΠ°.
ΠΡΠΎΠΌΠ΅ Π²ΡΠ΅ΠΌΠΌΠ΅Π½ΠΎΜΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°, Π²Π°ΠΆΠ½ΠΎΠΉ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅Π½Π½Π°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°.
\(S\) Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΎΠΆΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, Π΅ΡΠ»ΠΈ Π΄Π²Π° ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ΅Π»ΡΠ΅ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ 4 ΠΈ 8 Π±Π°ΠΉΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅Π½Π½Π°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π½Π° 8-Π±Π°ΠΉΡΠ½ΡΡ ΡΠ΅Π»ΡΡ Π±ΡΠ΄Π΅Ρ Π²Π΄Π²ΠΎΠ΅ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ Π½Π° 4-Π±Π°ΠΉΡΠ½ΡΡ ΡΠ΅Π»ΡΡ . ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅Π½Π½Π°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠΌ ΡΠΎΡΡΠ°.
ΠΠ»Π°ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ²
ΠΡΠ΄Π΅Π»ΡΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ: ΡΡΠΎ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΡΡ ΠΎΠΆΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ.
ΠΡΠ΄Π΅Π»ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ:
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΠ΅ΡΠΈΡΡΡΡ ΠΏΠΎΠ½ΡΡΠΈΠ΅ΠΌ Π½Π΅Π΄Π΅ΡΠ΅ΡΠΌΠ΅Π½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ Π’ΡΡΡΠΈΠ½Π³Π° (ΠΠΠ’). ΠΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΌΠΈ, Ρ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ Π’ΡΡΡΠΈΠ½Π³Π° Π½Π° ΠΠΠ’, Π° Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡ N (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ NP), ΠΊΡΠΎΠΌΠ΅ NTIME ΠΈ NSPACE, Π³Π΄Π΅ D Π·Π°ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° N.
ΠΠΠ’ β ΡΡΠΎ ΡΠΈΡΡΠΎ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°ΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΠ’, Ρ ΡΠ΅ΠΌ ΠΎΡΠ»ΠΈΡΠΈΠ΅ΠΌ, ΡΡΠΎ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ. ΠΡΠΈ ΡΡΠΎΠΌ, ΠΠΠ’ Π²ΡΠ΅Π³Π΄Π° Π²ΡΠ±ΠΈΡΠ°Π΅Ρ ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΡΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠ°Π³ΠΎΠ². ΠΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ, ΠΠΠ’ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ Π²Π΅ΡΠ²Π΅ΠΉ ΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅Ρ ΡΡ Π²Π΅ΡΠ²Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΈΡΠ»ΠΎ ΡΠ°Π³ΠΎΠ².
ΠΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ»ΡΡΠ°ΡΡ, ΡΡΠΎ ΠΊΠ²Π°Π½ΡΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΠΠ’. Π₯ΠΎΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΊΠ°Π·Π°ΡΡΡΡ Π²Π΅ΡΠ½ΡΠΌ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ , Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΠΠ’ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ, ΡΠ΅ΠΌ ΠΊΠ²Π°Π½ΡΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ.
ΠΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΡΠΎ \(P \subseteq NP \subseteq PSPACE \subseteq EXPTIME \subseteq NEXPTIME \subseteq EXPSPACE\)
ΠΠΎΠΏΡΠΎΡ ΡΠ°Π²Π΅Π½ΡΡΠ²Π° P ΠΈ NP ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π³Π»Π°Π²Π½ΡΡ Π½Π΅ΡΠ΅ΡΠ΅Π½Π½ΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠΈ.
ΠΡΠΈΠΌΠ΅ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ²
ΠΡΠΈΠ²Π΅Π΄Π΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΏΡΠΎΡΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ.
ΠΠΎΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΠ΅Π»ΡΡ ΡΡΠ΅ΠΏΠ΅Π½Ρ
ΠΡΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π±ΡΠ» ΠΎΠΏΠΈΡΠ°Π½ Π² ΠΡΠ΅Π²Π½Π΅ΠΉ ΠΠ½Π΄ΠΈΠΈ Π΅ΡΠ΅ Π΄ΠΎ Π½Π°ΡΠ΅ΠΉ ΡΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π½Π°ΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ \(n\) Π²Π΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° \(x\)
Π‘Π»Π΅Π΄ΡΠ΅Ρ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ βΠ½Π°ΠΈΠ²Π½ΠΎΠΉβ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, ΡΡΠ΅Π±ΡΡΡΠ΅ΠΉ \(\mathcal
Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅Π»ΡΡ
ΠΡΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΈΠ½ΠΎΠ³Π΄Π° ΡΡΡΡΠΊΠΈΠΌ ΠΈΠ»ΠΈ ΠΊΡΠ΅ΡΡΡΡΠ½ΡΠΊΠΈΠΌ, Ρ ΠΎΡΡ ΠΎΠ½ Π±ΡΠ» ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ Π΅ΡΠ΅ Π² ΠΡΠ΅Π²Π½Π΅ΠΌ ΠΠ³ΠΈΠΏΡΠ΅.
ΠΠ΅ΡΠ²ΡΠΉ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΌΠ½ΠΎΠΆΠ°Π΅ΡΡΡ Π½Π° Π΄Π²Π°, Π° Π²ΡΠΎΡΠΎΠΉ β Π΄Π΅Π»ΠΈΡΡΡ Π½Π°ΡΠ΅Π»ΠΎ Π½Π° 2. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² Π΄Π²Π° ΡΡΠΎΠ»Π±ΠΈΠΊΠ°, ΠΏΠΎΠΊΠ° Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ 1.
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠΌΠΌΠ° ΡΠΈΡΠ΅Π» ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΡΠΎΠ»Π±ΠΈΠΊΠ°, Π½Π°ΠΏΡΠΎΡΠΈΠ² ΠΊΠΎΡΠΎΡΡΡ ΡΡΠΎΡΡ Π½Π΅ΡΠ΅ΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π° Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ ΡΡΠΎΠ»Π±ΠΈΠΊΠ΅.
ΠΠ»Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΠΈ ΠΎΠ½Π° Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π²Ρ
ΠΎΠ΄Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
, ΠΏΠΎΡΡΠΎΠΌΡ \(S(n) = \mathcal
ΠΠΏΡΡΡ ΠΆΠ΅, ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ βΠ½Π°ΠΈΠ²Π½ΠΎΠΉβ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, ΡΡΠ΅Π±ΡΡΡΠ΅ΠΉ \(\mathcal
ΠΡΠΈΠΌΠ΅Ρ
Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ 23 Π½Π° 43.
ΠΠΎΠ·ΡΠΌΠ΅ΠΌ 23 Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»Ρ.
| 43 | 23 | Π½Π΅ΡΠ΅ΡΠ½ΠΎΠ΅ |
| 86 | 11 | Π½Π΅ΡΠ΅ΡΠ½ΠΎΠ΅ |
| 172 | 5 | Π½Π΅ΡΠ΅ΡΠ½ΠΎΠ΅ |
| 344 | 2 | |
| 688 | 1 | Π½Π΅ΡΠ΅ΡΠ½ΠΎΠ΅ |
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ \(43+86+172+688 = 989\)
ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ ΠΏΠΎΠΈΡΠΊΠ°
ΠΠΎΠΈΡΠΊ ΠΈΠΌΠ΅Π΅Ρ ΡΠ°Π·Π½ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π΅ΡΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ² ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½ ΠΈ Π΅ΡΠ»ΠΈ Π½Π΅Ρ. ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΎΠ± ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅ a priori Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
ΠΠΈΠ½Π΅ΠΉΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ Π² Ρ ΡΠ΄ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Π΅ΡΡ ΠΌΠ°ΡΡΠΈΠ², ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ \(\mathcal O(n)\) ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ.
ΠΠΎΠΈΡΠΊ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°
ΠΠΌΠ΅Π΅ΡΡΡ ΠΌΠ°ΡΡΠΈΠ² \(a\) ΡΠ°Π·ΠΌΠ΅ΡΠ° \(n\) (ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ Ρ 1), ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π°ΠΉΡΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ.
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° \(\mathcal O(n)\)
ΠΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ Π² ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅
Π ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ² ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½ (ΡΠΊΠ°ΠΆΠ΅ΠΌ, ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ), Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π΅Π½: Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠ°Π²Π½ΠΈΠ² βΡΡΠ΅Π΄Π½ΠΈΠΉβ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΠ°Π·Ρ ΠΎΡΡΠ΅ΡΡ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
ΠΠΌΠ΅Π΅ΡΡΡ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΠΉ ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ² \(a\) ΡΠ°Π·ΠΌΠ΅ΡΠ° \(n\) (ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ Ρ 1), Π½Π°ΠΉΡΠΈ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠ°Π²Π½ΠΎΠ³ΠΎ \(P\)
ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ
ΠΡΠΎΡΡΡΠ΅ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° βΠΏΡΠ·ΡΡΡΠΊΠΎΠΌβ
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ: ΡΠ°Π½Π½Π΅Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ Π΅ΡΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ² Π½Π΅ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ: Π² Π»ΡΡΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ \(n-1\) ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ (Π΅ΡΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ² ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½). Π Ρ ΡΠ΄ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ \(n-1+n-2+n-3+\ldots = n(n-1)/2 = \mathcal O(n^2).\) ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ \(n(n-1)/2 = \mathcal O(n^2).\) ΠΎΠ±ΠΌΠ΅Π½ΠΎΠ².
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° Π²ΡΠ±ΠΎΡΠΎΠΌ
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ: \(n(n-1)/2 = \mathcal O(n^2)\) ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ. ΠΠ΅ Π±ΠΎΠ»Π΅Π΅ \(n-1 = \mathcal O(n)\) ΠΎΠ±ΠΌΠ΅Π½ΠΎΠ².
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° Π²ΡΡΠ°Π²ΠΊΠ°ΠΌΠΈ
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° Π²ΡΡΠ°Π²ΠΊΠ°ΠΌΠΈ ΡΠΎΡΡΠΈΡΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ² Ρ Π½Π°ΡΠ°Π»Π°. ΠΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΈΡΠ΅Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π΅ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ Π²ΡΡΠ°Π²ΠΊΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΡΠΆΠ΅ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ°ΡΡΡ.
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ βΡΠ°Π·Π΄Π΅Π»ΡΠΉ ΠΈ Π²Π»Π°ΡΡΠ²ΡΠΉβ: ΠΌΠ°ΡΡΠΈΠ² ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠΏΠΎΠ»Π°ΠΌ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΡΠ°ΡΡΠ΅ΠΉ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ ΡΠΎΡΡΠΈΡΡΠ΅ΡΡΡ, Π·Π°ΡΠ΅ΠΌ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°ΡΡΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ.
Π Π΅ΠΊΡΡΡΠΈΡ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ Π³Π»ΡΠ±ΠΈΠ½Ρ, Ρ.ΠΊ. ΠΌΠ°ΡΡΠΈΠ² 1 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½.
\[t(n) = 2t(n/2)+c\cdot n\] \[t(1) = \mathcal O(1) = c\]
\[t(n) = 2(2t(n/2^2)+c\cdot n/2)+c\cdot n = 2^2 t(n/2^2)+2c\cdot n\] \[t(n) = 2^2 (2t(n/2^3)+c\cdot n/4)+2c\cdot n = 2^3t(n/2^3)+3c\cdot n\] \[\ldots\] \[t(n) = c 2^ <\log_2 n>+ c\cdot n \log_2 n = c n + c\cdot n\log_2 n = \mathcal O(n\log n)\]
ΠΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ (ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎ ΠΏΠΎΠ·ΠΆΠ΅), ΡΡΠΎ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ°, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½Π°Ρ Π½Π° Π±ΠΈΠ½Π°ΡΠ½ΠΎΠΌ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π½ΠΈΠΆΠ΅ \(\mathcal O(n\log n).\)
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠΎΠ΄ΡΡΡΡΠΎΠΌ
ΠΠ°, Π½ΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π·Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π³ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΡΠ΅ΠΌ Π΄Π°ΡΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅.
ΠΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅ΠΉ Π½Π°ΠΏΡΡΠΌΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠΎΠ΄ΡΡΡΡΠΎΠΌ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠ°ΡΡΠΈΠ² ΡΠ΅Π»ΡΡ
ΡΠΈΡΠ΅Π» \(\brace
ΠΠΎΡΡΡΠΎΠΈΠΌ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ°ΡΡΠΈΠ²Π° \(\brace
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ \(\brace
Π’ΠΎΠ³Π΄Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ΅Π³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° β \(\mathcal O(N+\overline x),\) ΠΈΠ»ΠΈ \(\mathcal O(N)\) Π΅ΡΠ»ΠΈ \(\overline x\) β ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°.
ΠΡΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ, ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ \(\overline x\) ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠ°Π»ΠΎ. ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅Π½Π½Π°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° \(\mathcal O(\overline x),\) ΠΈ, ΡΠΊΠ°ΠΆΠ΅ΠΌ, ΠΏΡΠΈ \(\overline x = 2^<64>,\) ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎ ΠΌΠ΅Π½ΡΡΠ΅ΠΉ ΠΌΠ΅ΡΠ΅ 18 ΡΠΊΡΠ°Π±Π°ΠΉΡ (18Β·10ΒΉβΈ Π±Π°ΠΉΡ, 18 ΠΌΠ»Π½ ΡΠ΅ΡΠ°Π±Π°ΠΉΡ) Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠΎΡΠ°Π·ΡΡΠ΄Π½Π°Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° (radix sort)
ΠΡΠΌΠ΅ΡΠΈΠΌ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΡΠ΅Π±ΡΠ΅Ρ \(\mathcal O(N+P)\) Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ.
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° Π² ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅
ΠΡ Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Ρ Π½Π° ΠΠ²ΡΠΎΡ24
ΠΠ²ΠΎΠΈΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ Π² ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅ β ΡΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠΈΡΠΊΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π² ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠΎΠΏΠΎΠ»Π°ΠΌ.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΡ: Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ, ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π½ΠΎΠ³ΠΎ Π΄Π΅Π»Π΅Π½ΠΈΡ, Π΄ΠΈΡ ΠΎΡΠΎΠΌΠΈΡ.
ΠΠ±ΡΠ°Ρ ΡΡΡΡΠΊΡΡΡΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°
Π‘ΠΏΠΎΡΠΎΠ± Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π±ΡΡΡΡΠ°Ρ Π²Π΅ΡΡΠΈΡ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π² ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠ΅Π΄ΡΠ΅ΠΌ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΠΌΠ°ΡΡΠΈΠ²Π΅. ΠΠ½ ΠΏΡΠΈΠΎΠ±ΡΡΠ» ΡΠΈΡΠΎΠΊΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠ°ΠΌΠΎΠΉ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΎΠΉ Π²ΡΡΠΎΡΠΎΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΈΠ· Π²ΡΠ΅Ρ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π°ΠΌΠΈ Π΅Π³ΠΎ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². Π ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΅ΡΠ»ΠΈ Π±ΡΠ°ΡΡ Π½Π΅ ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ, ΠΎΠ½ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΡΡΠΈ, ΡΠΎ Π΅ΡΡΡ Π΅Π³ΠΎ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ. ΠΠ°Π·ΠΎΠ²ΠΎΠΉ ΡΠ΅ΡΡΠΎΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΡΠΎΠ±Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π° Π½Π° ΡΠ°Π²Π½ΡΠ΅ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ΠΊΠΈ ΠΈ Π·Π°ΡΠ΅ΠΌ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Β«ΡΠ΅ΡΡΡΠ΅Β» Π² ΠΌΠ°ΡΡΠΈΠ²Π΅:
Π ΠΈΡΡΠ½ΠΎΠΊ 1. ΠΠΎΠΈΡΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Β«ΡΠ΅ΡΡΡΠ΅Β» Π² ΠΌΠ°ΡΡΠΈΠ²Π΅. ΠΠ²ΡΠΎΡ24 β ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-Π±ΠΈΡΠΆΠ° ΡΡΡΠ΄Π΅Π½ΡΠ΅ΡΠΊΠΈΡ ΡΠ°Π±ΠΎΡ
ΠΠΏΠ΅ΡΠ²ΡΠ΅ ΡΡΠΎΡ ΡΠΏΠΎΡΠΎΠ± Π±ΡΠ» ΡΠΏΠΎΠΌΡΠ½ΡΡ Π½Π° Π·Π°Π½ΡΡΠΈΡΡ Π² ΡΠΊΠΎΠ»Π΅ ΠΡΡΠ° ΠΠΆΠΎΠ½Π° ΠΠΎΠΊΠ»ΠΈ Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ ΠΏΡΡΠΈΠ΄Π΅ΡΡΡΡΡ Π³ΠΎΠ΄ΠΎΠ² ΠΏΡΠΎΡΠ»ΠΎΠ³ΠΎ Π²Π΅ΠΊΠ°. Π‘Π½Π°ΡΠ°Π»Π° Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ°Π»ΡΡ Π»ΠΈΡΡ Π΄Π»Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π΄Π»ΠΈΠ½Ρ:
Π½ΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΏΡΡΠΈΠ΄Π΅ΡΡΡΡΡ Π³ΠΎΠ΄ΠΎΠ² ΠΏΡΠΎΡΠ»ΠΎΠ³ΠΎ Π²Π΅ΠΊΠ° Π.Π.ΠΠ΅ΠΌΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π» ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ»Π° ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ Π»ΡΠ±ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ². ΠΠΎΠ·Π΄Π½Π΅Π΅ ΠΠ΅ΡΠΌΠ°Π½ ΠΠΎΡΡΠ΅Π½Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π» ΡΡΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΠ»Π³ΠΎΠ», Π³Π΄Π΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΎΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π»ΠΎ ΡΠΈΡΠ»ΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠΌΠ΅Π½ΡΡΠ°Π»ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π΄ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ. ΠΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΎΠΌ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ°, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΠ΅ΡΠ΅Π±ΠΎΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ². ΠΠ½ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ:
ΠΠΎΡΠΎΠ²ΡΠ΅ ΡΠ°Π±ΠΎΡΡ Π½Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ ΡΠ΅ΠΌΡ
Π½ΠΎ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΠΌΠ°ΡΡΠΈΠ²Π°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Ρ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅. Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΏΡΠΈ:
ΠΠ²ΠΎΠΈΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΡΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ:
ΠΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ ΡΠ΄ΠΎΠ±Π΅Π½ ΠΏΡΠΈ Π±ΠΎΠ»ΡΡΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎΠΌ Π΅Π³ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠΈ. ΠΡΡΠΎΡΠΈΡ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠΈ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ°, ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ. Π 1971-ΠΎΠΌ Π³ΠΎΠ΄Ρ Π.Π. Π§Π°Π½Π΄ΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ» ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΡ ΠΎΠ΄Π½ΠΎΡΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° ΠΠΎΠ½Π°Π»ΡΠ΄Ρ ΠΠ½ΡΡΡ, ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π²ΡΠ΅ΠΌΡ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π² ΡΠ²ΠΎΠ΅ΠΉ Π½Π°ΡΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅.
ΠΠ°ΡΠ΅ΠΌ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΡΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ°, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΎΡΡ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΡΡΠ΅Π·ΠΊΠ° Π½Π° ΡΡΠΈ ΡΡΠ°ΡΡΠΊΠ°. ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΊΡΡΡΠ΅ΠΌΡΠΌΠ°.
ΠΠ΅ΡΠΎΠ΄ ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΠΈΡΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΠΈΡΠΊΠ°, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΠ°ΡΡΠΎΠΊ ΠΏΠΎΠΈΡΠΊΠ° Π½Π΅ Π΄Π΅Π»ΠΈΠ»ΡΡ Π½Π° Π΄Π²Π°, Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΎΡΡ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΏΠΎΠΈΡΠΊΠ° Π½Π° Π±Π°Π·Π΅ ΡΠ°Π·Π½ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΠ°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ, ΠΏΡΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎΠΌ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². Π‘ΡΠ΅Π΄Π½ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°Π΄Π°ΡΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ:
ΠΠΎ ΠΏΡΠΈ ΡΠ°ΠΌΠΎΠΌ ΠΏΠ»ΠΎΡ ΠΎΠΌ ΡΠ°ΡΠΊΠ»Π°Π΄Π΅, ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π½Π°:
Π 1986-ΠΎΠΌ Π³ΠΎΠ΄Ρ ΠΠ΅ΡΠ½Π°Ρ Π¨Π°Π·Π΅Π»Π»Π΅ΠΌ ΠΈ ΠΠ΅ΠΎΠ½ΠΈΠ΄Π°Ρ ΠΠΆ. ΠΡΠ±Π°ΠΉΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ»ΠΈ Π²Π°ΡΠΈΠ°Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Π·Π²Π°Π»ΠΈ Π΄ΡΠΎΠ±Π½ΡΠΉ ΡΠΏΡΡΠΊ, ΠΈ ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠΊΠΎΡΠΈΠ» Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°Ρ .
ΠΠ»ΠΈΠ·ΠΊΠΈΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ ΠΊ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΌΡ ΠΏΠΎΠΈΡΠΊΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΏΠΎΡΠΎΠ± Π±ΠΈΡΠ΅ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π½ΠΎΠ³ΠΎ Π΄Π΅Π»Π΅Π½ΠΈΡ. ΠΠ³ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΎΡΠ»ΠΈΡΠΈΠ΅ΠΌ ΡΡΠΈΡΠ°Π΅ΡΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π΅Π³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΠΈ, ΠΈ, ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΠ΅Π» ΠΊΠ°ΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΡΠ²Π»ΡΡΡΠΈΡ ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΠΎ ΡΠ²ΠΎΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ, Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΠΊΠ°ΠΊ Π² ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠΉ, ΡΠ°ΠΊ ΠΈ Π² ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΡΠΎΡΠΌΠ΅. Π―Π΄ΡΠΎ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ Π² ΠΎΠ±Π΅ΠΈΡ ΡΠΎΡΠΌΠ°Ρ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎΠΆΠ΅, Π½ΠΎ ΠΏΡΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠΈ ΠΈΠΌΠ΅Π΅ΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΎΡΠ½Π°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΡΡΠΎΠΈΡ Π² Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠΈ ΠΈΡ ΡΡΠ΅ΠΊΠ°.
ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ Π²ΠΎΠ·ΡΠΌΡΠΌ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² nn ΡΠΈΡΠ΅Π»
Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Π½Π΅ ΡΠ±ΡΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΏΠΎ Π½Π΅ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΈΠΌΠ΅Π΅ΠΌ ΡΠΈΡΠ»ΠΎ ΠΠ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΡΡΡΠΊΠ°ΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅. ΠΠ°Π½Π½ΡΠ΅, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ, ΡΡΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π²Π½ΡΠ΅ΡΡΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠΌΡ. ΠΠ»ΠΈ ΠΆΠ΅ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ ΠΏΡΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. Π€ΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²ΠΊΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π½Π° Π²ΡΠ΅Ρ ΡΡΠ°ΠΏΠ°Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΡΡ ΠΊΠ°ΠΊ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΡΠΉ ΠΎΡΡΠ΅Π·ΠΎΠΊ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΠ°ΠΆΠ΄Π°Ρ ΠΏΠ°ΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠΌΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π΅Ρ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ. ΠΠ° ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΌ ΡΠ°Π³Π΅ Π½Π° ΠΏΠ°ΡΡ Π΄Π΅Π»ΡΡΡΡ ΡΠΆΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΡΠΌΠΌΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, Π½Π΅ Π²ΠΎΡΠ΅Π΄ΡΠΈΠ΅ Π² ΡΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΡΡΠΌΠΌΡ, ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°Π³Π΅ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ ΡΡΠ΅Π΄Π½Π΅Π΅ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΈ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ²:
mk = lk + rk2mk = lk + rk2
ΠΠ΄Π΅ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ lk, rk, mklk, rk, mk ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΈ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΡΡΠ΅Π·ΠΊΠ° ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΡΠΈ ΠΊΠΊ-ΠΎΠΌ ΡΠ°Π³Π΅ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ.
ΠΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΏΠΎΡΡΠΎΠΌΡ
l0 = 0, r0 = nβ1l0=0, r0=nβ1
Π―Π΄ΡΠΎΠΌ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΡΠΏΠΎΡΠΎΠ±Π° Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ²Π»ΡΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ ΠΎΡΡΠ΅Π·ΠΊΠ°, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ΅ΠΊΡΡΡΠ΅Π½ΡΠ½ΠΎ Π΄Π»Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠΌΠ΅Π½ΡΡΠ°ΡΡΠ΅Π³ΠΎΡΡ Π² ΡΠ°Π·ΠΌΠ΅ΡΠ°Ρ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΠ±ΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΏΡΡΠΌΠΎ ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΡΠΈΡΠ»Ρ ΡΠ°Π³ΠΎΠ² ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ, Π° ΠΎΠ½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π±ΠΎΠ»Π΅Π΅, ΡΠ΅ΠΌ:
Π‘Π°ΠΌΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ Π² Π½ΡΠΌ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π΄Π»Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠΌΠ΅Π½ΡΡΠ°ΡΡΠΈΡ ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ². ΠΡΠΈ ΡΡΠΎ Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΡ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ°ΠΏΡ:
ΠΡΠ°ΠΏ 1. ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΠΎΠ² ΠΎΡΡΠ΅Π·ΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π°:
l0 = 0, r0 = nβ1l0 = 0, r0 = nβ1
ΠΡΠ°ΠΏ 2. Π ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° lk\gtrklk\gtrk, ΡΠΎ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠΈΡΠΊΠ° ΠΊΠ°ΠΊ Π½Π΅ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠ΅ΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ ΠΎΡΡΠ΅Π·ΠΊΠ° ΠΌΠ°ΡΡΠΈΠ²Π° ΠΊΠ°ΠΊ ΡΠ΅Π»Π°Ρ ΡΠ°ΡΡΡ ΠΎΡ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ ΡΡΠΌΠΌΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΉ Π΅Π³ΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠΉ:
mk = [lk + rk2]mk = [lk + rk2].
ΠΡΠ°ΠΏ 3. Π ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° xmk\ltAxmk\ltA, ΡΠΎΠ³Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ:
lk:=mk+1lk:=mk+1 ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΊΠΎ Π²ΡΠΎΡΠΎΠΌΡ ΡΡΠ°ΠΏΡ.
ΠΡΠ°ΠΏ 4. Π ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° xmk = Axmk = A, ΠΏΠΎΠΈΡΠΊ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ Π²Π²ΠΈΠ΄Ρ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ ΠΈΡΠΊΠΎΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π½ΠΎΠΌΠ΅Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ mkmk.
ΠΡΠ΅Π½ΠΈΠ²Π°Π΅ΠΌ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ²: ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π(log n)?
ΠΡΠ»ΠΈ Π²Ρ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡ Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°ΠΌΠΈ, ΡΠΎ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠ° O(log n), Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ»ΡΡΠ°Π»ΠΈ ΠΎ Π»ΠΎΠ³Π°ΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΎΡΠ²Π΅ΠΆΠΈΠΌ Π² ΠΏΠ°ΠΌΡΡΠΈ, ΡΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅, ΠΈ ΠΊΠ°ΠΊ ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ².
ΠΡΠ°ΠΊ, ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΠΎΡΠ΅Π½ΠΈΠ²Π°ΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π»ΠΈΠ±ΠΎ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ°ΠΊ Π±Ρ ΡΠ°ΠΌ Π½ΠΈ Π±ΡΠ»ΠΎ, ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· ΡΡΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π΅ΡΡΡ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ ΠΈΠ· ΡΡΡΡΡΠΈ. ΠΡΠΈ ΡΡΠΎΠΌ Π·Π΄Π΅ΡΡ Π½Π°Ρ ΠΌΠ°Π»ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ ΡΠΎΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, Π²Π΅Π΄Ρ ΠΎΠ½ΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ , ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΡΠΎΡΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠ»Π°Π²Π½ΠΎΠ΅ β ΡΡΠΎ Π°ΡΠΈΠΌΠΏΡΠΎΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ β ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈ ΡΡΡΠ΅ΠΌΠ»Π΅Π½ΠΈΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΊ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΡΡΠΈ.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ ΠΊΠ°ΠΊΠΎΠΌΡ-ΡΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ Π½Π°Π΄ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ 4n 3 + 7n ΡΡΠ»ΠΎΠ²Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ n ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΡΠ»ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ n, Π½Π° ΠΈΡΠΎΠ³ΠΎΠ²ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΈΠ»ΡΠ½Π΅Π΅ Π²Π»ΠΈΡΡΡ Π²ΠΎΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ n Π² ΠΊΡΠ±, Π° Π½Π΅ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ n Π½Π° 4 Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ 7n. Π Π·Π½Π°ΡΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠ°Π²Π½Π° Π(n 3 ) ΠΈ ΠΎΠ½Π° ΠΊΡΠ±ΠΈΡΠ΅ΡΠΊΠΈ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ .
Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ Π·Π°Π³Π»Π°Π²Π½ΠΎΠΉ Π (Π-Π½ΠΎΡΠ°ΡΠΈΡ), ΡΠΎ ΡΡΠΎ ΠΏΡΠΈΡΠ»ΠΎ ΠΈΠ· ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠΈ, Ρ. ΠΊ. Π΄Π°Π½Π½ΡΡ Π±ΡΠΊΠ²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ, ΡΡΠΎΠ±Ρ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ Π°ΡΠΈΠΌΠΏΡΠΎΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ. Π€ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ O(f(n)) Π±ΡΠ΄Π΅Ρ Π·Π½Π°ΡΠΈΡΡ, ΡΡΠΎ ΠΎΠ±ΡΡΠΌ Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π»ΠΈΠ±ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠ°ΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΎΠ±ΡΡΠΌΠ° Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ , ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π½Π΅ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°, ΡΠΌΠ½ΠΎΠΆΠ΅Π½Π½Π°Ρ Π½Π° f(n).
ΠΠΈΠ½Π΅ΠΉΠ½Π°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ β O(n)
ΠΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ, ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠΈΡΠΊΠ° Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² Π½Π΅ΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ, Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΏΡΠΎΠΉΡΠΈΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΌ n-ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΡΡΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°.
ΠΠΎΠ³Π°ΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ β O(log n)
Π’ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡΡ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ. ΠΠΎΠ³Π΄Π° ΠΌΠ°ΡΡΠΈΠ² ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½, ΠΌΠΎΠΆΠ½ΠΎ Π΅Π³ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎΠΏΠΎΠ»Π°ΠΌ. ΠΡΠ»ΠΈ ΠΏΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ ΡΡΠ΅Π΄Π½Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΠΎΠ½ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΡΠΊΠΎΠΌΠΎΠ³ΠΎ, ΠΌΡ ΠΎΡΠ±ΡΠΎΡΠΈΠΌ Π²ΡΠΎΡΡΡ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΡΠ»ΠΈ ΠΌΠ΅Π½ΡΡΠ΅, ΠΎΡΠ±ΡΠΎΡΠΈΠΌ ΠΏΠ΅ΡΠ²ΡΡ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ. Π ΡΠ°ΠΊ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ log n ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
ΠΠ²Π°Π΄ΡΠ°ΡΠΈΡΠ½Π°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ β O(n 2 )
ΠΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΡΠ΅Π½ΠΊΠΈ ΠΏΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ, Π½ΠΎ ΠΎΡΠ½ΠΎΠ²Π°Π½Ρ ΠΎΠ½ΠΈ Π½Π° ΡΠΎΠΌ ΠΆΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅.
Π’Π°ΠΊΠΆΠ΅ Π±ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ . Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ O(1). Π ΠΏΡΠΈΠΌΠ΅ΡΡ, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π° Π½Π΅ Π½Π°Π΄ΠΎ Π½ΠΈ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°, Π½ΠΈ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡΡ ΠΏΠΎ Π½ΠΈΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠ°Π·. ΠΠ΄Π΅ΡΡ Π½Π°Π΄ΠΎ Π΄ΠΎΠΆΠ΄Π°ΡΡΡΡ Π² ΠΏΠΎΡΠΎΠΊΠ΅ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΡΡΠΎ ΠΈ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΎΠ³ΠΎΠΌ, Π½Π° Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠΌΠ° Π΄Π°Π½Π½ΡΡ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ. Π‘Ρ ΠΎΠΆΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΡΠΎΠ²ΠΎΠ΄ΡΡ ΠΎΡΠ΅Π½ΠΊΡ ΠΏΠΎ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ°Π³Π»ΡΠ΄Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Ρ ΡΡΡΡΠΎΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΡΠΈ ΡΠΊΠΎΡΠΎΡΡΠΈ 10 6 ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ:
ΠΠΎΡ ΠΈ Π²ΡΡ! ΠΡΠ»ΠΈ ΠΆΠ΅ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Π² Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°Ρ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, Π²Π°ΠΌ ΡΡΠ΄Π°.
Arrays, Collections: ΠΠ»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ
ΠΠ°ΡΡΠΈΠ²Ρ ΠΈ ΡΠΏΠΈΡΠΊΠΈ
ΠΠ΅Π΄Π°Π²Π½ΠΎ Π½Π° ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ Π² ΠΊΡΡΠΏΠ½ΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Π½Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΡ Java ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΌΠ΅Π½Ρ ΠΏΠΎΠΏΡΠΎΡΠΈΠ»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°Π» ΡΠ°ΠΌΠΎΠΏΠΈΡΠ½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ, Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ Π²ΡΠ΅Π³Π΄Π° Π³ΠΎΡΠΎΠ²ΡΠΌΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡΠΌΠΈ, Ρ ΠΌΠ΅Π½Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ Π·Π°ΡΡΡΠ΄Π½Π΅Π½ΠΈΡ Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Ρ ΡΠ΅ΡΠΈΠ» ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² Π²ΠΎΠΏΡΠΎΡΠ΅ ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ ΠΏΠΎΠΈΡΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ΅ java β Java Collections Framework (JCF). ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Ρ ΠΈΠ·ΡΡΠΈΠ» ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ Oracle JDK 7.80 (UPD: Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΡΡΠ»ΠΊΠ°).
Π ΡΠ°ΠΌΠΎΠΌ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅. ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ β Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠ΅ΠΊΡΡΠ΅.
Π ΠΈΡΡΠ½ΠΎΠΊ 1. ΠΠ΅ΡΠΎΠ΄Ρ Arrays, Collections ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌΡΠ΅ ΠΈΠΌΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ
ΠΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ ΠΏΠΎΡΠ°Π·ΠΈΠ»ΠΎ ΠΌΠ΅Π½Ρ Π² Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°Ρ , ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ Π² Arrays ΠΈ Collections β ΡΠΎ, ΡΡΠΎ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ ΠΏΠΎ ΠΏΠ°Π»ΡΡΠ°ΠΌ ΠΏΠ΅ΡΠ΅ΡΡΠΈΡΠ°ΡΡ β ΠΏΠΎ Π±ΠΎΠ»ΡΡΠΎΠΌΡ ΡΡΠ΅ΡΡ, ΡΡΠΎ Π΄Π²Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ ΠΎΠ΄ΠΈΠ½ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠΈΡΠΊΠ°.
ΠΡΠΎΡΠΎΠ΅ β ΡΠΎ, ΡΡΠΎ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠΏΠΈΡΠΊΠΎΠ² Β«ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌΒ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ².
Π’ΡΠ΅ΡΡΠ΅ β ΡΠΎ, ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ Ρ python.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ Π±ΡΡΡΡΠΎΠΉ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Ρ Π΄Π²ΡΠΌΡ ΠΎΠΏΠΎΡΠ½ΡΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Π½Π°ΡΠΈΠΌ ΡΠΎΠΎΡΠ΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΈΠΊΠΎΠΌ ΠΠ»Π°Π΄ΠΈΠΌΠΈΡΠΎΠΌ Π―ΡΠΎΡΠ»Π°Π²ΡΠΊΠΈΠΌ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΏΡΠΈ ΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ ΠΠΆΠΎΠ½Π° ΠΠ΅Π½ΡΠ»ΠΈ ΠΈ ΠΠΆΠΎΡΡΠ° ΠΠ»ΠΎΡ Π°.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ Π΄Π»Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΡΡΡΠ»ΠΎΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ², Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ Π½Π°Π·Π²Π°Π½ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Ρ Tim Peters β TimSort. ΠΡΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π±ΡΠ» Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°Π½ ΠΠΆΠΎΡΡΠ° ΠΠ»ΠΎΡ ΠΎΠΌ Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΠΏΠΈΡΠΊΠΎΠ², ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π½Π° python Π’ΠΈΠΌΠΎΠΌ ΠΠ΅ΡΠ΅ΡΡΠΎΠΌ.
ΠΡΠ°ΡΠΊΠΎ ΠΈΠ·Π»Π°Π³Π°Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ, ΡΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ:
ΠΡΠ°ΠΊ, Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π²ΡΡΡΠ½ΠΈΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ util, Π½ΡΠΆΠ½ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ 4-Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈΠ· API Collections ΠΈ API Arrays.
Π’Π°Π±Π»ΠΈΡΠ° 1. API Arrays vs API Collections
| ΠΠ΅ΡΠΎΠ΄ | Arrays API | Collections API |
|---|---|---|
| Sort method | Arrays.sort | Collections.sort |
| Search method | Arrays.binarySearch | Collections.binarySearch |
Arrays.sort
ΠΠ°ΡΡΠΈΠ²Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΡ ΡΠΈΠΏΠΎΠ²
ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π΄Π»Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΡ ΡΠΈΠΏΠΎΠ² Π² Arrays β Π±ΡΡΡΡΠ°Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ°. ΠΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠΎΠΉ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π²ΡΠ΄Π΅Π»Π΅Π½ ΡΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ DualPivotQuickSort, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ sort Π΄Π»Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π²ΡΠ΅Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ . ΠΠ΅ΡΠΎΠ΄Ρ Arrays API Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΠΏΡΠΎΠ±ΡΠ°ΡΡΠ²Π°ΡΡ Π² Π½ΠΈΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΌΠ°ΡΡΠΈΠ². ΠΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΌΠ°ΡΡΠΈΠ²Π°, ΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π΅ΡΠ΅ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΡ Π½Π°ΡΠ°Π»Π° ΠΈ ΠΊΠΎΠ½ΡΠ° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.
ΠΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π±ΡΡΡΡΠΎΠΉ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π² Π»ΡΡΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈ Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ O(n log n). Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΠΌΠ°Π»ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°Ρ ) Π°Π»Π³ΠΎΡΠΈΡΠΌ Π±ΡΡΡΡΠΎΠΉ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π½Π΅ Π»ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ, Π΄Π΅Π³ΡΠ°Π΄ΠΈΡΡΠ΅Ρ Π΄ΠΎ ΠΊΠ²Π°Π΄ΡΠ°ΡΠΈΡΠ½ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ. ΠΠΎΡΡΠΎΠΌΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°ΡΡ, Π½ΠΎ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΌΠΎΠ³ΡΡ Π΄Π°ΡΡ Π²ΡΠΈΠ³ΡΡΡ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² Π±ΡΠ»ΠΈ Π²ΡΠ±ΡΠ°Π½Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° Π²ΡΡΠ°Π²ΠΊΠ°ΠΌΠΈ, βΠΎΠ±ΡΡΠ½Π°Ρβ Π±ΡΡΡΡΠ°Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° (Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠΏΠΎΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΎΠΉ), ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠΎΠ΄ΡΡΠ΅ΡΠΎΠΌ.
ΠΠ½ΠΆΠ΅Π½Π΅ΡΡ Oracle ΡΠΌΠΏΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΡΠ΅ΠΌ Π²ΡΡΠΈΡΠ»ΠΈΠ»ΠΈ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π΄Π»Ρ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ. ΠΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π·Π°ΠΏΠΈΡΠ°Π½Ρ Π² ΠΏΡΠΈΠ²Π°ΡΠ½ΡΡ ΠΏΠΎΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° DualPivotQuickSort. ΠΠ»Ρ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΠΈ Ρ ΡΠ²Π΅Π» ΠΈΡ Π² ΡΠ°Π±Π»ΠΈΡΡ 2.
Π― Π½Π΅ ΠΌΠΎΠ³Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ
ΠΠ΅Π΄Π°Π²Π½ΠΎ (Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ Π΄Π²Π° Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄) ΡΡΡ ΠΏΡΠΎΠ±Π΅Π³Π°Π»Π° ΡΡΠ°ΡΡΡ Π’ΠΎΠ»ΡΠΊΠΎ 10% ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² ΡΠΏΠΎΡΠΎΠ±Π½Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ. ΠΠ²ΠΎΠΈΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ β ΡΡΠΎ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠΈΡΠΊΠ°. ΠΠ°Π»ΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π΅ΡΠ΅ ΡΡΠ΅Π·Π²ΡΡΠ°ΠΉΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ: Π±Π΅ΡΠ΅ΠΌ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ², ΡΠΌΠΎΡΡΠΈΠΌ Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ, Π΅ΡΠ»ΠΈ Π½Π΅ Π½Π°ΡΠ»ΠΈ ΡΠ°ΠΌ ΡΠΈΡΠ»ΠΎ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ β ΠΈΡΠ΅ΠΌ ΡΡΠΎ ΡΠΈΡΠ»ΠΎ ΡΡΠΈΠΌ ΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Π»ΠΈΠ±ΠΎ Π² Π»Π΅Π²ΠΎΠΉ ΡΠ°ΡΡΠΈ, Π»ΠΈΠ±ΠΎ Π² ΠΏΡΠ°Π²ΠΎΠΉ, ΠΎΡΠΊΠΈΠ΄ΡΠ²Π°Ρ ΡΡΠ΅Π΄Π½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ. ΠΠ»Ρ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ°ΠΊΠΆΠ΅, ΠΏΡΠΎΡΡΠΎ Π±Π΅ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ°ΡΡΠΈΠ², Π° ΡΡΠ½ΠΊΡΠΈΡ. ΠΡΠ΅ ΠΎΡΠ΅Π½Ρ ΠΈ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ, Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΎΠΏΠΈΡΠ°Π½ ΠΏΠΎΡΡΠΈ Π²Π΅Π·Π΄Π΅, Π²ΡΠ΅ Π±Π°Π³ΠΈ ΡΠ»ΠΎΠ²Π»Π΅Π½Ρ ΠΈ ΠΎΠΏΠΈΡΠ°Π½Ρ.
Π’Π°ΠΊ Π²ΠΎΡ, Ρ Π½Π΅ ΠΌΠΎΠ³Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ. ΠΠ»Ρ ΠΌΠ΅Π½Ρ ΠΎΠ½ Π½ΠΈ ΠΊΠ°ΠΏΠ΅Π»ΡΠΊΠΈ Π½Π΅ ΡΡΠΈΠ²ΠΈΠ°Π»Π΅Π½. ΠΠ°Π²Π΅ΡΠ½ΠΎΠ΅, Ρ Π½Π΅Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ. Π Π²Π΅Π΄Ρ ΡΠ°ΠΊ ΠΈ Π΅ΡΡΡ, Ρ Π²ΡΠ΅Π³ΠΎ-Π»ΠΈΡΡ ΡΡΡΠ΄Π΅Π½Ρ, Π½ΠΎ Π²Π΅Π΄Ρ ΡΡΠΎ Π½Π΅ ΠΎΠΏΡΠ°Π²Π΄Π°Π½ΠΈΠ΅? ΠΡΠ»ΠΈ ΡΠΎΡΠ½Π΅Π΅, Ρ Π½Π΅ ΠΌΠΎΠ³Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Ρ
ΠΎΡΠΎΡΠΈΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΉ ΠΊΡΠ°ΡΠΈΠ²ΡΠΉ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ. ΠΡΠ΅ Π²ΡΠ΅ΠΌΡ Ρ ΠΌΠ΅Π½Ρ Π²ΡΠ»Π΅Π·Π°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π»ΠΈΠ±ΠΎ Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡΡ, Π»ΠΈΠ±ΠΎ Ρ ΠΊΡΠ°ΡΠΈΠ²ΠΎΡΡΡΡ, Π»ΠΈΠ±ΠΎ ΠΈ Ρ ΡΠ΅ΠΌ, ΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌ. Π’Π°ΠΊ ΡΡΠΎ, Π΄Π°, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΆΠ΅Π»ΡΠΎΠ²Π°Ρ.
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΡΠΈΡΠ°ΡΡ ΡΡΠΎΡ ΡΠΎΠΏΠΈΠΊ, Π½Π°ΠΏΠΈΡΠΈΡΠ΅ ΡΠ²ΠΎΡ Π²Π΅ΡΡΠΈΡ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° β Π΄Π»Ρ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΡΠΈΡΠ΅ΠΌ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, ΠΏΠΎΠΈΡΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ΄Π°Π²Π°ΡΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· Π΄ΡΠ±Π»ΠΈΡΡΡΡΠΈΡ
. ΠΡΠ΅ Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ, Π½Π°ΠΏΠΈΡΠΈΡΠ΅ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΉ
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π°, Ρ Π±ΡΠ΄Ρ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ Π½Π° C#. Π― Π½Π°Π΄Π΅ΡΡΡ, ΠΏΠΎΠΊΠ»ΠΎΠ½Π½ΠΈΠΊΠΈ Π΄ΡΡΠ³ΠΈΡ
ΡΠ·ΡΠΊΠΎΠ² Ρ Π»Π΅Π³ΠΊΠΎΡΡΡΡ ΠΏΠΎΠΉΠΌΡΡ ΠΌΠΎΠΉ ΠΊΠΎΠ΄. ΠΡΠ°Π½ΠΈΡΡ ΠΏΠΎΠΈΡΠΊΠ° Ρ Π±ΡΠ΄Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΠ»ΡΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π° [left; right), Ρ.Π΅. ΡΠΎΡΠΊΠ° left Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ, Π° ΡΠΎΡΠΊΠ° right Π²ΡΠΊΠ»ΡΡΠ°Π΅ΡΡΡ. ΠΠ»Ρ ΠΌΠ΅Π½Ρ ΠΏΠΎΠ»ΡΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Ρ ΡΠ΄ΠΎΠ±Π½Π΅Π΅, ΠΊ ΠΈΡ
ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Ρ ΡΠΆΠ΅ ΠΏΡΠΈΠ²ΡΠΊ, ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΏΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² (ΠΎ ΡΠ΅ΠΌ ΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΏΠΎΠ·ΠΆΠ΅). ΠΠΎΠΎΠ±ΡΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Β«Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ ΡΡΠΈΠ»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡΒ», ΡΠ°ΠΊ ΠΊΠ°ΠΊ Ρ ΠΏΠΈΡΡ ΡΠΈΠΊΠ»Ρ Π²ΠΎΡ ΡΠ°ΠΊ:Π° Π½Π΅ ΡΠ°ΠΊ:
Π― Π±ΡΠ΄Ρ ΠΏΠΈΡΠ°ΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΡ Π²Π΅ΡΡΠΈΡ, Π½ΠΎ ΠΌΠ½Π΅ Π±Π»ΠΈΠΆΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½Π°Ρ, ΡΠ°ΠΊ ΡΡΠΎ Π½Π΅ ΠΎΠ±Π΅ΡΡΡΠ΄ΡΡΠ΅. ΠΠ»Ρ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΌΡ ΡΠ΄Π΅Π»Π°Π΅ΠΌ Π²ΠΎΡ ΡΠ°ΠΊΡΡ Π²ΠΎΡ ΠΊΡΠ°ΡΠΈΠ²ΡΡ ΠΎΠ±Π΅ΡΡΠΊΡ:
ΠΠ΅ΡΠ²Π°Ρ ΠΏΠΎΠΏΡΡΠΊΠ°
ΠΡΡΠ°ΡΠΈ, ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½Ρ ΠΏΡΠΈΡΠΈΠ½Ρ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠ²: Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» [left, right], ΡΠΎ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π΅Π³ΠΎ ΡΠ°Π·Π±ΠΈΡΡ Π½Π° [left, mid β 1] ΠΈ [mid + 1; right] (ΡΡΠΎ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΡΡΡ ΠΏΡΠΎΡΠ΅ Π΄Π»Ρ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ, Π½ΠΎ Π²Π΅ΡΡΠΌΠ° ΡΡΡΠ°Π½Π½ΠΎ).
Π£ ΠΏΠΎΠ»ΡΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠ² ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ
ΡΠ°Π²Π½ΠΎ 1 (ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΠΌ), Π° Ρ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠ² β 2 β ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅, Π²Π·ΡΡΠΎΠΉ Ρ ΠΏΠΎΡΠΎΠ»ΠΊΠ°.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΡΠΎ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ Π΄Π»Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ, Π³Π΄Π΅ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠ² ΡΠ°Π·Π»ΠΈΡΠΈΡ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ Π½Π΅ΡΡ (ΠΌΠ°ΡΡΠΈΠ² Π΄Π΅Π»ΠΈΡΡΡ Π½Π° [left, mid) ΠΈ [mid, right)), Π° Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠ² ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ ΡΠ°Π²Π½ΠΎΠ΅ 1 (ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ°ΡΡΠΈΠ² Π΄Π΅Π»ΠΈΡΡΡ Π½Π° [left, mid] ΠΈ [mid + 1, right], ΠΈΠ»ΠΈ [left, mid β 1] ΠΈ [mid, right]).
Π’Π΅ΠΏΠ΅ΡΡ, ΠΎΡΡΠ°Π»ΠΎΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π² ΠΊΠ°ΠΊΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΊΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΌΠ΅Π½ΡΡΠ΅ Π»ΠΈ ΡΡΠ΅Π΄Π½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ (array[mid]), ΡΠ΅ΠΌ ΠΊΠ»ΡΡ (key). Π‘Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π²Π΅ΡΡΠΌΠ° ΠΏΡΠΎΡΡΠΎ β Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ΄ΡΡΠ°Π²ΠΈΡΡ ΡΠ½Π°ΡΠ°Π»Π° ΠΎΠ΄ΠΈΠ½ Π·Π½Π°ΠΊ, ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Π° Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΡΠΎ Π΄ΡΡΠ³ΠΎΠΉ :-). ΠΠΎΡΠ΅ΠΌΡ-ΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Ρ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ. ΠΠ½Π΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ Β«ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡΒ».
Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ:
ΠΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎ:
Π Π°Π·Π±ΠΎΡ ΠΏΠΎΠ»Π΅ΡΠΎΠ²:
ΠΡΠ»ΠΈ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠΈΡΠ°ΡΡΡΡ Π² ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΡ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΎ ΡΡΠ°Π·Ρ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π½Π΅Ρ, ΡΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ. ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΊΡΠ° ΠΎΡΠ΅Π½Ρ ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΡΠ΅Ρ while(true), ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π² ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π΅Ρ. Π Ρ ΠΎΡΡ Ρ Π½Π°ΠΏΠΈΡΠ°Π» ΠΊΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ², Ρ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΈΠ½ΠΎΠ³Π΄Π° ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π·Π°Π±ΡΠ²Π°Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅ΠΊΡΡΡΠΈΡ. ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΡ Π²Π΅ΡΡΠΈΡ Ρ ΠΏΠΎΠ΄Π²ΠΎΡ ΠΎΠΌ, Ρ Π½Π΅ Π·Π½Π°Ρ.
ΠΡΠΎΡΠ°Ρ ΠΏΠΎΠΏΡΡΠΊΠ°
ΠΡΡΠ°ΡΠΈ, ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠ΅ΠΊΡΡΡΠΈΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π² ΡΠ»ΡΡΠ°Π΅ left == right, Ρ.Π΅., ΠΊΠΎΠ³Π΄Π° ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΡΡΠ°Π» ΡΠ°ΠΊΠΈΠΌ β [left, right). ΠΡ ΠΈΠ»ΠΈ Π² ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° right β left key
Π’.Π΅. Π΅ΡΠ»ΠΈ ΡΠ»Π°Π³ descendingOrder Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½, ΡΠΎ Π²ΡΠ±ΠΎΡ ΠΈΠ΄Π΅Ρ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½, ΡΠΎ Π²ΡΠ±ΠΎΡ ΠΈΠ΄Π΅Ρ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ. ΠΠΎ ΡΡΠΎ Β«Ρ Π°ΠΊΒ», ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ. Π― Π½Π΅ Π·Π½Π°Ρ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ.
Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ:
ΠΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎ:
Π Π°Π·Π±ΠΎΡ ΠΏΠΎΠ»Π΅ΡΠΎΠ²:
ΠΠ° Π²ΡΡΠΊΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ: ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π½Π΅ ΡΡΠΈΡΡΠ²Π°Π», ΡΡΠΎ ΠΌΠ°ΡΡΠΈΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΡΡ. Π― ΡΠ΅ΡΠΈΠ» Π½Π΅ Π²ΡΠ΄Π΅Π»ΡΡΡ ΡΡΠΎΡ ΡΠ΅ΠΉΠ» Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΏΠΎΠΏΡΡΠΊΡ.
ΠΠΎΠΏΡΡΠΊΠ° β4
ΠΠ°Π±Ρ ΠΌΡ Π½Π΅ ΠΏΠΎΠΏΠ°Π»ΠΈ Π½Π° Π΅ΡΠ΅ ΠΎΠ΄Π½Ρ ΠΏΠΎΠΏΡΡΠΊΡ, ΡΡΠ°Π·Ρ ΡΠΊΠ°ΠΆΡ, ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ΅ΠΊΡΡΡΠΈΡ Π½ΡΠΆΠ½ΠΎ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π΅ΡΠ΅ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΡΠ°ΠΌΡΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈΠ· ΠΏΠΎΠ»ΡΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π° ΡΠ°Π²Π΅Π½ ΠΊΠ»ΡΡΡ. ΠΡ Π° Π² ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΠ·Π½Π°Π»ΠΈ, ΡΡΠΎ ΡΡΠ΅Π΄Π½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ°Π²Π΅Π½ ΠΊΠ»ΡΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ°. ΠΠΈΠ±ΠΎ ΡΡΠ΅Π΄Π½ΠΈΠΉ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π° ΠΏΠ΅ΡΠ²ΡΠΌ ΠΈ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ΄Π°Π²Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Π³ΠΎ, ΠΈΠ±ΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ Π½Π΅ ΡΠ°Π²Π΅Π½ ΠΊΠ»ΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ΅ΠΊΡΡΡΠΈΡ Π΅ΡΠ΅ Π½Π΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠ»Π°ΡΡ. ΠΠΈΠ±ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠΎΡΠ°ΡΠΈΠ²Π°ΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠΎΠΈΡΠΊΠ° (ΡΠΌ. ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ Π²ΡΡΠ΅)


