Π”ΠΈΠΏΠ»ΠΎΠΌΡ‹, курсовыС, Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚Ρ‹, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅...
Брочная ΠΏΠΎΠΌΠΎΡ‰ΡŒ Π² ΡƒΡ‡Ρ‘Π±Π΅

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Π¨Π΅Π»Π»Π°. 
ВСорСтичСскиС основы ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠΈ

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

РазобьСм упорядочиваСмоС мноТСство, А = {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).

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ