либо википедия, либо я не прав, но для меня лучший случай и худший случай - это O (n2), это
из книги Введение в алгоритмы
BUBBLESORT(A)
1 for i = 1 to A.length - 1
2 for j = A.length downto i + 1
3 if A[j] < A[j - 1]
4 exchange A[j] with A[j - 1]
так что относительно того, отсортирован массив или нет, нет ни одного прохода
becoz, даже если строка 4 пропущена, строка 2 и 3 выполнены пропозиционально
до n2 раз
редактировать:
я думаю, я понял, что Википедия права, но нужно изменить
алгоритм, добавив, скажем, логическую переменную is_exchange, установив ее в false перед входом во второй цикл, и, если она снова станет false после выхода из цикла, то все готово, и в этом случае время будет O (n), поскольку второй цикл выполняется n раз