কম্পিউটার

C++ এ সাজানো অ্যারেতে ছোট বা সমান উপাদানের গণনা


আমরা পূর্ণসংখ্যার একটি অ্যারে দেওয়া হয়. লক্ষ্য হল একটি অ্যারের উপাদানগুলির গণনা খুঁজে বের করা যা প্রদত্ত মানের K এর থেকে কম বা সমান।

ইনপুট

Arr[]= { 1, 2, 3, 14, 50, 69, 90 } K=12

আউটপুট

Numbers smaller or equal to K: 3

ব্যাখ্যা

Numbers 1,2,3 is smaller or equal to 12.

ইনপুট

Arr[]= { 12, 13, 13, 13, 14, 50, 54, 100 } K=14

আউটপুট

Numbers smaller or equal to K: 5

ব্যাখ্যা

Numbers 12, 13, 14 are smaller or equal to 14.

নিষ্পাপ দৃষ্টিভঙ্গি

নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • আমরা Arr[] এবং K.

    পূর্ণসংখ্যা অ্যারে নিই
  • ফাংশন ছোট বা সমান

  • এই ধরনের সংখ্যার জন্য প্রাথমিক পরিবর্তনশীল গণনা 0 হিসাবে নিন।

  • লুপ ব্যবহার করে সংখ্যার ট্রাভার্স অ্যারে। i=0 থেকে i

  • এখন প্রতিটি সংখ্যার জন্য arr[i], যদি তা হয় <=k, বৃদ্ধির সংখ্যা।

  • শেষে লুপ গণনায় একটি মোট সংখ্যা থাকবে যা শর্ত পূরণ করে।

  • ফলাফল হিসাবে গণনা ফেরত দিন।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int smallorEqual(int arr[],int k,int len){
   int count = 0;
   for (int i = 0; i < len; i++){
      if(arr[i]<=k)
         { count++; }
      else
         { break; }
   }
   return count;
}
int main(){
   int Arr[] = { 1,5,11,12,19,21,32,53,70,100 };
   int K = 21;
   int Length= sizeof(Arr)/sizeof(Arr[0]);
   cout <<"Numbers smaller or equal to K: "<<smallorEqual(Arr,K,Length);
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
Numbers smaller or equal to K: 6

দক্ষ পদ্ধতি (বাইনারি অনুসন্ধান ব্যবহার করে)

নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • আমরা Arr[] এবং K.

    পূর্ণসংখ্যা অ্যারে নিই
  • ফাংশন বাইনারি সার্চ (int arr[],int k,int len) arr[] এর উপাদানগুলির গণনা প্রদান করে যেগুলি K

    এর সমান বা ছোট।
  • সূচী নিন নিম্ন=0, উচ্চ=লেন-1 এবং মধ্য=(নিম্ন+উচ্চ)/2;/p>

  • পরিবর্তনশীল সূচক নিন=-1;

  • যখন লুপ ব্যবহার করা হচ্ছে, কম পর্যন্ত<=high

  • arr[মধ্য] এর মান পরীক্ষা করুন। যদি হয় <=k. তারপর সূচক =মধ্য। নতুন নিম্ন=মধ্য+1

  • অন্যথায় নতুন high=mid-1.

  • যখন লুপ সূচকের শেষে শেষ সংখ্যার সূচক হবে<=k.

  • ফলাফল হিসাবে সূচী +1 ফেরত দিন কারণ অ্যারে সূচীকরণ 0 থেকে শুরু হয় এবং সূচক 0 থেকে সূচক পর্যন্ত সমস্ত সংখ্যা k এর থেকে কম৷

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int binarySearch(int arr[],int k,int len){
   int low = 0;
   int high = len -1;
   int mid = (high+low)/2;
   int index = -1;
   while(low <= high){
      mid =( low + high ) / 2;
      if(arr[mid] <= k){
         index = mid;
         low = mid+1;
      }
      else{
         high=mid-1;
      }
   }
   return (index+1);
}
int main(){
   int Arr[] = { 1,5,11,12,19,21,32,53,70,100 };
   int K = 21;
   int Length= sizeof(Arr)/sizeof(Arr[0]);
   cout <<"Numbers smaller or equal to K: "<<binarySearch(Arr,K,Length);
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
Numbers smaller or equal to K: 6

  1. C++ এ সাজানো বাইনারি অ্যারেতে 1 এর সংখ্যা গণনা করুন

  2. C++-এ অ্যারেতে সমস্ত উপাদান সমান করার জন্য ন্যূনতম অপারেশন

  3. C++-এ সমস্ত অ্যারের উপাদানগুলিকে সমান করতে প্রয়োজনীয় ন্যূনতম অপারেশন

  4. C++ এ রোটেটেড সর্টেড অ্যারেতে রোটেশন কাউন্ট খুঁজুন