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

C-তে অ্যারের সর্টেড অবস্থা যাচাই (ইটেরেটিভ ও রিকারসিভ)

একটি অ্যারে arr[] দেওয়া আছে। এটি সর্টেড (আরোহী ক্রমে) কিনা তা যাচাই করতে হবে। দুটি পদ্ধতি: রিকারসিভ এবং ইটেরেটিভ।

রিকারসিভ পদ্ধতি

ফাংশন নিজেকে কল করে n-1 দিয়ে। বেস কেস: n==0 বা 1 হলে true। যদি arr[n-1] < arr[n-2] হয় তবে false।

উদাহরণ

Input: {12,13,14,16,18} → Output: "The array is in sorted order"

Input: {2,1,3,5,6} → Output: "The array is not in sorted order"

ইটেরেটিভ পদ্ধতি

ফর লুপ i=0 থেকে n-1: যদি arr[i] > arr[i+1] হয় তবে false রিটার্ন। লুপ শেষ হলে true।

C প্রোগ্রাম উদাহরণ (রিকারসিভ)

#include <stdio.h>

int arraySortedCheck(int arr[], int n) {
    if (n == 1 || n == 0) return 1;
    if (arr[n-1] < arr[n-2]) return 0;
    return arraySortedCheck(arr, n-1);
}

int main() {
    int arr[] = {1, 8, 3, 4, 7};
    int n = sizeof(arr)/sizeof(arr[0]);
    if (arraySortedCheck(arr, n))
        printf("Array is in sorted order\n");
    else
        printf("Array is not in sorted order\n");
    return 0;
}

আউটপুট (রিকারসিভ)

Array is in sorted order

C প্রোগ্রাম উদাহরণ (ইটেরেটিভ)

#include <stdio.h>

int arraySortedCheck(int arr[], int n) {
    for (int i = 0; i < n - 1; i++)
        if (arr[i] > arr[i+1]) return 0;
    return 1;
}

int main() {
    int arr[] = {1, 8, 3, 4, 7};
    int n = sizeof(arr)/sizeof(arr[0]);
    if (arraySortedCheck(arr, n))
        printf("Array is in sorted order\n");
    else
        printf("Array is not in sorted order\n");
    return 0;
}

আউটপুট (ইটেরেটিভ)

Array is in sorted order
  1. C প্রোগ্রাম: রিকার্শন ব্যবহার করে অ্যারে প্যালিনড্রোম কিনা চেক করা

  2. C প্রোগ্রাম: অ্যারে প্যালিনড্রোম কিনা চেক করা

  3. সি++ STL ব্যবহার করে অ্যারে প্যালিনড্রোম কিনা তা যাচাই করার প্রোগ্রাম

  4. সি++-এ অ্যারে বিটোনিক (Bitonic) কিনা তা যাচাই করার প্রোগ্রাম