Поиск элемента в наборе требует временной сложности O(1), тогда как поиск в списке занимает временную сложность O(n). n — это количество элементов в наборе или списке.
В моем тесте реальных затрат времени на поиск n установлено равным 1 000 000, что, по моему мнению, является большим числом. Результаты теста составляют 48,3 мс в наборе против 28 мс в списке, что показывает, что поиск в списке выполняется быстрее, чем поиск в наборе, и противоречит анализу временной сложности. Я попробовал увеличить n и сравнить скорость поиска, и оказалось, что результат верен до тех пор, пока я не получу ошибку памяти, когда n очень велико.
(base) PS C:\Users > python -m timeit -n 100 "300 в наборе(диапазон(1000000))"
100 циклов, лучший из 5: 48,3 мс на цикл
(base) PS C:\Users> python -m timeit -n 100 "300 в списке(диапазон(1000000))"
100 циклов, лучший из 5: 28 мс на каждый цикл
результаты затрат времени
Не могли бы вы помочь мне понять, почему производительность последовательности поиска в списке лучше, чем в наборе в Python?
результаты затрат времени
Не могли бы вы помочь мне понять, почему производительность последовательности поиска в списке лучше, чем в наборе в Python?
p>
Не могу понять.
Подробнее здесь: https://stackoverflow.com/questions/787 ... han-in-set