ΠΠ° Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π·Π½Π°ΡΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ ΡΠΈΠΊΠ»Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ²ΡΠ·Π°Π½Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ.
3.4.2. ΠΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ
ΠΠ½ΠΊΡΠ΅ΠΌΠ΅Π½Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ Π΅Π³ΠΎ Π½Π° ΠΎΠ΄ΠΈΠ½ ΡΠ»Π΅ΠΌΠ΅Π½Ρ. ΠΠ½ΠΊΡΠ΅ΠΌΠ΅Π½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ Π²ΡΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ². ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ == ΠΈ != ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π΄Π²ΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ² (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 3.4) Π»ΡΠ±ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ².
ΠΡΠ΅ΡΠ°ΡΠΎΡΡ ΡΡΡΠΎΠΊ ΠΈ Π²Π΅ΠΊΡΠΎΡΠΎΠ² ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΠΉ Π·Π° ΡΠ°Π·. ΠΠ½ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ. ΠΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π·Π°ΡΠ°ΡΡΡΡ Π½Π°Π·ΡΠ²Π°ΡΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌΠΈ Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ (iterator arithmetic). ΠΠ½ΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π² ΡΠ°Π±Π». 3.7.
Π’Π°Π±Π»ΠΈΡΠ° 3.7. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ Π²Π΅ΠΊΡΠΎΡΠΎΠ² ΠΈ ΡΡΡΠΎΠΊ
iter + n iter - n ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ (Π²ΡΡΠΈΡΠ°Π½ΠΈΠ΅) ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ n ΠΊ (ΠΈΠ·) ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ n ΠΏΠΎΠ·ΠΈΡΠΈΠΉ Π²ΠΏΠ΅ΡΠ΅Π΄ (Π½Π°Π·Π°Π΄) Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. ΠΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈΠ»ΠΈ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π·Π° ΠΊΠΎΠ½ΡΠΎΠΌ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° iter1 += n iter1 -= n Π‘ΠΎΡΡΠ°Π²Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ ΡΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Π²ΡΡΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ°. ΠΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ iter1 Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° n ΠΏΠΎΠ·ΠΈΡΠΈΠΉ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ»ΠΈ ΠΌΠ΅Π½ΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ iter1 - iter2 ΠΡΡΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π²ΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅, Π±ΡΠ΄ΡΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΊ ΠΏΡΠ°Π²ΠΎΠΌΡ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ, Π²Π΅ΡΠ½Π΅Ρ Π»Π΅Π²ΡΠΉ. ΠΡΠ΅ΡΠ°ΡΠΎΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ»ΠΈ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π·Π° ΠΊΠΎΠ½ΡΠΎΠΌ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° >, >=, <, <= ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ². ΠΠ΄ΠΈΠ½ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ ΠΌΠ΅Π½ΡΡΠ΅ Π΄ΡΡΠ³ΠΎΠ³ΠΎ, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΉ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ Π±Π»ΠΈΠΆΠ΅ ΠΊ Π½Π°ΡΠ°Π»Ρ. ΠΡΠ΅ΡΠ°ΡΠΎΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ»ΠΈ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π·Π° ΠΊΠΎΠ½ΡΠΎΠΌ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈΠ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ (ΠΈΠ»ΠΈ Π²ΡΡΠ΅ΡΡΡ ΠΈΠ· Π½Π΅Π³ΠΎ) ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠΎ Π²Π΅ΡΠ½Π΅Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½Π½ΡΠΉ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΠΉ Π²ΠΏΠ΅ΡΠ΅Π΄ (ΠΈΠ»ΠΈ Π½Π°Π·Π°Π΄). ΠΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ Π²ΡΡΠΈΡΠ°Π½ΠΈΠΈ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΡΠΎΠΌ ΠΆΠ΅ Π²Π΅ΠΊΡΠΎΡΠ΅ (ΠΈΠ»ΠΈ ΡΡΡΠΎΠΊΠ΅) ΠΈΠ»ΠΈ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π·Π° ΠΊΠΎΠ½ΡΠΎΠΌ ΡΠΎΠ³ΠΎ ΠΆΠ΅ Π²Π΅ΠΊΡΠΎΡΠ° (ΠΈΠ»ΠΈ ΡΡΡΠΎΠΊΠΈ). Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π²ΡΡΠΈΡΠ»ΠΈΠΌ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ, Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠΉ ΠΊ ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ Π²Π΅ΠΊΡΠΎΡΠ°:
// Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ, Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠΉ ΠΊ ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ Π²Π΅ΠΊΡΠΎΡΠ° vi
auto mid = vi.begin() + vi.size() / 2;
ΠΡΠ»ΠΈ Ρ Π²Π΅ΠΊΡΠΎΡΠ° vi 20 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ vi.size()/2 Π±ΡΠ΄Π΅Ρ 10. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ mid Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠ°Π²Π½ΠΎΠ΅ vi.begin() + 10. Π‘ ΡΡΠ΅ΡΠΎΠΌ, ΡΡΠΎ Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ 0, ΡΡΠΎ ΡΠΎΡ ΠΆΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΡΡΠΎ ΠΈ vi[10], Ρ.Π΅. ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π½Π° Π΄Π΅ΡΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΉ ΠΎΡ Π½Π°ΡΠ°Π»Π°.
ΠΡΠΎΠΌΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π΄Π²ΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π½Π° ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ, ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ Π²Π΅ΠΊΡΠΎΡΠΎΠ² ΠΈ ΡΡΡΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ (<, <=, >, >=). ΠΡΠ΅ΡΠ°ΡΠΎΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡ, Ρ.Π΅. Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ (ΠΈΠ»ΠΈ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π·Π° ΠΊΠΎΠ½ΡΠΎΠΌ) ΡΠΎΠ³ΠΎ ΠΆΠ΅ Π²Π΅ΠΊΡΠΎΡΠ° ΠΈΠ»ΠΈ ΡΡΡΠΎΠΊΠΈ. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎ it ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ Π² ΡΠΎΠΌ ΠΆΠ΅ Π²Π΅ΠΊΡΠΎΡΠ΅, ΡΡΠΎ ΠΈ mid. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π»ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ it Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ° mid:
if (it < mid)
// ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅ Π²Π΅ΠΊΡΠΎΡΠ° vi
ΠΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π²ΡΡΠ΅ΡΡΡ Π΄Π²Π° ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ°, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ (ΠΈΠ»ΠΈ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π·Π° ΠΊΠΎΠ½ΡΠΎΠΌ) ΡΠΎΠ³ΠΎ ΠΆΠ΅ Π²Π΅ΠΊΡΠΎΡΠ° ΠΈΠ»ΠΈ ΡΡΡΠΎΠΊΠΈ. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ β Π΄ΠΈΡΡΠ°Π½ΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ. ΠΠΎΠ΄ Π΄ΠΈΡΡΠ°Π½ΡΠΈΠ΅ΠΉ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΡΡΠ³ΠΎΠΉ. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠΉ Π·Π½Π°ΠΊΠΎΠ²ΡΠΉ ΡΠΈΠΏ difference_type. Π’ΠΈΠΏ difference_type ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΈ Π΄Π»Ρ Π²Π΅ΠΊΡΠΎΡΠ°, ΠΈ Π΄Π»Ρ ΡΡΡΠΎΠΊΠΈ. ΠΡΠΎΡ ΡΠΈΠΏ Π·Π½Π°ΠΊΠΎΠ²ΡΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π²ΡΡΠΈΡΠ°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈΠΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΌ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ (binary search). ΠΠ²ΠΎΠΈΡΠ½ΡΠΉ (Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ) ΠΏΠΎΠΈΡΠΊ ΠΈΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΊ: ΡΠ½Π°ΡΠ°Π»Π° ΠΈΡΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠΉ ΠΊ ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΡΠ»ΠΈ ΡΡΠΎ ΠΈΡΠΊΠΎΠΌΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΡΠ°Π±ΠΎΡΠ° Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π°. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΡΡΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ΅Π½ΡΡΠ΅ ΠΈΡΠΊΠΎΠΌΠΎΠ³ΠΎ, ΠΏΠΎΠΈΡΠΊ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π΄ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠΎΡΠ»Π΅ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ. ΠΡΠ»ΠΈ ΡΡΠ΅Π΄Π½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΡΠΊΠΎΠΌΠΎΠ³ΠΎ, ΠΏΠΎΠΈΡΠΊ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅. ΠΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ ΡΡΠ΅Π΄Π½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΎΡΡΠ°Π²ΡΠ΅Π³ΠΎΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡΡΡ, ΠΏΠΎΠΊΠ° ΠΈΡΠΊΠΎΠΌΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΉΠ΄Π΅Π½ ΠΈΠ»ΠΈ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΈΡΡΠ΅ΡΠΏΠ°ΡΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ, Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
// ΡΠ΅ΠΊΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½
// beg ΠΈ end ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠΈΡΠΊ
auto beg = text.begin(), end = text.end();
auto mid = text.begin() + (end - beg)/2; // ΠΈΡΡ ΠΎΠ΄Π½Π°Ρ ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π°
// ΠΏΠΎΠΊΠ° Π΅ΡΠ΅ Π΅ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈ ΠΈΡΠΊΠΎΠΌΡΠΉ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½
while (mid != end && *mid != sought) {
if (sought < *mid) // Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π»ΠΈ ΠΈΡΠΊΠΎΠΌΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅?
end = mid; // Π΅ΡΠ»ΠΈ Π΄Π°, ΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, ΠΈΠ³Π½ΠΎΡΠΈΡΡΡ Π²ΡΠΎΡΡΡ
// ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ
else // ΠΈΡΠΊΠΎΠΌΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π²ΠΎ Π²ΡΠΎΡΠΎΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅
beg = mid + 1; // Π½Π°ΡΠ°ΡΡ ΠΏΠΎΠΈΡΠΊ Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ
mid = beg + (end - beg)/2; // Π½ΠΎΠ²Π°Ρ ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π°
}
ΠΠΎΠ΄ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ΅Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ²: beg Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ²ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅, end β ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ, a mid β Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠΌ ΠΊ ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅. ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΡΡΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ, ΠΎΡ Π²Π°ΡΡΠ²Π°ΡΡΠΈΠΌΠΈ Π²Π΅ΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π²Π΅ΠΊΡΠΎΡΠ° vector<string> ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ text.
Π‘Π½Π°ΡΠ°Π»Π° ΡΠΈΠΊΠ» ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, Π½Π΅ ΠΏΡΡΡ Π»ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½. ΠΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ° mid ΡΠ°Π²Π½ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ° end, ΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΈΡΡΠ΅ΡΠΏΠ°Π½Ρ. Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π»ΠΎΠΆΠ½ΠΎ ΠΈ ΡΠΈΠΊΠ» while Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ mid ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΠΈΡΠΊΠΎΠΌΠΎΠΌΡ. ΠΡΠ»ΠΈ ΡΡΠΎ ΡΠ°ΠΊ, ΡΠΎ ΡΠΈΠΊΠ» Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ.
ΠΡΠ»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π²ΡΠ΅ Π΅ΡΠ΅ Π΅ΡΡΡ, ΠΊΠΎΠ΄ Π² ΡΠΈΠΊΠ»Π΅ while ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΡΠ΅Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ end ΠΈΠ»ΠΈ beg. ΠΡΠ»ΠΈ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ mid ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ sought, ΡΠΎ Π΅ΡΠ»ΠΈ ΠΈΡΠΊΠΎΠΌΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈ Π΅ΡΡΡ Π² Π²Π΅ΠΊΡΠΎΡΠ΅, ΠΎΠ½ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½Π½ΡΠΌ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ mid. ΠΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ, ΡΡΠΎ ΠΌΡ ΠΈ Π΄Π΅Π»Π°Π΅ΠΌ, ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ° mid ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ end. ΠΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ *mid ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ sought, ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠΎΡΠ»Π΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ mid. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ beg ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠΉ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ mid. Π£ΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΡΠΎ mid Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΈΡΠΊΠΎΠΌΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΏΠΎΡΡΠΎΠΌΡ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.
Π ΠΊΠΎΠ½ΡΠ΅ ΡΠΈΠΊΠ»Π° while ΠΈΡΠ΅ΡΠ°ΡΠΎΡ mid Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π΅Π½ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ end Π»ΠΈΠ±ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΠΈΡΠΊΠΎΠΌΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ. ΠΡΠ»ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ mid ΡΠ°Π²Π΅Π½ end, ΡΠΎ ΠΈΡΠΊΠΎΠΌΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π½Π΅Ρ Π² Π²Π΅ΠΊΡΠΎΡΠ΅ text.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π° 3.4.2Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 3.24. ΠΠ΅ΡΠ΅Π΄Π΅Π»Π°ΠΉΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ ΡΠ°Π·Π΄Π΅Π»Π° 3.3.3 Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ².
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 3.25. ΠΠ΅ΡΠ΅ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡΠ΅Π½ΠΎΠΊ ΠΈΠ· ΡΠ°Π·Π΄Π΅Π»Π° 3.3.3 Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π²ΠΌΠ΅ΡΡΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΠΈ.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 3.26. ΠΠΎΡΠ΅ΠΌΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΠΊΠΎΠ΄ mid = beg + (end - beg) / 2;, Π° Π½Π΅ mid = (beg + end) / 2;?
3.5. ΠΠ°ΡΡΠΈΠ²Ρ
ΠΠ°ΡΡΠΈΠ² (array) β ΡΡΠΎ ΡΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΠ΄ΠΎΠ±Π½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΠΎΠΌΡ ΡΠΈΠΏΡ vector (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 3.3), Π½ΠΎ Ρ Π΄ΡΡΠ³ΠΈΠΌ ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡΡΡ. ΠΠ°ΠΊ ΠΈ Π²Π΅ΠΊΡΠΎΡ, ΠΌΠ°ΡΡΠΈΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠΌ Π±Π΅Π·ΡΠΌΡΠ½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΏΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π²Π΅ΠΊΡΠΎΡΠ°, ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΈΠΌΠ΅ΡΡ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ; Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊ ΠΌΠ°ΡΡΠΈΠ²Ρ Π½Π΅Π»ΡΠ·Ρ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΏΠΎΡΡΠΎΡΠ½Π½Ρ, ΠΎΠ½ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π»ΡΡΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎ ΡΡΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΠ°Π΅ΡΡΡ Π·Π° ΡΡΠ΅Ρ ΠΏΠΎΡΠ΅ΡΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ.
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅ ΡΠΎΡΠ½ΠΎ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π²Π΅ΠΊΡΠΎΡ.
3.5.1. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²