Я занимаюсь интересным вопросом в программировании. Именно так: мы продолжаем добавлять ненаправленные ребра в граф, пока граф (или подграф) не соединится (т.е. мы можем использовать некоторый путь, чтобы добраться из каждой вершины в любую другую вершину в этом подграфе). Мы остановимся, как только график подключен. Например, если у нас есть вершины 1,2,3 и 4, и мы хотим, чтобы подграф 1,2,3 был связан. Допустим, у нас есть ребра (3,4), затем (2,3), затем (1,4), затем (1,3). Нам нужно только добавить первые 3 ребра для подключаемого подграфа, затем мы останавливаемся (ребро 1,3 не требуется). Очевидно, что я могу запускать BFS каждый раз, когда добавляется ребро, чтобы увидеть, сможем ли мы добраться до требуемых вершин, но если, скажем, m ребер, то нам, возможно, придется запускать BFS m раз, что кажется слишком медленным. Есть лучшие варианты? Спасибо.