Последнее очень досадно
Как раз нет, это легко обходится простыми эвристиками, незначительно усложняющими код для больших
![$N$ $N$](https://dxdy-04.korotkov.co.uk/f/f/9/c/f9c4988898e7f532b9f826a75014ed3c82.png)
. А для малых
![$N$ $N$](https://dxdy-04.korotkov.co.uk/f/f/9/c/f9c4988898e7f532b9f826a75014ed3c82.png)
и эвристики не нужны, время работы и так мало (в абсолютном выражении).
(Замечания о пузырьке)
Rusit8800Основная засада (неэффективность) в росте вычислительной сложности (времени работы) как
![$O(N^2)$ $O(N^2)$](https://dxdy-01.korotkov.co.uk/f/c/3/f/c3f65f86f2baa7f28840d7c68c00f5f282.png)
, что для средних и больших
![$N$ $N$](https://dxdy-04.korotkov.co.uk/f/f/9/c/f9c4988898e7f532b9f826a75014ed3c82.png)
многократно превышает другие более оптимальные методы (с сложностью
![$O(N \ln N)$ $O(N \ln N)$](https://dxdy-02.korotkov.co.uk/f/5/2/2/522320be579fbb38177532391a745e8882.png)
). Обычно для массивов до тысяч элементов ещё можно применять, а для десятков тысяч и более - уже слишком медленно (по сравнению с другими более сложными методами). Для массивов в миллионы элементов разница во много раз будет видна невооруженным глазом (грубо - доли секунды или минуты работы), ну а сортировку миллиардного массива можно и несколько лет ждать против минуты для других методов. Базы данных же встречаются и заметно поболее размером.
Если мне будет позволено, приведу такую аналогию: возведение в натуральную степень можно делать последовательными умножениями или использовать логарифмы и получить ответ намного быстрее. Что не отменяет знания базовых вещей типа последовательных умножений (aka сортировка пузырьком).
Простите за ликбез.
![Smile :-)](./images/smilies/icon_smile.gif)