কম্পিউটার টিউটোরিয়াল

C++ দিয়ে সর্টেড অ্যারেতে k-র চেয়ে বড় এলিমেন্টের সংখ্যা বের করা


এই সমস্যাতে, আমাদের একটি অ্যারে arr[] দেওয়া আছে যাতে N সংখ্যক সর্টেড ইন্টিজার মান আছে এবং একটি ইন্টিজার k। আমাদের কাজ হল সর্টেড অ্যারেতে k-র চেয়ে বড় এলিমেন্টের সংখ্যা বের করা।

উদাহরণ দেখি:

ইনপুট

 arr[] = {1, 2, 5, 7, 8, 9} k = 4

আউটপুট

 4

ব্যাখ্যা

 k = 4-র চেয়ে বড় এলিমেন্টগুলো হল 5, 7, 8, 9

সমাধানের পদ্ধতি

এই সমস্যা সমাধানের একটি সহজ পদ্ধতি হল অ্যারেটি 0 থেকে N পর্যন্ত লুপ চালিয়ে প্রথম বড় এলিমেন্ট খুঁজে বের করা। তারপর বাকি এলিমেন্টের সংখ্যা কাউন্ট করা।

উদাহরণ

 #include <iostream> using namespace std; int findGreaterCount(int arr[], int n, int k){    for(int i = 0; i < n; i++){       if(arr[i] > k)          return (n - i);    }    return -1; } int main(){    int arr[] = { 1, 3, 5, 7, 7, 8, 12, 21};    int n = sizeof(arr) / sizeof(arr[0]);    int k = 5;    cout<<"The number of elements greater than k is "<<findGreaterCount(arr, n, k);    return 0; }

আউটপুট

The number of elements greater than k is 5

উপরের কোডটি ভালো কাজ করে কিন্তু টাইম কমপ্লেক্সিটি O(N)।

একটি আরও দক্ষ পদ্ধতি হল বাইনারি সার্চ ব্যবহার করে k-র চেয়ে বড় এলিমেন্ট খুঁজে বের করা। তারপর বড় এলিমেন্টের সংখ্যা রিটার্ন করা।

উদাহরণ

 #include <iostream> using namespace std; int findGreaterCount(int arr[], int n, int k){    int s = 0;    int e = n - 1;    int firstGreterEle = n;    while (s <= e) {       int mid = s + (e - s) / 2;       if (arr[mid] > k) {          firstGreterEle = mid;          e = mid - 1;       }       else          s = mid + 1;    }    return (n - firstGreterEle); } int main(){    int arr[] = { 1, 3, 5, 7, 7, 8, 12, 21};    int n = sizeof(arr) / sizeof(arr[0]);    int k = 5;    cout<<"The number of elements greater than k is "<<findGreaterCount(arr, n, k);    return 0; }

আউটপুট

The number of elements greater than k is 5

  1. সি++ প্রোগ্রাম: ক্রমাগত উপাদানদের XOR দিয়ে অ্যারে উপাদানগুলো খুঁজে বের করা

  2. C++ ব্যবহার করে অ্যারের সব এলিমেন্ট ডিলিট করতে ন্যূনতম অপারেশন সংখ্যা

  3. C++ ব্যবহার করে অ্যারেতে একটি সংখ্যার ফ্রিকোয়েন্সি বের করা

  4. C++-এ রোটেটেড সোর্টেড অ্যারেতে রোটেশন কাউন্ট বের করা