Python алгоритъм тайминг

Здравейте, сега уча два курса едновременно. Python и алгоритми. Започнах сам да решавам алгоритмите. След като достигна до решение, сравнявам кода. Сега правя Bubble Sort и се натъкнах се на нещо любопитно:

Първото решения е моя код, който не е оптимизиран. Винаги върти от първия до последния елемент в масива. Тоест, дори масива да е вече сортиран, винаги прави максималните обхождания. Тайминга е 1.4 - 1.8 мс.

Второто решение е от интернет. Тайминга е 6.5 - 8.2 мс. Приблизително 5 -6 пъти по бавно.

Третото решение е моят код с оптимизация за вече сортиран масив. Тайминга е почти същия, като този на решение 2.

Въпросът ми е: Дали забавянето идва от инициализацията на булева стойност. И след като тайминга е един от основните критерии за един алгоритъм, не е ли това немислимо(5 -6 пъти по- бавно изпълнение)?

 

import time


def bubble_sort(array):
    for i in range(0, len(array) - 1):
        for j in range(0, len(array) - 1):
            temp = j + 1
            if array[temp] < array[j]:
                array[j], array[temp] = array[temp], array[j]


# def bubble_sort(array):
#     arr_sorted = False
#     while not arr_sorted:
#         arr_sorted = True
#         for i in range(0, len(array) - 1):
#             if array[i] > array[i + 1]:
#                 arr_sorted = False
#                 array[i], array[i + 1] = array[i + 1], array[i]


# def bubble_sort(array):
#     arr_sorted = True
#     for i in range(0, len(array) - 1):
#         for j in range(0, len(array) - 1):
#             temp = j + 1
#             if array[temp] < array[j]:
#                 arr_sorted = False
#                 array[j], array[temp] = array[temp], array[j]
#         if arr_sorted:
#             break


array_list = [17, 20, 26, 31, 44, 54, 55, 77, 93]
start_time = time.clock()
bubble_sort(array_list)
print(time.clock() - start_time, "seconds")
print(array_list)

 

П.С

Поправям се. Забавянето идва от масива. Сортирания масив е по бавен от несортирания...

array_list = [54, 26, 93, 17, 77, 31, 44, 55, 20]