কম্পিউটার

জাভা নির্বাচন বাছাই:একটি কিভাবে করতে হবে নির্দেশিকা

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

আপনি কিভাবে জাভা একটি তালিকা বাছাই করবেন? আপনার কাছে কয়েকটি বিকল্প আছে। একটি সাধারণ বিকল্প হল নির্বাচন বাছাই।

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

একটি জাভা নির্বাচন বাছাই কি?

একটি নির্বাচন বাছাই বারবার একটি তালিকায় ন্যূনতম আইটেমটি খুঁজে পায় এবং এটিকে তালিকায় সাজানো না হওয়া আইটেমগুলির শুরুতে নিয়ে যায়। তালিকাটি অর্ডার না করা পর্যন্ত এই প্রক্রিয়াটি একটি তালিকার প্রতিটি আইটেমের জন্য পুনরাবৃত্তি হয়৷

তালিকার প্রথম আইটেমটি সবচেয়ে ছোট আইটেম হিসাবে বিবেচিত হয়। এই আইটেমটি পরবর্তী উপাদানের সাথে তুলনা করা হয়। পরবর্তী উপাদান ছোট হলে, উপাদান অদলবদল. এই অ্যালগরিদমটি ন্যূনতম উপাদানটি খুঁজে বের করে যতক্ষণ না শেষ উপাদানটি পৌঁছায়। তারপর, আমাদের প্রোগ্রামটি সবচেয়ে ছোট আইটেমটিকে তালিকার শুরুতে নিয়ে যায়।

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

আপনি ক্রমবর্ধমান বা অবরোহ ক্রমে একটি তালিকা অর্ডার করতে পারেন।

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

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

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

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

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

সিলেকশন সর্ট কিভাবে কাজ করে?

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

নিম্নলিখিত সাজানো বিন্যাস বিবেচনা করুন:

17 14 9 12

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

সর্বনিম্ন =17


17 14 9 12

"ন্যূনতম" আইটেমটি দ্বিতীয় উপাদানের সাথে তুলনা করা হয়। এই উপাদানটি অ্যারের সাজানো অংশে রয়েছে; সাজানো উপাদানের পর প্রতিটি উপাদান সাজানো হয় না।

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

সর্বনিম্ন =14


17 14 9 12

এই প্রক্রিয়াটি আমাদের তালিকার প্রতিটি আইটেমের জন্য পুনরাবৃত্তি হয়। 9 হল 14-এর থেকে কম৷ সুতরাং, "ন্যূনতম"-এর মান 9 হয়ে যায়৷ 9 12-এর কম নয়, তাই সর্বনিম্ন মান একই থাকে৷

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

9 17 14 12

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

  • 17 সর্বনিম্ন সমান।
  • আমাদের প্রোগ্রাম 17 কে 14 এর সাথে তুলনা করে। "সর্বনিম্ন" এর মান 14 হয়ে যায়।
  • আমাদের প্রোগ্রাম 14 এর সাথে 12 এর তুলনা করে। "সর্বনিম্ন" এর মান 12 হয়ে যায়।
  • আমাদের প্রোগ্রামটি তালিকায় সাজানো আইটেমগুলির শেষে 12টি স্থানান্তরিত করে৷

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

9 12 17 14

আমাদের তালিকা অর্ডার না হওয়া পর্যন্ত এই প্রক্রিয়াটি পুনরাবৃত্তি হয়। আমাদের অ্যালগরিদম কার্যকর করা শেষ হলে, নিম্নলিখিত তালিকাটি ফিরে আসে:

9 12 14 17

আমাদের তালিকা ক্রমবর্ধমান ক্রম অনুসারে সাজানো হয়েছে।

কিভাবে জাভাতে একটি নির্বাচন বাছাই তৈরি করবেন

একটি নির্বাচন সাজানোর কাজ কিভাবে কাজ করে তা জানা এক জিনিস; এটি একটি নির্মাণ অন্য. চলুন জাভাতে একটি সিলেকশন বাছাই কোড করি যা আমরা চলার সময় আলোচনা করা যুক্তি ব্যবহার করে।

প্রোগ্রাম সেট আপ করুন

select_sort.java নামে একটি ফাইল তৈরি করুন। আমরা আমাদের কোডে Java Arrays লাইব্রেরি আমদানি করে শুরু করব:

import java.util.Arrays;

আমরা আমাদের কোড পরে এই লাইব্রেরি ব্যবহার. আমরা আমাদের সাজানো অ্যারেকে একটি স্ট্রিংয়ে রূপান্তর করতে এটি ব্যবহার করি যাতে আমরা এটিকে কনসোলে প্রিন্ট করতে পারি।

একটি সাজানোর ফাংশন তৈরি করুন

এর পরে, আমরা একটি ক্লাস ঘোষণা করতে যাচ্ছি এবং একটি পদ্ধতি তৈরি করব যা আমাদের নির্বাচনের সাজানোর কাজটি সম্পাদন করে। আপনার selection_sort.java-এ নিম্নলিখিত যোগ করুন ফাইল:

class SelectionSort {
	void sortNumbers(int array[]) {
		int size = array.length;

		for (int item = 0; item < size - 1; item++) {
			int minimum = item;
			for (int number = minimum + 1; number < size; number++) {
				if (array[number] < array[minimum]) {
					minimum = number;
				}
			}
			
			int temporary = array[item];
			array[item] = array[minimum];
			array[minimum] = temporary;
		}
	}
}

আমাদের ক্লাসে, আমরা sortNumbers নামে একটি পদ্ধতি সংজ্ঞায়িত করেছি যা আমাদের সাজানোর সঞ্চালন. আমরা আমাদের অ্যারের দৈর্ঘ্য গণনা করে শুরু করি। আমরা আমাদের অ্যারের দৈর্ঘ্য একটি জাভা ভেরিয়েবলে সংরক্ষণ করি।

তারপর, আমরা লুপের জন্য একটি জাভা তৈরি করি। এই লুপ আমাদের তালিকার প্রতিটি আইটেমের মাধ্যমে পুনরাবৃত্তি করে। লুপের জন্য এর ভিতরে, আমরা ন্যূনতম আইটেমটি খুঁজে পাই, যা তালিকার প্রথম আইটেম।

তারপরে আমরা তালিকার প্রতিটি আইটেমের সাথে সর্বনিম্ন আইটেমের তুলনা করার জন্য আরেকটি লুপ শুরু করি।

ফর লুপ পড়ার সংখ্যাটি ন্যূনতম সংখ্যার চেয়ে ছোট হলে, "সর্বনিম্ন" এর মান সেই সংখ্যায় পরিণত হবে। আমাদের লুপে, "সংখ্যা" সেই সংখ্যার সূচক মানকে উপস্থাপন করে যার সাথে আমরা ন্যূনতম মানের সাথে তুলনা করছি।

তালিকার প্রতিটি সংখ্যার সাথে ন্যূনতম সংখ্যার তুলনা করা হয়ে গেলে, আমাদের অভ্যন্তরীণ লুপ বন্ধ হয়ে যায়। সর্বনিম্ন নম্বর তারপর তালিকার সব বাছাই নম্বর পরে সরানো হয়.

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

আমাদের কোড এখনও কিছু করে না। আমরা এখনও আমাদের ক্লাসে কল করিনি এবং এটিকে সাজানোর জন্য একটি তালিকা দিয়েছি।

নিচে sortNumbers তালিকায় পদ্ধতি, নিম্নলিখিত কোড যোগ করুন:

public static void main(String args[]) {
	int[] toSort = { 17, 14, 9, 12 };
	SelectionSort newSort = new SelectionSort();
	newSort.sortNumbers(toSort);
	
	System.out.println(Arrays.toString(toSort));
}

আমাদের প্রধান পদ্ধতির ভিতরে আমরা সাজানোর আইটেমগুলির একটি তালিকা ঘোষণা করেছি যাকে toSort বলা হয় . তারপরে আমরা আমাদের সিলেকশনসোর্ট ক্লাসের একটি উদাহরণ শুরু করি যাকে বলা হয় newSort। আমরা আমাদের sortNumbers কল করতে এটি ব্যবহার করি পদ্ধতি, যা toSort অ্যারেতে মানগুলিকে সাজায়৷

sortNumbers পদ্ধতিটি কার্যকর হওয়ার পরে, আমরা সাজানো অ্যারেটি কনসোলে প্রিন্ট আউট করি। আমরা Arrays.toString() ব্যবহার করে এটি করি পদ্ধতি, যা আমাদের অ্যারেকে স্ট্রিংয়ের তালিকায় রূপান্তর করে।

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

[9, 12, 14, 17]

আমাদের তালিকা সাজানো হয়েছে!

নির্বাচন সাজান জাভা:অবরোহী ক্রমে মান সাজান

এটি লক্ষণীয় যে আপনি নিম্নোক্ত ক্রমে মানগুলি সাজাতে পারেন। এটি করতে, আপনার sortNumbers-এ কোডের নিম্নলিখিত লাইনটি প্রতিস্থাপন করুন পদ্ধতি:

if (array[number] < array[minimum]) {

এই কোড সহ:

if (array[number] > array[minimum]) {

এই কোডটি চেক করে যে "সর্বনিম্ন" মানটি ফর লুপের দ্বারা অ্যাক্সেস করা থেকে বেশি কিনা। এর মানে হল "সর্বনিম্ন" এর মান সর্বনিম্ন মানের পরিবর্তে একটি তালিকার সর্বোচ্চ মান প্রতিফলিত করবে।

বিভ্রান্তি রোধ করতে, আপনি যদি একটি তালিকাকে নিচের ক্রম অনুসারে সাজান তাহলে আপনার নাম পরিবর্তন করে "সর্বনিম্ন" থেকে "সর্বোচ্চ" করা উচিত।

আপনি এটি করেছেন। আপনি নির্বাচন সাজানোর অ্যালগরিদম ব্যবহার করে জাভাতে একটি তালিকা সাজিয়েছেন।

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

একটি অ্যালগরিদম মূল্যায়ন করার সময় আমাদের তিনটি সময়ের জটিলতা বিবেচনা করতে হবে:সেরা কেস, সবচেয়ে খারাপ কেস এবং গড় কেস৷

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

আপনি অ্যালগরিদম জটিলতা দ্বারা বিভ্রান্ত? বিগ ও নোটেশনে আমাদের দুই-অংশের সিরিজ দেখুন। অ্যালগরিদমের জটিলতা বর্ণনা করতে আমরা এই স্বরলিপি ব্যবহার করি।

উপসংহার

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

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


  1. জাভাতে একটি ইটারেটরকে একটি তালিকায় রূপান্তর করুন

  2. জাভাতে একটি JList এর জন্য কত ধরনের নির্বাচন মোড?

  3. পাইথনে sort()

  4. জাভাতে তালিকাকে অ্যারেতে রূপান্তর করুন