演算法虛擬碼

演算法 PMinVertexCover(圖 G)

輸入連線圖 G

輸出最小頂點覆蓋集 C

Set C <- new Set<Vertex>() 

Set X <- new Set<Vertex>() 

X <- G.getAllVerticiesArrangedDescendinglyByDegree()

for v in X do
    List<Vertex> adjacentVertices1 <- G.getAdjacent(v)

    if !C contains any of adjacentVertices1 then
        
        C.add(v)

for vertex in C do

    List<vertex> adjacentVertices2 <- G.adjacentVertecies(vertex)

    if C contains any of adjacentVertices2 then
        
        C.remove(vertex)

        
return C

C 是圖 G 的最小頂點覆蓋

我們可以使用桶排序根據其度數對頂點進行排序,因為度的最大值是(n-1),其中 n 是頂點數,那麼排序的時間複雜度將是 O(n)