Slavka_online
@Slavka_online
Интересная личность

Что работает быстрее и что разумнее? (словарь или...)

в общем к примеру у меня будет класс Client с полем id в котором будет храниться личный код клиента, далее у меня будет список из этих клиентов. Я буду обращаться к клиентам по их личному коду. Так вот, что будет быстрее и разумнее искать через цикл for, проверяя Client.id=код или же держать еще словарь в котором будет код: номер в списке, получать из него номер и обращаться к списку?
  • Вопрос задан
  • 2818 просмотров
Пригласить эксперта
Ответы на вопрос 1
mardy_bum
@mardy_bum
Конечно же поиск по словарю O(1) будет быстрее, чем линейный поиск O(n). Вот только в этом случае по вашей схеме вам придется держать в памяти сразу и список, и словарь, а также синхронизировать их во время добавления/удаления элементов. На мой взгляд это очень плохая практика программирования.
Я бы сделал что-то из этого:
1) Изначально использовать только словарь (id : Client) вместо списка
2) Если ваш список клиентов отсортирован по id, можно сделать бинарный поиск O(log n)
3) Почему бы для хранения/поиска данных просто не использовать БД?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы