C ++ এ কুইকসোর্ট সম্পর্কে আপনার যা জানা দরকার



এই নিবন্ধটি আপনাকে উদাহরণস্বরূপ সি ++ তে কীভাবে কুইকসোর্ট প্রয়োগ করতে হবে তার বিশদ এবং ব্যাপক জ্ঞান সরবরাহ করবে।

অ্যালগরিদম বাছাই করার আধিক্য রয়েছে। আপনার অ্যাপ্লিকেশনটির জন্য সঠিক ফিট খুঁজে পাওয়া এমন একটি কাজ যা কোনও নির্দিষ্ট অ্যালগরিদমের কর্মক্ষমতা, সময়ের জটিলতা, কোডের দৈর্ঘ্য ইত্যাদির মতো বিষয়গুলির সংক্ষিপ্ত বোঝার প্রয়োজন। এই পোস্টে, আমরা নিম্নলিখিত ক্রমে কুইকসোর্টটি বাস্তবায়নের জন্য প্রয়োজনীয় সমস্ত প্রয়োজনীয় ধারণাগুলি একবার দেখে নেব:

কুইকসোর্ট অ্যালগরিদম বোঝা

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





  1. প্রথমে আমরা ব্যবহারকারীর কাছ থেকে নিরবচ্ছিন্ন অ্যারে চাইব।

    জবাতে স্ট্যাক এবং গাদা
  2. একবার আমাদের অরসোর্টড অ্যারে পরে আমাদের অ্যারে থেকে একটি পিভট মান নির্বাচন করতে হবে। আমরা যে কোনও মান বেছে নিতে পারি।



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

  4. আমাদের সাজানো অ্যারে না পাওয়া পর্যন্ত আমরা পদক্ষেপ 3 সম্পাদন করি।

এখন, আসুন একটি উদাহরণ বিবেচনা করুন এবং অ্যালগরিদম বাস্তবায়ন করুন এবং দেখুন এটি কীভাবে কাজ করে।



হ্যালো [5, 4, 1, 11, 9, 6, 2, 3] এই উদাহরণের জন্য আমরা সর্বদা পিভটকে তালিকার সবচেয়ে সঠিক উপাদান হিসাবে বিবেচনা করব।

একটি নেমস্পেস কি?

সি ++ তে কুইকসোর্ট

আসুন প্রতিটি পদক্ষেপের মধ্য দিয়ে যাওয়া যাক এবং সমস্যাটি সমাধান করার জন্য আমরা যুক্তিটি বুঝতে পারি।

  • প্রথমে আমরা ‘3’ কে আমাদের পাইভট হিসাবে বেছে নিয়েছি এবং ডানদিকে ‘3’ এর চেয়ে কম সমস্ত উপাদান এবং ডানদিকে ‘3’ এর চেয়ে বড় উপাদানগুলিকে সাজিয়েছি।

  • এই মুহুর্তে, আমাদের কাছে দুটি সাব-প্রবলেম রয়েছে। আসুন প্রথমে ডানদিকে সাব-সমস্যাটি সমাধান করুন। আমরা একজনকে আমাদের পাইভট হিসাবে বেছে নিয়ে ডানদিকে ‘2’ রেখেছি।

  • দ্বিতীয় সাব-প্রবলেমটি সমাধান করার জন্য আমরা ‘6’ কে আমাদের পাইভট হিসাবে বেছে নিই এবং উপাদানগুলি আগেই আলোচনা করেছি।

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

বিঃদ্রঃ- এখানে বোঝার জন্য গুরুত্বপূর্ণ বিষয়টি হ'ল সমস্ত ক্রিয়াকলাপ একই অ্যারেতে ঘটে। নতুন অ্যারে তৈরি করা হয় না।

সি ++ তে কুইকোর্টের জন্য সিউডোকোড

কুইকসোর্ট (অ্যারে [], start_index, end_index) {যদি (start_index)

সি ++ তে কুইকোর্টের প্রোগ্রাম

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

# নেমস্পেসের সাথে স্টডি অকার্যকর অদলবদল_আলিমেন্টস (ইনট * এ, ইনট * বি) {ইনট টেম্প = * এ * এ = * বি * বি = টেম্প} ইন্টি পার্টিশন (ইনট অ্যারে [], ইনট স্টার্ট_ইন্ডেক্স, ইনট এন্ড ইনডেক্স) {ইন পিভট = অ্যারে [end_index] int i = (start_index - 1) এর জন্য (int j = start_index j)<= end_index- 1 j++) { if (array[j] <= pivot) { i++ swap_elements(&array[i], &array[j]) } } swap_elements(&array[i + 1], &array[end_index]) return (i + 1) } void quickSort(int array[], int start_index, int end_index) { if (start_index < end_index) { int partition_index = partition(array, start_index, end_index) quickSort(array, start_index, partition_index - 1) quickSort(array, partition_index + 1, end_index) } } void printArray(int array[], int number) { int i cout<<'Sorted Array: ' for (i = 0 i < number i++) cout << array[i] << ' ' cout << endl } int main() { int Hello[30] int i int NumberofElements cout<>নাম্বার উপাদানগুলির ব্যয়<<'Enter the elements one by one: ' for(i=0i>হ্যালো [i]} কুইকসোর্ট (হ্যালো, 0, নাম্বার উপাদানসমূহ -1) প্রিন্টআররে (হ্যালো, সংখ্যাফিলিমিটার) 0 return ফিরে আসে

আউটপুট:

জাভা ঠিক সময়ের সংকলক

সময় জটিলতা

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

  • সর্বোত্তম ঘটনা- চালু)
  • গড় কেস- (এনলগন)
  • সবচেয়ে খারাপ ক্ষেত্রে- চালু)

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

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