Временная сложность в C

#c #vector #set #time-complexity

Вопрос:

какова временная сложность преобразования вектора в набор в c . Может ли это быть сделано в O(n).

если я копирую вектор в набор, подобный этому, установите s(v. начало (), v. конец()); тогда какова его временная сложность

Ответ №1:

Это O(N * log(N)) из документации. Он линейный, если вектор уже отсортирован (также в документации).

Возможно, вас это заинтересует std::unordered_set . В среднем для этого конструктора требуется два итератора O(N) (см. Здесь).

Комментарии:

1. @AlanBirtles Хорошая мысль — я отредактировал это в ответе.