There are many different ways to sort the cards. Here's a simple one, called selection sort, possibly similar to how you sorted the cards above:
  1. Find the smallest card. Swap it with the first card.
  2. Find the second-smallest card. Swap it with the second card.
  3. Find the third-smallest card. Swap it with the third card.
  4. Repeat finding the next-smallest card, and swapping it into the correct position until the array is sorted.
এই অ্যালগোরিদমকে সিলেকশন সর্ট বলা হয় কারণ এটি পরবর্তী ছোট উপাদান নির্বাচন করে বিনিময় করে।
নিচে অ্যালগোরিদমটি দেওয়া হল। "Step" এ ক্লিক করে অ্যালগোরিদমের ধাপগুলো দেখো এবং তারপর "Automatic" ক্লিক করে সবগুলো ধাপ একসাথে স্বয়ংক্রিয়ভাবে দেখো।
এটি দেখার পর, অ্যালগোরিদম সম্পর্কে তোমার কি ধারণা? এটির কোন ধাপটি সবচেয়ে বেশি সময় নেয়? এটি বড় অ্যারেতে কেমন কাজ করবে বলে মনে হয়? এগুলো স্মরণ রেখে অ্যালগোরিদমের প্রয়োগ দেখা যাক।

সাব-অ্যারেতে সর্বনিম্ন উপাদান নির্ণয় করা

সিলেকশন সর্টের একটি ধাপ হল ছোট কার্ডটি খুঁজে বের করে এটিকে সঠিক স্থানে রাখা। উদাহরণস্বরূপ, যদি অ্যারেতে প্রাথমিক মান হিসেবে [13, 19, 18, 4, 10] থাকে, আমাদের প্রথমে সবচেয়ে ছোট মানের ইন্ডেক্স নির্ণয় করতে হবে। যেহেতু 4 হল সবচেয়ে ছোট মান, তাই ছোট মানটির ইন্ডেক্স হল 3।
সিলেকশন সর্ট 3 নং ইন্ডেক্সের মানটিকে 0 ইন্ডেক্সের মানের সাথে বিনিময় করবে, অর্থাৎ, [4, 19, 18, 13, 10] হবে। এখন পরবর্তী ছোট মান নির্ণয় করে 1 নং ইন্ডেক্সের সাথে বিনিময় করতে হবে।
পরবর্তী ছোট মানের ইন্ডেক্স পাওয়ার কোডটি হয়তো একটু জটিল হতে পারে। কিন্তু আমি নিশ্চিত যে তুমি এটি করতে পারবে, কিন্তু এটি করার একটি সহজ উপায় রয়েছে। যেহেতু 0 ইন্ডেক্সের সাথে ছোট মানটি বিনিময় করা হয়েছে, আমরা আসলে পরবর্তী ছোট মানটি 1 নং ইন্ডেক্স থেকে খুঁজে বের করতে চাই। আমরা অ্যারের অংশকে সাব-অ্যারে বলে থাকি, এই ক্ষেত্রে, আমরা সাব-অ্যারের ইন্ডেক্স 1 থেকে শুরু করে ছোট মানটি নির্ণয় করবো। উদাহরণস্বরূপ, যদি সম্পূর্ণ অ্যারে [4, 19, 18, 13, 10] হয়, তাহলে সাব-অ্যারেতে ইন্ডেক্স 1 থেকে শুরু হওয়া সবচেয়ে ছোট মানটি হল 10, এবং সম্পূর্ণ অ্যারেতে এটির ইন্ডেক্স হল 4। সুতরাং, দ্বিতীয় ছোট মানের ইন্ডেক্স হল 4।
পরবর্তী চ্যালেঞ্জে এটি চেষ্টা করে দেখো এবং তারপর তুমি সম্পূর্ণ সিলেকশন সর্ট অ্যালগোরিদমটি সঠিকভাবে অনুধাবন করতে পারবে।

এই বিষয়বস্তুটি Dartmouth Computer Science এর প্রফেসর Thomas Cormen এবং Devin Balkcom এর সহযোগিতায় এবং একই সাথে খান একাডেমির কম্পিউটিং শিক্ষাক্রম দলের একসাথে কাজ করার মাধ্যমে তৈরি করা হয়েছে। এই বিষয়বস্তু CC-BY-NC-SA দ্বারা লাইসেন্সকৃত।