Подтвердить что ты не робот

Ссылка на данные Java Data Structures

Может ли кто-нибудь дать мне ссылки на веб-сайт, содержащий сводку основных структур данных Java, и их соответствующую сложность во времени (для некоторых заданий, таких как добавление, поиск, удаление), например. Hashtable - O (1) для нахождения, а LinkedList - O (n). Некоторые детали, такие как использование памяти, тоже были бы хороши.

Это было бы полезно для мышления в структурах данных для алгоритмов.

4b9b3361

Ответ 1

Есть ли причина думать, что реализация Java отличается (с точки зрения сложности) чем универсальная, агностическая реализация языка? Другими словами, почему бы не просто ссылаться на общую ссылку на сложность различных структур данных:

NIST Словарь алгоритмов и структур данных

Но если вы настаиваете на специфике Java:

Стандартные структуры данных Java Знаки Big O

Java Collections cheatsheet V2 (мертвая ссылка, но это первый версия cheatsheet)

Ответ 4

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

http://bigocheatsheet.com/

Ответ 5

Я не верю, что есть какой-то один веб-сайт, излагающий это (звучит, как хорошая идея для проекта). Я думаю, что часть проблемы заключается в том, что понимание того, как выполняется каждый из алгоритмов, очень важно. По большей части, похоже, вы понимаете Big-O, поэтому я бы использовал это как ваши лучшие предположения. Последуйте за ней с помощью бенчмаркинга/профилирования, чтобы узнать, что работает быстрее/медленнее.

И да, Java docs должен иметь большую часть этой информации в java.util.

Ответ 6

Сложности времени и пространства для основных классов коллекций должны соответствовать известным структурам данных. Я не думаю, что в нем есть что-то конкретное Java, например. (как вы говорите) хэш-поиск должен быть O (1). Вы можете посмотреть здесь или здесь.