Эффективность операций над множествами и операций с массивами в ruby - PullRequest
8 голосов
/ 24 февраля 2011

Каковы различия в эффективности между множеством и массивом для операций?

Примеры:

  • поиски
  • итерации
  • включает?

1 Ответ

15 голосов
/ 24 февраля 2011

В Ruby Set записывается с использованием базового Hash для его хранения, и он обычно должен выполнять эквивалент Hash. Таким образом:

  • include?: O (1) для набора, O (n) для массива
  • перечисления: O (n) для обоих
  • delete: O (1) для набора, O (n) для массива

... и т.д.

Если под «поиском» вы имеете в виду поиск по индексу, я бы отметил, что реализация Set по умолчанию неупорядочена, поэтому она не поддерживает эту операцию так же, как Array.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...