কম্পিউটার

একটি অ্যারে সাজানো হয়েছে কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম (পুনরাবৃত্ত এবং পুনরাবৃত্ত) সি-তে


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

  1. একটি অ্যারে প্যালিনড্রোম কিনা বা পুনরাবৃত্তি ব্যবহার করছে না তা পরীক্ষা করার জন্য সি প্রোগ্রাম

  2. একটি অ্যারে প্যালিনড্রোম কিনা তা পরীক্ষা করার জন্য সি প্রোগ্রাম

  3. একটি অ্যারে প্যালিনড্রোম কিনা বা C++ এ STL ব্যবহার করছে না তা পরীক্ষা করার জন্য প্রোগ্রাম

  4. C++ এ একটি অ্যারের বিটনোসিটি পরীক্ষা করার জন্য প্রোগ্রাম