Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

ВсСм ΠΏΡ€ΠΈΠ²Π΅Ρ‚. Π­Ρ‚Ρƒ ΡΡ‚Π°Ρ‚ΡŒΡŽ я написал ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΊ запуску курса «Алгоритмы ΠΈ структуры Π΄Π°Π½Π½Ρ‹Ρ…Β» ΠΎΡ‚ OTUS.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

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

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

Одной ΠΈΠ· ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΡ… сортировок являСтся сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ.

ОписаниС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°

РСализация

ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π½Π° языкС C:

Анализ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

Π’ процСссС вычислСний, ΠΌΡ‹ воспользовались сначала свойствами О β€” Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΎΠΉ для вычислСния суммы арифмСтичСской прогрСссии.

Для порядка Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ, которая трСбуСтся для выполнСния Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°. Π—Π΄Π΅ΡΡŒ всС Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΡ€ΠΎΡ‰Π΅: ΠΌΡ‹ выдСляли ΠΏΠ°ΠΌΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для счСтчиков Ρ†ΠΈΠΊΠ»Π° ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ β€” Π±ΡƒΡ„Π΅Ρ€Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒ 2 элСмСнта массива мСстами. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π°Π½Π°Π»ΠΈΠ·Π° ΠΌΡ‹ ΠΏΡ€ΠΈΡˆΠ»ΠΈ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ врСмСнная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° зависит ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ массива ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΡ‡Π½ΠΎ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΄Π°Π½Π½ΡƒΡŽ сортировку относят ΠΊ классу ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΡ‡Π½Ρ‹Ρ… сортировок. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π°Π½Π°Π»ΠΈΠ·Π° Π½Π΅ зависит ΠΎΡ‚ содСрТания массива: ΠΎΠ½ Π²Π΅Ρ€Π΅Π½ Π² Π»ΡƒΡ‡ΡˆΠ΅ΠΌ, Π² Ρ…ΡƒΠ΄ΡˆΠ΅ΠΌ ΠΈ Π² срСднСм случаС.

Π’Π°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ Π² Ρ‚Π°ΠΊΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ являСтся устойчивой. Позволю сСбС Π½Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ сортировка называСтся устойчивой, Ссли ΠΏΡ€ΠΈ Π΅Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ порядок слСдования Ρ€Π°Π²Π½Ρ‹Ρ… элСмСнтов Π½Π΅ мСняСтся. Π­Ρ‚ΠΎ свойство Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ для Ρ‚Π°ΠΊΠΎΠΉ ΡƒΡ‡Π΅Π±Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠ°ΠΊ сортировка массива чисСл, Π½ΠΎ Ссли Π±Ρ‹ ΠΌΡ‹ сортировали ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ слоТныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ с установлСнным ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ΠΌ порядка это ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π²Π°ΠΆΠ½ΠΎ. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅ΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ поразрядной сортировкС.

Двусторонняя сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

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

РСкурсивная сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

Π’ качСствС упраТнСния ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π½Π΅ с использованиСм Ρ†ΠΈΠΊΠ»Π°, Π° с использованиСм рСкурсии. На java это ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π˜Ρ‚ΠΎΠ³ΠΈ

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

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ курсС, ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ°ΡŽ всСх Π½Π° бСсплатный Π²Π΅Π±ΠΈΠ½Π°Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρ‚ ΡƒΠΆΠ΅ 10 июля.

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

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

Π’ Ρ‡Ρ‘ΠΌ идСя сортировок Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ?

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

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ :: Selection sort

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΈ Π½Π΅Π·Π°Ρ‚Π΅ΠΉΠ»ΠΈΠ²ΠΎ β€” ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠΌ ΠΏΠΎ массиву Π² поисках максимального элСмСнта. НайдСнный максимум мСняСм мСстами с послСдним элСмСнтом. НСотсортированная Ρ‡Π°ΡΡ‚ΡŒ массива ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΠ»Π°ΡΡŒ Π½Π° ΠΎΠ΄ΠΈΠ½ элСмСнт (Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ послСдний элСмСнт, ΠΊΡƒΠ΄Π° ΠΌΡ‹ пСрСставили Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ максимум). К этой нСотсортированной части примСняСм Ρ‚Π΅ ΠΆΠ΅ дСйствия β€” Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ максимум ΠΈ ставим Π΅Π³ΠΎ Π½Π° послСднСС мСсто Π² нСотсортированной части массива. И Ρ‚Π°ΠΊ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° нСотсортированная Ρ‡Π°ΡΡ‚ΡŒ массива Π½Π΅ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡΡ Π΄ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ элСмСнта.

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° простым Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ прСдставляСт ΠΈΠ· сСбя Π³Ρ€ΡƒΠ±Ρ‹ΠΉ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€. МоТно Π»ΠΈ Π΅Ρ‘ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ? Π Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ нСсколько ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΉ.

Двухсторонняя сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ :: Double selection sort

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

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

На ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд каТСтся, Ρ‡Ρ‚ΠΎ это ускоряСт Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π² 2 Ρ€Π°Π·Π° β€” послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π° нСотсортированный подмассив ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ Π½Π΅ с ΠΎΠ΄Π½ΠΎΠΉ, Π° сразу с Π΄Π²ΡƒΡ… сторон. Но ΠΏΡ€ΠΈ этом Π² 2 Ρ€Π°Π·Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ»ΠΎΡΡŒ количСство сравнСний, Π° число свопов ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌ. Π”Π²ΠΎΠΉΠ½ΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€ лишь Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, Π° Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… языках Π΄Π°ΠΆΠ΅ ΠΏΠΎΡ‡Π΅ΠΌΡƒ-Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅.

ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ сортировок Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ ΠΎΡ‚ сортировок вставками

ΠœΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ сортировки Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ ΠΈ сортировки вставками β€” это ΡΡƒΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅, ΠΎΠ±Ρ‰ΠΈΠΉ класс Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ². Ну, ΠΈΠ»ΠΈ сортировки вставками β€” Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ сортировок Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Или сортировки Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ β€” частный случай сортировок вставками. И Ρ‚Π°ΠΌ ΠΈ Ρ‚Π°ΠΌ ΠΌΡ‹ ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΈΠ· нСотсортированной части массива ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ элСмСнты ΠΈ пСрСнаправляСм ΠΈΡ… Π² ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ.

Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅: Π² сортировкС вставками ΠΌΡ‹ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ ΠΈΠ· нСотсортированной части массива любой элСмСнт ΠΈ вставляСм Π΅Π³ΠΎ Π½Π° своё мСсто Π² отсортированной части. Π’ сортировкС Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ Ρ†Π΅Π»Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎ ΠΈΡ‰Π΅ΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт (ΠΈΠ»ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ дополняСм ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ массива. Π’ΠΎ вставках ΠΌΡ‹ ΠΈΡ‰Π΅ΠΌ ΠΊΡƒΠ΄Π° Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ элСмСнт, Π° Π² Π²Ρ‹Π±ΠΎΡ€Π΅ β€” ΠΌΡ‹ Π·Π°Ρ€Π°Π½Π΅Π΅ ΡƒΠΆΠ΅ Π·Π½Π°Π΅ΠΌ Π² ΠΊΠ°ΠΊΠΎΠ΅ мСсто поставим, Π½ΠΎ ΠΏΡ€ΠΈ этом трСбуСтся Π½Π°ΠΉΡ‚ΠΈ элСмСнт, этому мСсту ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ.

Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΎΠ±Π° класса Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° ΠΏΠΎ своСй сути ΠΈ примСняСмым ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ.

Π‘ΠΈΠ½Π³ΠΎ-сортировка :: Bingo sort

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ сортировки Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ являСтся Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ скорости ΠΎΡ‚ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π° сортируСмых Π΄Π°Π½Π½Ρ‹Ρ….

НапримСр, Ссли массив ΠΏΠΎΡ‡Ρ‚ΠΈ отсортирован, Ρ‚ΠΎ, ΠΊΠ°ΠΊ извСстно, сортировка вставками Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ быстрСС (Π΄Π°ΠΆΠ΅ быстрСС Ρ‡Π΅ΠΌ быстрая сортировка). А рСвСрсно упорядочСнный массив для сортировки вставками являСтся Π²Ρ‹Ρ€ΠΎΠΆΠ΄Π΅Π½Π½Ρ‹ΠΌ случаСм, ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Π΅Π³ΠΎ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ максимально Π΄ΠΎΠ»Π³ΠΎ.

А для сортировки Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ частичная ΠΈΠ»ΠΈ рСвСрсная ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡Π΅Π½Π½ΠΎΡΡ‚ΡŒ массива Ρ€ΠΎΠ»ΠΈ Π½Π΅ ΠΈΠ³Ρ€Π°Π΅Ρ‚ β€” ΠΎΠ½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ с Ρ‚ΠΎΠΉ ΠΆΠ΅ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ Ρ‡Ρ‚ΠΎ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Ρ€Π°Π½Π΄ΠΎΠΌ. Π’Π°ΠΊΠΆΠ΅ для классичСской сортировки Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ Π½Π΅Π²Π°ΠΆΠ½ΠΎ, состоит Π»ΠΈ массив ΠΈΠ· ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ элСмСнтов β€” Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ это практичСски Π½Π΅ влияСт.

Но Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΡ…ΠΈΡ‚Ρ€ΠΈΡ‚ΡŒΡΡ ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π°Π±ΠΎΡ€Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ быстрСС. НапримСр, Π±ΠΈΠ½Π³ΠΎ-сортировка ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚, Ссли массив состоит ΠΈΠ· ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ элСмСнтов.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

Π—Π΄Π΅ΡΡŒ фокус Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² нСупорядочСнной части запоминаСтся Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт, Π½ΠΎ ΠΈ опрСдСляСтся максимум для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎ позволяСт ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ максимумах Π½Π΅ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΈΡ… Π·Π°Π½ΠΎΠ²ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, Π° ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π° своё мСсто сразу ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этот максимум Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ Ρ€Π°Π· встрСтили Π² массивС.

АлгоритмичСская ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡΡ‚Π°Π»Π°ΡΡŒ Ρ‚Π° ΠΆΠ΅. Но Ссли массив состоит ΠΈΠ· ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ чисСл, Ρ‚ΠΎ Π±ΠΈΠ½Π³ΠΎ-сортировка справится Π² дСсятки Ρ€Π°Π· быстрСС, Ρ‡Π΅ΠΌ обычная сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ.

Цикличная сортировка :: Cycle sort

Цикличная сортировка интСрСсна (ΠΈ Ρ†Π΅Π½Π½Π° с практичСской Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния) Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ измСнСния срСди элСмСнтов массива происходят Ρ‚ΠΎΠ³Π΄Π° ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° элСмСнт ставится Π½Π° своё ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ мСсто. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ, Ссли ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ Π² массивС β€” слишком Π΄ΠΎΡ€ΠΎΠ³ΠΎΠ΅ ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΠ΅ ΠΈ для Π±Π΅Ρ€Π΅ΠΆΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΊ физичСской памяти трСбуСтся свСсти ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ количСство ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ элСмСнтов массива.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ это Ρ‚Π°ΠΊ. ΠŸΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅ΠΌ массив, Π½Π°Π·ΠΎΠ²Ρ‘ΠΌ X ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΡƒΡŽ ячСйку Π² этом внСшнСм Ρ†ΠΈΠΊΠ»Π΅. И смотрим Π½Π° ΠΊΠ°ΠΊΠΎΠ΅ мСсто Π² массивС Π½ΡƒΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ элСмСнт ΠΈΠ· этой ячСйки. На Ρ‚ΠΎΠΌ мСстС, ΠΊΡƒΠ΄Π° Π½ΡƒΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ находится ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ элСмСнт, Π΅Π³ΠΎ отправляСм Π² Π±ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π°. Для этого элСмСнта Π² Π±ΡƒΡ„Π΅Ρ€Π΅ Ρ‚ΠΎΠΆΠ΅ ΠΈΡ‰Π΅ΠΌ Π΅Π³ΠΎ мСсто Π² массивС (ΠΈ вставляСм Π½Π° это мСсто, Π° Π² Π±ΡƒΡ„Π΅Ρ€ отправляСм элСмСнт, оказавшийся Π² этом мСстС). И для Π½ΠΎΠ²ΠΎΠ³ΠΎ числа Π² Π±ΡƒΡ„Π΅Ρ€Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌ Ρ‚Π΅ ΠΆΠ΅ дСйствия. Π”ΠΎ ΠΊΠ°ΠΊΠΈΡ… ΠΏΠΎΡ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒΡΡ этот процСсс? Пока ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ элСмСнт Π² Π±ΡƒΡ„Π΅Ρ€Π΅ ΠΎΠ±ΠΌΠ΅Π½Π° Π½Π΅ окаТСтся Ρ‚Π΅ΠΌ элСмСнтом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ячСйку X (Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ мСсто Π² массивС Π² Π³Π»Π°Π²Π½ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°). Π Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚ ΠΈ Ρ‚ΠΎΠ³Π΄Π° Π²ΠΎ внСшнСм Ρ†ΠΈΠΊΠ»Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ячСйкС ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ для Π½Π΅Ρ‘ Ρ‚Ρƒ ΠΆΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ.

Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ… сортировках Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ ΠΈΡ‰Π΅ΠΌ максимум/ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π° послСднСС/ΠΏΠ΅Ρ€Π²ΠΎΠ΅ мСсто. Π’ cycle sort Ρ‚Π°ΠΊ получаСтся, Ρ‡Ρ‚ΠΎ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠ΅ мСсто Π² подмассивС ΠΊΠ°ΠΊ Π±Ρ‹ находится сам, Π² процСссС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ нСсколько Π΄Ρ€ΡƒΠ³ΠΈΡ… элСмСнтов ставятся Π½Π° свои Π·Π°ΠΊΠΎΠ½Π½Ρ‹Π΅ мСста Π³Π΄Π΅-Ρ‚ΠΎ Π² сСрСдинС массива.

И здСсь алгоритмичСская ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊ ΠΆΠ΅ остаётся Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… O(n 2 ). На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ цикличная сортировка Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π΄Π°ΠΆΠ΅ Π² нСсколько Ρ€Π°Π· ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Ρ‡Π΅ΠΌ обычная сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ приходится большС Π±Π΅Π³Π°Ρ‚ΡŒ ΠΏΠΎ массиву ΠΈ Ρ‡Π°Ρ‰Π΅ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎ Ρ†Π΅Π½Π° Π·Π° минимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ количСство пСрСзаписСй.

Блинная сортировка

Алгоритм, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ освоили всС ΡƒΡ€ΠΎΠ²Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ β€” ΠΎΡ‚ Π±Π°ΠΊΡ‚Π΅Ρ€ΠΈΠΉ Π΄ΠΎ Π‘ΠΈΠ»Π»Π° ГСйтса.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

Π’ самом простом Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ ΠΌΡ‹ Π² нСотстортированной части массива ΠΈΡ‰Π΅ΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт. Когда максимум Π½Π°ΠΉΠ΄Π΅Π½ β€” Π΄Π΅Π»Π°Π΅ΠΌ Π΄Π²Π° Ρ€Π΅Π·ΠΊΠΈΡ… Ρ€Π°Π·Π²ΠΎΡ€ΠΎΡ‚Π°. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΠ΅Ρ€Π΅Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ элСмСнтов Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ максимум оказался Π½Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠΌ ΠΊΠΎΠ½Ρ†Π΅. Π—Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌ вСсь нСотсортированный подмассив, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ максимум ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π½Π° своё мСсто.

ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΊΠΎΡ€Π΄ΠΈΠ±Π°Π»Π΅Ρ‚Ρ‹, Π²ΠΎΠΎΠ±Ρ‰Π΅ говоря, приводят ΠΊ алгоритмичСской слоТности Π² O(n 3 ). Π­Ρ‚ΠΎ дрСссированныС ΠΈΠ½Ρ„ΡƒΠ·ΠΎΡ€ΠΈΠΈ ΠΊΡƒΠ²Ρ‹Ρ€ΠΊΠ°ΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΌΠ°Ρ…ΠΎΠΌ (поэтому Π² ΠΈΡ… исполнСнии ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ O(n 2 )), Π° ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ€Π°Π·Π²ΠΎΡ€ΠΎΡ‚ части массива β€” это Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ».

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

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ эффСктивна Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ, насколько эффСктивно ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ поиск минимального/максимального элСмСнта Π² нСотсортированной части массива. Π’ΠΎ всСх Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π½Π½Ρ‹Ρ… сСгодня Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°Ρ… поиск осущСствляСтся Π² Π²ΠΈΠ΄Π΅ Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π°. А Ρƒ Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π°, ΠΊΠ°ΠΊ Π½ΠΈ ΠΊΡ€ΡƒΡ‚ΠΈ, алгоритмичСская ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ всСгда Π½Π΅ Π»ΡƒΡ‡ΡˆΠ΅ Ρ‡Π΅ΠΌ O(n 2 ). Π—Π½Π°Ρ‡ΠΈΡ‚ Π»ΠΈ это, Ρ‡Ρ‚ΠΎ всС сортировки Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ ΠΎΠ±Ρ€Π΅Ρ‡Π΅Π½Ρ‹ Π½Π° срСднС-ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΡ‡Π½ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ? ВовсС Π½Π΅Ρ‚, Ссли процСсс поиска ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ. НапримСр Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠ°ΠΊ ΠΊΡƒΡ‡Ρƒ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ поиск ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΠΊΡƒΡ‡Π΅. Однако Ρ‚Π΅ΠΌΠ° ΠΊΡƒΡ‡ΠΈ β€” это Π΄Π°ΠΆΠ΅ Π½Π΅ Π½Π° ΡΡ‚Π°Ρ‚ΡŒΡŽ, Π° Π½Π° Ρ†Π΅Π»ΡƒΡŽ сагу, ΠΎ ΠΊΡƒΡ‡Π°Ρ… ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π½ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ€Π°Π·.

Бсылки

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌSelection / Π’Ρ‹Π±ΠΎΡ€, Cycle, Pancake / Π‘Π»ΠΈΠ½Ρ‹

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

Алгоритмы ΠΈ структуры Π΄Π°Π½Π½Ρ‹Ρ… для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…: сортировка

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

Π’ этой части ΠΌΡ‹ посмотрим Π½Π° ΠΏΡΡ‚ΡŒ основных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² сортировки Π΄Π°Π½Π½Ρ‹Ρ… Π² массивС. НачнСм с самого простого β€” сортировки ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠΌ β€” ΠΈ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠΌ «быстрой сортировкой» (quicksort).

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, ΠΊΡ€ΠΎΠΌΠ΅ объяснСния Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΊΠ°ΠΆΠ΅ΠΌ Π΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎ памяти ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² Π½Π°ΠΈΡ…ΡƒΠ΄ΡˆΠ΅ΠΌ, Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠ΅ΠΌ ΠΈ срСднСм случаС.

ΠœΠ΅Ρ‚ΠΎΠ΄ Swap

ΠŸΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠ²Π°Ρ сортировка

Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΠΠ°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΉ случайВ ΡΡ€Π΅Π΄Π½Π΅ΠΌΠΠ°ΠΈΡ…ΡƒΠ΄ΡˆΠΈΠΉ случай
ВрСмяO(n)O(n 2 )O(n 2 )
ΠŸΠ°ΠΌΡΡ‚ΡŒO(1)O(1)O(1)

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠΌ β€” это самый простой Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ сортировки. Он ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎ массиву нСсколько Ρ€Π°Π·, Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ этапС пСрСмСщая самоС большоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· нСотсортированных Π² ΠΊΠΎΠ½Π΅Ρ† массива.

27–29 дСкабря, Онлайн, Π‘Π΅cΠΏΠ»Π°Ρ‚Π½ΠΎ

НапримСр, Ρƒ нас Π΅ΡΡ‚ΡŒ массив Ρ†Π΅Π»Ρ‹Ρ… чисСл:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π΅ ΠΏΠΎ массиву ΠΌΡ‹ сравниваСм значСния 3 ΠΈ 7. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ 7 большС 3, ΠΌΡ‹ оставляСм ΠΈΡ… ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ. ПослС Ρ‡Π΅Π³ΠΎ сравниваСм 7 ΠΈ 4. 4 мСньшС 7, поэтому ΠΌΡ‹ мСняСм ΠΈΡ… мСстами, пСрСмСщая сСмСрку Π½Π° ΠΎΠ΄Π½Ρƒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π±Π»ΠΈΠΆΠ΅ ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ массива. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½ выглядит Ρ‚Π°ΠΊ:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

Π­Ρ‚ΠΎΡ‚ процСсс повторяСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° сСмСрка Π½Π΅ Π΄ΠΎΠΉΠ΄Π΅Ρ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° массива. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΎΠ½Π° сравниваСтся с элСмСнтом 8, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ большС, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΎΠ±ΠΌΠ΅Π½Π° Π½Π΅ происходит. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ обошли массив ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, ΠΎΠ½ выглядит Ρ‚Π°ΠΊ:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±Ρ‹Π» ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΠΌΠ΅Π½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ ΠΏΠΎ массиву Π΅Ρ‰Π΅ Ρ€Π°Π·. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ этого ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π° ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅ΠΌ Π½Π° мСсто число 6.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

И снова Π±Ρ‹Π» ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΠΌΠ΅Π½, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠΌ ΠΏΠΎ массиву Π΅Ρ‰Π΅ Ρ€Π°Π·.

ΠŸΡ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π΅ ΠΎΠ±ΠΌΠ΅Π½Π° Π½Π΅ производится, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ наш массив отсортирован, ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ» свою Ρ€Π°Π±ΠΎΡ‚Ρƒ.

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° вставками

Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΠΠ°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΉ случайВ ΡΡ€Π΅Π΄Π½Π΅ΠΌΠΠ°ΠΈΡ…ΡƒΠ΄ΡˆΠΈΠΉ случай
ВрСмяO(n)O(n 2 )O(n 2 )
ΠŸΠ°ΠΌΡΡ‚ΡŒO(1)O(1)O(1)

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° вставками Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, проходя ΠΏΠΎ массиву ΠΈ пСрСмСщая Π½ΡƒΠΆΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π½Π°Ρ‡Π°Π»ΠΎ массива. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° очСрСдная позиция, ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ всС ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π΄ΠΎ Π½Π΅Π΅ отсортированы, Π° послС Π½Π΅Π΅ β€” Π½Π΅Ρ‚.

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

ΠŸΠΎΡΡ‚Π΅ΠΏΠ΅Π½Π½ΠΎ отсортированная Ρ‡Π°ΡΡ‚ΡŒ массива растСт, ΠΈ, Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², массив окаТСтся упорядочСнным.

Π”Π°Π²Π°ΠΉΡ‚Π΅ взглянСм Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π’ΠΎΡ‚ наш нСотсортированный массив, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

Алгоритм Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с индСкса 0 ΠΈ значСния 3. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ индСкс, массив Π΄ΠΎ Π½Π΅Π³ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ считаСтся отсортированным.

Π”Π°Π»Π΅Π΅ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ числу 7. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ 7 большС, Ρ‡Π΅ΠΌ любоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² отсортированной части, ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ элСмСнту.

На этом этапС элСмСнты с индСксами 0..1 отсортированы, Π° ΠΏΡ€ΠΎ элСмСнты с индСксами 2..n Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ извСстно.

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ нашли индСкс 1 (ΠΌΠ΅ΠΆΠ΄Ρƒ значСниями 3 ΠΈ 7). ΠœΠ΅Ρ‚ΠΎΠ΄ Insert осущСствляСт вставку, удаляя вставляСмоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· массива ΠΈ сдвигая всС значСния, начиная с индСкса для вставки, Π²ΠΏΡ€Π°Π²ΠΎ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ массив выглядит Ρ‚Π°ΠΊ:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‡Π°ΡΡ‚ΡŒ массива, начиная ΠΎΡ‚ Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ элСмСнта ΠΈ заканчивая элСмСнтом с индСксом 2, отсортирована. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ начинаСтся с индСкса 3 ΠΈ значСния 4. По ΠΌΠ΅Ρ€Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΌΡ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ вставки.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

Когда большС Π½Π΅Ρ‚ возмоТностСй для вставок, массив считаСтся ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ отсортированным, ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π°.

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΠΠ°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΉ случайВ ΡΡ€Π΅Π΄Π½Π΅ΠΌΠΠ°ΠΈΡ…ΡƒΠ΄ΡˆΠΈΠΉ случай
ВрСмяO(n)O(n 2 )O(n 2 )
ΠŸΠ°ΠΌΡΡ‚ΡŒO(1)O(1)O(1)

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ β€” это Π½Π΅ΠΊΠΈΠΉ Π³ΠΈΠ±Ρ€ΠΈΠ΄ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠ²ΠΎΠΉ ΠΈ сортировкой вставками. Как ΠΈ сортировка ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠΌ, этот Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎ массиву Ρ€Π°Π· Π·Π° Ρ€Π°Π·ΠΎΠΌ, пСрСмСщая ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ. Однако, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠ²ΠΎΠΉ сортировки, ΠΎΠ½ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ наимСньшСС нСотсортированноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ вмСсто наибольшСго. Как ΠΈ ΠΏΡ€ΠΈ сортировкС вставками, упорядочСнная Ρ‡Π°ΡΡ‚ΡŒ массива располоТСна Π² Π½Π°Ρ‡Π°Π»Π΅, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π² ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠ²ΠΎΠΉ сортировкС ΠΎΠ½Π° находится Π² ΠΊΠΎΠ½Ρ†Π΅.

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ сортировки Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ Π½Π° нашСм нСотсортированном массивС.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° FindIndexOfSmallestFromIndex пытаСтся Π½Π°ΠΉΡ‚ΠΈ наимСньшСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² массивС ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² Π½Π°Ρ‡Π°Π»ΠΎ.

ИмСя Ρ‚Π°ΠΊΠΎΠΉ малСнький массив, ΠΌΡ‹ сразу ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ наимСньшСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ β€” 3, ΠΈ ΠΎΠ½ΠΎ ΡƒΠΆΠ΅ находится Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. На этом этапС ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π² массивС (индСкс 0) находится самоС малСнькоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π½Π°Ρ‡Π°Π»ΠΎ массива ΡƒΠΆΠ΅ отсортировано. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ β€” Π½Π° этот Ρ€Π°Π· ΠΏΠΎ индСксам ΠΎΡ‚ 1 Π΄ΠΎ n β€” 1.

На Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π΅ ΠΌΡ‹ опрСдСляСм, Ρ‡Ρ‚ΠΎ наимСньшСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ β€” 4. ΠœΡ‹ мСняСм Π΅Π³ΠΎ мСстами со Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ элСмСнтом, сСмСркой, послС Ρ‡Π΅Π³ΠΎ 4 встаСт Π½Π° свою ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ нСотсортированная Ρ‡Π°ΡΡ‚ΡŒ массива начинаСтся с индСкса 2. Она растСт Π½Π° ΠΎΠ΄ΠΈΠ½ элСмСнт ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°. Если Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π΅ ΠΌΡ‹ Π½Π΅ сдСлали Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π°, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ массив отсортирован.

ПослС Π΅Ρ‰Π΅ Π΄Π²ΡƒΡ… ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΎΠ² Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° слияниСм

Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΠΠ°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΉ случайВ ΡΡ€Π΅Π΄Π½Π΅ΠΌΠΠ°ΠΈΡ…ΡƒΠ΄ΡˆΠΈΠΉ случай
ВрСмяO(nΒ·log n)O(nΒ·log n)O(nΒ·log n)
ΠŸΠ°ΠΌΡΡ‚ΡŒO(n)O(n)O(n)

РаздСляй ΠΈ властвуй

Π”ΠΎ сих ΠΏΠΎΡ€ ΠΌΡ‹ рассматривали Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹. Они ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΌΠ°Π»ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ памяти, Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΡ‡Π½ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ сортировки слияниСм ΠΌΡ‹ посмотрим Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ‚ΠΈΠΏΠ° «раздСляй ΠΈ властвуй» (divide and conquer).

Алгоритмы этого Ρ‚ΠΈΠΏΠ° Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚, раздСляя ΠΊΡ€ΡƒΠΏΠ½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅, Ρ€Π΅ΡˆΠ°Π΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΎΡ‰Π΅. ΠœΡ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΈΠΌΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, поиск Π² Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ β€” ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΏΠΎ Ρ„Π°ΠΌΠΈΠ»ΠΈΠΈ ΠŸΠ΅Ρ‚Ρ€ΠΎΠ², Π²Ρ‹ Π½Π΅ станСтС ΠΈΡΠΊΠ°Ρ‚ΡŒ, начиная с Π±ΡƒΠΊΠ²Ρ‹ А ΠΈ пСрСворачивая ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ страницС. Π’Ρ‹, скорСС всСго, ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚Π΅ ΠΊΠ½ΠΈΠ³Ρƒ Π³Π΄Π΅-Ρ‚ΠΎ посСрСдинС. Если ΠΏΠΎΠΏΠ°Π΄Π΅Ρ‚Π΅ Π½Π° Π±ΡƒΠΊΠ²Ρƒ Π’, пСрСлистнСтС нСсколько страниц Π½Π°Π·Π°Π΄, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, слишком ΠΌΠ½ΠΎΠ³ΠΎ β€” Π΄ΠΎ Π±ΡƒΠΊΠ²Ρ‹ О. Π’ΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠΎΠΉΠ΄Π΅Ρ‚Π΅ Π²ΠΏΠ΅Ρ€Π΅Π΄. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, пСрСлистывая Ρ‚ΡƒΠ΄Π° ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ всС мСньшСС количСство страниц, Π²Ρ‹, Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π½ΡƒΠΆΠ½ΡƒΡŽ.

Насколько эффСктивны эти Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹?

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ 1000 страниц. Если Π²Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚Π΅ Π΅Π΅ Π½Π° сСрСдинС, Π²Ρ‹ отбрасываСтС 500 страниц, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚ искомого Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°. Если Π²Ρ‹ Π½Π΅ ΠΏΠΎΠΏΠ°Π»ΠΈ Π½Π° Π½ΡƒΠΆΠ½ΡƒΡŽ страницу, Π²Ρ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚Π΅ ΠΏΡ€Π°Π²ΡƒΡŽ ΠΈΠ»ΠΈ Π»Π΅Π²ΡƒΡŽ сторону ΠΈ снова оставляСтС ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ доступных Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ². Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Π°ΠΌ Π½Π°Π΄ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ 250 страниц. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ Π΄Π΅Π»ΠΈΠΌ Π½Π°ΡˆΡƒ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΏΠΎΠΏΠΎΠ»Π°ΠΌ снова ΠΈ снова ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΉΡ‚ΠΈ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° Π² Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ всСго Π·Π° 10 просмотров. Π­Ρ‚ΠΎ составляСт 1% ΠΎΡ‚ всСго количСства страниц, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΌ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΌ поискС.

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° слияниСм

ΠŸΡ€ΠΈ сортировкС слияниСм ΠΌΡ‹ раздСляСм массив ΠΏΠΎΠΏΠΎΠ»Π°ΠΌ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ участок Π½Π΅ станСт Π΄Π»ΠΈΠ½ΠΎΠΉ Π² ΠΎΠ΄ΠΈΠ½ элСмСнт. Π—Π°Ρ‚Π΅ΠΌ эти участки Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ Π½Π° мСсто (ΡΠ»ΠΈΠ²Π°ΡŽΡ‚ΡΡ) Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ порядкС.

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° Ρ‚Π°ΠΊΠΎΠΉ массив:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

Π Π°Π·Π΄Π΅Π»ΠΈΠΌ Π΅Π³ΠΎ ΠΏΠΎΠΏΠΎΠ»Π°ΠΌ:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

И Π±ΡƒΠ΄Π΅ΠΌ Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠΎΠΏΠΎΠ»Π°ΠΌ, ΠΏΠΎΠΊΠ° Π½Π΅ останутся части с ΠΎΠ΄Π½ΠΈΠΌ элСмСнтом:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Ρ€Π°Π·Π΄Π΅Π»ΠΈΠ»ΠΈ массив Π½Π° максимально ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ участки, ΠΌΡ‹ сливаСм ΠΈΡ… Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ порядкС.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΠΎ Π΄Π²Π° отсортированных элСмСнта, ΠΏΠΎΡ‚ΠΎΠΌ «собираСм» ΠΈΡ… Π² Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΠΎ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ элСмСнта ΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅ собираСм всС вмСстС Π² отсортированный массив.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² сортировки, сортировка слияниСм Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈ ΡΠΊΠ»Π΅ΠΈΠ²Π°Ρ‚ΡŒ массив Π²Π½Π΅ зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π±Ρ‹Π» ΠΎΠ½ отсортирован ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΈΠ»ΠΈ Π½Π΅Ρ‚. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² Ρ…ΡƒΠ΄ΡˆΠ΅ΠΌ случаС ΠΎΠ½ ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстрСС, Ρ‡Π΅ΠΌ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ, Π² Π»ΡƒΡ‡ΡˆΠ΅ΠΌ случаС Π΅Π³ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΈΠΆΠ΅, Ρ‡Π΅ΠΌ Ρƒ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ сортировка слияниСм β€” Π½Π΅ самоС Π»ΡƒΡ‡ΡˆΠ΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° Π½Π°Π΄ΠΎ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ частично упорядочСнный массив.

Быстрая сортировка

Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΠΠ°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΉ случайВ ΡΡ€Π΅Π΄Π½Π΅ΠΌΠΠ°ΠΈΡ…ΡƒΠ΄ΡˆΠΈΠΉ случай
ВрСмяO(nΒ·log n)O(nΒ·log n)O(n 2 )
ΠŸΠ°ΠΌΡΡ‚ΡŒO(1)O(1)O(1)

Быстрая сортировка β€” это Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ‚ΠΈΠΏΠ° «раздСляй ΠΈ властвуй». Он Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, рСкурсивно повторяя ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги:

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ массивС:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ элСмСнт:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ индСкс (4), ΠΌΡ‹ Π±Π΅Ρ€Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, находящССся ΠΏΠΎ этому индСксу (6), ΠΈ пСрСносим значСния Π² массивС Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС числа большС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΌΡƒ Π±Ρ‹Π»ΠΈ Π² ΠΏΡ€Π°Π²ΠΎΠΉ части, Π° всС числа мСньшС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ β€” Π² Π»Π΅Π²ΠΎΠΉ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² процСссС пСрСноса Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ индСкс ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ элСмСнта ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ (ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ это вскорС).

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

На этом этапС ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 6 находится Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ повторяСм этот процСсс для ΠΏΡ€Π°Π²ΠΎΠΉ ΠΈ Π»Π΅Π²ΠΎΠΉ частСй массива.

ΠœΡ‹ рСкурсивно Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ quicksort Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· частСй. ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ элСмСнтом Π² Π»Π΅Π²ΠΎΠΉ части становится пятСрка. ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΠ½Π° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ свой индСкс. Π“Π»Π°Π²Π½ΠΎΠ΅ β€” ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π²Π°ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π° Π½Π΅ Π΅Π³ΠΎ индСкс.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

Π‘Π½ΠΎΠ²Π° примСняСм Π±Ρ‹ΡΡ‚Ρ€ΡƒΡŽ сортировку:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

Π£ нас ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ ΠΎΠ΄Π½ΠΎ нСотсортированноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΡƒΠΆΠ΅ отсортировано, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

На этом ΠΌΡ‹ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π΅ΠΌ наш Ρ†ΠΈΠΊΠ» статСй ΠΏΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ ΠΈ структурам Π΄Π°Π½Π½Ρ‹Ρ… для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π—Π° это врСмя ΠΌΡ‹ рассмотрСли связныС списки, динамичСскиС массивы, Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ поиска ΠΈ мноТСства с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΊΠΎΠ΄Π° Π½Π° C#.

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

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

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