Уже упоминалось, что hashmaps являются O(n/m)
в среднем, если n
- количество элементов, а m
- размер. Также было упомянуто, что в принципе все это может рухнуть в единый список с запросом времени O(n)
. (Это все предполагает, что вычисление хеша является постоянным временем).
Однако то, что не часто упоминается, заключается в том, что с вероятностью не менее 1-1/n
(так что для 1000 предметов, что является шансом 99,9%) наибольший ведро не будет заполнено больше, чем O(logn)
! Следовательно, соответствие средней сложности двоичных деревьев поиска. (И константа хороша, более жесткая привязка - (log n)*(m/n) + O(1)
).
Все, что требуется для этой теоретической оценки, состоит в том, что вы используете достаточно хорошую хеш-функцию (см. Википедия: Универсальная хэширование . Это может быть так же просто, как a*x>>m
). И конечно, что человек, дающий вам значения хешу, не знает, как вы выбрали ваши случайные константы.
TL; DR: С очень высокой вероятностью худший случай get / put сложность хэш-карты O(logn)
.
Разработчик Twilio здесь.
Ресурсы Twilio не поддерживают нумерацию страниц на основе номеров. Вместо этого страница данных будет включать свойства next_page_uri
и previous_page_uri
. Вы можете контролировать размер страницы с помощью параметра PageSize
.
При использовании библиотек вы можете настроить их автоматическое разбиение на страницы. Например:
twilioClient.chat.services(TWILIO_CHAT_SERVICE_SID)
.channels(req.params.id)
.messages
.list({
limit: 400,
pageSize: 100
});
в конечном итоге вызовут API 4 раза, чтобы вернуть 400 сообщений.
Вы можете узнать больше о нумерации ресурсов Twilio в документации.