Güncelleştirme:
Bu çözüm doğru değil.
Çözüm ne yazık ki ağaçlar için sadece doğru (ve basit)! Bir ağacın çapını bulmak bile buna ihtiyaç duymaz. Burada grafikler (çap, bu çekme durumunda, algoritma 3 döner 4 olduğu bir karşı-olduğu ):v
Eğer grafik yönlendirilirse, bu oldukça karmaşıktır, işte yoğun durumda tüm çiftler için en kısa yollar için algoritmalar kullanmaktan daha hızlı sonuçlar talep eden bazı yazılar .
Ancak benim ana nokta grafiği durumunda ilgili değil yönlendirilmiş ve negatif olmayan ağırlıklar ile, güzel bir hile birkaç kez duymuş:
- Bir köşe seçmek v
- Bul öyle ki d ( v , u ) maksimumud( v , u )
- Bul öyle ki d ( u , a ) en fazlawd( u , w )
- Dönüş d( u , w )
Karmaşıklığı ardışık iki genişlik ilk arama ile aynı ¹, yani grafik bağlıysa .O ( | E| )
Folklor gibiydi ama şu anda hala bir referans almak veya düzeltmesini ispatlamak için mücadele ediyorum . Bu hedeflerden birine ulaştığımda güncelleme yapacağım. O kadar basit görünüyor ki, şimdi cevabımı gönderiyorum, belki birileri daha hızlı cevap verecektir.
Grafiği ağırlıklı ise ¹, wikipedia söylemek gibi görünüyor ama hakkında sadece eminim Ç ( | E | günlüğüne | V | ) .O(|E|+|V|log|V|)O(|E|log|V|)
² Grafik bağlı değilse, alırsınız ancak bağlanan her bileşenden bir öğe seçmek için O ( α ( | V | ) ) eklemeniz gerekebilir . Bunun gerekli olup olmadığından emin değilim, bu durumda çapın sınırsız olduğuna karar verebilirsiniz.O(|V|+|E|)O(α(|V|))