รหัสเทียม ของ ขั้นตอนวิธีของโบรุฟกา

Given G = (V,E)

T = graph consisting of V with no edges while T has < n-1 edges do  for each connected component C of T do  e = min cost edge (v,u) s.t. v in C and u not in C  T := T union {e}[2]

การวิเคราะห์รหัสเทียม

ในแต่ละการวนของวงวนนั้น ต้อง

  • หา connected component ซึ่งสามารถหาได้ในเวลา O ( | E | + | V | ) {\displaystyle O(|E|+|V|)} โดยใช้การค้นแบบจำกัดความลึก
  • หาเส้นเชื่อมที่สั้นที่สุด สามารถหาได้ในเวลา O ( | E | ) {\displaystyle O(|E|)} โดยการเปรียบเทียบ ทุกเส้นเชื่อมของ v {\displaystyle v} และ u {\displaystyle u} กับเส้นเชื่อมที่สุดที่สุดของ v {\displaystyle v} และเส้นเชื่อมที่สั้นที่สุดชอง u {\displaystyle u}

จำนวนของ connected component จะลดลงโดยประมาณ 2 เท่าต่อการวนหนึ่งรอบ ดังนั้นจึงสามารถทราบได้ว่ามีการวนมากที่สุด l o g | V | {\displaystyle log|V|} ครั้งดังนั้น เวลาที่ใช้ทั้งหมดจึงเป็น O ( | E | l o g | V | ) {\displaystyle O(|E|log|V|)} [1]

ใกล้เคียง