पूर्णांकों की एक सरणी दी गई है और कार्य एक फ़ंक्शन का उपयोग करके दी गई सरणी की बाइटोनिसिटी की गणना करना है।
सरणी की बाइटोनिसिटी है:
- 0 से इनिशियलाइज़्ड
- अगला एलिमेंट पिछले मान से बड़ा होने पर 1 से बढ़ाया जाता है
- अगला एलिमेंट पिछले मान से छोटा होने पर 1 से घटाया जाता है
उदाहरण
इनपुट-: arr[] = { 1,4,3,5,2,9,10,11} आउटपुट-: सरणी की बाइटोनिसिटी: 3 व्याख्या:
- बाइटोनिसिटी की गणना करने वाले वेरिएबल को मान लीजिए temp को 0 से इनिशियलाइज़ करें।
- सरणी के पहले एलिमेंट से शुरू करें जो 1 है। अब arr[i] और arr[i-1] की तुलना करें यानी 4 और 1 की तुलना करें यहां 4, 1 से बड़ा है जिससे temp को 1 से बढ़ाएं। इसी तरह 4 और 3 की तुलना करें चूंकि 3, 4 से छोटा है इसलिए temp का मान घटाएं।
- temp का अंतिम मान प्रिंट करें जो 3 है
नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण इस प्रकार है
- सरणी के सभी एलिमेंट्स को ट्रैवर्स करें मान लीजिए arr[n] जहां n सरणी का आकार है
- यदि arr[i] > arr[i-1], तो बाइटोनिसिटी = बाइटोनिसिटी + 1
- यदि arr[i] < arr[i-1], तो बाइटोनिसिटी = बाइटोनिसिटी - 1
- यदि arr[i] = arr[i-1], तो बाइटोनिसिटी = बाइटोनिसिटी (अपरिवर्तित)
एल्गोरिदम
शुरुआत चरण 1-> सरणी की बाइटोनिसिटी की गणना के लिए फ़ंक्शन घोषित करें int cal_bitonicity(int arr[], int n) int temp = 0 सेट करें लूप लिए int i = 1 और i < n और i++ यदि (arr[i] > arr[i - 1]) temp++ बढ़ाएं समाप्त अन्यथा यदि (arr[i] < arr[i - 1]) temp-- घटाएं समाप्त temp वापस करें चरण 2-> main() में int arr[] = { 1,4,3,5,2,9,10,11} घोषित करें int n = sizeof(arr) / sizeof(arr[0]) सेट करें cal_bitonicity(arr, n) कॉल करें रुकें उदाहरण
#include <iostream> using namespace std; // बाइटोनिसिटी की गणना int cal_bitonicity(int arr[], int n) { int temp = 0; for (int i = 1; i < n; i++) { if (arr[i] > arr[i - 1]) temp++; else if (arr[i] < arr[i - 1]) temp--; } return temp; } int main() { int arr[] = { 1,4,3,5,2,9,10,11}; int n = sizeof(arr) / sizeof(arr[0]); cout<<"सरणी की बाइटोनिसिटी: " <<cal_bitonicity(arr, n); return 0; } आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा
सरणी की बाइटोनिसिटी: 3