Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему time не работает для def в Python

Егор Гришин Знаток (424), закрыт 2 года назад
Имеется часть программы, выше сам def bubble_sort(array)
start1 = time.time()
bubble_sort(array)
total1 = time.time() - start1
timearr.append(total1)
print(f'Время выполнения: {total1:.6f} сек.')
Время считается равным нулю.
Попробовал после строчки bubble_sort(array) добавить print(start1) и как выяснилось, время функции print программа считает, а вот время выполнения функции нет.
В чем проблема и как можно это исправить?
Лучший ответ
Молот Шотландцев Высший разум (303088) 2 года назад
У меня считает
Егор ГришинЗнаток (424) 2 года назад
у вас ОС windows?
Молот Шотландцев Высший разум (303088) Ну да, а что? Слишком медленно считает?
Остальные ответы
Леон Мыслитель (6210) 2 года назад
Ответ ИИ (Chat GPT): "Вероятно, проблема заключается в том, что вы вызываете функцию time.time() дважды, один раз перед вызовом bubble_sort(array) и один раз после ее вызова. В таком случае время, возвращаемое первым вызовом time.time(), будет относиться к моменту, когда программа начала выполняться, а время, возвращаемое вторым вызовом, будет относиться к моменту, когда программа завершила выполнение сортировки. Таким образом, разница между этими двумя значениями будет равна нулю, поскольку программа выполняется слишком быстро.

Чтобы измерить время выполнения только сортировки, попробуйте поместить вызов time.time() только перед вызовом bubble_sort(array), а затем вычислить разницу между временем перед вызовом и временем после завершения сортировки, как показано в следующем примере:

lua
Copy code
start_time = time.time()
bubble_sort(array)
total_time = time.time() - start_time
print(f'Время выполнения: {total_time:.6f} сек.')
Также убедитесь, что вы импортировали модуль time в начале вашего скрипта, например:

python
Copy code
import time
Если проблема не решится, то попробуйте проверить свою функцию bubble_sort() на правильность работы с помощью простого тестового массива и времени выполнения функции без измерения времени выполнения всей программы."
Егор ГришинЗнаток (424) 2 года назад
ох уж этот openAI) благодарю за ответ
Vitness Просветленный (35236) 2 года назад
Значит твоя функция отрабатывает почти мгновенно. Быстрее, чем обновляется time.time.
Можешь попробовать time.perfcounter, он обновляется намного быстрее.
Похожие вопросы