Π‘Π°ΠΊΠ°Π»Π°Π²Ρ€
Π”ΠΈΠΏΠ»ΠΎΠΌΠ½Ρ‹Π΅ ΠΈ курсовыС Π½Π° Π·Π°ΠΊΠ°Π·

ΠŸΠΈΡ€Π°ΠΌΠΈΠ΄Π°Π»ΡŒΠ½Π°Ρ сортировка. 
ИсслСдованиС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² сортировки Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

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

Π”Π°Π»Π΅Π΅ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ массива, ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΡƒΡŽ ΡΡ‚ΠΎΠ»ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ свойством, добавляя ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ элСмСнту Π·Π° ΡˆΠ°Π³. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС добавлСния — Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ стоит ΠΏΠ΅Ρ€Π΅Π΄ ΡƒΠΆΠ΅ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ. ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅ΠΌ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠ΅: построим структуру Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π΅ Π·Π° O (n), Π° Π·Π° O (logn) Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π’ΠΎΠ³Π΄Π° ΠΎΠ±Ρ‰Π΅Π΅ быстродСйствиС сортировки Π±ΡƒΠ΄Π΅Ρ‚. Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠŸΠΈΡ€Π°ΠΌΠΈΠ΄Π°Π»ΡŒΠ½Π°Ρ сортировка. ИсслСдованиС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² сортировки Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠŸΠΈΡ€Π°ΠΌΠΈΠ΄Π°Π»ΡŒΠ½Π°Ρ сортировка являСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ, быстродСйствиС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ оцСниваСтся ΠΊΠ°ΠΊ О (n log n). Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€Π΅Π»ΡŽΠ΄ΠΈΠΈ ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ, рассмотрим ΠΏΠ΅Ρ€Π΅Π²Π΅Ρ€Π½ΡƒΡ‚ΡƒΡŽ сортировку Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π’ΠΎ Π²Ρ€Π΅ΠΌΡ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π°, вмСсто вставки наимСньшСго элСмСнта Π² Π»Π΅Π²Ρ‹ΠΉ ΠΊΠΎΠ½Π΅Ρ† массива, Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ наибольший элСмСнт, Π° Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π² ΠΏΡ€Π°Π²ΠΎΠΌ ΠΊΠΎΠ½Ρ†Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ дСйствия массива Π°[0]…a[7].

Рисунок 2. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ дСйствия массива Π°[0]…a[7].

ΠŸΠΈΡ€Π°ΠΌΠΈΠ΄Π°Π»ΡŒΠ½Π°Ρ сортировка. ИсслСдованиС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² сортировки Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ.

Π’Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π΅Ρ€Ρ‚ΠΎΠΉ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π° лСвая Π³Ρ€Π°Π½ΠΈΡ†Π° ΡƒΠΆΠ΅ отсортированной (ΠΏΡ€Π°Π²ΠΎΠΉ) части массива. Рассмотрим ΠΎΡ†Π΅Π½ΠΊΡƒ количСства ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅. ВсСго выполняСтся n ΡˆΠ°Π³ΠΎΠ², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… состоит Π² Π²Ρ‹Π±ΠΎΡ€Π΅ наибольшСго элСмСнта ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ a[0]…a[i] ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΎΠ±ΠΌΠ΅Π½Π΅. Π’Ρ‹Π±ΠΎΡ€ происходит ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ΠΎΠΌ элСмСнтов ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ поэтому Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π½Π° Π½Π΅Π³ΠΎ врСмя: O (n). Π˜Ρ‚Π°ΠΊ, n ΡˆΠ°Π³ΠΎΠ² ΠΏΠΎ О (n) ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ — это О).

ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅ΠΌ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠ΅: построим структуру Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π΅ Π·Π° O (n), Π° Π·Π° O (logn) Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π’ΠΎΠ³Π΄Π° ΠΎΠ±Ρ‰Π΅Π΅ быстродСйствиС сортировки Π±ΡƒΠ΄Π΅Ρ‚.

n*O (logn) = O (n log n)

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

Π˜Ρ‚Π°ΠΊ Π½Π°Π·ΠΎΠ²Π΅ΠΌ ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄ΠΎΠΉ Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ высоты k, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ:

  • Β· всС ΡƒΠ·Π»Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ k ΠΈΠ»ΠΈ k-1 — Π΄Π΅Ρ€Π΅Π²ΠΎ сбалансированноС.
  • Β· ΠΏΡ€ΠΈ этом ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½, Π° ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ k Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ.
  • Β· выполняСтся свойство ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹: ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт мСньшС, Π»ΠΈΠ±ΠΎ Ρ€Π°Π²Π΅Π½ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŽ.

БоотвСтствиС ΠΌΠ΅ΠΆΠ΄Ρƒ гСомСтричСской структурой ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹ ΠΊΠ°ΠΊ Π΄Π΅Ρ€Π΅Π²Π° ΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ устанавливаСтся ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ схСмС Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 3.

  • Β· Π² Π°[0] хранится ΠΊΠΎΡ€Π΅Π½ΡŒ Π΄Π΅Ρ€Π΅Π²Π°
  • Β· Π»Π΅Π²Ρ‹ΠΉ ΠΈ ΠΏΡ€Π°Π²Ρ‹ΠΉ ΡΡ‹Π½ΠΎΠ²ΡŒΡ элСмСнта a[i] хранятся, соотвСтствСнно, Π² a[2i+1 ΠΈ a[2i+2]

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, для массива, хранящСго Π² ΡΠ΅Π±Π΅ ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρƒ, выполняСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ характСристичСскоС свойство: a[i]>=a[2i+1] ΠΈ a[i]>=a[2i+2].

ΠŸΠ»ΡŽΡΡ‹ Ρ‚Π°ΠΊΠΎΠ³ΠΎ хранСния ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹:

  • Β· Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π½ΡƒΠΆΠ½ΠΎ лишь ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ схСму
  • Β· ΡƒΠ·Π»Ρ‹ хранятся ΠΎΡ‚ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΈ Π΄Π°Π»Π΅Π΅ Π²Π½ΠΈΠ·, ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π·Π° ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ.
  • Β· ΡƒΠ·Π»Ρ‹ ΠΎΠ΄Π½ΠΎΠ³ΠΎ уровня хранятся Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ

Π—Π°ΠΏΠΈΡˆΠ΅ΠΌ Π² Π²ΠΈΠ΄Π΅ массива ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρƒ, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½ΡƒΡŽ Π²Ρ‹ΡˆΠ΅. Π‘Π»Π΅Π²Π°-Π½Π°ΠΏΡ€Π°Π²ΠΎ, свСрху-Π²Π½ΠΈΠ·: 94 67 18 44 55 12 06 42. На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 3 мСсто элСмСнта ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΎ Ρ†ΠΈΡ„Ρ€ΠΎΠΉ справа-Π²Π²Π΅Ρ€Ρ…Ρƒ ΠΎΡ‚ Π½Π΅Π³ΠΎ.

Π’ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρƒ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π° ΠΊΠ°ΠΊ гСомСтричСский ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π»Π΅Π³ΠΊΠΎ — достаточно Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ схСму хранСния ΠΈ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ, начиная ΠΎΡ‚ ΠΊΠΎΡ€Π½Ρ.

ΠΠ°Ρ‡Π°Ρ‚ΡŒ построСниС ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ с a[k]…a[n], k = [size/2]. Π­Ρ‚Π° Ρ‡Π°ΡΡ‚ΡŒ массива удовлСтворяСт свойству ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ индСксов i, j: i=2i+1 (ΠΈΠ»ΠΈ j = 2i+2). Π’Π°ΠΊΠΈΠ΅ i, j Π½Π°Ρ…одятся Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Π΅ΠΉ массива.

Π”Π°Π»Π΅Π΅ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ массива, ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΡƒΡŽ ΡΡ‚ΠΎΠ»ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ свойством, добавляя ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ элСмСнту Π·Π° ΡˆΠ°Π³. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС добавлСния — Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ стоит ΠΏΠ΅Ρ€Π΅Π΄ ΡƒΠΆΠ΅ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ элСмСнта ΡΠΎΡ…Ρ€Π°Π½ΡΠ»Π°ΡΡŒ ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹ a[i+1]. .a[n] Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ a[i] Π²Π»Π΅Π²ΠΎ.

Новый элСмСнт Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡΠ΅ΠΈΠ²Π°Ρ‚ΡŒΡΡ сквозь ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρƒ.

НиТС Π΄Π°Π½Π° ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ процСсса для ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹ ΠΈΠ· 8-ΠΌΠΈ элСмСнтов:

  • 44 55 12 42 // 94 18 06 67
  • 44 55 12 // 67 94 18 06 42
  • 44 55 // 18 67 94 12 06 42
  • 44 // 94 18 67 55 12 06 42

// 94 67 18 44 55 12 06 42.

Π‘ΠΏΡ€Π°Π²Π° — Ρ‡Π°ΡΡ‚ΡŒ массива, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰Π°Ρ свойству ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹, ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ элСмСнты Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ, справа Π½Π°Π»Π΅Π²ΠΎ.

Π’ Π³Π΅ΠΎΠΌΠ΅Ρ‚ричСской ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ ΠΊΠ»ΡŽΡ‡ΠΈ ΠΈΠ· Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ° a[size/2]…a[n] ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π»ΠΈΡΡ‚ΡŒΡΠΌΠΈ Π² Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΌ Π΄Π΅Ρ€Π΅Π²Π΅, ΠΊΠ°ΠΊ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΎ Π½ΠΈΠΆΠ΅. Один Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ элСмСнты ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ³Π°ΡŽΡ‚ΡΡ Π½Π° ΡΠ²ΠΎΠΈ мСста, ΠΈ Ρ‚Π°ΠΊ — ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ построСна вся ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Π°.

НСготовая Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹ (Π½Π°Ρ‡Π°Π»ΠΎ массива) ΠΎΠΊΡ€Π°ΡˆΠ΅Π½Π° Π² Π±Π΅Π»Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΠΉ свойству ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹ ΠΊΠΎΠ½Π΅Ρ† массива — Π² Ρ‚Π΅ΠΌΠ½Ρ‹ΠΉ.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ построСния ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹.
Рисунок 4. ΠŸΡ€ΠΎΡ†Π΅ΡΡ построСния ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹.

Рисунок 4. ΠŸΡ€ΠΎΡ†Π΅ΡΡ построСния ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹.

Π˜Ρ‚Π°ΠΊ, Π·Π°Π΄Π°Ρ‡Π° построСния ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Ρ€Π΅ΡˆΠ΅Π½Π°. Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΡΠ²ΠΎΠΉΡΡ‚Π² ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹, Π² ΠΊΠΎΡ€Π½Π΅ всСгда находится ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт. ΠžΡ‚ΡΡŽΠ΄Π° Π²Ρ‹Ρ‚Π΅ΠΊΠ°Π΅Ρ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ„Π°Π·Ρ‹ 2:

  • Β· Π‘Π΅Ρ€Π΅ΠΌ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ элСмСнт ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹ a[0]…a[n] (ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅) ΠΈ ΠΌΠ΅Π½ΡΠ΅ΠΌ с ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ мСстами. Π’Π΅ΠΏΠ΅Ρ€ΡŒ «Π·Π°Π±Ρ‹Π²Π°Π΅ΠΌ» ΠΎΠ± ΡΡ‚ΠΎΠΌ элСмСнтС ΠΈ Π΄Π°Π»Π΅Π΅ рассматриваСм массив a[0]…a[n-1]. Для прСвращСния Π΅Π³ΠΎ Π² ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρƒ достаточно ΠΏΡ€ΠΎΡΠ΅ΡΡ‚ΡŒ лишь Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт.
  • Β· ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΡΠ΅ΠΌ шаг 1, ΠΏΠΎΠΊΠ° обрабатываСмая Ρ‡Π°ΡΡ‚ΡŒ массива Π½Π΅ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ся Π΄ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ элСмСнта.
ΠŸΡ€ΠΎΡΠ΅ΠΈΠ²Π°Π½ΠΈΠ΅ элСмСнтов массива.

Рисунок 5. ΠŸΡ€ΠΎΡΠ΅ΠΈΠ²Π°Π½ΠΈΠ΅ элСмСнтов массива

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΠ½Π΅Ρ† массива ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹, поэтому Π² ΠΏΡ€Π°Π²ΠΎΠΉ части постСпСнно Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ упорядочСнная ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ 2-ΠΉ Ρ„Π°Π·Ρ‹ сортировки Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ прСдставлСнии ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹.

Рисунок 6. Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ 2-ΠΉ Ρ„Π°Π·Ρ‹ сортировки Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ прСдставлСнии ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹.

ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ О (n log n) ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ точная ΠΎΡ†Π΅Π½ΠΊΠ° Π΄Π°Π΅Ρ‚ Π΄Π°ΠΆΠ΅ О (n) Π·Π° ΡΡ‡Π΅Ρ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ врСмя выполнСния зависит ΠΎΡ‚ Π²Ρ‹ΡΠΎΡ‚Ρ‹ ΡƒΠΆΠ΅ созданной части ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹.

Вторая Ρ„Π°Π·Π° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ O (n log n) Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ: O (n) Ρ€Π°Π· бСрСтся максимум ΠΈ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ просСиваниС Π±Ρ‹Π²ΡˆΠ΅Π³ΠΎ послСднСго элСмСнта. Плюсом являСтся ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: срСднСС число пСрСсылок (n log n)/2, ΠΈ ΠΎΡ‚клонСния ΠΎΡ‚ ΡΡ‚ΠΎΠ³ΠΎ значСния ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ°Π»Ρ‹.

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

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