কম্পিউটার

C++ এ বড় থেকে ছোট সাজানো


ধরুন আমাদের কাছে পূর্ণসংখ্যা সংখ্যার একটি তালিকা আছে, আমাদের এইভাবে তালিকাটি সাজাতে হবে -

  • প্রথম উপাদান সর্বাধিক

  • দ্বিতীয় উপাদানটি সর্বনিম্ন

  • তৃতীয় উপাদান হল ২য় সর্বোচ্চ

  • চতুর্থ উপাদান হল 2য় নূন্যতম

ইত্যাদি।

সুতরাং, যদি ইনপুটটি [6,3,10,4] এর মত হয়, তাহলে আউটপুট হবে [10, 3, 6, 4]

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

  • একটি অ্যারে ret সংজ্ঞায়িত করুন

  • অ্যারের সংখ্যাগুলি সাজান

  • j :=সংখ্যার আকার - 1

  • i :=0

  • যখন i <=j, do −

    • ret-এর শেষে nums[j] সন্নিবেশ করান

    • (j 1 দ্বারা কমিয়ে দিন)

    • যদি i <=j, তাহলে −

      • ret-এর শেষে nums[i] সন্নিবেশ করুন

      • (i 1 দ্বারা বাড়ান)

  • রিটার্ন রিটার্ন

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

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
void print_vector(vector<auto> v){
   cout << "[";
   for(int i = 0; i<v.size(); i++){
      cout << v[i] << ", ";
   }
   cout << "]"<<endl;
}
class Solution {
   public:
   vector<int> solve(vector<int> & nums) {
      vector<int> ret;
      sort(nums.begin(), nums.end());
      int j = nums.size() - 1;
      int i = 0;
      while (i <= j) {
         ret.push_back(nums[j]);
         j--;
         if (i <= j) {
            ret.push_back(nums[i]);
            i++;
         }
      }
      return ret;
   }
};
main() {
   Solution ob;
   vector<int> v = {6,3,10,4};
   print_vector(ob.solve(v));
}

ইনপুট

{6,3,10,4}

আউটপুট

10, 3, 6, 4

  1. C++ এ গেম ভি জাম্প করুন

  2. C++ এ বাছাই তালিকা

  3. C++ এ ফ্রিকোয়েন্সি অনুসারে অক্ষর সাজান

  4. C++ এ 3-ওয়ে মার্জ সাজান