একটি অ্যারে 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