কম্পিউটার

সিলেকশন সর্ট পাইথন:একটি গাইড

একটি পাইথন নির্বাচন বাছাই একটি তালিকাকে দুটি ছোট তালিকায় ভাগ করে। একটি তালিকা সাজানো উপাদান উপস্থাপন করে। অন্য তালিকায় সাজানো না হওয়া উপাদান রয়েছে। নির্বাচন বাছাই প্রতিটি পুনরাবৃত্তিতে ক্ষুদ্রতম বা সর্বোচ্চ মান খুঁজে পায় এবং সেই মানগুলিকে ক্রমানুসারে তালিকায় নিয়ে যায়।

বিভিন্ন প্রোগ্রামে তালিকা বাছাই করা একটি সাধারণ কাজ।

এই উদাহরণটি বিবেচনা করুন:একজন শিক্ষক তাদের ছাত্ররা তাদের সাম্প্রতিক পরীক্ষায় কতটা ভাল করেছে সে সম্পর্কে আরও জানতে চান। একজন শিক্ষক শিক্ষার্থীদের স্কোর ক্রমবর্ধমান এবং অবরোহী ক্রমে সাজাতে চাইতে পারেন। এটি তাদের সহজেই সর্বোচ্চ এবং সর্বনিম্ন পরীক্ষার স্কোর খুঁজে বের করতে দেবে।

লিখুন, নির্বাচন সাজানোর. বাছাই বাছাই হল একটি অ্যালগরিদম যা আপনি একটি তালিকাকে ক্রমবর্ধমান ক্রম বা অবরোহী ক্রমে বাছাই করতে ব্যবহার করতে পারেন।

এই নির্দেশিকায়, আমরা পাইথনে কীভাবে একটি নির্বাচন সাজানোর প্রোগ্রাম লিখতে হয় তা নিয়ে আলোচনা করতে যাচ্ছি। আমরা এই নির্দেশিকা জুড়ে একটি উদাহরণ দিয়ে হেঁটে যাব যাতে আপনি বাছাই ধরণের ইন-এন্ড-আউটগুলি শিখতে পারেন৷

পাইথন সিলেকশন সর্ট কি?

একটি পাইথন নির্বাচন বাছাই বারবার একটি তালিকার সর্বনিম্ন উপাদান খুঁজে পায় এবং সেই উপাদানটিকে তালিকার একটি নির্দিষ্ট প্রান্তে নিয়ে যায়। যতক্ষণ না অ্যারে সাজানো হয় ততক্ষণ পর্যন্ত সাজানো চলতে থাকে। আপনি সর্বাধিক উপাদান খুঁজে পেতে একটি নির্বাচন সাজানোর নির্দেশ দিতে পারেন। উভয় পন্থা একটি তালিকা সাজান।

নির্বাচনের ধরন অনুমান করে যে একটি তালিকার প্রথম উপাদানটি সবচেয়ে ছোট মান। সাজানোর তারপর সেই মানটিকে দ্বিতীয় উপাদানের সাথে তুলনা করবে। দ্বিতীয় উপাদানটি ন্যূনতম মানের থেকে ছোট হলে, দ্বিতীয় উপাদানটি সর্বনিম্ন মান হয়ে যায়৷

তালিকার শেষ উপাদানটি না পৌঁছানো পর্যন্ত এই প্রক্রিয়াটি পুনরাবৃত্তি করা হয়। একবার এই উপাদানটি পৌঁছে গেলে, সাজানো তালিকার শুরুতে সর্বনিম্ন মান রাখা হয়৷

81% অংশগ্রহণকারী বলেছেন যে তারা বুটক্যাম্পে যোগ দেওয়ার পরে তাদের প্রযুক্তিগত কাজের সম্ভাবনা সম্পর্কে আরও আত্মবিশ্বাসী বোধ করেছেন। আজই একটি বুটক্যাম্পের সাথে মিলিত হন৷

গড় বুটক্যাম্প গ্র্যাড একটি বুটক্যাম্প শুরু করা থেকে শুরু করে তাদের প্রথম চাকরি খোঁজা পর্যন্ত ক্যারিয়ারের পরিবর্তনে ছয় মাসেরও কম সময় ব্যয় করেছে।

পাইথন নির্বাচন সাজানোর নির্দেশিকা

একটি উদাহরণের মাধ্যমে চালানোর চেয়ে নির্বাচনের ধরণের সম্পর্কে শেখার কোন ভাল উপায় নেই। আসুন শিক্ষার্থীদের গ্রেডের একটি তালিকা ক্রমবর্ধমান ক্রমে বাছাই করি। এই সাজানো তালিকাটি বিবেচনা করুন:

73 62 61 69

আমরা আমাদের তালিকার প্রথম মানটিকে সর্বনিম্ন বলে শুরু করব . নির্বাচন সাজানোর প্রতিটি পুনরাবৃত্তি ক্ষুদ্রতম উপাদান খুঁজে পাবে এবং এটিকে সাজানো সাবয়ারেতে নিয়ে যাবে।

ন্যূনতম উপাদান বাছাই একটি বিকল্প। আপনি সর্বাধিক উপাদান বাছাই করলে একটি নির্বাচন বাছাই কাজ করে। কিন্তু, আমরা এই উদাহরণে ন্যূনতম উপাদান ব্যবহার করছি।

পরবর্তী, আমরা দ্বিতীয় উপাদানের সাথে সর্বনিম্ন মান তুলনা করব। এই উপাদানটি ন্যূনতম থেকে ছোট হলে, দ্বিতীয় উপাদানটি সর্বনিম্ন মান হওয়া উচিত৷

আমরা 73 এবং 62 তুলনা করতে যাচ্ছি। 73 হল 62 এর থেকে বড়, যার মানে হল আমাদের নতুন ন্যূনতম মান হল 62। আমাদের তালিকা তারপর আমাদের তালিকার অন্যান্য সমস্ত সংখ্যার মধ্য দিয়ে যাবে:

  • 61 কি 62 (আমাদের সর্বনিম্ন মান) থেকে বড়? না, তাই সংখ্যা অদলবদল করুন. সর্বনিম্ন হয় 61।
  • 69 কি 61 (আমাদের সর্বনিম্ন মান) থেকে বড়? হ্যাঁ, তাই কিছু করবেন না. সর্বনিম্ন 61 এ থাকে।

আমাদের তালিকা একই দেখায়:

73 62 61 69

আপনি যখন তালিকার শেষে পৌঁছাবেন, আপনি ন্যূনতম তালিকার শুরুতে যেতে পারবেন:

61 73 62 69

61 (আমাদের সর্বনিম্ন মান) তালিকার শুরুতে স্থানান্তরিত হয়েছে, এবং অন্য প্রতিটি মান একটি করে উপরে চলে গেছে। সমস্ত উপাদান সাজানো না হওয়া পর্যন্ত আমরা এই প্রক্রিয়াটি পুনরাবৃত্তি করব।

আমাদের তালিকার প্রতিটি পুনরাবৃত্তি নিম্নলিখিতগুলি প্রদান করবে:

  1. 73, 62, 61, 69
  2. 61, 73, 62, 69
  3. 61, 62, 73, 69
  4. 61, 62, 69, 73

যখন নির্বাচনের সাজানো তালিকার সমস্ত উপাদান চেক করে, তখন সাজানো বন্ধ হয়ে যাবে।

সাজানো সাবয়ারে এবং সাবয়ারে যা সাজানো হয়নি উভয়ই আমাদের কাছে অদৃশ্য। আমাদের অ্যালগরিদম আমাদের জন্য একটি অ্যারে সাজায় এবং অ্যারের সাজানো না হওয়া অংশের ট্র্যাক রাখে৷

কিভাবে পাইথনে একটি নির্বাচন বাছাই করা যায়

আপনি এখন তত্ত্বের সাথে পরিচিত:ভাল হয়েছে! এটা বড় চ্যালেঞ্জের সময়। আমরা পাইথনে নির্বাচন সাজানোর অ্যালগরিদম বাস্তবায়ন করতে যাচ্ছি। আসুন একটি প্রোগ্রাম লিখি যা পাইথন অ্যারে নেয় এবং এটিকে ক্রমবর্ধমান ক্রমে সাজায়৷

একটি সাজানোর ফাংশন সংজ্ঞায়িত করুন

আমরা একটি পাইথন ফাংশন সংজ্ঞায়িত করে শুরু করব যা আমাদের নির্বাচন সাজানোর কাজ করে:

def সর্টলিস্ট(অ্যারে):দৈর্ঘ্য =len(অ্যারে) রেঞ্জের আইটেমের জন্য(দৈর্ঘ্য):ন্যূনতম =আইটেমের জন্য আইটেম ইন রেঞ্জ(আইটেম + 1, দৈর্ঘ্য):যদি অ্যারে[i] <অ্যারে[মিনিমাম]:সর্বনিম্ন =i (অ্যারে[আইটেম], অ্যারে[মিনিমাম]) =(অ্যারে[মিনিমাম], অ্যারে[আইটেম])

আমরা আমাদের তালিকার দৈর্ঘ্য পেতে পাইথন লেন() পদ্ধতি ব্যবহার করে শুরু করেছি। তারপরে আমরা পাইথন এর জন্য শুরু করতে এটি ব্যবহার করি লুপ যা আমাদের তালিকার প্রতিটি আইটেমের উপর লুপ করে।

লুপের প্রতিটি পুনরাবৃত্তির জন্য, আমরা সর্বনিম্ন এর মান সেট করি আমাদের তালিকার প্রথম আইটেম হতে. আমরা আগে আমাদের ওয়াকথ্রুতে এটি করেছি। আমরা একটি সর্বনিম্ন মান সেট করার পরে, আরেকটি এর জন্য লুপ শুরু হয় যা আমাদের তালিকার প্রতিটি আইটেমের মধ্য দিয়ে চলে।

তালিকার প্রতিটি আইটেমের জন্য, আমাদের অ্যালগরিদম পরীক্ষা করে যে ন্যূনতম মান সেই আইটেমের থেকে বড় কিনা। তা হলে কিছুই হবে না; অন্যথায়, ন্যূনতম মান সেই আইটেমে পরিণত হয় যা প্রোগ্রামটি পড়ছে।

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

সর্টিং ফাংশন কল করুন

আপনি হয়তো লক্ষ্য করেছেন যে আমরা আমাদের প্রোগ্রাম চালালে কিছুই হবে না। এর কারণ হল আমরা এখনও আমাদের কোড বলে নেই কোন মানগুলি ব্যবহার করতে হবে। সর্টলিস্ট ফাংশনের বাইরে আপনার প্রোগ্রামের নীচে নিম্নলিখিত কোডটি যোগ করুন:

সংখ্যা =[73, 62, 61, 69] sortList(numbers)print("Sorted list:", numbers)

যখন আমরা আমাদের প্রোগ্রামটি চালাই, তখন নিম্নলিখিতটি ফিরে আসে:

<প্রে>[61, 62, 69, 73]

আমাদের তালিকা সাজানো হয়েছে. ফিরে নিজেকে প্যাট; আপনি এটা করেছেন!

একটি তালিকা সাজানোর জন্য নির্বাচনের সাজানো ব্যবহার করা যেতে পারে। আপনি যদি এইভাবে একটি তালিকা বাছাই করতে চান, তাহলে আপনি নির্বাচনের "যদি" বিবৃতিটি নিম্নলিখিত অনুসারে সাজাতে পারেন:

 if array[i]> array[minum]:

আমরা ছোট থেকে বড় চিহ্নে পরিবর্তন করেছি। এটি আমাদের তালিকাকে ক্রমানুসারে সাজাতে হবে, কারণ ন্যূনতম মান তালিকার সর্বোচ্চ মান সেট করা হবে। প্রযুক্তিগতভাবে, আমাদের সর্বনিম্ন মান একটি সর্বোচ্চ হয়ে যায় মান।

আপনি কখন একটি নির্বাচন বাছাই ব্যবহার করবেন?

বাবল সর্টের মতো সিলেকশন সর্টগুলি ছোট তালিকার জন্য সবচেয়ে ভালো ব্যবহার করা হয়। এর কারণ হল অ্যালগরিদমটি অন্যদের মতো দক্ষ নয় যেমন বৃহত্তর তালিকায় ব্যবহার করার সময় সন্নিবেশ বাছাইয়ের মতো।

আপনি যখন অ্যালগরিদম বাছাই করা শুরু করছেন তখন একটি নির্বাচন বাছাই শিখতে একটি দুর্দান্ত বাছাই। অন্যান্য প্রকারগুলি আয়ত্ত করা কঠিন হতে পারে, তবে নির্বাচনের ধরণের সম্পর্কে স্পষ্ট ধারণা থাকা আপনাকে বিভিন্ন ধরণের তালিকা বুঝতে সাহায্য করতে পারে৷

নির্বাচন সাজানোর জটিলতা কি?

নির্বাচনের সাজানোর সময় O(n2) এর জটিলতা রয়েছে। এর মানে হল যে তালিকায় কতগুলি উপাদান রয়েছে তার উপর নির্ভর করে অ্যালগরিদমের জটিলতা দ্রুতগতিতে বৃদ্ধি পাবে৷

O(n2) হল এই অ্যালগরিদমের জন্য সবচেয়ে খারাপ-কেস, গড় এবং সেরা-কেস জটিলতা। আপনি জটিলতা বাছাই সম্পর্কে আরও জানতে চাইলে, বিগ ও নোটেশনের জন্য আমাদের গাইড দেখুন।

উপসংহার

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

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

আপনি কি পাইথন সম্পর্কে আরও জানতে আগ্রহী? আপনার জ্ঞানের উন্নতিতে সহায়তা করার জন্য বিশেষজ্ঞের পরামর্শের জন্য আমাদের সম্পূর্ণ কীভাবে পাইথন শিখবেন গাইড পড়ুন।


  1. পাইথন কিভাবে স্ট্রিং এর তালিকা সাজাতে হয়

  2. পাইথন প্রোগ্রামে নির্বাচন সাজান

  3. নির্বাচন সাজানোর জন্য পাইথন প্রোগ্রাম

  4. পাইথনে স্ট্রিংগুলির তালিকা কীভাবে বাছাই করবেন?