n সংখ্যক উপাদান সহ একটি অ্যারে অ্যারে [] দেওয়া হয়েছে, আমাদের কাজ হল প্রদত্ত অ্যারেটি সাজানো ক্রমে আছে কিনা তা পরীক্ষা করা, যদি এটি সাজানো ক্রমে হয় তবে প্রিন্ট করুন “অ্যারে সাজানো ক্রমে আছে”, অন্যথায় “অ্যারে প্রিন্ট করুন। সাজানো ক্রমে নয়”।
উপরের উল্লিখিত সমস্যা সমাধানের জন্য আমরা পুনরাবৃত্তিমূলক বা পুনরাবৃত্তিমূলক পদ্ধতি ব্যবহার করতে পারি, আমরা উভয়ই আলোচনা করব।
পুনরাবৃত্ত পদ্ধতি
সুতরাং, একটি পুনরাবৃত্ত পদ্ধতি কি? পুনরাবৃত্ত পদ্ধতিতে আমরা একটি ফাংশনকে বারবার কল করি যতক্ষণ না আমরা পছন্দসই ফলাফল পাই। পুনরাবৃত্ত পদ্ধতিতে ফাংশন দ্বারা প্রত্যাবর্তিত মানগুলি স্ট্যাক মেমরিতে সংরক্ষণ করা হয়।
ইনপুট
arr[] = {12, 13, 14, 16, 18}
আউটপুট
The array is in sorted order
ব্যাখ্যা − 12 <13 <14 <16 <18, তাই, হ্যাঁ অ্যারে সাজানো আছে
ইনপুট
arr[] = {2, 1, 3, 5, 6}
আউটপুট
The array is not in sorted order
ব্যাখ্যা − 2 1 এর থেকে ছোট নয়, তাই, এটি সাজানো ক্রমে নয়।
সমস্যা সমাধানের জন্য নিচের পদ্ধতিটি ব্যবহার করা হয়েছে −
-
একটি ইনপুট হিসাবে একটি অ্যারে arr[] নিন এবং একটি অ্যারের আকারের সাথে n শুরু করুন৷
-
আমরা একটি অ্যারের শুরুতে পৌঁছেছি কিনা তা পরীক্ষা করুন, সত্যে ফিরে আসুন।
-
একটি অ্যারের পূর্ববর্তী উপাদানটি পরবর্তী উপাদানের চেয়ে ছোট না হলে পরীক্ষা করুন, মিথ্যা ফেরত দিন।
-
হ্রাস n এবং ধাপ 2 যান।
অ্যালগরিদম
Start In function int arraySortedCheck(int arr[], int n) Step 1→ If n == 1 || n == 0 then, Return 1 Step 2→ If arr[n-1] < arr[n-2] then, Return 0 Step 3→ Return arraySortedCheck(arr, n-1) In Function int main(int argc, char const *argv[]) Step 1→ Declare and initialize arr[] as {1,8,3,4,7} Step 2→ Declare and initialize int n as sizeof(arr)/sizeof(arr[0]) Step 3→ If arraySortedCheck(arr, n) then, Print "Array is in sorted order” Step 4→ Else Print "Array is not in sorted order” Stop
উদাহরণ
//Recursive approach #include <stdio.h> //Recursive function to check if it //is in sorted order or not int arraySortedCheck(int arr[], int n){ //all elements are checked and //all are in sorted order if (n == 1 || n == 0) return 1; //when an array is not in sorted order if(arr[n-1] < arr[n-2]) return 0; return arraySortedCheck(arr, n-1); } int main(int argc, char const *argv[]){ 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; }
আউটপুট
উপরের কোডটি চালালে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেThe array is in sorted order
পুনরাবৃত্ত পদ্ধতি
পুনরাবৃত্তিমূলক পদ্ধতিতে, আমরা লুপ ব্যবহার করি যেমন ফর-লুপ, while-loop বা do-while লুপ যা কন্ডিশন সত্য না হওয়া পর্যন্ত স্টেটমেন্ট চালায় যার মানে 1।
ইনপুট
arr[] = {12, 13, 14, 16, 18}
আউটপুট
The array is in sorted order
ব্যাখ্যা − 12 <13 <14 <16 <18, তাই, হ্যাঁ অ্যারেটি সাজানো ক্রমে রয়েছে
ইনপুট
arr[] = {2, 1, 3, 5, 6}
আউটপুট
The array is not in sorted order
ব্যাখ্যা 2 1 এর থেকে ছোট নয়, তাই, এটি সাজানো ক্রমে নয়৷
সমস্যা সমাধানের জন্য নিচের পদ্ধতিটি ব্যবহার করা হয়েছে
-
একটি ইনপুট arr[] নিন।
-
লুপ করুন যতক্ষণ না আমরা সেই অ্যারের শেষ পর্যন্ত পৌঁছাই৷
-
বর্তমান উপাদানটি পরবর্তী উপাদানের চেয়ে ছোট নয় কিনা তা পরীক্ষা করুন, মিথ্যা ফেরত দিন এবং প্রস্থান করুন৷
-
অন্যথায় চালিয়ে যান।
-
-
ধাপ 2 যান।
অ্যালগরিদম
Start In function int arraySortedCheck(int arr[], int n) Step 1 → Loop For i = 0 and i < n and ++i If arr[n-1] < arr[n-2] then, Return 0 Step 2→ Return 1 In Function int main(int argc, char const *argv[]) Step 1→ Declare and initialize arr[] as {1,8,3,4,7} Step 2→ Declare and initialize int n as sizeof(arr)/sizeof(arr[0]) Step 3→ If arraySortedCheck(arr, n) then, Print "Array is in sorted order” Step 4→ Else Print "Array is not in sorted order” Stop
উদাহরণ
//Iterative approach #include <stdio.h> int arraySortedCheck(int arr[], int n){ for (int i = 0; i < n; ++i){ //when an array is not in sorted order if(arr[n-1] < arr[n-2]) return 0; } //all elements are checked and //all are in sorted order return 1; } int main(int argc, char const *argv[]){ 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; }
আউটপুট
উপরের কোডটি চালালে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেThe array is in sorted order