У меня есть блок def, который выполняет сортировку, к примеру - сортировка пузырчатого вида
def bubble_sort(array):
for i in range(0,len(array)-1):
for j in range(len(array)-1):
if(array[j] > array[j+1]):
temp = array[j]
array[j] = array[j+1]
array[j+1] = temp
return array
Перелистал все ролики и зарубежные форумы, но не нашел ответа: Как я могу посчитать время выполнения данной функции в секундах, формат ответа должен быть просто float числом (секунды, миллисекунды).
Пробовал такой код:
arr = []
start1 = time.ctime()
bubble_sort(arr)
end1 = time.ctime()
total1 = end1 - start1
print(start1, end1)
print(total1)
Формат выдачи start1 и end1 таков: Tue Mar 21 02:00:49 2023 Tue Mar 21 02:00:49 2023
Соответственно, при вычитании end1 и start1 выдает ошибку, поскольку пытаюсь вычитать строки. Как изменить такой формат записи в секунды, и, поскольку время выполнения меньше секунды, как учесть миллисекунды, чтобы при вычитании величин start1 и end1 не был 0?
Если есть знатоки библиотеки time, буду очень благодарен за вашу помощь!
def bubble_sort(array):
for i in range(0,len(array)-1):
for j in range(len(array)-1):
if(array[j] > array[j+1]):
temp = array[j]
array[j] = array[j+1]
array[j+1] = temp
return array
P.S. Выведет 0, но если использовать массив с более длинной задержкой (а не пустой arr=[]), то будет уже не просто 0.
Например: import time
def bubble_sort(array):
for i in range(0,len(array)-1):
for j in range(len(array)-1):
if(array[j] > array[j+1]):
temp = array[j]
array[j] = array[j+1]
array[j+1] = temp
return array
Ответ ИИ (Chat GPT): "Чтобы решить вашу проблему, вам нужно использовать модуль time более правильно. В частности, метод time() этого модуля возвращает количество секунд, прошедших с начала эпохи (1 января 1970 года). Используя этот метод, вы можете измерить время выполнения функции следующим образом:
python
Copy code
import time
def bubble_sort(array):
# тело функции
arr = [5, 4, 3, 2, 1]
start_time = time.time()
bubble_sort(arr)
end_time = time.time()
elapsed_time = end_time - start_time
print(f"Время выполнения: {elapsed_time:.6f} сек."
В данном примере start_time и end_time представляют собой время в секундах с начала эпохи, которое соответствует моменту перед вызовом функции и после ее выполнения соответственно. Вычитание end_time и start_time дает количество секунд, затраченных на выполнение функции. Функция print() выводит время выполнения в секундах с точностью до 6 знаков после запятой.
Если вы хотите узнать время выполнения функции в миллисекундах, можно умножить результат на 1000:
Чтобы посчитать время выполнения функции в секундах, можно использовать модуль `time` следующим образом:
import time
def bubble_sort(array):
for i in range(len(array)-1):
for j in range(len(array)-1):
if array[j] > array[j+1]:
temp = array[j]
array[j] = array[j+1]
array[j+1] = temp
return array
Здесь мы используем функцию `time.time()` для получения текущего времени в секундах с начала эпохи Unix (1 января 1970 года). После выполнения функции сортировки мы снова вызываем `time.time()` и вычитаем из текущего времени начальное время, чтобы получить общее время выполнения функции. Чтобы вывести время с точностью до миллисекунд, мы используем форматированную строку с опцией форматирования `:.6f`, которая указывает, что нужно вывести число с точностью до 6 знаков после запятой.