ΠΡΡΠΈΠ½ΡΠΊΠ° ΠΈΡΡΠΎΡΠΈΡ, Π±Π°Π·ΠΈΡΠ°Π½Π° Π½Π° ΠΈΠ·ΠΌΠΈΡΠ»Π΅Π½ΠΈ ΡΡΠ±ΠΈΡΠΈΡ.
ΠΡΠΈΡΠΊΠΈ ΡΡΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΡ Π½Π΅ ΡΠ° ΡΠ»ΡΡΠ°ΠΉΠ½ΠΈ.
ΠΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π³ΠΈ ΡΠ° ΡΠΌΠ΅ΡΠ½ΠΈ.
β Π‘Π΅ΡΠ³Π΅ΠΉ, Π·Π΄ΡΠ°Π²Π΅ΠΉ. ΠΠ°Π·Π²Π°ΠΌ ΡΠ΅ ΠΠΈΠ±ΠΈ, ΠΊΠΎΠ»Π΅Π³Π°ΡΠ° ΠΌΠΈ Π΅ ΠΠΎΠ± ΠΈ ΡΠΌΠ΅ Π΄Π²Π°ΠΌΠ°... ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ Π½Π° Π΅ΠΊΠΈΠΏΠΈ, Π½ΠΈΠ΅ ΡΠΌΠ΅ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΠ»Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅, Π·Π½Π°Π΅ΠΌ Π²ΡΠΈΡΠΊΠΈ Π·Π°Π΄Π°ΡΠΈ Π½Π°ΠΈΠ·ΡΡΡ ΠΈ Π΄Π½Π΅Ρ ΡΠ΅ ΡΡΠΎΠ±ΡΠΈΠΌ Π·Π° Π²Π°ΡΠΈΡΠ΅ Π·Π½Π°Π½ΠΈΡ ΠΈ ΡΠΌΠ΅Π½ΠΈΡ.
Π Π°Π²ΡΠΎΠ±ΠΈΠΎΠ³ΡΠ°ΡΠΈΡΡΠ° Π²ΠΈ ΠΏΠΈΡΠ΅, ΡΠ΅ ΡΡΠ΅ ΡΡΠ°ΡΡΠΈ, ΡΠ°Π±ΠΎΡΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠΌΠ½ΠΎ Ρ .NET, ΡΠ°Π·Π±ΠΈΡΠ°ΡΠ΅ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅, ΡΠ²Π΅ΡΠ΅Π½ΠΎ Π²Π»Π°Π΄Π΅Π΅ΡΠ΅ ΠΎΡΠ½ΠΎΠ²ΠΈΡΠ΅ Π½Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ ΠΈ ΡΡΡΡΠΊΡΡΡΠΈΡΠ΅ ΠΎΡ Π΄Π°Π½Π½ΠΈ, ΠΈΠΌΠ°ΡΠ΅ ΠΎΠΏΠΈΡ ΠΊΠ°ΠΊΡΠΎ Π² ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π°, ΡΠ°ΠΊΠ° ΠΈ Π² ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΎΡ Π½ΡΠ»Π°ΡΠ°. Π Π²ΡΠ΅ ΠΏΠ°ΠΊ ΡΠΎΠ²Π΅ΠΊ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ Π·Π°Π΄Π°Π΄Π΅ ΡΠΎΠ·ΠΈ Π³Π»ΡΠΏΠ°Π² Π²ΡΠΏΡΠΎΡ: ΡΠ°Π·ΠΊΠ°ΠΆΠ΅ΡΠ΅ Π½ΠΈ Π½Π°ΠΊΡΠ°ΡΠΊΠΎ Π·Π° ΡΠ΅Π±Π΅ ΡΠΈ?
β ΠΠ΄ΡΠ°Π²Π΅ΠΉΡΠ΅, ΠΠΈΠ±ΠΈ ΠΈ ΠΠΎΠ±Π°. Π Π°Π±ΠΎΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎ Ρ .NET, ΡΠ°Π·Π±ΠΈΡΠ°ΠΌ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ½ΠΈΡΠΊΠΎΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅, Π²Π»Π°Π΄Π΅Ρ ΡΠ²Π΅ΡΠ΅Π½ΠΎ ΠΎΡΠ½ΠΎΠ²ΠΈΡΠ΅ Π½Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ ΠΈ ΡΡΡΡΠΊΡΡΡΠΈΡΠ΅ ΠΎΡ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΈΠΌΠ°ΠΌ ΠΎΠΏΠΈΡ ΠΊΠ°ΠΊΡΠΎ Π² ΠΏΡΠ΅ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ΡΠΎ, ΡΠ°ΠΊΠ° ΠΈ Π² ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΎΡ Π½ΡΠ»Π°ΡΠ°. Π’ΠΎΠ²Π° Π΅ Π½Π°ΠΊΡΠ°ΡΠΊΠΎ.
- ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠΈ. Π, Π΄Π° Π·Π°ΠΏΠΎΡΠ²Π°ΠΌΠ΅! ΠΠ° Π·Π°Π³ΡΡΠ²Π°Π½Π΅, Π½Π΅ΡΠΎ ΠΏΠΎ-ΠΏΡΠΎΡΡΠΎ: ΠΊΠ°ΠΊΠ²ΠΈ Π΄ΡΡΠ²Π΅ΡΠ° ΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅ ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π³ΠΈ Π·Π°ΠΎΠ±ΠΈΠΊΠ°Π»ΡΡΠ΅?
- ΠΡΠ±, Π°ΠΊΠ°ΡΠΈΡ, ΠΊΠ»Π΅Π½, ΡΠ΅ΡΠ΅ΡΠ°... Π’Π°ΠΊΠ° ΡΠ΅ Π²Π΅Π΄Π½Π°Π³Π° Π½ΠΈΡΠΎ Π΄ΡΡΠ³ΠΎ Π½Π΅ ΠΈΠ΄Π²Π° Π½Π° ΡΠΌ. Π©ΠΎ ΡΠ΅ ΠΎΡΠ½Π°ΡΡ Π΄ΠΎ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ΡΠΎ ΠΏΡΠ΅Π· Π΄ΡΡΠ²ΠΎΡΠΎ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΡΠ΅ ΠΏΡΠ΅Π· Π΄ΡΡΠ²ΠΎΡΠΎ ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΡΠ°Π½ΠΈ: ΠΎΡΠ»ΡΠ²ΠΎ ΠΈΠ»ΠΈ ΠΎΡΠ΄ΡΡΠ½ΠΎ. ΠΠ½Π°ΠΌ ΡΡΡΠΎ, ΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π΄Π° ΡΠ΅ ΠΏΠΎΠΊΠ°ΡΠ΅ΡΠΈΡ Π½Π° Π΄ΡΡΠ²ΠΎ ΠΈ ΡΠ΅ ΠΈΠΌΠ° Ρ
ΡΠ°Π»ΡΠΏΠΈ Π² Π΄ΡΡΠ²Π΅ΡΠ°ΡΠ°, ΠΊΡΠ΄Π΅ΡΠΎ ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° ΠΆΠΈΠ²Π΅ΡΡ ΠΊΠ°ΡΠ΅ΡΠΈΡΠΈ.
- ΠΠ»ΠΎΠ±Π°. Π’ΠΎΠ³Π°Π²Π° Π²ΡΠΏΡΠΎΡΡΡ Π΅ - ΠΊΠ°ΠΊΠ²Π° Π΅ ΡΠ°Π·Π»ΠΈΠΊΠ°ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΠ±Π΅ΠΊΡ ΠΏΠΎ ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠΈΡ ΠΈ ΠΏΡΠ»Π½ΠΎΡΠΎ ΠΌΡ ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅?
β Π Π°Π·Π»ΠΈΠΊΠ°ΡΠ° Π΅, ΡΠ΅ Π² ΠΏΡΡΠ²ΠΈΡ ΡΠ»ΡΡΠ°ΠΉ ΠΎΠ±Π΅ΠΊΡΡΡ ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π²Π° ΠΏΠΎ ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠΈΡ, Π° Π²ΡΠ² Π²ΡΠΎΡΠΈΡ ΡΠ΅ ΠΊΠΎΠΏΠΈΡΠ° ΠΈΠ·ΡΡΠ»ΠΎ.
β ΠΠ°ΠΊΠ²ΠΎ Π·Π½Π°Π΅ΡΠ΅ Π·Π° Π³ΡΠ°ΡΠΈΠΊΠΈΡΠ΅?
β ΠΡΠ»Π±ΠΎΠΊΠΎ ΡΠ²Π°ΠΆΠ°Π²Π°ΠΌ ΡΠ²ΠΎΡΡΠ΅ΡΡΠ²ΠΎΡΠΎ Π½Π° Π³ΡΠ°Ρ ΠΠ΅Π² ΠΠΈΠΊΠΎΠ»Π°Π΅Π²ΠΈΡ Π’ΠΎΠ»ΡΡΠΎΠΉ, ΠΊΠ°ΡΠΎ Π΄Π΅ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΎΡ
ΠΊΠ½ΠΈΠ³Π°ΡΠ° βΠΡΠ°Ρ ΠΠΎΠ½ΡΠ΅ ΠΡΠΈΡΡΠΎβ. Π ΠΊΠΎΠΉ Π½Π΅ ΠΏΠΎΠ·Π½Π°Π²Π° ΠΡΠ°Ρ ΠΡΠ°ΠΊΡΠ»Π°?!
β ΠΠ°ΠΊΠ²ΠΎ Π΅ βSOLIDβ?
- βΠ’Π²ΡΡΠ΄ΠΈβ, ΠΏΠΎ-ΡΡΠ΄ΠΊΠΎ - βΡΠ²ΡΡΠ΄ΠΈβ. ΠΠ°Π²ΠΈΡΠΈ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅.
β ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ ΡΡΠ±ΠΈΡΠ°ΡΡΡ Π½Π° Π±ΠΎΠΊΠ»ΡΠΊ?
- ΠΠ½Π°ΠΌ ΠΈ ΡΠΎΠ²Π°. Π’ΠΈΠΏΠΈΡΠ½ΠΈΡΡ Π±ΠΎΠΊΠ»ΡΠΊΡΠΈΡ Π½ΠΎΡΠΈ ΡΡΠΊΠΎ ΠΎΡΠ°Π½ΠΆΠ΅Π² Π³Π°ΡΠ΅ΡΠΈΠ·ΠΎΠ½ ΠΈ ΠΏΡΠ΅Π΄ΠΏΠ°Π·Π½ΠΈ ΠΎΠ±ΡΠ²ΠΊΠΈ. Π Π°Π±ΠΎΡΠΈ ΠΏΡΠ΅Π΄ΠΈΠΌΠ½ΠΎ Π½ΠΎΡΠ΅ΠΌ - Π½Π° Π±ΠΎΠΊΠ»ΡΠΊΡΠΈΡ. ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π·Π°Π΄Π°ΡΠ° Π½Π° ΡΠΌΠ΅ΡΠΎΡΡΠ±ΠΈΡΠ°ΡΠ° Π΅ Π΄Π° ΠΏΡΠ΅Ρ
Π²ΡΡΠ»ΠΈ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΡΠΈΡΠ΅ Π·Π° Π±ΠΎΠΊΠ»ΡΠΊ Π² Π·Π°Π΄Π½Π°ΡΠ° ΡΠ°ΡΡ Π½Π° ΠΊΠ°ΠΌΠΈΠΎΠ½Π° Π·Π° Π±ΠΎΠΊΠ»ΡΠΊ, ΠΊΠ°ΡΠΎ Π²Π½ΠΈΠΌΠ°Π²Π° Π΄Π° Π½Π΅ ΠΈΠ·ΡΠΈΠΏΠ΅ ΠΌΠΈΡΠΈΠ·Π»ΠΈΠ² Π±ΠΎΠΊΠ»ΡΠΊ ΠΏΠΎ ΠΏΡΡΡ. ΠΠ±ΠΎΠ±ΡΠ°Π²Π°ΠΉΠΊΠΈ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ, ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΡΠ±ΠΈΡΠ°ΡΠΈΡΠ΅ Π½Π° ΠΎΡΠΏΠ°Π΄ΡΡΠΈ ΡΠ΅ ΠΏΠΎΠ΄ΡΠ΅Π½ΡΠ²Π° ΠΎΡ Π½Π°ΡΠ΅ΡΠΎ ΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ, Π½ΠΎ ΡΡΡ
Π½Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ° Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΡΠ΅Π½Π½Π°, ΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΡΠΈΡΠ΅Π»ΠΈΡΠ΅ ΠΈ Ρ
Π»Π΅Π±Π°ΡΠΈΡΠ΅!
β Π ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΡ Π³Π»ΡΠΏΠ°Π² Π²ΡΠΏΡΠΎΡ Π·Π° Π΄Π½Π΅Ρ: Π΄Π° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ ΡΡΠ΅ΡΠΈΡΠ΅Π½ ΠΊΠΎΠ½, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ
ΠΎΠ΄ΠΈ Π½Π° Π·Π°Π΄Π½ΠΈΡΠ΅ ΡΠΈ ΠΊΡΠ°ΠΊΠ° ΠΊΠ°ΡΠΎ ΡΠΎΠ²Π΅ΠΊ. Π ΠΈΡΠ°ΡΡΡ ΠΈΠΌΠ° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π½Π° Π΅ΠΊΠ·Π΅ΠΊΡΡΠΈΡ, ΡΠ²ΡΡΠ·Π°Π½ Ρ ΡΠ΅ΠΊΡΡΠΈΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅Π½ΠΎ-Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΠΊΠΎΠ½ΡΠΈΠ½ΡΡΠΌ. ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΅ Π΄Π° ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ° Π³ΡΡΠΏΠ° ΠΎΡ ΡΠ°ΠΊΠΈΠ²Π° ΠΊΠΎΠ½Π΅ Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π·Π°ΠΏΠΎΡΠ²Π°Π½Π΅ Π½Π° Π²ΠΎΠ΅Π½Π½ΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΈ Π² ΠΠ»ΠΈΠ·ΠΊΠΈΡ ΠΈΠ·ΡΠΎΠΊ. ΠΠ°ΠΊ Π±ΠΈΡ
ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΡΠΎΠ²Π° Π² O( n * log(n))?
- Π₯ΠΌ... ΠΊΠ°ΡΠΎ Π·Π° Π½Π°ΡΠ°Π»ΠΎ Π±ΠΈΡ
ΡΠ΅ ΠΎΡΠΊΠ°Π·Π°Π» ΠΎΡ ΡΠ΅Π½Π½ΠΎΡΡΠ½ΠΈΡΠ΅ ΠΏΡΠ΅ΡΠ΅Π½ΠΊΠΈ. ΠΠ°ΠΉ-ΠΏΠΎΡΠ»Π΅ ΡΡΡ
Π΄Π° ΠΎΡΡΠ·Π½Π°Ρ, ΡΠ΅ Π½ΡΠΌΠ° Π±Π°ΡΠ΅ΠΉΠ½ ΠΎΡ ΡΡΠ΅ΡΠΈΡΠ½ΠΈ ΠΊΠΎΠ½Π΅ - ΠΈ ΡΠ°ΠΌΠ°ΡΠ° ΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²ΠΊΠ° Π½Π° Π²ΡΠΏΡΠΎΡΠ° Π±ΠΈ Π·Π°Π³ΡΠ±ΠΈΠ»Π° Π²ΡΡΠΊΠ°ΠΊΡΠ² ΡΠΌΠΈΡΡΠ». ΠΠ· ΡΠ°ΠΌΠΈΡΡ ΡΡΡ
Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π²ΡΡΠ½Π° Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π² ΡΠΎΠ·ΠΈ ΠΊΠΎΠ½, ΠΈ Π² Π±Π°ΡΠ΅ΠΉΠ½ ΠΎΡ ΡΠ°ΠΊΠΈΠ²Π° ΠΊΠΎΠ½Π΅, ΠΈ Π² ΠΠ»ΠΈΠ·ΠΊΠΈΡ ΠΈΠ·ΡΠΎΠΊ. ΠΠ° Merged With the Eternal O( n * log(n) ) Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ Π½Π΅ΡΠ°Π·Π»ΠΈΡΠΈΠΌ ΠΎΡ O ( n ^ n ).
- ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠΈ, Π‘Π΅ΡΠ³Π΅ΠΉ. ΠΠΈΠ΅ ΡΠ΅ Π²ΠΈ ΡΠ΅ ΠΎΠ±Π°Π΄ΠΈΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ.
- Π’ΠΎΠ²Π° Π½Π°ΠΈΡΡΠΈΠ½Π° Π΅ Π²ΡΠΈΡΠΊΠΎ: Π½ΡΠΌΠ° Π·Π° ΠΊΠ°ΠΊΠ²ΠΎ. ΠΡΠΌΠ° Π½ΡΠΆΠ΄Π° Π΄Π° ΡΠ΅ ΠΎΠ±Π°ΠΆΠ΄Π°ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com