2008-10-07 1 views

ответ

8

Dictionary of Algorithms and Data Structures - довольно полный список и включает в себя сложность (Big-O) в описаниях алгоритмов. Если вам нужна дополнительная информация, она будет в одной из связанных ссылок, и всегда есть Wikipedia в качестве резервной копии.

+0

Я скачал все страницы и сделал список от каждой страницы, которая обеспечивает большую O: https://pastebin.com/X3c7i4aF – BlackCap 2017-06-17 23:20:41

2

Попробуйте «Introduction to Algorithms» от Cormen, Leisersen и Rivest. Если его там нет, то его, вероятно, не стоит знать.

6

Cormen book больше о том, как научить вас, как доказать, что Big-O будет для данного алгоритма, а не записывать алгоритм в его производительность Big-O. Первый гораздо более ценен, чем последний, и требует инвестиций с вашей стороны.

2

В C++ стандарты STL определяются характеристиками алгоритма Big-O, а также требованиями к пространству. Таким образом, вы можете переключаться между конкурирующими реализациями STL и все еще знать, что ваша программа имеет те же самые характеристики времени выполнения. Особо хорошими реализациями STL могут быть даже специальные списки конкретных типов, чтобы быть лучше стандартных требований.

Это позволило легко выбрать правильный итератор или тип списка для конкретной проблемы, так как вы могли легко взвесить между потреблением пространства и скоростью.

Ofcourse Big-O - это только направляющая линия, так как все константы удалены. Если алгоритм работает в k * O (n), он будет классифицирован как O (n), но если k достаточно высоко, он может быть хуже O (n^2) для некоторых значений n и m.

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