Π Π°Π±ΠΎΡ‚Π° с коллСкциями Π΄Π°Π½Π½Ρ‹Ρ… являСтся Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚ΠΎΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ слоТных ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8. Часто программисты ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ Π² ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ Π²ΠΎ внСшнюю систСму. ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ замСдлСнию Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ слоТностям Π² ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ ΠΊΠΎΠ΄Π°.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ, ΠΊΠ°ΠΊ ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡ΠΈΡ‚ΡŒ массив ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠ°ΠΊ встроСнныС возмоТности ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Ρ‚Π°ΠΊ ΠΈ кастомныС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹. Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ ΠΎ Π½ΡŽΠ°Π½ΡΠ°Ρ… сравнСния Ρ€Π°Π·Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ процСссов сортировки Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

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

Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивами Π² 1Π‘

Массив Π² языкС встроСнного программирования 1Π‘ прСдставляСт собой ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡Π΅Π½Π½ΡƒΡŽ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ элСмСнтов, доступ ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ осущСствляСтся ΠΏΠΎ индСксам. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… языков, массивы Π² 1Π‘ ΡΠ²Π»ΡΡŽΡ‚ΡΡ динамичСскими ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ значСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

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

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ являСтся строгая типизация ΠΏΡ€ΠΈ сравнСнии. Если Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ число со строкой Π±Π΅Π· явного привСдСния Ρ‚ΠΈΠΏΠΎΠ², систСма выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ выполнСния. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ сортировки ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ всС элСмСнты массива ΠΈΠΌΠ΅ΡŽΡ‚ совмСстимыС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ВстроСнная функция сортировки измСняСт исходный массив Β«Π½Π° мСстС». Если Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ порядок Π΄Π°Π½Π½Ρ‹Ρ… для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ создайтС копию ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ().

πŸ“Š Какой Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Ρ‡Π°Ρ‰Π΅ всСго сортируСтС Π² 1Π‘?
Числа
Π‘Ρ‚Ρ€ΠΎΠΊΠΈ
Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹
Бсылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹

ИспользованиС встроСнного ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

Π‘Π°ΠΌΡ‹ΠΉ быстрый ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ способ ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ β€” использованиС стандартного ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Массив. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ эффСктивный Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ быстрой сортировки, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с большими объСмами Π΄Π°Π½Π½Ρ‹Ρ….

Для простых Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Число, Π‘Ρ‚Ρ€ΠΎΠΊΠ° ΠΈΠ»ΠΈ Π”Π°Ρ‚Π°, Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². БистСма автоматичСски опрСдСляСт Ρ‚ΠΈΠΏ элСмСнтов ΠΈ примСняСт ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° сравнСния. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΡΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ лСксикографичСски, Π° Π΄Π°Ρ‚Ρ‹ β€” хронологичСски.

МассивЧисСл = Новый Массив;

МассивЧисСл.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(50);

МассивЧисСл.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(10);

МассивЧисСл.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(30);

// ВыполняСм сортировку ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ

МассивЧисСл.Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ();

Однако ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ со слоТными ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΈΠ»ΠΈ БоотвСтствиС, стандартный ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΈΠ»ΠΈ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Ссли Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΊΠ»ΡŽΡ‡ сортировки. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ приходится ΠΏΠΈΡΠ°Ρ‚ΡŒ собствСнныС Ρ†ΠΈΠΊΠ»Ρ‹ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

πŸ’‘

Если массив содСрТит значСния Ρ‚ΠΈΠΏΠ° Null, встроСнный ΠΌΠ΅Ρ‚ΠΎΠ΄ Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ() ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒΡΡ с ошибкой. РСкомСндуСтся ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ пустыС значСния ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π° значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Ручная рСализация Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² сортировки

Иногда стандартных срСдств нСдостаточно, особСнно ΠΊΠΎΠ³Π΄Π° трСбуСтся спСцифичСская Π»ΠΎΠ³ΠΈΠΊΠ° упорядочивания. Π’ Ρ‚Π°ΠΊΠΈΡ… ситуациях программисты Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ классичСскиС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Β«ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠ²Π°ΡΒ» сортировка ΠΈΠ»ΠΈ сортировка Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ, нСпосрСдствСнно Π² ΠΊΠΎΠ΄Π΅ модуля.

Алгоритм Β«ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠ°Β» Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ прост для понимания ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, хотя ΠΈ ΠΌΠ΅Π½Π΅Π΅ эффСктивСн Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивах. Он Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ сравнСнии сосСдних элСмСнтов ΠΈ ΠΈΡ… ΠΎΠ±ΠΌΠ΅Π½Π΅, Ссли ΠΎΠ½ΠΈ находятся Π² Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ порядкС. ΠŸΡ€ΠΎΡ†Π΅ΡΡ повторяСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° массив Π½Π΅ станСт ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ отсортированным.

  • πŸ” Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎ всСму массиву нСсколько Ρ€Π°Π·.
  • πŸ”„ Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Ρ‚ ΠΏΠΎΠΏΠ°Ρ€Π½ΠΎ: элСмСнт с индСксом i ΠΈ элСмСнт с индСксом i+1.
  • ⬆️ Если Π»Π΅Π²Ρ‹ΠΉ элСмСнт большС ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ, ΠΎΠ½ΠΈ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ мСстами.

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° значСниями Π² 1Π‘ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. Π­Ρ‚ΠΎ позволяСт ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· элСмСнтов ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒΡŽ. НСсмотря Π½Π° ΠΊΠ°ΠΆΡƒΡ‰ΡƒΡŽΡΡ Π°Ρ€Ρ…Π°ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ, Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ процСссом сравнСния.

Для i = 0 По Массив.Π’Π“Ρ€Π°Π½ΠΈΡ†Π°() - 1 Π¦ΠΈΠΊΠ»

Для j = 0 По Массив.Π’Π“Ρ€Π°Π½ΠΈΡ†Π°() - 1 - i Π¦ΠΈΠΊΠ»

Если Массив[j] > Массив[j + 1] Π’ΠΎΠ³Π΄Π°

Π’Ρ€Π΅ΠΌΠ΅Π½Π½Π°ΡΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ = Массив[j];

Массив[j] = Массив[j + 1];

Массив[j + 1] = Π’Ρ€Π΅ΠΌΠ΅Π½Π½Π°ΡΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ;

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ стоит ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠ²ΡƒΡŽ сортировку Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅?

Алгоритм ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΡ‡Π½ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ O(n^2). ΠŸΡ€ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠΈ количСства элСмСнтов Π² 10 Ρ€Π°Π·, врСмя выполнСния увСличится Π² 100 Ρ€Π°Π·. Для массивов Π±ΠΎΠ»Π΅Π΅ 1000 элСмСнтов это ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹ΠΌ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°ΠΌ интСрфСйса.

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° слоТных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ структур

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

НаиболСС ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ являСтся использованиС Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π’Ρ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· массива Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, добавляСтС ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ с Π½ΡƒΠΆΠ½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ запросов 1Π‘ для сортировки. Π­Ρ‚ΠΎ позволяСт Π³ΠΈΠ±ΠΊΠΎ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ порядок ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅.

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ
Массив.Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ() Высокая Низкая Минимальная
Π ΡƒΡ‡Π½ΠΎΠΉ Ρ†ΠΈΠΊΠ» Низкая БрСдняя БрСдняя
Π’Π°Π±Π»ΠΈΡ†Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Высокая Максимальная Высокая
Запрос ΠžΡ‡Π΅Π½ΡŒ высокая Высокая БрСдняя

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ со структурами Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя поля, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ сравнСниС. Ошибка Π² написании ΠΈΠΌΠ΅Π½ΠΈ свойства ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ сортировка ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠ»ΠΈ Π½Π΅ сработаСт вовсС. ВсСгда провСряйтС ΠΈΠΌΠ΅Π½Π° ΠΊΠ»ΡŽΡ‡Π΅ΠΉ Π½Π° соотвСтствиС рСгистру.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ конструктора запросов ΠΈ синтаксис языка ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘. ВсСгда свСряйтС доступныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² справкС ΠΏΠΎ вашСй ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

β˜‘οΈ Алгоритм сортировки Ρ‡Π΅Ρ€Π΅Π· Π’Π°Π±Π»ΠΈΡ†Ρƒ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 5

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ…

Когда Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ массива исчисляСтся дСсятками тысяч элСмСнтов, вопрос ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ»Π°Π½. НСэффСктивный ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Β«Π·Π°ΠΌΠΎΡ€ΠΎΠ·ΠΈΡ‚ΡŒΒ» клиСнтскоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° нСсколько сСкунд, Ρ‡Ρ‚ΠΎ нСдопустимо Π² соврСмСнном Ρ€ΠΈΡ‚ΠΌΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Одним ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ являСтся минимизация ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ свойствам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ². Если Π²Ρ‹ сортируСтС массив ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π²Ρ‹Π½ΠΎΡΠΈΡ‚ΡŒ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ значСния Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ сравнСния. Π­Ρ‚ΠΎ сниТаСт Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€.

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

Π’Π°ΠΊΠΆΠ΅ стоит ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ overhead (Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы) Π½Π° созданиС Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½ΠΎΠ΅ созданиС Π½ΠΎΠ²Ρ‹Ρ… массивов ΠΈΠ»ΠΈ Ρ‚Π°Π±Π»ΠΈΡ† Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ частым Π²Ρ‹Π·ΠΎΠ²Π°ΠΌ сборщика мусора, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚ систСму.reuse ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ‚Π°ΠΌ, Π³Π΄Π΅ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

πŸ’‘

Для массивов объСмом Π±ΠΎΠ»Π΅Π΅ 10 000 элСмСнтов Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ сортировки Π½Π° сторону сСрвСра ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ запросов, Π° Π½Π΅ клиСнтский ΠΊΠΎΠ΄.

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ способы ΠΈΡ… устранСния

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ошибки ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Число ΠΈ Π‘Ρ‚Ρ€ΠΎΠΊΡƒ Π² ΠΎΠ΄Π½ΠΎΠΌ массивС Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ выполнСния. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ строго слСдит Π·Π° Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ сравнСния.

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

  • ❌ Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Π±Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° пустыС значСния.
  • ❌ Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ рСгистра символов Π² строках (А ΠΈ Π° ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ).
  • ❌ ИзмСнСниС ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π² Ρ†ΠΈΠΊΠ»Π΅ foreach, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ нСпрСдсказуСмому повСдСнию.

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ 1Π‘ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с коллСкциями ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΈΠ»ΠΈ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅. РСгулярно провСряйтС ΠΆΡƒΡ€Π½Π°Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ вашСй вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы (FAQ)

МоТно Π»ΠΈ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив Π² порядкС убывания стандартным ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ?

ΠŸΡ€ΡΠΌΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ для указания направлСния Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ() отсутствуСт. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ всСгда сортируСт ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ. Для получСния ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ порядка Π½ΡƒΠΆΠ½ΠΎ сначала Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ(), Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ массив, мСняя элСмСнты мСстами симмСтрично ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ†Π΅Π½Ρ‚Ρ€Π°, Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Π£Π±Ρ‹Π².

Как ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив структур ΠΏΠΎ нСскольким полям?

ВстроСнный ΠΌΠ΅Ρ‚ΠΎΠ΄ массива Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΡƒΡŽ сортировку. ЕдинствСнный эффСктивный способ β€” Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π’Π°Π±Π»ΠΈΡ†ΡƒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π’ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ() Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ нСсколько ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ, ΡƒΠΊΠ°Π·Π°Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ….

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π² массивС Π΅ΡΡ‚ΡŒ значСния НСопрСдСлСно?

ЗначСния Null (НСопрСдСлСно) нСльзя ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ. ΠŸΠ΅Ρ€Π΅Π΄ сортировкой Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π»ΠΈΠ±ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ элСмСнты ΠΈΠ· массива, Π»ΠΈΠ±ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 0 для чисСл ΠΈΠ»ΠΈ ΠΏΡƒΡΡ‚ΡƒΡŽ строку), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π²ΡΡ‚Π°Ρ‚ΡŒ Π² Π½Π°Ρ‡Π°Π»ΠΎ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Π΅Ρ† отсортированного списка.

ВлияСт Π»ΠΈ локаль ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Π½Π° сортировку строк Π² 1Π‘?

Π”Π°, влияСт. ΠŸΡ€Π°Π²ΠΈΠ»Π° лСксикографичСского сравнСния строк зависят ΠΎΡ‚ языковых настроСк ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ с Π΄ΠΈΠ°ΠΊΡ€ΠΈΡ‚ΠΈΠΊΠΎΠΉ ΠΈΠ»ΠΈ Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Π°Π»Ρ„Π°Π²ΠΈΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ Π² зависимости ΠΎΡ‚ Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… настроСк ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Какой Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ()?

ВнутрСнняя рСализация ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ() Π² 1Π‘ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ базируСтся Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ быстрой сортировки (Quicksort) ΠΈΠ»ΠΈ Π΅Π³ΠΎ модификациях (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Timsort), Ρ‡Ρ‚ΠΎ обСспСчиваСт ΡΡ€Π΅Π΄Π½ΡŽΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ O(n log n). Вочная рСализация ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ Ρ‚ΠΈΠΏΠ° сортируСмых Π΄Π°Π½Π½Ρ‹Ρ….