Самый быстрый способ найти наименьшее число в изменяющемся списке в цикле в Python 3 - PullRequest
0 голосов
/ 25 августа 2018

Имеется список из двух кортежей [(b,(x,y))], который манипулируется на каждой итерации цикла (list.remove и list.append). На каждой итерации наименьшее число запрашивается и удаляется. В данный момент я использую min(list), чтобы найти кортеж с наименьшим b в каждой итерации.

Алгоритм ведет себя довольно медленно для больших наборов данных. Каков наилучший способ найти наименьшее значение в списке, которым манипулируют на каждой итерации?

1 Ответ

0 голосов
/ 25 августа 2018

Если вы всегда удаляете наименьший элемент в списке, вы должны использовать отсортированный список, а не произвольно упорядоченный.

Таким образом, минимум всегда будет находиться в начале списка.

Стандартный список Python не сортируется, если вы сами не вставляете его в определенные точки. Тем не менее, существует множество реализаций отсортированных коллекций, которые вы можете использовать, таких как (чистый Python) отсортированные Python контейнеры .

...