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