ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° слияниСм. 
Алгоритмы сортировки. 
Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° вставками

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

Π”Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ (структура Π΄Π°Π½Π½Ρ‹Ρ…) Π”Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ — абстрактная структура Π΄Π°Π½Π½Ρ‹Ρ…, ΡΠ²Π»ΡΡŽΡ‰Π΅Π΅ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π° (Π³Ρ€Π°Ρ„Π°). Оно состоит ΠΈΠ· ΡƒΠ·Π»ΠΎΠ² (записСй) Π²ΠΈΠ΄Π° (data, l, r), Π³Π΄Π΅ data — Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ привязанныС ΠΊ ΡƒΠ·Π»Ρƒ, l, r — ссылки Π½Π° ΡƒΠ·Π»Ρ‹, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ Π΄Π΅Ρ‚ΡŒΠΌΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡƒΠ·Π»Π°. Π£Π·Π΅Π» l Π½Π°Π·Ρ‹Π²Π°Π΅Ρ‚ся Π»Π΅Π²Ρ‹ΠΌ Ρ€Π΅Π±Ρ‘Π½ΠΊΠΎΠΌ, Π° ΡƒΠ·Π΅Π» r — ΠΏΡ€Π°Π²Ρ‹ΠΌ. Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° слияниСм (Π°Π½Π³Π». merge sort) — Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° слияниСм. Алгоритмы сортировки. Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° вставками (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° слияниСм (Π°Π½Π³Π». merge sort) — Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ сортировки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ упорядочиваСт списки (ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ структуры Π΄Π°Π½Π½Ρ‹Ρ…, доступ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°ΠΌ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ — ΠΏΠΎΡ‚ΠΎΠΊΠΈ) Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΌ порядкС. Π­Ρ‚Π° сортировка — Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° «Ρ€Π°Π·Π΄Π΅Π»ΡΠΉ ΠΈ Π²Π»Π°ΡΡ‚Π²ΡƒΠΉ».

Алгоритм Π±Ρ‹Π» ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Ρ‘Π½ Π”ΠΆΠΎΠ½ΠΎΠΌ Ρ„ΠΎΠ½ НСйманом Π² 1945 Π³ΠΎΠ΄Ρƒ.

Π”Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ (структура Π΄Π°Π½Π½Ρ‹Ρ…) Π”Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ — абстрактная структура Π΄Π°Π½Π½Ρ‹Ρ…, ΡΠ²Π»ΡΡŽΡ‰Π΅Π΅ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π° (Π³Ρ€Π°Ρ„Π°). Оно состоит ΠΈΠ· ΡƒΠ·Π»ΠΎΠ² (записСй) Π²ΠΈΠ΄Π° (data, l, r), Π³Π΄Π΅ data — Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ привязанныС ΠΊ ΡƒΠ·Π»Ρƒ, l, r — ссылки Π½Π° ΡƒΠ·Π»Ρ‹, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ Π΄Π΅Ρ‚ΡŒΠΌΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡƒΠ·Π»Π°. Π£Π·Π΅Π» l Π½Π°Π·Ρ‹Π²Π°Π΅Ρ‚ся Π»Π΅Π²Ρ‹ΠΌ Ρ€Π΅Π±Ρ‘Π½ΠΊΠΎΠΌ, Π° ΡƒΠ·Π΅Π» r — ΠΏΡ€Π°Π²Ρ‹ΠΌ.

Цифровая сортировка

Цифровая сортировка (Π°Π½Π³Π». pigeonhole sort) ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ (О (n)), Ρ‡Ρ‚ΠΎ являСтся Π»ΡƒΡ‡ΡˆΠ΅ΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ для Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° сортировки, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² Π»ΡŽΠ±ΠΎΠΌ Ρ‚Π°ΠΊΠΎΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ сортируСмый элСмСнт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ хотя Π±Ρ‹ ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ‹. Однако, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ сортировки цСлСсообразно лишь Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° сортируСмыС ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ (ΠΈΠ»ΠΈ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π²) Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ достаточно ΠΌΠ°Π» ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΡΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ списком. Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΏΠ°Π΄Π°Π΅Ρ‚ всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° нСсколько Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… элСмСнтов ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² ΠΎΠ΄Π½Ρƒ ячСйку. ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ сортировки Π²Π½ΡƒΡ‚Ρ€ΠΈ ячССк Π»ΠΈΡˆΠ°Π΅Ρ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ смысла, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт придётся ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π°. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ, для простоты ΠΈ Ρ Ρ†Π΅Π»ΡŒΡŽ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ «ΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ» Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΡƒΡŽ сортировку ΠΎΡ‚ Π΅Ρ‘ ΠΌΠ½ΠΎΠ³ΠΎΡ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ², ΡƒΠΊΠ°ΠΆΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ подсчёт Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌΡ‹ΠΌ: Ссли Π΄Π²Π° элСмСнта ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π² ΠΎΠ΄Π½Ρƒ ячСйку, Ρ‚ΠΎ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. НСсколько элСмСнтов с ΠΎΠ΄Π½ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π² ΠΎΠ΄Π½ΠΎΠΉ ячСйкС Π½Π΅ ΠΏΠΎΡ€Ρ‚ят ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ — ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ просто Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² ΠΎΡ‚сортированный список рядом, ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ (это позволяСт ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΡƒΡŽ сортировку Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ устойчивой).

Алгоритм Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ сортировки дСйствуСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ массив ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ пустых «ΡΡ‡Π΅Π΅ΠΊ», ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΊΠ»ΡŽΡ‡Π΅ΠΉ.

ΠŸΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π΅ΠΌ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ массив, помСщая ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π΅Π³ΠΎ элСмСнт Π² ΡΠ²ΠΎΡŽ ячСйку.

ΠŸΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠΌ ΠΏΠΎ ΠΌΠ°ΡΡΠΈΠ²Ρƒ ячССк Π² Π½ΡƒΠΆΠ½ΠΎΠΌ порядкС ΠΈ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌ элСмСнты ΠΈΠ· Π½Π΅ΠΏΡƒΡΡ‚Ρ‹Ρ… ячССк ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ массив.

Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ этого Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° сильно зависит ΠΎΡ‚ ΠΏΠ»ΠΎΡ‚ности элСмСнтов Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ячССк. Если элСмСнтов этого массива Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ большС, Ρ‡Π΅ΠΌ сортируСмых ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠ², Ρ‚ΠΎ ΡˆΠ°Π³ΠΈ 1 ΠΈ 3 Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌΠΈ.

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΡƒ подсчётом ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ Ρ€Π΅Π΄ΠΊΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π΅Ρ‘ Ρ‚рСбования Ρ€Π΅Π΄ΠΊΠΎ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‚ΡΡ, ΠΈ Ρ‡Π°ΡΡ‚ΠΎ Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠ΅ ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ‚Π°ΠΊΠΈΠ΅ ΠΆΠ΅ быстрыС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ сортировки. Π’ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ, блочная сортировка являСтся Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½Ρ‹ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ сортировки подсчётом. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€ΠΎΠ΄Π΅, быстрая сортировка прСдставляСт собой ΠΎΠ±ΠΎΠ±Ρ‰Ρ‘Π½Π½ΡƒΡŽ сортировку подсчётом (всСго с Π΄Π²ΡƒΠΌΡ ячСйками Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ).

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