N পূর্ণসংখ্যার একটি অ্যারে [N] দেওয়া, কাজটি হল প্রদত্ত অ্যারেটি বাইটোনিক কিনা তা পরীক্ষা করা। যদি প্রদত্ত অ্যারেটি বিটোনিক হয় তবে "হ্যাঁ এটি একটি বিটোনিক অ্যারে" প্রিন্ট করুন, অন্যথায় "না এটি একটি বিটোনিক অ্যারে নয়" প্রিন্ট করুন৷
একটি বিটোনিক অ্যারে হল যখন অ্যারেটি প্রথমে কঠোরভাবে বৃদ্ধির ক্রমে এবং তারপর কঠোরভাবে হ্রাসের ক্রমে থাকে৷
এই অ্যারের মতো অ্যারে[] ={1, 2, 3, 4, 2, -1, -5} হল একটি বিটোনিক অ্যারে, কারণ 4 পর্যন্ত এটি কঠোরভাবে ক্রমবর্ধমান ক্রমে এবং 4 এর পরে এটি কঠোরভাবে হ্রাসের ক্রমে থাকে।পি>
ইনপুট
arr[] = {1, 3, 5, 4, 2, 0}
আউটপুট
Yes its a bitonic array
ব্যাখ্যা
1< 3 < 5 > 4 > 2 >0, so yes it is a bitonic array.
ইনপুট
arr[] = {1, 2, 3, 4, 5, 0, -1, -2, 6, -4}
আউটপুট
No its not a bitonic array
সমস্যা সমাধানের জন্য নিচের পদ্ধতিটি ব্যবহার করা হয়েছে
-
একটি অ্যারের প্রতিটি উপাদান পুনরাবৃত্তি করুন এবং পূর্ববর্তী উপাদানটি বর্তমান উপাদানের চেয়ে ছোট কিনা তা পরীক্ষা করুন৷
-
যখন পূর্ববর্তী উপাদান বর্তমান উপাদান বিরতি থেকে ছোট হয় না।
-
পূর্ববর্তী উপাদান বর্তমানের চেয়ে বড় কিনা তা পরীক্ষা করুন, অন্যথায় মিথ্যা ফেরত দিন এবং প্রস্থান করুন।
-
যদি একটি অ্যারের শেষে পৌঁছে যায় তাহলে সত্য ফেরত দিন।
অ্যালগরিদম
Start Step 1→ Declare array to check for bitonicity of an array int check(int arr[], int size) declare int i, j Loop For i = 1 and i <size and i++ IF (arr[i] > arr[i - 1]) Continue End IF (arr[i] <= arr[i - 1]) break End IF(i == size - 1) return 1 End Loop For (j = i + 1 and j < size and j++ IF (arr[j] < arr[j - 1]) Continue End IF (arr[j] <= arr[j - 1]) break End End Set i = j IF (i != size) return 0 End return 1 Step 2→ In main() Declare int arr[] = { -3, 9, 11, 20, 17, 5, 1 } Declare int size = sizeof(arr) / sizeof(arr[0]) Do (check(arr, size) == 1) ? cout << "Yes its a bitonic array" : cout << "no its not a bitonic array" Stop
উদাহরণ
#include <bits/stdc++.h> using namespace std; //function to check bitonic or not int check(int arr[], int size){ int i, j; for (i = 1; i < size; i++){ if (arr[i] > arr[i - 1]) continue; if (arr[i] <= arr[i - 1]) break; } if (i == size - 1) return 1; for (j = i + 1; j < size; j++){ if (arr[j] < arr[j - 1]) continue; if (arr[j] >= arr[j - 1]) break; } i = j; if (i != size) return 0; return 1; } int main(){ int arr[] = { -3, 9, 11, 20, 17, 5, 1 }; int size = sizeof(arr) / sizeof(arr[0]); (check(arr, size) == 1) ? cout << "Yes its a bitonic array" : cout << "no its not a bitonic array"; return 0; }
আউটপুট
উপরের কোডটি চালালে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেYes its a bitonic array