কম্পিউটার

কিভাবে একটি পাইথন সন্নিবেশ বাছাই লিখুন

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

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

সন্নিবেশ বাছাই একটি বিন্যাসে প্রতিটি পুনরাবৃত্তির পরে একটি সাজানো না করা উপাদানকে তার সঠিক জায়গায় রাখে৷

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

পাইথন সন্নিবেশ বাছাই কি?

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

একটি সন্নিবেশ বাছাই অ্যালগরিদম একটি সাজানো আইটেমকে সাজানো সাবলিস্টে নিয়ে যায় এবং সাজানো সাবলিস্ট থেকে সরিয়ে দেয়। উভয় সাবলিস্ট একই অ্যারের অংশ, কিন্তু তারা একটি আইটেম সাজানো কিনা তা আলাদা করে।

আপনি সন্নিবেশের ধরণের কথা ভাবতে পারেন যেমন আপনি একটি কার্ড গেমে আপনার হাতে থাকা তাসের সেটগুলি কীভাবে সাজান।

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

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

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

পাইথন সন্নিবেশ কিভাবে কাজ করে?

আসুন ব্যবসায় নেমে যাই এবং সন্নিবেশ সাজানোর অ্যালগরিদম ব্যবহার করে একটি অ্যারে সাজাই। নিম্নলিখিত সাজানো বিন্যাস বিবেচনা করুন:

9 4 3 5

একটি সন্নিবেশ সাজানোর মধ্যে, প্রথম উপাদানটি সাজানো বলে মনে করা হয়। দ্বিতীয় উপাদানটি তার নিজস্ব ভেরিয়েবলে সংরক্ষণ করা হয়। আমরা এই ভেরিয়েবলটিকে কল করব বর্তমান_সংখ্যা .

বাছাই করা হয়েছে বর্তমান_সংখ্যা

9 4 3 5

আমাদের বর্তমান_সংখ্যা তুলনা করতে হবে অ্যারের প্রথম অবস্থানে আইটেম সঙ্গে. যদি বর্তমান_সংখ্যা প্রথম উপাদানের চেয়ে বড়, এটি একই জায়গায় থাকে। অন্যথায়, বর্তমান_সংখ্যাটি প্রথম উপাদানের সামনে সরানো হয়।

4 9 এর বেশি নয়, তাই এই দুটি উপাদান স্থান পরিবর্তন করে।

4 9 3 5

আমাদের তালিকার প্রথম দুটি উপাদান বাছাই করা হয়. এরপর, আমরা তালিকার তৃতীয় আইটেমের বর্তমান_সংখ্যার মান পরিবর্তন করি এবং এটির বাম দিকের সমস্ত আইটেমের সাথে তুলনা করি।

আমাদের বর্তমান_সংখ্যা 3 হয়ে যায়। আমাদের তুলনা করতে হবে:

  • 3 কি 9 এর থেকে বড়? না, তাই 9 এর আগে 3 ঢোকানো হয়।
  • 3 কি 4 থেকে বড়? না, তাই 4 এর আগে 3 সরানো হয়।

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

3 4 9 5

তালিকাটি সাজানো না হওয়া পর্যন্ত এই প্রক্রিয়াটি পুনরাবৃত্তি হয়। আমাদের তালিকায় শুধুমাত্র চারটি মান ধারণ করার জন্য তুলনার আরও একটি সেট রয়েছে। পরবর্তী পুনরাবৃত্তিতে, 5 হয়ে যায় বর্তমান_সংখ্যা।

  • 5 কি 9 থেকে বড়? না, তাই 9 এর আগে 5টি চলে।

ব্যবহার করা হবে আর কোন তুলনা করা হয় না কারণ আমাদের সাজানো তালিকায় 5 হল শেষ সংখ্যা। এই পুনরাবৃত্তির পরে, আমাদের অ্যারে সাজানো হয়েছে:

3 4 5 9

এটা যে সহজ! আমাদের সন্নিবেশ সাজানোর ক্ষেত্রে, আমরা সবসময় তালিকার বাম দিকে সাজানো মানগুলি রাখি। সাজানো না হওয়া মানগুলি ডানদিকে উপস্থিত হয়েছে৷

তালিকার প্রতিটি পুনরাবৃত্তির জন্য, আমরা বর্তমান_সংখ্যাকে সমস্ত সাজানো আইটেমের সাথে তুলনা করেছি। আমাদের তালিকা সাজানো না হওয়া পর্যন্ত এই প্রক্রিয়াটি পুনরাবৃত্তি হয়।

কিভাবে পাইথনে একটি সন্নিবেশ বাছাই লিখবেন

কাগজে সন্নিবেশ সাজানোর মাধ্যমে এটি সব ঠিকঠাক এবং ভালভাবে চলছে। এখন সময় এসেছে নিরঙ্কুশভাবে ঢোকার এবং পাইথনে একটি সন্নিবেশ সাজানোর।

একটি সাজানোর ফাংশন লিখুন

আমরা একটি পাইথন ফাংশন লিখে শুরু করব যা আমাদের সাজানোর কাজটি করে:

def sortNumbers(toSort):
	for number in range(1, len(toSort)):
		current_number = toSort[number]
		i = number - 1

		while i >= 0 and current_number < toSort[i]:
			toSort[i + 1] = toSort[i]
			i -= 1

		toSort[i + 1] = current_number

এই কাজ কিভাবে মাধ্যমে চলুন চলুন. আমাদের sortNumbers-এ ফাংশন আমরা লুপের জন্য একটি পাইথন তৈরি করি যা তালিকার প্রতিটি সংখ্যার মাধ্যমে লুপ করে। তারপর, আমরা পাইথন ভেরিয়েবল current_number-এ বরাদ্দ করে তালিকার প্রথম উপাদানটিকে একটি সাজানো মান হিসাবে সেট করি। .

আমরা সাজানো পাইথন তালিকার প্রতিটি আইটেমের মাধ্যমে পুনরাবৃত্তি করি (বর্তমান_সংখ্যার পরে প্রতিটি আইটেম)। তারপর, আমরা তার বাম দিকের প্রতিটি সংখ্যার সাথে বর্তমান_সংখ্যার তুলনা করি। এটি হওয়ার পরে, আমরা current_number এর মান সেট করি তালিকার পরে উপাদানের সমান হতে হবে।

একটি প্রধান প্রোগ্রাম লিখুন

আমাদের একটি প্রধান প্রোগ্রাম লিখতে হবে যা আমাদের সন্নিবেশ বাছাই সম্পাদন করে:

numbers = [9, 4, 3, 5]
sortNumbers(numbers)

print(numbers)

আমাদের কোড ফিরে আসে:

[3, 4, 5, 9]

আমাদের তালিকা আরোহী ক্রমে সাজানো হয়েছে! এতদূর আসার জন্য অভিনন্দন।

পাইথন সন্নিবেশ বাছাই:অবরোহণ ক্রম

সন্নিবেশ বাছাই সংখ্যাগুলিকে নিচের ক্রমে সাজাতে পারে। এটি সম্পন্ন করার জন্য, আপনাকে "কম এর চেয়ে কম" (>) সাইন ইনভার্ট করতে হবে যখন লুপ এবং এটিকে একটি বৃহত্তর চিহ্ন বানাতে হবে:

যখন i>=0 এবং বর্তমান_সংখ্যা> সাজানোর জন্য[i]:

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

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

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

সন্নিবেশের প্রকারগুলি বুদবুদ সাজানোর চেয়ে দ্রুত।

সন্নিবেশ সাজানোর যাইহোক সম্পর্কে জানতে দরকারী. কিভাবে একটি সন্নিবেশ বাছাই বাস্তবায়ন করতে হয় তা জানার ফলে আপনি ব্যবহার করতে পারেন অন্য ধরনের সাজানোর সুযোগ দেয়৷

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

পাইথন সন্নিবেশ বাছাই:জটিলতা বিশ্লেষণ

সমস্ত অ্যালগরিদমের মতো, সেরা, সবচেয়ে খারাপ এবং গড় জটিলতাগুলি বিবেচনা করা গুরুত্বপূর্ণ৷ এটি আমাদের একটি অন্তর্দৃষ্টি দেবে যে অ্যালগরিদম তার কাজটি করতে কতটা কার্যকর:এই ক্ষেত্রে, তালিকা বাছাই করা৷

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

সেরা ক্ষেত্রে দৃশ্যকল্প হল O(n)। এটি ঘটে যখন আমরা একটি সাজানো তালিকায় অ্যালগরিদম চালাই। অ্যালগরিদম চেক করে যে আইটেমগুলি সাজানো হয়েছে এবং তারপর চালানো বন্ধ করে দেয়৷

বিগ ও নোটেশনে আমাদের দুই-অংশের সিরিজে আমরা কীভাবে অ্যালগরিদম জটিলতা উপস্থাপন করে সে সম্পর্কে আপনি আরও জানতে পারবেন।

উপসংহার

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

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


  1. পাইথন - কিভাবে একটি CSV ফাইলে পান্ডাস ডেটাফ্রেম লিখতে হয়

  2. পুনরাবৃত্ত সন্নিবেশ সাজানোর জন্য পাইথন প্রোগ্রাম

  3. পাইথন প্রোগ্রামে সন্নিবেশ বাছাই

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