Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° Π¨Π΅Π»Π»Π°.
Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠΈ
Π Π°Π·ΠΎΠ±ΡΠ΅ΠΌ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°Π΅ΠΌΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ, Π = {ai, a2,…, Π°ΠΏ} Π½Π° Π³ΡΡΠΏΠΏΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π° Π½Π° ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠΈ d =, Π³Π΄Π΅ — ΡΠ΅Π»Π°Ρ ΡΠ°ΡΡΡ ΡΠΈΡΠ»Π°, ΠΈ ΡΡΠ°Π²Π½ΠΈΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Π° ΠΈ Π°2 ΠΈ a-2+d ΠΈ Ρ. Π΄. ΠΡΠ»ΠΈ Π°, — > Π°*+(*, ΡΠΎ Π°, — ΠΈ ai+d ΠΌΠ΅Π½ΡΡΡΡΡ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ. ΠΠΎΡΠ»Π΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΈ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°Π½ΠΈΡ Π²ΡΠ΅Ρ ΠΏΠ°Ρ Π²ΡΠ±ΠΈΡΠ°ΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ d = ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΡΡΡ ΡΠ½ΠΎΠ²Π°. Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° Π¨Π΅Π»Π»Π°. Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠΈ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ°, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ ΠΠ° Π¨Π΅Π»Π»ΠΎΠΌ (Π°Π½Π³Π». Shell sort) Π² 1959 Π³., ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π²ΡΡΠ°Π²ΠΊΠ°ΠΌΠΈ.
Π Π°Π·ΠΎΠ±ΡΠ΅ΠΌ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°Π΅ΠΌΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π = {ai, a2,…, Π°ΠΏ} Π½Π° Π³ΡΡΠΏΠΏΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π° Π½Π° ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠΈ d = [ΠΏ/2], Π³Π΄Π΅ [ ] — ΡΠ΅Π»Π°Ρ ΡΠ°ΡΡΡ ΡΠΈΡΠ»Π°, ΠΈ ΡΡΠ°Π²Π½ΠΈΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π° ΠΈ Π°2 ΠΈ a-2+d ΠΈ Ρ. Π΄. ΠΡΠ»ΠΈ Π°, — > Π°*+(*, ΡΠΎ Π°, — ΠΈ ai+d ΠΌΠ΅Π½ΡΡΡΡΡ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ. ΠΠΎΡΠ»Π΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΈ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°Π½ΠΈΡ Π²ΡΠ΅Ρ ΠΏΠ°Ρ Π²ΡΠ±ΠΈΡΠ°ΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ d = [d/2] ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΡΡΡ ΡΠ½ΠΎΠ²Π°.
ΠΠ° Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°Π³Π΅ ΠΏΠΎΠ»ΡΡΠΈΠΌ d = 1 — ΡΡΠΎ Π°Π½Π°Π»ΠΎΠ³ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π²ΡΡΠ°Π²ΠΊΠΎΠΉ. ΠΡΠΏΠΎΠ»Π½ΠΈΠ² Π΅Π΅, Π±ΡΠ΄Π΅ΠΌ ΠΈΠΌΠ΅ΡΡ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΠΎΠ΅ ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π.
ΠΡΠΈΠΌΠ΅Ρ 11.4. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π¨Π΅Π»Π»Π°, ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΈΡΠ΅Π» Π = {9,3,12,1,8,5} ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅. Π‘ΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π ΠΏΡΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ΅ Π¨Π΅Π»Π»Π° ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π² ΡΠ°Π±Π». 11.3.
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° Π¨Π΅Π»Π»Π°
Π’Π°Π±Π»ΠΈΡΠ° 11.3
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅. | d | Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅. | ΠΠ΅ΠΉΡΡΠ²ΠΈΠ΅. |
So = {9,3,12,1,8,5}. | 9 ΠΈ 1. | ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° 9 ΠΈ 1. | |
si = {1,3,12,9,8,5}. | 3 ΠΈ 8. | ||
«Ρ = {1,3,12,9,8,5}. | 12 ΠΈ 5. | ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° 12 ΠΈ 5. | |
s:i = {1,3,5,9,8,12}. | —. | ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π½Π΅ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° — 8. | |
s4 = {1,3,5,9,8,12}. | 8 ΠΈ 9. | ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° 9 ΠΈ 8. | |
Π²5 = {1,3,5,8,9,12}. | 8 ΠΈ 5. | —. | |
s6 = {1,3,5,8,9,12}. | 12 ΠΈ 9. | —. |
ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Ρ. ?
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π¨Π΅Π»Π»Π° Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π²ΡΠ±ΠΎΡΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΡ d. Π£ΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π²ΡΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π²ΡΠ±ΠΎΡΠ° d Π±ΡΠ» ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ Π¨Π΅Π»Π»ΠΎΠΌ, Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΈΠΌΠ΅Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΡΡΠ΄ΠΊΠ° 0(ΠΏ2).
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΊ Π²ΡΠ±ΠΎΡΡ d. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ d = 2* — 1, Π³Π΄Π΅ d ^ Π³Π³, ΠΊ — Π½Π°ΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ. ΠΡΠΈ ΡΡΠΎΠΌ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠ½ΠΈΠΆΠ°Π΅ΡΡΡ Π΄ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ° 0(ΠΏ3^2).