Algoritma Borvka adalah salah satu algoritma standar untuk menghitung pohon rentang minimum untuk grafik , dengan | V | = n , | E | = m .
Kode semu adalah:
MST T = empty tree
Begin with each vertex as a component
While number of components > 1
For each component c
let e = minimum edge out of component c
if e is not in T
add e to T //merging the two components connected by e
Kami menyebut setiap iterasi loop luar satu putaran. Di setiap putaran, loop dalam memotong jumlah komponen setidaknya setengah. Oleh karena itu paling banyak ada putaran . Dalam setiap putaran, loop bagian dalam paling banyak melihat setiap sisi dua kali (satu kali dari setiap komponen). Oleh karena itu waktu menjalankan paling banyak O ( m log n ) .
Sekarang anggaplah setelah setiap putaran, kami menghapus semua tepi yang hanya menghubungkan simpul dalam komponen yang sama dan juga menghapus tepi duplikat antara komponen, sehingga loop dalam hanya melihat beberapa jumlah tepi m '<m yang merupakan tepi berat minimum yang hubungkan dua komponen yang sebelumnya terputus.
Bagaimana pengoptimalan ini memengaruhi waktu berjalan?
Namun, sementara optimasi akan secara dramatis mengurangi jumlah sisi yang diperiksa, (hanya 1 sisi pada putaran final, dan paling banyak # komponen memilih 2 secara umum), tidak jelas bagaimana / jika kita dapat menggunakan fakta ini untuk memperketat analisis dari run-time.