HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Существует много видов сортировки: пузырьковая (bubble), выборкой (Selection), вставками (Insertion), куча (Heap), слиянием (Merge), быстрая (Quick). В этой статье мы постараемся определить, какой из этих алгоритмов быстрее.</p>
1 <p>Существует много видов сортировки: пузырьковая (bubble), выборкой (Selection), вставками (Insertion), куча (Heap), слиянием (Merge), быстрая (Quick). В этой статье мы постараемся определить, какой из этих алгоритмов быстрее.</p>
2 <p>Для решения поставленной задачи сгенерируем массив в Python, состоящий из пяти тысяч чисел от 0 до 1000. Потом определим время, нужное нам для завершения каждого алгоритма. И повторим каждый метод десять раз, дабы можно было точнее определить производительность.</p>
2 <p>Для решения поставленной задачи сгенерируем массив в Python, состоящий из пяти тысяч чисел от 0 до 1000. Потом определим время, нужное нам для завершения каждого алгоритма. И повторим каждый метод десять раз, дабы можно было точнее определить производительность.</p>
3 <h2>Что получили?</h2>
3 <h2>Что получили?</h2>
4 <p>Самым медленным алгоритмом оказалась<strong>пузырьковая сортировка</strong>. Возможно, она будет полезна при ознакомлении с темой алгоритмов сортировки, однако всё же Bubble Sort - не самый лучший вариант для практического применения.</p>
4 <p>Самым медленным алгоритмом оказалась<strong>пузырьковая сортировка</strong>. Возможно, она будет полезна при ознакомлении с темой алгоритмов сортировки, однако всё же Bubble Sort - не самый лучший вариант для практического применения.</p>
5 <p>А вот<strong>быстрая сортировка</strong>неплохо оправдала своё название, показав скорость, которая почти в 2 раза выше, чем при<strong>сортировке слиянием</strong>. При этом нам не потребуется дополнительное место для результирующего массива.</p>
5 <p>А вот<strong>быстрая сортировка</strong>неплохо оправдала своё название, показав скорость, которая почти в 2 раза выше, чем при<strong>сортировке слиянием</strong>. При этом нам не потребуется дополнительное место для результирующего массива.</p>
6 <p>Идём дальше.<strong>Сортировка вставками</strong>при своей работе выполняет меньше сравнений, если сравнивать с<strong>сортировкой выборкой</strong>. Таким образом, в реальности Insertion Sort должна быть более производительна. Однако в нашем случае она сработала чуть-чуть медленней. Всё дело в том, что сортировка вставками выполняет намного больше обменов элементами. А когда эти обмены занимают гораздо больше времени, чем сравнение самих элементов, полученный в нашем эксперименте результат является закономерным.</p>
6 <p>Идём дальше.<strong>Сортировка вставками</strong>при своей работе выполняет меньше сравнений, если сравнивать с<strong>сортировкой выборкой</strong>. Таким образом, в реальности Insertion Sort должна быть более производительна. Однако в нашем случае она сработала чуть-чуть медленней. Всё дело в том, что сортировка вставками выполняет намного больше обменов элементами. А когда эти обмены занимают гораздо больше времени, чем сравнение самих элементов, полученный в нашем эксперименте результат является закономерным.</p>
7 <p>Напоследок, добавим, что лучше понять вышеупомянутые алгоритмы поможет их визуализация. При этом масштаб сравнения и число перестановок, которые выполняет алгоритм совместно со средой выполнения кода, как раз таки и будут главными факторами, определяющими производительность. Что касается реальных приложений на Python, то мы рекомендуем применять встроенные функции сортировки, так как они реализованы с учётом удобства разработчика.</p>
7 <p>Напоследок, добавим, что лучше понять вышеупомянутые алгоритмы поможет их визуализация. При этом масштаб сравнения и число перестановок, которые выполняет алгоритм совместно со средой выполнения кода, как раз таки и будут главными факторами, определяющими производительность. Что касается реальных приложений на Python, то мы рекомендуем применять встроенные функции сортировки, так как они реализованы с учётом удобства разработчика.</p>
8 <p><em><a>Источник</a></em></p>
8 <p><em><a>Источник</a></em></p>
9  
9