2016-11-01 3 views
0

Я новичок в java и узнал о различных методах из docs.oracle.com, но, как ни странно, они не упоминали временную сложность любых методов, описанных там, например. на этой странице: https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#get(int)
есть информация о методе «get()», но нет информации о сложности! Я не нашел подходящего места, чтобы спросить, где найти информацию о сложности. Может быть, есть такая информация, как cplusplus.com, но я не знаю. Я искал сеть и не смог. Поэтому, пожалуйста, простите меня, если это глупый вопрос.Где найти временную сложность java-методов?

+4

«Операции типа size, isEmpty, get, set, iterator и listIterator выполняются в постоянное время. Операция add выполняется в режиме амортизированного постоянного времени, то есть для добавления n элементов требуется время O (n). другие операции выполняются в линейном времени (грубо говоря) ». Попробуйте прочитать описание в верхней части класса. –

+0

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

+0

жаль, что я этого не заметил. Но по-прежнему кажется, что недостаточно места для упоминания сложности всех методов в верхней части страницы. Мой запрос был, есть ли какое-нибудь конкретное место, чтобы прочитать все о конкретном методе? – agassaa

ответ

3

На самом верху этой страницы он говорит

Размер, IsEmpty, получить, установить, итератор, и операции ListIterator работают в постоянном времени. Операция add работает в режиме амортизированного постоянного времени, то есть для добавления n элементов требуется время O (n). Все остальные операции выполняются в линейном времени (грубо говоря). Постоянный коэффициент невысок по сравнению с константой для реализации LinkedList.

+0

Итак, мне нужно прочитать всю страницу, чтобы узнать что-то конкретное о конкретном методе? – agassaa

+0

@agassaa: предположительно это всегда наверху. В качестве альтернативы, если вы читаете документы для других языков/библиотек, простой способ поиска сложностей - поиск вхождений «линейных», «постоянных», «квадратичных». – Ishamael

+0

Спасибо за предложение :) Кстати, как вы думаете, этот вопрос нужно удалить? поскольку это может не способствовать повышению производительности? – agassaa

Смежные вопросы