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

C++-এ অ্যারে সর্টেড এবং রোটেটেড কিনা চেক করা


একটি অ্যারে যদি ক্রমবর্ধমান ক্রমে সর্টেড থাকে এবং কোনো পজিশন থেকে রোটেট করা থাকে, তবে সেটি "সর্টেড অ্যান্ড রোটেটেড"। উদাহরণ: [5,6,7,1,2,3,4]

অ্যালগরিদম

  • অ্যারে ট্রাভার্স করুন এবং গণনা করুন কতবার arr[i] > arr[(i+1)%n]
  • যদি কাউন্ট ≤ 1 হয়, তবে সর্টেড অ্যান্ড রোটেটেড।
  • কারণ সর্টেড অ্যারেতে ০বার, রোটেটেড সর্টেড এতে ১বার এই কন্ডিশন সত্য হয়।

উদাহরণ কোড

#include <bits/stdc++.h>
using namespace std;

bool checkSortedAndRotated(int* arr, int n) {
    int count = 0;
    for (int i = 0; i < n; i++) {
        if (arr[i] > arr[(i + 1) % n]) count++;
    }
    return count <= 1;
}

int main() {
    int arr[] = {5, 6, 7, 1, 2, 3, 4};
    int n = sizeof(arr) / sizeof(int);
    cout << (checkSortedAndRotated(arr, n) ? "True" : "False") << endl;
    return 0;
}

আউটপুট

True

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

  2. C++-এ একটি অ্যারে পেয়ারওয়াইজ সর্টেড (pairwise sorted) কিনা তা যাচাই করা

  3. অ্যারে সোর্টেড এবং রোটেটেড কিনা যাচাই করার প্রোগ্রাম

  4. পাইথনে যাচাই করুন অ্যারে সর্টেড এবং রোটেটেড কিনা