Сложность времени для функций стандартной библиотеки PHP (SPL)

После небольшого поиска в Google кажется, что нет документации о сложности каждой из функций SPL. Кто-нибудь сталкивался с некоторой информацией по этому аспекту?


person manei_cc    schedule 18.06.2014    source источник


Ответы (1)


У PHP Architect есть книга под названием Mastering the SPL LIbrary Раздел о данных структур есть таблица со сложностью кода для всех структур данных для следующих операций:

  • Вставить элементы в начале I
  • Вставьте элементы в конце
  • Вставьте элементы посередине
  • Удалить элементы с самого начала
  • Удалить элементы с конца
  • Удалить элементы из середины
  • Последовательное чтение
  • Случайное чтение

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

Я определенно рекомендую получить книгу, так как она содержит некоторую полезную информацию.

person Onema    schedule 19.06.2014
comment
Я на полпути к упомянутой книге, и я должен сказать, что пока это довольно интересно. Нашел именно то, что искал, красивую таблицу со сравнением различных структур данных table. Кажется, массив PHP по умолчанию является хорошим выбором, если не возникают коллизии, вероятность которых довольно мала в соответствии с этим тред и документацию в книге. Книга представляет собой очень хорошее и глубокое исследование библиотеки SPL. - person manei_cc; 30.07.2014
comment
Действительно хорошая книга. Другие структуры данных могут использоваться, когда наборы данных достаточно велики, чтобы память или сортировка стали проблемой. Лично связанный список в настоящее время является одной из моих любимых структур данных SPL, и я начинаю использовать ее в различных случаях. Возможность вернуться назад и вперед - это хорошо, плюс это может действовать как очередь или стек! - person Onema; 30.07.2014