মনে করুন, আপনার হাতে কিছু কাজের একটা তালিকা আছে,কাজগুলো অবশ্যই শেষ করতে হবে। কাজগুলো হলো অফিসে যাওয়া,সকালে নাস্তা করা,টিভিতে খেলা দেখা,কিছু ই-মেইলের উত্তর দেয়া ,বন্ধুদের সাথে ডিনার করা ইত্যাদি। কাজগুলো কিন্তু আপনি যেকোনো অর্ডারে করতে পারবেননা,কিছু শর্ত মানতে হবে। যেমন অফিসে যাবার আগে নাস্তা করতে হবে,খেলা দেখার আগে অফিসে যেতে হবে,ডিনারে বসার আগে ইমেইলের উত্তর দিতে হবে।
আপনি শর্তগুলোর তালিকা করে ফেললেন:
১. সকালের নাস্তা —> অফিস (ক—>খ এর মানে হলো ‘খ’ কাজটি করার আগে ‘ক’ কাজটি করতে হবে)
২. সুট-টাই পড়া —-> অফিস
৩. অফিস —-> ইমেইল
৪. অফিস —-> ডিনার
৫. অফিস —-> খেলা
৬. ইমেইল —> ডিনার
৭. ইমেইল —> খেলা
৮. ডিনার —> খেলা
আপনি এখন কোন কাজ কখন করবেন? উল্টাপাল্টা অর্ডারে করলে আপনার কাজ ভন্ডুল হয়ে যাবে,ইমেইল না করে খেলা দেখতে বসলে আপনি ক্লায়েন্ট হারাবেন,তাই অর্ডারিং খুব জরুরি।
এটা একটি “টাস্ক শিডিউলিং” প্রবলেম। কোন কাজের পর কোন কাজ করতে হবে সেটা আমাদের বের করতে হবে। অর্থাৎ এটা এক ধরণের সর্টিং। এই সর্টিংকে টপোলোজিকাল সর্টিং বলে।
টপোলজিক্যাল সর্টিংকে আমরা অনেকেই টপ সর্ট অ্যালগরিদম বলেও অভিহিত করে থাকি।