কম্পিউটার

C++ এ একটি অ্যারে সাজান


ধরুন আমাদের পূর্ণসংখ্যার একটি অ্যারে আছে; আমাদেরকে ক্রমবর্ধমান ক্রমে সাজাতে হবে। সুতরাং যদি অ্যারেটি [5,2,3,1] এর মত হয়, তাহলে ফলাফল হবে [1,2,3,5]

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • পার্টিশন নামে একটি পদ্ধতি তৈরি করুন, এটি অ্যারে, নিম্ন এবং উচ্চ

    লাগবে
  • পিভট সেট করুন :=কম

  • আমি নিম্ন থেকে উচ্চ রেঞ্জের জন্য – 1

    • যদি nums[i]

  • অদলবদল সংখ্যা[পিভট] এবং সংখ্যা [উচ্চ]

  • sortArr() নামক একটি পদ্ধতি সংজ্ঞায়িত করুন, এটি অ্যারে, কম এবং উচ্চ

    লাগবে
  • যদি কম>=বেশি, তাহলে ফেরত দিন

  • partitionIndex :=পার্টিশন (সংখ্যা, নিম্ন, উচ্চ)

  • sortArr(সংখ্যা, কম, পার্টিশন ইনডেক্স – 1)

  • sortArr(সংখ্যা, পার্টিশন ইনডেক্স + 1, উচ্চ)

  • প্রধান পদ্ধতি থেকে sortArr() কল করুন 0 এবং arr - 1 এর আকার কম এবং উচ্চ পেরিয়ে

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
void print_vector(vector<string> v){
   cout << "[";
   for(int i = 0; i<v.size(); i++){
      cout << v[i] << ", ";
   }
   cout << "]"<<endl;
}
class Solution {
   public:
   int partition(vector <int>& nums, int low, int high){
      int pivot = low;
      for(int i = low; i < high; i++){
         if(nums[i] < nums[high]){
            swap(nums[i], nums[pivot]);
            pivot++;
         }
      }
      swap(nums[pivot], nums[high]);
      return pivot;
   }
   void sortArr(vector <int>& nums, int low, int high){
      if(low >= high) return;
      int partitionIndex = partition(nums, low, high);
      sortArr(nums, low, partitionIndex - 1);
      sortArr(nums, partitionIndex + 1, high);
   }
   vector<int> sortArray(vector<int>& nums) {
      sortArr(nums, 0, nums.size() - 1);
      return nums;
   }
};
main(){
   vector<int> v1 = {5,2,3,1};
   Solution ob;
   print_vector(ob.sortArray(v1));
}

ইনপুট

[5,2,3,1]

আউটপুট

[1,2,3,5]

  1. একটি C++ ফাংশনে একটি 2D অ্যারে পাস করা

  2. গণনা সাজানোর জন্য C++ প্রোগ্রাম

  3. হিপ সর্ট অ্যালগরিদম ব্যবহার করে 10টি উপাদানের একটি অ্যারে সাজানোর জন্য C++ প্রোগ্রাম

  4. একটি C++ ফাংশনে একটি অ্যারে পাস করা