Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°

Π£Ρ€ΠΎΠΊ 35
Π”ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ
(Β§37. Π”ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ)

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

Π˜Π½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°

Π˜Π½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, для Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π•Π²ΠΊΠ»ΠΈΠ΄Π° сущСствуСт условиС ΠΠžΠ”(Π°, b) = ΠΠžΠ”(m, n), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ остаётся справСдливым Π½Π° протяТСнии всСго выполнСния Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°: ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π°, послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ шага Ρ†ΠΈΠΊΠ»Π° ΠΈ послС окончания Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ†ΠΈΠΊΠ»Π°. Π’Π°ΠΊΠΎΠ΅ условиС называСтся ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π° (Π°Π½Π³Π». invariant β€” Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΉ).

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°Π˜Π½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π° β€” это ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ значСниями ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ остаётся справСдливым послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ любого шага Ρ†ΠΈΠΊΠ»Π°.

Π’Ρ‹Π΄Π΅Π»ΠΈΠ² Π² явном Π²ΠΈΠ΄Π΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°, ΠΌΡ‹ ΠΈΠ·Π±Π΅Π³Π°Π΅ΠΌ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ошибок Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ стадии ΠΈ Π΄Π΅Π»Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ шаг ΠΊ Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Ρƒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ всСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Как писал Π°ΠΊΠ°Π΄Π΅ΠΌΠΈΠΊ АндрСй ΠŸΠ΅Ρ‚Ρ€ΠΎΠ²ΠΈΡ‡ Π•Ρ€ΡˆΠΎΠ², ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Ρ‚Π΅ΠΎΡ€Π΅Ρ‚ΠΈΠΊΠΎΠ² программирования Π² Π‘Π‘Π‘Π , «программиста Π±ΡŒΡŽΡ‚ ΠΏΠΎ Ρ€ΡƒΠΊΠ°ΠΌ, Ссли ΠΎΠ½ посмССт Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ†ΠΈΠΊΠ»Π°, Π½Π΅ найдя ΠΏΠ΅Ρ€Π΅Π΄ этим Π΅Π³ΠΎ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°Β».

Рассмотрим нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ².

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1. Π”Π²ΠΎΠ΅ ΠΈΠ³Ρ€Π°ΡŽΡ‚ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΠ³Ρ€Ρƒ: ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΌΠΈ Π»Π΅ΠΆΠ°Ρ‚ Π² ряд N + 1 ΠΊΠ°ΠΌΠ½Π΅ΠΉ, сначала N Π±Π΅Π»Ρ‹Ρ…, ΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ β€” ΠΎΠ΄ΠΈΠ½ Ρ‡Ρ‘Ρ€Π½Ρ‹ΠΉ. Π—Π° ΠΎΠ΄ΠΈΠ½ Ρ…ΠΎΠ΄ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π·ΡΡ‚ΡŒ ΠΎΡ‚ 1 Π΄ΠΎ 3 ΠΊΠ°ΠΌΠ½Π΅ΠΉ. ΠŸΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΡ‚, ΠΊΡ‚ΠΎ Π±Π΅Ρ€Π΅Ρ‚ Ρ‡Ρ‘Ρ€Π½Ρ‹ΠΉ («нСсчастливый») камСнь.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, для своСго Π²Ρ‹ΠΈΠ³Ρ€Ρ‹ΡˆΠ° ΠΈΠ³Ρ€ΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ своим Ρ…ΠΎΠ΄ΠΎΠΌ Π²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚: число ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ Π±Π΅Π»Ρ‹Ρ… ΠΊΠ°ΠΌΠ½Π΅ΠΉ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΊΡ€Π°Ρ‚Π½ΠΎ 4. Если ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ Π² Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹ΡˆΠ½ΠΎΠ΅ ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ³Ρ€ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Π΄Π΅ΡΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΎΡˆΠΈΠ±ΠΊΡƒ сопСрника.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2. ΠŸΡƒΡΡ‚ΡŒ Π·Π°Π΄Π°Π½ массив А Π΄Π»ΠΈΠ½Ρ‹ n. Найдём ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ суммирования элСмСнтов массива:

Π½Ρ† для i ΠΎΡ‚ 1 Π΄ΠΎ n

Π—Π΄Π΅ΡΡŒ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Sum добавляСтся элСмСнт массива A[i], Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ любом i послС окончания ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ шага Ρ†ΠΈΠΊΠ»Π° Π² Sum Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½Π° сумма всСх элСмСнтов массива с Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΎΡ‚ 1 Π΄ΠΎ i. Π­Ρ‚ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ сразу ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ†ΠΈΠΊΠ»Π° Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Sum Π±ΡƒΠ΄Π΅Ρ‚ записана сумма всСх элСмСнтов массива.

Аналогично ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ поиска наимСньшСго значСния Π² массивС:

Π½Ρ† для i ΠΎΡ‚ 2 Π΄ΠΎ n

Ссли А[i] ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3. Для Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ массива Π½Π°ΠΉΠ΄Π΅ΠΌ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ сортировки элСмСнтов массива ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠ°:

Π½Ρ† для i ΠΎΡ‚ 1 Π΄ΠΎ n-1

Ссли A[j] > A[j+l] Ρ‚ΠΎ

с:= А[j); А(j]:= А[j+1]; A[j + 1]:= с;

Π”ΠΎ Π½Π°Ρ‡Π°Π»Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° элСмСнты располоТСны ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎ. На ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС внСшнСго Ρ†ΠΈΠΊΠ»Π° Π½Π° своС мСсто «всплываСт» ΠΎΠ΄ΠΈΠ½ элСмСнт массива. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ этого Ρ†ΠΈΠΊΠ»Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΡ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ: «ПослС выполнСния i-ro шага Ρ†ΠΈΠΊΠ»Π° ΠΏΠ΅Ρ€Π²Ρ‹Π΅ i элСмСнтов массива отсортированы ΠΈ установлСны Π½Π° свои мСста».

Π’Π΅ΠΏΠ΅Ρ€ΡŒ построим ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ Ρ†ΠΈΠΊΠ»Π°. Π’ этом Ρ†ΠΈΠΊΠ»Π΅ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ Β«Π»Ρ‘Π³ΠΊΠΈΠΉΒ» элСмСнт поднимаСтся Π²Π²Π΅Ρ€Ρ… ΠΊ Π½Π°Ρ‡Π°Π»Ρƒ массива. ΠŸΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ шагом Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ Ρ†ΠΈΠΊΠ»Π° элСмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‚ΠΎΡΡ‚ΡŒ Π½Π° i-ΠΌ мСстС Π² отсортированном массивС, ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² любой ячСйкС ΠΎΡ‚ А[i] Π΄ΠΎ А[n]. ПослС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ шага Π΅Π³ΠΎ Β«Π·ΠΎΠ½Π° нахоТдСния» суТаСтся Π½Π° ΠΎΠ΄Π½Ρƒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΡ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ: Β«Π­Π»Π΅ΠΌΠ΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‚ΠΎΡΡ‚ΡŒ Π½Π° i-ΠΌ мСстС Π² отсортированном массивС, ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² любой ячСйкС ΠΎΡ‚ A[i] Π΄ΠΎ А[j]Β». ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° Π² ΠΊΠΎΠ½Ρ†Π΅ этого Ρ†ΠΈΠΊΠ»Π° j = i, элСмСнт A[i] встаёт Π½Π° своё мСсто.

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΌΡ‹ опрСдСляли ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π·Π°Ρ€Π°Π½Π΅Π΅ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 4. Рассмотрим Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ быстрого возвСдСния Π² ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ, основанный Π½Π° использовании ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ возвСдСния Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ ΠΈ умноТСния. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Π²Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹:

(1) a k = a k-l β€’ Π° ΠΏΡ€ΠΈ Π½Π΅Ρ‡Ρ‘Ρ‚Π½ΠΎΠΉ стСпСни k ΠΈ

(2) Π° ΠΊ = (Π° 2 ) k/2 ΠΏΡ€ΠΈ Ρ‡Ρ‘Ρ‚Π½ΠΎΠΉ стСпСни k.

ПокаТСм, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ возвСдСния числа Π° Π² ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ 7:

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°

Π—Π΄Π΅ΡΡŒ ΠΏΠΎΠΎΡ‡Π΅Ρ€Ρ‘Π΄Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ пСрвая ΠΈ вторая Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹. Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ этапС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π° n ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ Π° n = b ΠΊ β€’ Ρ€, Π³Π΄Π΅ Ρ‡Π΅Ρ€Π΅Π· Ρ€ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π° Ρ‡Π°ΡΡ‚ΡŒ, взятая Π²Ρ‹ΡˆΠ΅ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки. Если Π½Π°ΠΌ ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ удастся ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ k Π΄ΠΎ нуля, сохранив это равСнство, Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π° n = Ρ€, Ρ‚. Π΅. Π·Π°Π΄Π°Ρ‡Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅ΡˆΠ΅Π½Π°, Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ€.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, равСнство Π° n = b ΠΊ β€’ Ρ€ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этого равСнства Π² Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, b = Π°, k = n ΠΈ Ρ€ = 1. Π”Π°Π»Π΅Π΅ Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ (1) ΠΈ (2) (Π² зависимости ΠΎΡ‚ чётности k Π½Π° Π΄Π°Π½Π½ΠΎΠΌ шагС). Π¦ΠΈΠΊΠ» заканчиваСтся, ΠΊΠΎΠ³Π΄Π° k = 0. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅:

Π½Ρ† ΠΏΠΎΠΊΠ° ΠΊ <> 0

Ссли mod(k,2)=0 Ρ‚ΠΎ

ΠΈΠ½Π°Ρ‡Π΅

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π° Π° n = b ΠΊ β€’ Ρ€ выполняСтся Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° Ρ†ΠΈΠΊΠ»Π°, послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ шага, Π° Ρ‚Π°ΠΊΠΆΠ΅ послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ†ΠΈΠΊΠ»Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ написали ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π΄ΠΎΠΊΠ°Π·Π°Π»ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ этого Π±Π»ΠΎΠΊΠ°.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ страница Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ циклаБпСцификация

CΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΡƒΡ€ΠΎΠΊΠ°
Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°?

Π― Ρ‡ΠΈΡ‚Π°ΡŽ» Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ » CLRS. ΠΈ Π°Π²Ρ‚ΠΎΡ€Ρ‹ говорят ΠΎΠ± ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°Ρ… Ρ†ΠΈΠΊΠ»Π° Π² Π³Π»Π°Π²Π΅ 2 (сортировка вставки). Π― понятия Π½Π΅ имСю, Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚.

15 ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²

ΠΌΠ½Π΅ нравится ΠΎΡ‡Π΅Π½ΡŒ простоС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅: (источник)

ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°-это условиС [срСди ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹], ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Π΅Ρ€Π½ΠΎ нСпосрСдствСнно ΠΏΠ΅Ρ€Π΅Π΄ ΠΈ сразу послС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π°. (ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ это Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Π΅Π³ΠΎ истинности ΠΈΠ»ΠΈ лоТности частично Ρ‡Π΅Ρ€Π΅Π· ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ.)

ΠΊΠ°ΠΊ я понимаю, ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π° являСтся систСматичСским, Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ инструмСнтом для рассуТдСния ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…. ΠœΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ ΠΎΠ΄Π½ΠΎ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ фокусируСм Π½Π° Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π΅ истинности, ΠΈ ΠΌΡ‹ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌ Π΅Π³ΠΎ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π°. Π­Ρ‚ΠΎ упорядочиваСт Π½Π°ΡˆΡƒ Π»ΠΎΠ³ΠΈΠΊΡƒ. Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ просто Π½Π΅ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΡΠΏΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°, заставляСт нас Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ наши рассуТдСния Π³Π΅Ρ€ΠΌΠ΅Ρ‚ΠΈΡ‡Π½Ρ‹.

Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½Π° Π²Π΅Ρ‰ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ люди Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚ сразу ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с пСтлями ΠΈ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌΠΈ. Они ΠΏΡƒΡ‚Π°ΡŽΡ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π° ΠΈ условным Ρ†ΠΈΠΊΠ»ΠΎΠΌ ( условиСм, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ управляСт Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Ρ†ΠΈΠΊΠ»Π° ).

ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ люди, ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ истинным

( хотя ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π»ΠΎΠΆΠ½Ρ‹ΠΌ Π²ΠΎ врСмя Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π° ). Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, условный Ρ†ΠΈΠΊΠ» Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ false послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ†ΠΈΠΊΠ»Π°, ΠΈΠ½Π°Ρ‡Π΅ Ρ†ΠΈΠΊΠ» Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ.

Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π° ΠΈ условного Ρ†ΠΈΠΊΠ»Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ условия.

Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° комплСксного Ρ†ΠΈΠΊΠ»Π° являСтся Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ поиск.

Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ†ΠΈΠΊΠ» условный каТСтся довольно прямо Π²ΠΏΠ΅Ρ€Π΅Π΄-ΠΊΠΎΠ³Π΄Π° start > end Ρ†ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ. Но ΠΏΠΎΡ‡Π΅ΠΌΡƒ пСтля ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ? Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ?

ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ являСтся логичСскоС ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅:

это ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ являСтся логичСской Ρ‚Π°Π²Ρ‚ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ-ΠΎΠ½ΠΎ всСгда истинно Π² контСкстС ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° / Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΌΡ‹ пытаСмся Π΄ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ. И ΠΎΠ½ прСдоставляСт ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ†ΠΈΠΊΠ»Π° послС Π½Π΅Π³ΠΎ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Π΅Ρ‚.

Ссли ΠΌΡ‹ вСрнСмся, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ нашли элСмСнт Π² массивС, Ρ‚ΠΎ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ссли A[mid] == a Π·Π°Ρ‚Π΅ΠΌ a находится Π² массивС ΠΈ mid Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½Π°Ρ‡Π°Π»ΠΎΠΌ ΠΈ ΠΊΠΎΠ½Ρ†ΠΎΠΌ. И Ссли Ρ†ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ start > end Ρ‚ΠΎΠ³Π΄Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ числа, Ρ‡Ρ‚ΠΎ start ΠΈ mid ΠΈ поэтому ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ заявлСниС A[mid] == a Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ false. Однако Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΠ±Ρ‰Π΅Π΅ логичСскоС ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ остаСтся истинным Π² Π½ΡƒΠ»Π΅Π²ΠΎΠΌ смыслС. ( Π’ Π»ΠΎΠ³ΠΈΠΊΠ΅ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ if (false ) Ρ‚ΠΎΠ³Π΄Π° ( something) всСгда истинно. )

ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°.

Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ·Π²ΠΎΠ»ΡŒΡ‚Π΅ ΠΌΠ½Π΅ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΡ€Ρ‹ CLRS использовали ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Ρ†ΠΈΠΊΠ»Π° для Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° Π΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€Π½ΠΎΡΡ‚ΡŒ Ρ€ΠΎΠ΄Π° вставки.

Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ сортировки вставки(ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΊΠ½ΠΈΠ³Π΅):

ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π° Π² этом случаС (источник: CLRS book): Subarray[1 to j-1] всСгда сортируСтся.

Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ это ΠΈ Π΄ΠΎΠΊΠ°ΠΆΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ.

ΠœΠ΅ΠΉΠ½Ρ‚Π°Π½Π΅Π½Ρ: Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ² ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ послС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ.Π’ этом случаС ΠΎΠ½ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€Π΅Π½.

ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅: это шаг, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ Π΄ΠΎΠΊΠ°ΠΆΠ΅ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ.

ΠΊΠΎΠ³Π΄Π° Ρ†ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ, Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ j=n+1. Π‘Π½ΠΎΠ²Π° выполняСтся ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°.Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠŸΠΎΠ΄Ρ€Π΅ΡˆΠ΅Ρ‚ΠΊΠ°[ΠΎΡ‚ 1 Π΄ΠΎ n] Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ отсортирована.

Π­Ρ‚ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с нашим Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ.Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, наш Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π²Π΅Ρ€Π΅Π½.

ΠΏΠΎΠΌΠΈΠΌΠΎ всСх Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ², я Π΄ΡƒΠΌΠ°ΡŽ, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· Как Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎΠ± Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°Ρ…, Π”ΠΆΠ΅Ρ„Ρ„ Эдмондс ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ:

ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 1.2.1 «Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π΄Π²ΡƒΡ… ΠΏΠ°Π»ΡŒΡ†Π΅Π² Find-Max»

1) ВСхничСскиС характСристики: Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ экзСмпляр состоит ΠΈΠ· списка L (1..n) элСмСнты. Π’Ρ‹Ρ…ΠΎΠ΄ состоит ΠΈΠ· индСкса i Ρ‚Π°ΠΊΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ L (i) ΠΈΠΌΠ΅Π΅Ρ‚ максимум Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Если Π΅ΡΡ‚ΡŒ нСсколько записСй с этим ΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, Ρ‚ΠΎ Π»ΡŽΠ±Ρ‹Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… возвращаСтся.

2) основныС шаги: Π²Ρ‹ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ Π΄Π²ΡƒΡ… ΠΏΠ°Π»ΡŒΡ†Π΅Π². На ΠΏΠ°Π»ΡŒΡ†Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ Ρ€ΡƒΠΊΠΈ ΠΏΡ€ΠΎΠ±Π΅Π³Π°Π΅Ρ‚ ΠΏΠΎ списку.

3) ΠΌΠ΅Ρ€Π° прогрСсса: ΠΌΠ΅Ρ€Π° прогрСсса, ΠΊΠ°ΠΊ Π΄Π°Π»Π΅ΠΊΠΎ вдоль список ваш ΠΏΡ€Π°Π²Ρ‹ΠΉ ΠΏΠ°Π»Π΅Ρ†.

4) Π˜Π½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π¦ΠΈΠΊΠ»Π°: ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΠ΅Ρ‚Π»ΠΈ заявляСт, Ρ‡Ρ‚ΠΎ ваш Π»Π΅Π²Ρ‹ΠΉ ΠΏΠ°Π»Π΅Ρ† ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΎΠ΄Π½Ρƒ ΠΈΠ· самых Π±ΠΎΠ»ΡŒΡˆΠΈΡ… записСй, встрСчСнных Π΄ΠΎ сих ΠΏΠΎΡ€ вашим ΠΏΡ€Π°Π²Ρ‹ΠΉ ΠΏΠ°Π»Π΅Ρ†.

5) ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ шаги: каТдая итСрация, Ρ‚Ρ‹ двигаСшь ΠΏΡ€Π°Π²Ρ‹ΠΌ ΠΏΠ°Π»ΡŒΡ†Π΅ΠΌ Π²Π½ΠΈΠ·. запись Π² спискС. Если ваш ΠΏΡ€Π°Π²Ρ‹ΠΉ ΠΏΠ°Π»Π΅Ρ† Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° запись это большС, Ρ‡Π΅ΠΌ Π²Ρ…ΠΎΠ΄ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠ°Π»ΡŒΡ†Π°, Π° Π·Π°Ρ‚Π΅ΠΌ пСрСмСститС Π»Π΅Π²Ρ‹ΠΉ ΠΏΠ°Π»Π΅Ρ†, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ с ΠΏΡ€Π°Π²Ρ‹ΠΌ ΠΏΠ°Π»ΡŒΡ†Π΅ΠΌ.

6) прогрСсс: Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ прогрСсс, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ваш ΠΏΡ€Π°Π²Ρ‹ΠΉ ΠΏΠ°Π»Π΅Ρ† двиТСтся ΠΎΠ΄Π½Π° запись.

7) ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π˜Π½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π¦ΠΈΠΊΠ»Π°: Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π° сохраняСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ шага Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠ°Π»ΡŒΡ†Π° Π΅ΡΡ‚ΡŒ Max (старый элСмСнт Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠ°Π»ΡŒΡ†Π°, Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт). По ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρƒ Ρ†ΠΈΠΊΠ»Π°, это Max (Max (shorter list), Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт). ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈ, это Макс(Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ список).

8) установлСниС ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Ρ†ΠΈΠΊΠ»Π°: Π²Ρ‹ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ устанавливаСтС ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΠ΅Ρ‚Π»ΠΈ, указывая ΠΎΠ±ΠΎΠΈΠΌΠΈ ΠΏΠ°Π»ΡŒΡ†Π°ΠΌΠΈ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт.

9) условиС Π²Ρ‹Ρ…ΠΎΠ΄Π°: Π²Ρ‹ сдСланы ΠΊΠΎΠ³Π΄Π° ваш ΠΏΡ€Π°Π²Ρ‹ΠΉ ΠΏΠ°Π»Π΅Ρ† Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π» ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽ список.

10) ΠΊΠΎΠ½Π΅Ρ†: Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ Π·Π°Π΄Π°Ρ‡Π° Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. ΠžΡ‚ ΠΏΡ€ΠΈ условии Π²Ρ‹Ρ…ΠΎΠ΄Π°, ваш ΠΏΡ€Π°Π²Ρ‹ΠΉ ΠΏΠ°Π»Π΅Ρ† столкнулся со всСми вступлСния. По ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρƒ ΠΏΠ΅Ρ‚Π»ΠΈ ваш Π»Π΅Π²Ρ‹ΠΉ ΠΏΠ°Π»Π΅Ρ† ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° максимум ΠΈΠ· этих. Π’Π΅Ρ€Π½ΠΈΡ‚Π΅ эту запись.

11) ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ врСмя нСкоторая константа ΡƒΠΌΠ½ΠΎΠΆΡŒΡ‚Π΅ Π΄Π»ΠΈΠ½Ρƒ списка.

12) особыС случаи: ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ происходит, ΠΊΠΎΠ³Π΄Π° Π΅ΡΡ‚ΡŒ нСсколько записСй с Ρ‚Π΅ΠΌ ΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, ΠΈΠ»ΠΈ, ΠΊΠΎΠ³Π΄Π° n = 0 ΠΈΠ»ΠΈ N = 1.

14) Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π²Ρ‹Ρ‚Π΅ΠΊΠ°Π΅Ρ‚ ΠΈΠ· Π²Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚Ρ‹Π΅ шаги.

слСдуСт ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΏΡ€ΠΈ рассмотрСнии утвСрТдСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π²Π°ΠΆΠ½Ρ‹Π΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ истинными Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΊΠΎΠ³Π΄Π° Ρ†ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ. Если это Ρ‚Π°ΠΊ, Ρ‚ΠΎ расчСт находится Π½Π° ΠΏΡƒΡ‚ΠΈ ΠΊ эффСктивности. Если false, Ρ‚ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ.

ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π² этом случаС ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ условиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ истинным Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π°.

Π² ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ являСтся условиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ истинным (ΠΏΠΎ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρƒ) Π΄ΠΎ ΠΈ послС Π²Ρ‹Π·ΠΎΠ²Π° любого ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ мСняСтся

здСсь ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π° ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ » ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ происходит с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Ρ†ΠΈΠΊΠ»Π΅ (ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ ΠΈΠ»ΠΈ Π΄Π΅ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚), Π½Π΅ измСняСт условиС Ρ†ΠΈΠΊΠ»Π° i.e условиС удовлСтворяСт » Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΡˆΠ»ΠΎ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΠ΅ понятиС Ρ†ΠΈΠΊΠ»Π°

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

. // ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ истинным здСсь
while (условиС тСстирования ) <
// top of the loop
.
// ниТняя Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠ΅Ρ‚Π»ΠΈ
// ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ истинным здСсь
>
// Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ + Π˜Π½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π¦ΠΈΠΊΠ»Π° = ЦСль
.
ΠœΠ΅ΠΆΠ΄Ρƒ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ ΠΈ Π½ΠΈΠΆΠ½Π΅ΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΏΠ΅Ρ‚Π»ΠΈ, прогрСсс ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ дСлаСтся ΠΊ Π΄ΠΎΡΡ‚ΠΈΠΆΠ΅Π½ΠΈΡŽ ΠΏΠ΅Ρ‚Π»ΠΈ Ρ†Π΅Π»ΡŒ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ (ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π»ΠΎΠΆΠ½Ρ‹ΠΌ) ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. Π’ΠΎΡ‡ΠΊΠ° ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Ρ†ΠΈΠΊΠ»Π°-это ΠΎΠ±Π΅Ρ‰Π°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ восстановлСн ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ΠΌ Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·. Π’ этом Π΅ΡΡ‚ΡŒ Π΄Π²Π° прСимущСства:

Ρ€Π°Π±ΠΎΡ‚Π° Π½Π΅ пСрСносится Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ слоТными, зависящими ΠΎΡ‚ Π΄Π°Π½Π½Ρ‹Ρ… способами. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ‚Π»ΡŽ нСзависим ΠΎΡ‚ всСх Π΄Ρ€ΡƒΠ³ΠΈΡ…, с ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ, слуТащим для связывания ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΎΠ² вмСстС Π² Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ Ρ†Π΅Π»ΠΎΠ΅. РассуТдСниС ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ваш Ρ†ΠΈΠΊΠ» Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, сводится ΠΊ Ρ€Π°ΡΡΡƒΠΆΠ΄Π΅Π½ΠΈΡŽ Ρ‡Ρ‚ΠΎ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π° восстанавливаСтся с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΎΠΌ Ρ‡Π΅Ρ€Π΅Π· Ρ†ΠΈΠΊΠ». Π­Ρ‚ΠΎ Ρ€Π°Π·Π±ΠΈΠ²Π°Π΅Ρ‚ слоТноС ΠΎΠ±Ρ‰Π΅Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π° Π½Π° нСбольшиС простыС шаги, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ. ВСстовоС условиС Ρ†ΠΈΠΊΠ»Π° Π½Π΅ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°. Π­Ρ‚ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ заставляСт Ρ†ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒΡΡ. Π’Ρ‹ рассматриваСтС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Π΄Π²Π΅ Π²Π΅Ρ‰ΠΈ: ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ†ΠΈΠΊΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒΡΡ ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ†ΠΈΠΊΠ» достигаСт своСй Ρ†Π΅Π»ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ. Π¦ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ, Ссли ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Ρ‡Π΅Ρ€Π΅Π· Ρ†ΠΈΠΊΠ» Π²Ρ‹ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ°Π΅Ρ‚Π΅ΡΡŒ ΠΊ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ условиС прСкращСния. Часто это Π»Π΅Π³ΠΊΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ: Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, шагая ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ счСтчика ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ, ΠΏΠΎΠΊΠ° ΠΎΠ½Π° Π½Π΅ достигнСт фиксированного Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄Π΅Π»Π°. Иногда ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° прСкращСния слоТнСС.

ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ создан Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ достиТСнии условия окончания ΠΈ истинности ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π±Ρ‹Π»Π° достигнута Ρ†Π΅Π»ΡŒ:

ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ + ΡƒΠ²ΠΎΠ»ΡŒΠ½Π΅Π½ΠΈΠ΅ => Ρ†Π΅Π»ΡŒ
ВрСбуСтся ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° для создания ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ просты ΠΈ связаны ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ всС достиТСния Ρ†Π΅Π»ΠΈ, ΠΊΡ€ΠΎΠΌΠ΅ прСкращСния. Π›ΡƒΡ‡ΡˆΠ΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ матСматичСскиС символы для выраТСния ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Ρ†ΠΈΠΊΠ»Π°, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° это ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎ слоТным ситуациям, ΠΌΡ‹ полагаСмся Π½Π° ΡΡΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ·Ρƒ ΠΈ Π·Π΄Ρ€Π°Π²Ρ‹ΠΉ смысл.

Π˜Π·Π²ΠΈΠ½ΠΈΡ‚Π΅, Ρƒ мСня Π½Π΅Ρ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ.

@Tomas Petricek, ΠΊΠ°ΠΊ Π²Ρ‹ упомянули

Π±ΠΎΠ»Π΅Π΅ слабый ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ истинСн, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ i >= 0 && i

Как это ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°?

свойство ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Ρ†ΠΈΠΊΠ»Π° являСтся условиСм, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ выполняСтся для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ шага выполнСния Ρ†ΠΈΠΊΠ»ΠΎΠ²(Ρ‚. Π΅. для ΠΏΠ΅Ρ‚Π»ΠΈ, Π° ΠΏΠ΅Ρ‚Π»ΠΈ ΠΈ Ρ‚. Π΄.)

Π­Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ для Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Ρ†ΠΈΠΊΠ»Π°, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ выполняСтся ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Ссли Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС Π΅Π³ΠΎ выполнСния это свойство ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Ρ†ΠΈΠΊΠ»Π° выполняСтся.

Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π±Ρ‹Π» ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ, ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (the Π½Π°Ρ‡Π°Π»ΠΎ)

тСхничСскоС обслуТиваниС (ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ шаг)

ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ (ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»)

Π­Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΎΡ†Π΅Π½ΠΊΠΈ мноТСства Π²Π΅Ρ‰Π΅ΠΉ, Π½ΠΎ Π»ΡƒΡ‡ΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΆΠ°Π΄Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ для ΠΎΠ±Ρ…ΠΎΠ΄Π° взвСшСнного Π³Ρ€Π°Ρ„ΠΈΠΊΠ°. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΆΠ°Π΄Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π΄Π°Π» ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ (ΠΏΡƒΡ‚ΡŒ ΠΏΠΎ Π³Ρ€Π°Ρ„Ρƒ), ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ соСдинСния всСх ΡƒΠ·Π»ΠΎΠ² Π² наимСньшСм Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΌ ΠΏΡƒΡ‚ΠΈ вСса.

Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, свойство ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Ρ†ΠΈΠΊΠ»Π° состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ наимСньший вСс. На Π½Π°Ρ‡Π°Π»ΠΎ ΠΌΡ‹ Π½Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Ρ€Π΅Π±Π΅Ρ€, поэтому это свойство true (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС это Π½Π΅ false). At ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ шаг, ΠΌΡ‹ слСдуСм Π·Π° самым Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΊΡ€Π°Π΅ΠΌ вСса (ΠΆΠ°Π΄Π½Ρ‹ΠΉ шаг), поэтому снова ΠΌΡ‹ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ самый Π½ΠΈΠ·ΠΊΠΈΠΉ ΠΏΡƒΡ‚ΡŒ вСса. At ΠΊΠΎΠ½Π΅Ρ†, ΠΌΡ‹ нашли самый Π½ΠΈΠ·ΠΊΠΈΠΉ Π²Π·Π²Π΅ΡˆΠ΅Π½Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ, поэтому нашС свойство Ρ‚Π°ΠΊΠΆΠ΅ Π²Π΅Ρ€Π½ΠΎ.

Если Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ этого Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ являСтся ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ.

простыми словами, это условиС Ρ†ΠΈΠΊΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ истинно Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π°:

Π² этом ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ состояниС i i =0

ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°-это ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ истинно Π΄ΠΎ ΠΈ послС выполнСния Ρ†ΠΈΠΊΠ»Π°.

Π² Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΌ поискС (согласно ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΡŽ, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡƒ Π² ΠΊΠ½ΠΈΠ³Π΅), Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ V Π² Π΄Π°Π½Π½ΠΎΠΌ массивС.

Π΅Π³ΠΎ просто, ΠΊΠ°ΠΊ сканированиС массива ΠΈΠ· 0

содСрТаниС: На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ V, Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ Π² k-1, ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true

Terminatation: Если V Π½Π°ΠΉΠ΄Π΅Π½ΠΎ Π² K ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈΠ»ΠΈ k достигаСт Π΄Π»ΠΈΠ½Ρ‹ массива, Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚Π΅ Ρ†ΠΈΠΊΠ».

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

Π˜Π½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°

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

Рассмотрим использованиС ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Ρ†ΠΈΠΊΠ»Π° Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ поиска индСкса наимСньшСго элСмСнта Π² цСлочислСнном массивС.

Π˜Π½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, входящиС Π² ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π±Ρ‹Π» истинным Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° выполнСния Ρ†ΠΈΠΊΠ»Π°:

Π˜Π½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π° && УсловиС_окончания_Ρ†ΠΈΠΊΠ»Π° => ЦСль Ρ†ΠΈΠΊΠ»Π°

ВмСсто условия окончания ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ условиС выполнСния Ρ†ΠΈΠΊΠ»Π°. Π’ нашСм случаС это: nextToCheck (ΠΏΠΎΠΊΠ° Π΅ΡΡ‚ΡŒ элСмСнты для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ). Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΎ (станСт Π»ΠΎΠΆΠ½Ρ‹ΠΌ), Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π° прСкратится

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Π² ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π° ΠΈ обСспСчив Π΅Π³ΠΎ сохранСниС, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ достиТСниС Ρ†Π΅Π»ΠΈ, Π½Π΅ выполняя сам Ρ†ΠΈΠΊΠ».

Вопросы для самопровСрки ΠΏΡ€ΠΈ составлСнии Ρ†ΠΈΠΊΠ»ΠΎΠ²:

ΠŸΡ€ΠΈ составлСнии Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ понятиС области нСопрСдСлСнности, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ Π² Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ. ΠžΠ±Π»Π°ΡΡ‚ΡŒ измСнСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π·Π°Π΄Π°Ρ‡ΠΈ (Π² нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅: [0,n)) ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Π΄Π²Π΅ части: ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ (для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π°ΠΉΠ΄Π΅Π½ TemporarySmallest : [0,nextToCheck) ) ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ нСопрСдСлСнности ( [nextToCheck,n) ). НСобходимо ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Ρ†ΠΈΠΊΠ» Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ нСопрСдСлСнности ΡΠΎΠΊΡ€Π°Ρ‰Π°Π»Π°ΡΡŒ.

Π˜Π½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠΌ:

НСпосрСдствСнно ΠΏΠ΅Ρ€Π΅Π΄ Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ numSorted :

Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π° истинным.

На ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ количСство numSorted увСличиваСтся Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ. Π§Ρ‚ΠΎΠ±Ρ‹ этого Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ, выбираСтся наимСньший срСди ΠΏΠ΅Ρ€Π²Ρ‹Ρ… [0,n-numSorted) нСотсортированных элСмСнтов, ΠΈ мСняСтся мСстами (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ swap() ) c элСмСнтом n-numSorted

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, отсортированный «Ρ…Π²ΠΎΡΡ‚» массива всякий Ρ€Π°Π· удлиняСтся Π½Π° ΠΎΠ΄ΠΈΠ½ элСмСнт, Π° нСотсортированная «Π³ΠΎΠ»ΠΎΠ²Π°» ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ.

Π§Ρ‚ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ

Π’ΠΈΡ€Ρ‚ Н. Алгоритмы + структуры Π΄Π°Π½Π½Ρ‹Ρ… = ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

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

Π˜Π½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅)

Π˜Π½Π²Π°Ρ€ΠΈΠ°ΜΠ½Ρ‚ΠΎΠΌ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ называСтся логичСскоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, истинноС послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π° Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π° (послС выполнСния фиксированного ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°) ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ выполнСния Ρ†ΠΈΠΊΠ»Π°, зависящСС ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΡ…ΡΡ Π² Ρ‚Π΅Π»Π΅ Ρ†ΠΈΠΊΠ»Π°. [1]

Π˜Π½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Ρ‚Π΅ΠΎΡ€ΠΈΠΈ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ выполнСния Ρ†ΠΈΠΊΠ»Π°. ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° работоспособности Ρ†ΠΈΠΊΠ»Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° сводится ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ:

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

ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ для обозначСния Π½Π΅ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠ²ΠΎΠ³ΠΎ состояния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ΠŸΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ² любого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° оставляСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² состоянии ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ

ПолСзноС

Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ «Π˜Π½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅)» Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… словарях:

Π˜Π½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” ΠΈΠ»ΠΈ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π½Π΅Ρ‡Ρ‚ΠΎ нСизмСняСмоС. ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° зависит ΠΎΡ‚ Ρ‚ΠΎΠΉ области, Π³Π΄Π΅ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ: Π˜Π½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ (ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°) Π˜Π½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΡƒΠ·Π»Π° Π² Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ Π˜Π½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ (Ρ„ΠΈΠ·ΠΈΠΊΠ°) Π˜Π½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅) Π˜Π½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ … ВикипСдия

ΠŸΠ ΠžΠ“Π ΠΠœΠœΠ˜Π ΠžΠ’ΠΠΠ˜Π• Π’Π•ΠžΠ Π•Π’Π˜Π§Π•Π‘ΠšΠžΠ• β€” матСматичСская дисциплина, ΠΈΠ·ΡƒΡ‡Π°ΡŽΡ‰Π°Ρ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡. абстракции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Ρ‚Ρ€Π°ΠΊΡ‚ΡƒΠ΅ΠΌΡ‹Ρ… ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹Π΅ Π½Π° Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌ языкС, ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΈ Π»ΠΎΠ³ΠΈΡ‡. структурой ΠΈ ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ исполнСнию Π½Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡. устройствах. П. Ρ‚.… … ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ энциклопСдия

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅) β€” Π£ этого Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ значСния, см. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€. Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ конструктор класса (ΠΎΡ‚ Π°Π½Π³Π». constructor, ΠΈΠ½ΠΎΠ³Π΄Π° ΡΠΎΠΊΡ€Π°Ρ‰Π°ΡŽΡ‚ ctor) ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ инструкций, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΈ создании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.… … ВикипСдия

Π”Π ΠΠšΠžΠ β€” Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ прСдлагаСтся ΠΊ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ. ПояснСниС ΠΏΡ€ΠΈΡ‡ΠΈΠ½ ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ обсуТдСниС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π½Π° страницС ВикипСдия:К ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ/28 сСнтября 2012. Пока процСсс обсуТдСния Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΡ‘Π½, ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΌΠΎΠΆ … ВикипСдия

Π”Π ΠΠšΠžΠ (алгоритмичСский язык) β€” Π£ этого Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ значСния, см. Π”Ρ€Π°ΠΊΠΎΠ½ (значСния). ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π±Π»ΠΎΠΊ схСмы Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π½Π° языкС Π”Π ΠΠšΠžΠ Π΄Ρ€Π°ΠΊΠΎΠ½ схСмы Π”Π ΠΠšΠžΠ (Π”Ρ€ΡƒΠΆΠ΅Π»ΡŽΠ±Π½Ρ‹ΠΉ Русский АлгоритмичСский язык, ΠšΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΠ°Π³Π»ΡΠ΄Π½ΠΎΡΡ‚ΡŒ) Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉβ€¦ … ВикипСдия

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ класса β€” Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ конструктор класса (ΠΎΡ‚ Π°Π½Π³Π». constructor, ΠΈΠ½ΠΎΠ³Π΄Π° ΡΠΎΠΊΡ€Π°Ρ‰Π°ΡŽΡ‚ ctor) ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ инструкций, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΈ создании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΏΡ€ΠΈΡ‡Ρ‘ΠΌ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Π΅Π³ΠΎ объявлСнии (Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡŒ Π² стСкС ΠΈΠ»ΠΈ Π² статичСской… … ВикипСдия

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° β€” Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ конструктор класса (ΠΎΡ‚ Π°Π½Π³Π». constructor, ΠΈΠ½ΠΎΠ³Π΄Π° ΡΠΎΠΊΡ€Π°Ρ‰Π°ΡŽΡ‚ ctor) ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ инструкций, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΈ создании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΏΡ€ΠΈΡ‡Ρ‘ΠΌ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Π΅Π³ΠΎ объявлСнии (Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡŒ Π² стСкС ΠΈΠ»ΠΈ Π² статичСской… … ВикипСдия

ΠšΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€Π°Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ β€” ΠšΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€Π°Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ матСматичСскоС ΠΈ физичСскоС понятиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ описываСт Ρ‚ΠΎ, ΠΊΠ°ΠΊ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ систСмы ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚. ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ гСомСтричСского Π²Π΅ΠΊΡ‚ΠΎΡ€Π° ΠΈΠ·ΠΌΠ΅Ρ€ΡΡŽΡ‚ΡΡ Π² ΠΊΠ°ΠΊΠΎΠΉ Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ систСмС… … ВикипСдия

ΠšΠ£Π›Π¬Π’Π£Π Π β€” (Π»Π°Ρ‚. cultura Π²ΠΎΠ·Π΄Π΅Π»Ρ‹Π²Π°Π½ΠΈΠ΅, воспитаниС, ΠΏΠΎΡ‡ΠΈΡ‚Π°Π½ΠΈΠ΅) унивСрсум искусствСнных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠ²; ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… дСйствий ΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ), созданный чСловСчСством Π² процСссС освоСния ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρ‹ ΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΠΉ структурными,… … Ѐилософская энциклопСдия

Π¨Π°Π±Π»ΠΎΠ½ β€” О ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ… Π² Π’ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ смотритС страницу ВикипСдия:Π¨Π°Π±Π»ΠΎΠ½Ρ‹. Π¨Π°Π±Π»ΠΎΠ½ Π² Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ΅ пластина (Π»Π΅ΠΊΠ°Π»ΠΎ, Ρ‚Ρ€Π°Ρ„Π°Ρ€Π΅Ρ‚ ΠΈ Ρ‚. ΠΏ.) с Π²Ρ‹Ρ€Π΅Π·Π°ΠΌΠΈ, ΠΏΠΎ ΠΊΠΎΠ½Ρ‚ΡƒΡ€Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ·Π³ΠΎΡ‚ΠΎΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Ρ‚Π΅ΠΆΠΈ ΠΈΠ»ΠΈ издСлия Π»ΠΈΠ±ΠΎ инструмСнт для измСрСния Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ². Π¨Π°Π±Π»ΠΎΠ½ в… … ВикипСдия

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ циклаНачнСм, ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, с Π·Π°Π΄Π°Ρ‡ΠΊΠΈ. Π’ строкС, содСрТащСй Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… символов, Π½ΡƒΠΆΠ½ΠΎ ΠΈΡ… ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π° счСтчик ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ ΠΈ ΠΎΠ΄ΠΈΠ½ Ρ‚Π°ΠΊΠΎΠΉ символ. НапримСр, ΠΈΠ· строки Β« abcdddddddddefggggggggggggggggggx Β» ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Β« abc 9 def 18 gx Β». Π˜Π·Π²Π΅Ρ‡Π½Ρ‹ΠΉ вопрос русской ΠΈΠ½Ρ‚Π΅Π»Π»ΠΈΠ³Π΅Π½Ρ†ΠΈΠΈ: Β«Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ?Β».

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ Ρ…ΠΎΠ΄ рассуТдСний: Β«Π‘ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ строку Π² Ρ†ΠΈΠΊΠ»Π΅. Если ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠΉΡΡ фрагмСнт…» содСрТит ΠΎΠ΄Π½Ρƒ ΡΡƒΡ‰Π΅ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Π½Π΅Π΄ΠΎΡΠΊΠ°Π·Π°Π½Π½ΠΎΡΡ‚ΡŒ: ΠΊΠ°ΠΊ процСсс обнаруТСния ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰Π΅Π³ΠΎΡΡ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° связан с Ρ†ΠΈΠΊΠ»ΠΎΠΌ посимвольного просмотра Π½Π΅ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ символов. Π­Ρ‚ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ процСсс – Ρ†ΠΈΠΊΠ», ΠΈΠ»ΠΈ ΠΎΠ½ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ.

// «Π‘ΠΊΠ»Π΅ΠΈΠ²Π°Π½ΠΈΠ΅» ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ символов строки.

// ИспользованиС счСтчика ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ. «Π“рязная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°»

ΠœΡ‹ здСсь ΠΎΠ΄Π½ΠΈΠΌ условиСм ΡƒΠ±ΠΈΠ»ΠΈ Π΄Π²ΡƒΡ… Π·Π°ΠΉΡ†Π΅Π². Π’ ΠΏΠ°Ρ€Π΅ Π½Π΅ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… символов ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ сохраняСтся всСгда, Π° Ссли ΠΎΠ½ Π΅Ρ‰Π΅ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ, Ρ‚ΠΎ выводится счСтчик.

Π—Π΄Π΅ΡΡŒ Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ «заяц». ВспомнитС, Ρ‡Ρ‚ΠΎ любой Ρ†ΠΈΠΊΠ» Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈ послСдний шаг. Они ΠΌΠΎΠ³ΡƒΡ‚ Β«Π²ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡΒ» Π² ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉΡΡ тСкст, Π° ΠΌΠΎΠ³ΡƒΡ‚ ΠΈ Π½Π΅Ρ‚. Π’ нашСм случаС, ΠΊΠΎΠ³Π΄Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ символ – послСдний Π² строкС, ΠΌΡ‹ сравниваСм Π΅Π³ΠΎ с символом Β«ΠΊΠΎΠ½Π΅Ρ† строки», Ρ‚.Π΅. Π·Π°Π²Π΅Π΄ΠΎΠΌΠΎ Π±ΡƒΠ΄Π΅Ρ‚ нСсовпадСниС ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° сработаСт ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ… случаях, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° строка Π·Π°Π΄Π°Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, состоящим ΠΈΠ· массива символов ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ размСрности, придСтся Π² явном Π²ΠΈΠ΄Π΅ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ условиС – послСдний символ строки. Π’ классичСском Π‘ΠΈ это выглядит Ρ‚Π°ΠΊ:

if (i!=strlen(in) && in[i]==in[i+1]) k++; // Π‘ΠΈΠΌΠ²ΠΎΠ» Π½Π΅ послСдний ΠΈ Π·Π° Π½ΠΈΠΌ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ Π·Π°Π΄Π°Ρ‡ΠΈ. ВСхнологичСски Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ строки: пСрСписываниС Π² Π½ΠΎΠ²ΡƒΡŽ ΠΈΠ»ΠΈ сТатиС Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ. Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ с ΠΏ СрСписываниСм Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ‰Π΅. ΠœΡ‹ смоТСм ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Β«Π³Ρ€ΡΠ·Π½ΡƒΡŽΒ» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π² Π½Π΅Π΅ процСсс пСрСписывания – массив ΠΈ индСкс Π² Π½Π΅ΠΌ. И Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ счСтчик Π² Π²ΠΈΠ΄Π΅ числа, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ пСрСвСсти Π΅Π³ΠΎ Π²ΠΎ внСшнюю Ρ„ΠΎΡ€ΠΌΡƒ прСдставлСния, Π² Π²ΠΈΠ΄Π΅ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ символов-Ρ†ΠΈΡ„Ρ€ (см.4.5).

// ИспользованиС счСтчика ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ. ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Π½ΠΈΠ΅ строки

void F2(char in[], char out[])<

int k1,j1; // Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ k Π² Π²ΠΈΠ΄Π΅ символов-Ρ†ΠΈΡ„Ρ€

for (k1=k; k1!=0;k1=k1/10,j++);

out[j++]=in[i]; // ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ символ

out[j]=0;> // Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ «ΠΊΠΎΠ½Π΅Ρ† строки»

Π˜Π½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°

// ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» «ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΡ» ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ. «Π“рязная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°»

for(k=1;in[i]==in[i+k];k++); // Π˜Π·ΠΌΠ΅Ρ€ΠΈΡ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ

i=i+k; // Π¨Π°Π³ Ρ†ΠΈΠΊΠ»Π° – Π΄Π»ΠΈΠ½Π° Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ

// ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» «ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΡ» ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ. «Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ строки»

for(k=1;in[i]==in[i+k];k++); // Π˜Π·ΠΌΠ΅Ρ€ΠΈΡ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ

j=i+k; // Π—Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ Π½Π°Ρ‡Π°Π»ΠΎ «Ρ…воста»

int k1,j1; // Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ k Π² Π²ΠΈΠ΄Π΅ символов-Ρ†ΠΈΡ„Ρ€

for (k1=k; k1!=0;k1=k1/10,i++);

in[j1]=k%10+’0′; // Π—Π°Ρ‚Π΅Ρ€Π΅Ρ‚ΡŒ символы Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ числа

i++; // Β«ΠžΡΡ‚Π°Π²ΠΈΡ‚ΡŒΒ» ΠΎΠ΄ΠΈΠ½ символ

j1=i; // i – Π½Π°Ρ‡Π°Π»ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ шага

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΌΡ‹ ΠΏΠΈΠ»ΠΈΠΌ сук, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ сидим: сдвигаСм содСрТимоС части строки, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π΅Ρ‰Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ. Но Β«ΠΏΠΈΠ»ΠΈΡ‚ΡŒΒ» Π½ΡƒΠΆΠ½ΠΎ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎ, сохраняя свойство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ установили Π² «грязной» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅: Π·Π° ΠΎΠ΄ΠΈΠ½ шаг Ρ†ΠΈΠΊΠ»Π° ΠΌΡ‹ просматриваСм (ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅ΠΌ) Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ этого шага индСкс i Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ сразу послС сТатого Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° (Π½Π° символС e).

Π˜Π½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π° ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ матСматичСской ΠΈΠ½Π΄ΡƒΠΊΡ†ΠΈΠΈ

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°Π•ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° нСоТиданная ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΎΠΉ. Π’ матСматичСских Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π°Ρ… ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ матСматичСской ΠΈΠ½Π΄ΡƒΠΊΡ†ΠΈΠΈ ( ММИ). Π—Π²ΡƒΡ‡ΠΈΡ‚ ΠΎΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ: Ссли ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²Π΅Ρ€Π½ΠΎ ΠΏΡ€ΠΈ i=0, ΠΈ Ссли ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Π²Π΅Ρ€Π½ΠΎ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΌ i, ΠΌΠΎΠΆΠ½ΠΎ вывСсти, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π΅Ρ€Π½ΠΎ ΠΏΡ€ΠΈ i+1, Ρ‚ΠΎ ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π΅Ρ€Π½ΠΎ всСгда.

На ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд, ΠΌΠ΅Ρ‚ΠΎΠ΄ достаточно ΠΎΡ‡Π΅Π²ΠΈΠ΄Π΅Π½: Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ свойство сохраняСтся Π½Π° всСй Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ (ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ), Ссли ΠΎΠ½ΠΎ выполняСтся Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ ΠΈ сохраняСтся ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ. Но Π² самом Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π΅ Π΅ΡΡ‚ΡŒ элСмСнт Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ΠΈΠΊΠΈ ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΈ частного. ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ для ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ частных шагов, Π° Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ проводится Π² ΠΎΠ±Ρ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅ для ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΎΡ‚ i-Π³ΠΎ шага ΠΊ i+1.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°Π˜Π½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΌ. Π‘Π°ΠΌΡ‹ΠΌ простым являСтся ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ°: Β«Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ шага Ρ†ΠΈΠΊΠ» находится в…». НапримСр, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ слов Π² строкС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ построСна ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Β«ΠΎΠ΄ΠΈΠ½ шаг = ΠΎΠ΄Π½ΠΎ слово». Π’ΠΎΠ³Π΄Π° ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½Ρ‹ΠΌ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚: Β«Π² Π½Π°Ρ‡Π°Π»Π΅ шага ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° находится Π½Π° Π½Π°Ρ‡Π°Π»Π΅ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ слова».

// Пословная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°: «1 шаг = 1 слово». «Π“рязная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°»

while (in[i]==’ ‘)i++; // Π”Π›Π― ΠŸΠ•Π Π’ΠžΠ“Πž ШАГА

Π’ соотвСтствии с ММИ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΡΠΏΡ€Π°Π²Π΅Π΄Π»ΠΈΠ²ΠΎΡΡ‚ΡŒ утвСрТдСния (ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°) Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ шагС. Для контСкста суммирования это СстСствСнно: сумма ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠ· 0 элСмСнтов Ρ€Π°Π²Π½Π° 0. Для контСкста поиска максимума максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠ· 0 элСмСнтов ΠΈΠ»ΠΈ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ, ΠΈΠ»ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ «мСньшС мСньшСго». ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ слСдуСт Π² качСствС максимума Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта, Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Β«Π·Π°Ρ‰Π΅Π»ΠΊΡƒΒ» для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ шага.

for (s=A[0],i=1;i if (A[i]>s) s=A[i];

for (k=-1,i=0; i // поиск минимального ΠΈΠ· ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ…

if (A[i] // пропуск ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ…

if (k==-1) k=i; // Β«Π·Π°Ρ‰Π΅Π»ΠΊΠ°Β» Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°ΠœΠ΅Ρ‚ΠΎΠ΄ матСматичСской ΠΈΠ½Π΄ΡƒΠΊΡ†ΠΈΠΈ ΠΊΠ°ΠΊ способ Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π°, всС ΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ примСнСния. Π“ΠΎΡ€Π°Π·Π΄ΠΎ Π²Π°ΠΆΠ½Π΅Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ являСтся Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ шагом ΠΈΠ½Π΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π² Ρ‚Π°ΠΊΠΈΡ… областях Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ-логичСской Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠ°ΠΊ установлСниС зависимостСй, Π²Ρ‹Π²ΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΡƒΠ» ΠΈ Ρ‚.ΠΏ.. Π‘ΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ Π΅Π³ΠΎ состоит Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ:

Β· для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ Π² ΠΎΠ±Ρ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ‹Π²ΠΎΠ΄Π° Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ) ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ рассматриваСтся ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… (частых) ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ шагов;

Β· Π½Π° этой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ-логичСски ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ формулируСтся искомая Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ;

Β· ΡΠΏΡ€Π°Π²Π΅Π΄Π»ΠΈΠ²ΠΎΡΡ‚ΡŒ установлСнной зависимости доказываСтся (ΠΈΠ»ΠΈ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, опровСргаСтся) с использованиСм ММИ.

Π‘Π½ΠΎΠ²Π° ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅ΠΌ аналогию с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ:

Β· ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π° начинаСтся с Π°Π½Π°Π»ΠΈΠ·Π° частного случая Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…;

Β· Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ составныС части Ρ†ΠΈΠΊΠ»Π° ΠΈ ΠΈΠ· Π½ΠΈΡ… составляСтся Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ цикличСской ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹;

Β· опрСдСляСтся ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°;

Β· провСряСтся, Π²ΠΎ всСх Π»ΠΈ случаях сохраняСтся ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ шага ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ, ΠΏΡ€ΠΈ нСобходимости Π² Ρ†ΠΈΠΊΠ» вводятся ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹.

ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ² часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Π΄Π²Π° Π²ΠΈΠ΄Π° ошибок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ прямоС ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ ΠΈΠ½Π΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Π΅Π³ΠΎ построСния:

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

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

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