আমরা প্রান্তের অস্তিত্বের জন্য যাচাই করে একটি শীর্ষ বিন্দু ব্যতীত অন্য সবগুলি অপসারণ করতে পারি কারণ আমরা প্রতিটি প্রান্ত যাচাইয়ের জন্য একটি সম্ভাবনা দূর করতে পারি। বিশেষত, যদি কোনও প্রান্তটি থেকে পর্যন্ত চলে যায় , আমরা নির্মূল করি এবং তে এগিয়ে যাই (যেহেতু এটি থেকে অন্য একটি শীর্ষবিন্দু পৌঁছানো যায়); যদি তা না হয় তবে আমরা কে বাদ দেই (যেমন এটি থেকে পৌঁছানো যায় না )। একবার আমরা শেষ প্রান্তে পৌঁছানোর পরে, যে কোনও ভার্টেক্সটি অপসারণ করা হয়নি তা একে অপরের শীর্ষের সাথে তুলনা করা উচিত (সুপারস্টার শর্তটি বহাল রয়েছে তা নিশ্চিত করুন: সুপারস্টার হিসাবে নির্মূল না হওয়া বা নিশ্চিত না হওয়া পর্যন্ত একটি প্রান্ত আগমন রয়েছে তবে বহির্গামী নয়)। কিছু সিউডোকোড: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
পদ্ধতিটি বর্ণনা করার জন্য একটি উদাহরণ দিয়ে চলুন। শীর্ষে উত্সের শীর্ষবিন্দু এবং পাশের গন্তব্য সহ এই অ্যারেটি নিন। 1 একটি প্রান্ত নির্দেশ করে:
12341−11121−11300−04111−
আমি সম্ভাব্য সুপারস্টার হিসাবে যে রায়গুলি বাতিল করে দিয়েছি তা ধূসর করব। আমি যে প্রান্তগুলি দেখছি সেগুলি চিহ্নিত করার জন্য আমরা সবুজ এবং লাল ব্যবহার করব এবং আমরা যে প্রান্তটি সন্ধান করছি তা ধারণ করে না এবং আমরা ইতিমধ্যে কোথায় দেখেছি তা নির্দেশ করার জন্য নীল।
আমরা 1 এবং 2 এর সূচি দেখে শুরু করি।
12341−11121−11300−04111−
সবুজ সংখ্যাটি দেখায় যে 2 থেকে 1 এর প্রান্ত রয়েছে, সুতরাং আমরা 2 টি সরিয়ে একটি কিনারা খুঁজছি 3 থেকে 1:
12341−11121−11300−04111−
আমরা দেখতে পাচ্ছি যে এর মতো কোন প্রান্ত নেই, তাই আমরা 1 টি সরিয়ে দিয়ে আমাদের বর্তমান শীর্ষবিন্দু হিসাবে 3 গ্রহণ করি। মনে রাখবেন যে আমরা ইতিমধ্যে 2 টি নির্মূল করেছি, সুতরাং দেখুন 4 থেকে 3 এর প্রান্ত রয়েছে কিনা:
12341−11121−11300−04111−
4 থেকে 3 পর্যন্ত প্রান্ত রয়েছে, সুতরাং আমরা 4 টি অপসারণ করি this এই মুহুর্তে আমরা একটি শীর্ষক (3) ব্যতীত সমস্তগুলি সরিয়ে ফেলেছি, সুতরাং এর প্রান্তগুলি পরীক্ষা করে দেখুন এবং এটি যোগ্য কিনা তা দেখুন:
12341−11121−11300−04111−
1 থেকে 3 পর্যন্ত প্রান্ত রয়েছে তবে বিপরীত নয়, তাই 3 এখনও প্রার্থী।
12341−11121−11300−04111−
2 থেকে 3 এর প্রান্তও রয়েছে তবে বিপরীত নয়, তাই 3 এখনও প্রার্থী।
12341−11121−11300−04111−
4 থেকে 3 পর্যন্ত কিনারা রয়েছে তবে 3 থেকে 4 নয়; এটি আমাদের 3 টি প্রান্তগুলির চেকটি সম্পূর্ণ করে এবং আমরা পেয়েছি যে এটি আসলে একটি সুপারস্টার।
যেহেতু আমরা প্রথম প্রান্তের প্রতিটি চেকের একটি সম্ভাব্য সুপারস্টার হিসাবে একটি ভার্টেক্সকে অপসারণ করি
, তাই সেরা ক্ষেত্রে হ'ল ম চেকটি জটিলতার জন্য চূড়ান্ত শীর্ষকে সরিয়ে দেয় । সবচেয়ে খারাপ ক্ষেত্রে (শেষ বা দ্বিতীয় থেকে শেষের প্রান্তটি সুপারস্টার, বা চূড়ান্ত চেকটি তাকে অযোগ্য ঘোষণা করে), প্রথম তুলনা করার পরে আমরা প্রার্থীকে আরও বিভাজনের সাথে তুলনা করি , ( ) এর নিকৃষ্টতম জটিলতা । সুতরাং, এই অ্যালগরিদমটি হ'ল
।n−1nnn−12×(n−1)3n−3O(n)Θ(n)