Для рубина, где x
- это массив, как x.include?(y)
проверить, y
находится в x
? Какой алгоритм?Что включает в себя алгоритм, который включает Array #? использует?
ответ
Поскольку массив не нужно сортировать, алгоритм не может быть лучше, чем «посмотреть на каждый элемент и посмотреть, совпадает ли он».
Gotcha, поэтому, если у вас есть отсортированный массив, используйте что-то еще ... – locoboy
@ cfarm54 С большим отсортированным массивом в большинстве случаев бинарный поиск будет быстрее. http://0xcc.net/ruby-bsearch/index.html.en –
yep, и я предполагаю, что для этого нет функций для ruby – locoboy
В дополнение к ответу Greg Hewgill, в исходный код Руби 1.9.3 для этого метода:
VALUE
rb_ary_includes(VALUE ary, VALUE item)
{
long i;
for (i=0; i<RARRAY_LEN(ary); i++) {
if (rb_equal(RARRAY_PTR(ary)[i], item)) {
return Qtrue;
}
}
return Qfalse;
}
Таким образом, как Грег сказал, алгоритм просто линейный поиск по массиву.
+1 за использование источника, Люк. –
- 1. Что включает в себя currentDesign.writeCssincludes?
- 2. php включает внутри других включает в себя
- 3. Ol striping, который включает в себя номер
- 4. Раздувание вида, который включает в себя PDFViewCtrl
- 5. «Обмен» включает в себя
- 6. Понимание включает в себя
- 7. Jetty HTTPClient включает в себя
- 8. . Включает() алгоритм и скорость?
- 9. включает в себя - php
- 10. Что включает в себя код в C?
- 11. JQuery «включает в себя» путаница
- 12. Что включает в себя программирование электронной коммерции?
- 13. Что включает в себя подкласс класса?
- 14. Заявление включает себя
- 15. Алгоритм, который включает округление и кратность
- 16. Объясните запрос, который включает в себя цикл с указанием выбора и включает в себя запуск заданий
- 17. Include statement включает себя
- 18. PHP-анализ включает в себя
- 19. Альтернатива PHP включает в себя?
- 20. Включает в себя цепочку, где
- 21. включает в себя до doctype
- 22. Оператор Float modulo, который включает в себя верхнее значение
- 23. Maven - включает в себя библиотеку, на который ссылается в банке
- 24. Включает в себя два проекта
- 25. PHP включает в себя атаку
- 26. FXML включает в себя Java?
- 27. PHP - включает в себя переменные
- 28. CSS включает в себя MVC
- 29. Активная запись включает в себя:
- 30. ActiveRecord включает в себя запрос
вы можете найти источник функции http://ruby-doc.org/core-1.9.3/Array.html#method-i-include-3F – oldergod
Это 'O (n)'. Для 'O (1)' вместо этого используйте 'Set'. –