কিভাবে জাভাতে কুইকসোর্ট কার্যকর করবেন?



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

কুইকসোর্টটি একটি বিভাজন এবং বিজয়ী অ্যালগরিদম। ডিভাইড অ্যান্ড কনকরার অ্যালগরিদম ডিজাইনের দৃষ্টান্তে, আমরা সাব-সমস্যায় সমস্যাগুলি পুনরাবৃত্তভাবে বিভক্ত করি তারপরে সাব-সমস্যাগুলি সমাধান করি এবং শেষ পর্যন্ত সমাধানগুলি একত্রিত করে চূড়ান্ত ফলাফলটি সন্ধান করি। এই নিবন্ধে আমরা কুইকসোর্ট ইন উপর ফোকাস করব

নিম্নলিখিত পয়েন্টারগুলি এই নিবন্ধে কভার করা হবে,





চল শুরু করি!

জাভাতে পোজো কী?

সমস্যাগুলিকে সাব-সমস্যায় বিভক্ত করার সময় একটি বিষয় মনে রাখবেন যে মূল সমস্যা হিসাবে সাব-সমস্যার কাঠামো পরিবর্তন হয় না।
ডিভাইড এবং কনকয়ের অ্যালগরিদমের 3 টি পদক্ষেপ রয়েছে:



  • ভাগ করুন: সমস্যাটিকে সাব-প্রবলেমে ভাঙা
  • বিজয়: পুনরাবৃত্তভাবে সাব-সমস্যাগুলি সমাধান করা
  • একত্রিত: চূড়ান্ত ফলাফল পাওয়ার জন্য সমাধানগুলি একত্রিত করা

চিত্র- জাভা- এডুরেকাতে দ্রুত সাজান

বিভাজন এবং বিজয় দৃষ্টান্তের উপর ভিত্তি করে বিভিন্ন অ্যালগরিদম রয়েছে। এর মধ্যে দ্রুত সাজান এবং মার্জ সাজান।

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



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

  • প্রথম উপাদান বাছাই করা
  • শেষ উপাদানটি চয়ন করুন
  • একটি এলোমেলো উপাদান বাছাই করা
  • মাঝারি উপাদান বাছাই করা

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

pl / sql ব্যতিক্রম হ্যান্ডলিং

এখন আমরা কুইকসোর্ট অ্যালগরিদমের কাজ বুঝতে পারি। আসুন বুঝতে পারি কীভাবে জাভায় কুইকসোর্ট অ্যালগরিদম প্রয়োগ করা যায়।

কুইকসোর্ট ফাংশন:

/ * কুইকসোর্ট ফাংশনটির অ্যারেটি সর্বনিম্ন ও সর্বোচ্চ সূচক দিয়ে বাছাই করা দরকার * /

অকার্যকর সাজান (int arr [], int lowIndex, int highIndex) {// অবধি কম ইনডেক্স = হাই ইন্ডেক্স যদি (নিম্নআইডেক্স)

এখন এটি কীভাবে কাজ করে তা বুঝতে পার্টিশন কোডটি দেখুন look

পার্টিশন কোড

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

int পার্টিশন (int arr [], int lowIndex, int highIndex) {// পিভট ইন্ট পিভট = আরআর [হাই ইন্ডেক্স] হিসাবে শেষ উপাদানটি তৈরি করা // পিভট ইন্ট আই থেকে ছোট উপাদানগুলির ট্র্যাক রাখতে i ব্যবহার করে (লো-ইনডেক্স -1) (int j = lowIndex j) এর জন্য

এখন আপনি কুইকসোর্ট এবং পার্টিশন ফাংশনটি বুঝতে পেরেছেন, আসুন এখনই সম্পূর্ণ কোডটি দেখুন

কুইকসোর্ট জাভা কোড

ক্লাস কুইকসোর্ট {// পার্টিশন মেথ ইন্ট পার্টিশন (ইন আরআর [], ইন লো লো ইন্ডেক্স, ইন হাই হাই ইনডেক্স) {ইন পিভট = আরআর [হাই ইন্ডেক্স] ইন্ট আই = (লো ইনডেক্স -১) এর জন্য (ইন্ট জে = লো ইনডেক্স জে

// বাছাই করার পদ্ধতি

অকার্যকর সাজান (int arr [], int lowIndex, int highIndex) {যদি (নিম্নIndex)

// অ্যারে প্রিন্ট করার পদ্ধতি

স্ট্যাটিক শূন্য প্রিন্টআর্রে (int arr []) {int n = arrleleth (int i = 0 i) এর জন্য

// মূল পদ্ধতি

পাবলিক স্ট্যাটিক অকার্যকর প্রধান (স্ট্রিং আরগস []) {ইনট আরআর [] = {101, 37, 68, 29, 11, 5} int n = arrleleth কুইকসোর্ট ob = নতুন কুইকসোর্ট () ob.sort (আরআর, 0, n-1) System.out.println ('সাজানো অ্যারে') মুদ্রণআর্রে (অ্যারে)}

আউটপুট:

বর্গ কোয়েরিতে বিবৃতি যদি

আউটপুট- জাভা- এডুরেকাতে দ্রুত সাজান

এখন উপরের জাভা প্রোগ্রামটি কার্যকর করার পরে আপনি বুঝতে পারতেন যে কীভাবে QuickSort কাজ করে এবং এটি জাভাতে কীভাবে প্রয়োগ করা যায়।এভাবে আমরা ‘জাভায় কুইকোর্ট’ শীর্ষক এই নিবন্ধটির শেষে এসেছি। আপনি যদি আরও জানতে চান,পরীক্ষা করে দেখুন এডুরেকা, একটি বিশ্বস্ত অনলাইন লার্নিং সংস্থা। এডুরেকার জাভা জে 2 ইই এবং এসওএ প্রশিক্ষণ এবং শংসাপত্রের কোর্সটি হিবারনেট ও স্প্রিংয়ের মতো বিভিন্ন জাভা ফ্রেমওয়ার্কের পাশাপাশি আপনাকে মূল এবং উন্নত জাভা উভয় ধারণার জন্য প্রশিক্ষণের জন্য তৈরি করা হয়েছে।

আমাদের জন্য একটি প্রশ্ন আছে? দয়া করে এই ব্লগের মন্তব্য বিভাগে এটি উল্লেখ করুন এবং আমরা যত তাড়াতাড়ি সম্ভব আপনার কাছে ফিরে আসব।