Глядя на документацию на https://msdn.microsoft.com/en-us/library/dd412070(v=vs.110).aspx, и я не вижу пути. В идеале я бы хотел найти медиана (средний элемент или сумма как среднего) SortedSet<int>
в O(log(n))
времени (очевидно, я знаю, что могу сделать это в O(n)
времени, преобразовывая в список или массив).Простой запрос: У SortedSet <T> есть простой способ найти медианный элемент?
0
A
ответ
3
Ну, к сожалению, вы правы. SortedSet
не обеспечивает встроенный способ получения медианы. Это связано с тем, что базовая структура данных SortedSet
является красно-черным деревом. (например, см. Red-black tree в Википедии)
Возможно ли использовать другую коллекцию или она должна быть SortedSet? В противном случае я бы предложил преобразовать его в список или массив и получить медианное значение в O (1) раз, обратившись к элементу с индексом length+1/2
для нечетного значения length
или в среднем по элементам length/2
и length/2 - 1
.
Смежные вопросы
- 1. у нового андроида есть простой запрос
- 2. есть простой способ разобрать XML и найти нужный элемент?
- 3. Есть более простой способ выполнить этот запрос
- 4. Простой способ найти медиану
- 5. Простой Python медианный фильтр для временных рядов
- 6. простой способ найти решение уравнения
- 7. Простой способ найти положение спрайта
- 8. есть лучший, более простой способ?
- 9. Есть ли простой способ только перезагрузить элемент, если он изменился?
- 10. Есть ли простой способ сделать запрос по примеру в iBATIS?
- 11. Есть ли простой способ запросить у пользователя предпочтительный тон уведомления?
- 12. Есть ли более эффективный способ написать этот простой SQL-запрос?
- 13. Какой самый простой способ найти элемент со многими параметрами?
- 14. Есть ли простой способ перемещения объекта <t>?
- 15. Есть ли простой способ перебрать NSArray назад?
- 16. У вас есть простой пример bzero?
- 17. У меня есть простой вопрос яваскрипта
- 18. Есть ли более простой способ написать этот запрос?
- 19. Есть ли простой способ повторить запрос php mysql?
- 20. Есть ли более простой способ написать этот запрос?
- 21. Простой PHP дом анализатор - найти элемент
- 22. Есть ли простой способ удалить элемент списка по значению?
- 23. Самый простой способ найти IsManager в SQL
- 24. Самый простой способ получить элемент родителя
- 25. Самый простой способ найти, если запрос GET не находит ресурс
- 26. Есть ли простой способ отправить запрос POST с помощью Node.js?
- 27. Есть ли простой способ получить запрос для результата dbix :: class?
- 28. Есть ли простой способ обратного преобразования шаблона?
- 29. Простой элемент-элемент appcelerator
- 30. Совокупные найти взвешенный медианный
Хороший ответ. Кроме того, я полагаю, что красно-черное дерево может быть изменено, чтобы отслеживать общее количество элементов каждого узла, и, если подсчет известен, достаточно информации для доступа к элементу по индексу в O (log (n)) время. 'SortedSet' не делает этого, но настраиваемая реализация, которая может быть хорошо подходит для OP. – hvd