Это то же самое, что сказать
O(max(M,N))?
Я изучаю временную сложность, и этот тип сложности появляется снова и снова с графиками. Я не совсем понимаю, что они имеют в виду под
O(M+N),
где M=количество ребер N=количество вершин.
Это то же самое, что сказать
O(max(M,N))?
Я изучаю временную сложность, и этот тип сложности появляется снова и снова с графиками. Я не совсем понимаю, что они имеют в виду под
O(M+N),
где M=количество ребер N=количество вершин.
O(M+N)
совпадает сO(max(M,N))
?
Да, это то же самое. Не теряя общности, можно сказать, что M >= N
. Следовательно, O(max(M,N))
совпадает с O(M)
. В то же время M < M+N < M+M
, поэтому O(M+N)
совпадает с O(2*M)
, который, в свою очередь, совпадает с O(M)
.
M
и N
одно будет больше, а другое меньше, или они будут равны. Если тот, который вы изначально обозначили как N
, окажется больше, вы можете переименовать его как M
.
- person Sergey Kalinichenko; 23.06.2013
max(E,V)
будет 10,000,000
, а E+V
также будет 10,000,000
. Суть моего доказательства в том, что E+V
не может превышать 2*max(E,V)
, следовательно, O(E+V) == O(max(E,V))
.
- person Sergey Kalinichenko; 23.06.2013
Предполагая, что у вас есть N
вершин, количество ребер может варьироваться (от 0
до N^2
, если это ориентированный граф, и от 0
до (N^2)/2
в противном случае). Вот почему при ответе у вас также есть N
и M
. Конечно, вы можете сказать, что O(M+N) = O(max(M,N))
, но небрежно сказать, что это O(M+N)
.
O(M+N)
, заключается в том, что это более тесная граница, а также более четкая. Обычно это означает, что мы обрабатываем ребра и вершины в течение линейного времени, в то время какO(M)
создаст впечатление, что, возможно, алгоритм полностью игнорирует вершины. Это также помогает, потому что реализация графового алгоритма часто значительно различается по производительности. Если ваш график разреженный (т. е.|M|
очень мал), то вас может не волновать наличие фактораO(M^2 * ...)
во временной сложности (т. е. вы бы предпочлиO(M^2 * logN)
вместоO(M*N)
, несмотря на то, что первый асимптотически медленнее). - person rliu   schedule 23.06.2013