kenarlarının varlığını kontrol ederek köşelerden birini hariç hepsini ortadan kaldırabiliriz, çünkü kontrol ettiğimiz her kenar için bir olasılığı eleyebiliriz. Giden bir kenar vardır Özellikle, eğer x için y , bunun yok X için ve hareket y (başka bir köşe ondan ulaşılabilir gibi); değilse, bunun yok y (bu ulaşılabilir edilemez x ). Son tepe noktasına ulaştığımızda, hangi köşe kaldırılmamış olursa, diğer köşe ile karşılaştırılmalıdır (süperstar koşulunun korunmasını sağlayın: süperstar olarak elimine edilene veya onaylanıncaya kadar bir kenar girişi vardır, ancak giden bir kenar yoktur). Bazı sahte kod:n - 1xyxyyx
vertex superstar(graph g)
current vertex = first
# Go through each vertex
for each subsequent vertex in g ("next")
# If there's an edge from this to the next, we eliminate this one [move to the new one].
# If not, we just stay here.
if edge exists from current to next
candidate = next
end if
end for
# Now we are on the final remaining candidate, check whether it satisfies the requirements.
# just a rename for clarity
candidate = current
for each other vertex in g
if edge from current to other exists
return null
else if no edge from other to current
return null
end if
end for
return candidate
end superstar
Yöntemi göstermek için bir örnek üzerinden geçelim. Bu diziyi üstteki kaynak tepe noktası ve yandaki hedef nokta ile alın. 1 bir kenarı gösterir:
12341-11121-11300-04111-
Potansiyel bir süperstar olarak göz ardı ettiğimiz köşeleri sararım. Baktıkları kenarları belirtmek için yeşil ve kırmızı kullanacağım ve aradıkları kenarı içermediği ve aradıklarımızı belirtmek için mavi olanları kullanacağım.
1. ve 2. köşelere bakarak başlıyoruz.
12341-11121-11300-04111-
12341-11121-11300-04111-
Böyle bir kenar olmadığını görüyoruz, bu yüzden 1'i elimine ediyoruz ve 3'ü mevcut köşemiz olarak alıyoruz. Zaten 2'yi yok ettiğimizi hatırlayın, bu nedenle 4'ten 3'e kadar bir kenar olup olmadığını görün:
12341-11121-11300-04111-
4'ten 3'e kadar bir kenar var, bu yüzden 4'ü eliyoruz. Bu noktada, köşelerden (3) biri hariç hepsini yok ettik, bu yüzden kenarlarını kontrol edin ve kalifiye olup olmadığına bakın:
12341-11121-11300-04111-
1'den 3'e kadar bir kenar var ama tam tersi değil, bu yüzden 3 hala bir aday.
12341-11121-11300-04111-
Ayrıca 2'den 3'e kadar bir kenar da var ama tam tersi değil, bu yüzden 3 hala bir aday.
12341-11121-11300-04111-
4 ila 3 arasında bir kenar vardır ancak 3 ila 4 arasında değildir; Bu, 3'ün kenarlarını kontrol etmemizi tamamlar ve bunun bir süperstar olduğunu tespit ettik.
n - 1nnn - 12 × ( n - 1 )3 n - 3O ( n )Θ ( n )