ট্রাভেলিং সেলসম্যান সমস্যা

ডায়ানামিক প্রোগ্রামিং () একটি খুবই গুরুত্বপূর্ণ বিষয় এবং বলা যায় প্রোগ্রামিং প্রতিযোগিতায় সব থেকে কঠিন বিষয়। এটিকে আমি কঠিন বলছি, এর কারন হলো এতে ভালো করার একটি মাত্র উপায়ম আর তা হলো অনুশীলন করা এবং বেশি বেশি করে এই জাতীয় সমস্যা দেখা ও সমাধান করা।…

ফ্র্যাকশনাল ন্যাপস্যাক সমস্যা

গ্রীড অ্যালগরিদমের জন্য ফ্র্যাকশনাল ন্যাপস্যাক (Fractional Knapsack) খুব পরিচিত একটি সমস্যা। অনেকের কাছে এই অ্যালগরিদম কঠিন মনে হলেও, এটি অনেক সহজ একটি অ্যালগরিদম। এমনকি এর ইমপ্লিমেন্টেশন ও খুব সহজ। ছোট্ট একটা উদাহরণ দিলেই বুঝতে পারবে। ধরে নাও একটি চোর চুরি করার জন্য একটি মুদি দোকানে…

সর্টিংঃ বাবল সর্ট অ্যালগরিদম

সর্টিং মানেই যে কোন কিছু সাজানো, তা আমরা কম বেশি সবাই জানি। কম্পিউটার সায়েন্সের একটি গুরুত্বপূর্ণ বিষয় হচ্ছে অ্যালগরিদম, আর এই অ্যালগরিদমের মধ্যে সর্টিং অনেক গুরুত্বপূর্ণ একটি অংশ। যতগুলো সর্টিং অ্যালগরিদম আছে, তার মধ্যে আমাদের কাছে সিলেকশন সর্টিং সহজ মনে হলেও, অনেকের কাছেই এই বাবল…

সর্টিংঃ সিলেকশন সর্ট

সর্টিং অ্যালগোরিদমের মুল কাজই হচ্ছে অ্যারেতে থাকা দুটি উপাদানের অবস্থান সোয়াপ(swap) বা বিনিময় করা। সিলেকশন সর্ট অ্যারের সুচকগুলোকে প্রতিটি ইন্ডেক্সের জন্য লুপ করে। এখানে মনে রাখতে হবে যে, যদি অ্যারে এর দৈর্ঘ্য n হয়, তবে ঐ অ্যারের ইন্ডেক্স সংখ্যা n হবে। Ο(n2) এর সকল সর্ট…

সর্টিংঃ ইনসার্শন সর্ট

সর্ট বা sort করার মানে হলো, একটি নির্দিষ্ট ক্রম অনুসারে সসাজানো। যদি আমরা কোন ক্লাসের পরীক্ষার খাতা ১ রোল থেকে ৬০ রোল পর্যন্ত ক্রম অনুসারে সাজাই, তাহলে এটাকে সর্টিং বলা হবে। প্রায়ই আমাদের বিভিন্ন সংখ্যা সর্ট করার প্রয়োজন হয়, আসলে শুধু সংখ্যা নয়, স্ট্রিং, স্থানাঙ্ক,…