Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी ++ में 2 डी सरणी में एक शिखर तत्व खोजें

इस ट्यूटोरियल में, हम एक प्रोग्राम लिखने जा रहे हैं जो 2डी एरे में पीक एलिमेंट को ढूंढता है।

एक तत्व को शिखर तत्व कहा जाता है यदि उसके चारों ओर के सभी तत्व तत्व से छोटे होते हैं।

आइए समस्या को हल करने के लिए चरणों को देखें।

  • डमी डेटा के साथ 2डी ऐरे को इनिशियलाइज़ करें।

  • 2डी सरणी पर पुनरावृति करें।

    • सबसे पहले, 2D सरणी के कोने के तत्वों की जाँच करें।

    • इसके बाद, 2D सरणी की पहली और अंतिम पंक्तियों के लिए शर्तें लिखें।

    • अब, 2डी सरणी के पहले और आखिरी कॉलम की जांच करें।

    • और अंत में, बीच के तत्वों की जांच करें।

    • प्रत्येक मामले में, हमें वर्तमान तत्व की उसके आसपास के तत्वों से तुलना करनी होगी। यह उपरोक्त शर्तों के आधार पर भिन्न होता है।

    • जहाँ भी आपको परिणाम मिले, मान लौटाएँ।

उदाहरण

आइए कोड देखें।

#include <bits/stdc++.h>
using namespace std;
const int MAX = 256;
int findPeakElement(int arr[][MAX], int rows, int columns) {
   for (int i = 0; i < rows; i++) {
      for (int j = 0; j < columns; j++) {
         if (i == 0 && j == 0) {
            if (arr[i][j] > arr[i + 1][j] && arr[i][j] > arr[i][j + 1]) {
               return arr[i][j];
            }
         }
         else if (i == 0 && j == columns - 1) {
            if (arr[i][j] > arr[i + 1][j] && arr[i][j] > arr[i][j - 1]) {
               return arr[i][j];
            }
         }
         else if (i == rows - 1 && j == 0) {
            if (arr[i][j] > arr[i - 1][j] && arr[i][j] > arr[i][j + 1]) {
               return arr[i][j];
            }
         }
         else if (i == rows - 1 && j == columns - 1) {
            if (arr[i][j] > arr[i - 1][j] && arr[i][j] > arr[i][j - 1]) {
               return arr[i][j];
            }
         }
         else if (i == 0) {
            if (arr[i][j] > arr[i][j - 1] && arr[i][j] > arr[i][j + 1] && arr[i][j] > arr[i + 1][j]) {
               return arr[i][j];
            }
         }
         else if (i == rows - 1) {
            if (arr[i][j] > arr[i][j - 1] && arr[i][j] > arr[i][j + 1] && arr[i][j] > arr[i - 1][j]) {
               return arr[i][j];
            }
         }
         else if (j == 0) {
            if (arr[i][j] > arr[i - 1][j] && arr[i][j] > arr[i + 1][j] && arr[i][j] > arr[i][j + 1]) {
               return arr[i][j];
            }
         }
         else if (j == columns - 1) {
            if (arr[i][j] > arr[i - 1][j] && arr[i][j] > arr[i + 1][j] && arr[i][j] > arr[i][j - 1]) {
               return arr[i][j];
            }
         }
         else {
            if (arr[i][j] > arr[i][j - 1] && arr[i][j] > arr[i][j + 1] && arr[i][j] > arr[i - 1][j] && arr[i][j] > arr[i + 1][j]) {
               return arr[i][j];
            }
         }
      }
   }
   return -1;
}
int main() {
   int arr[][MAX] = {
      { 1, 2, 3, 4 },
      { 2, 3, 4, 5 },
      { 1, 3, 7, 5 },
      { 1, 2, 6, 6 } };
   int rows = 4, columns = 4;
   cout << findPeakElement(arr, rows, columns) << endl;
   return 0;
}

आउटपुट

यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम प्राप्त होंगे।

7

निष्कर्ष

यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उनका टिप्पणी अनुभाग में उल्लेख करें।


  1. सी ++ में सरणी में प्रत्येक तत्व की सर्पासर गणना खोजें

    मान लीजिए कि एक सरणी A दिया गया है। हमें उस सरणी में प्रत्येक तत्व की संख्या को पार करना होगा। पार करने वाले अधिक से अधिक तत्व होते हैं जो वर्तमान तत्व की सरणी के दाईं ओर मौजूद होते हैं। मान लीजिए A ={2, 7, 5, 3, 0, 8, 1}, श्रेष्ठ हैं {4, 1, 1, 2, 0, 0}, तो 2 में दायीं ओर 4 संख्याएँ हैं, जो बड़ी हैं

  1. C++ प्रोग्राम बाइनरी सर्च एप्रोच का उपयोग करके किसी सरणी के शिखर तत्व को खोजने के लिए

    इस सी ++ प्रोग्राम में, हम पाते हैं कि सरणी में चोटियों में से एक को बाइनरी खोज दृष्टिकोण का उपयोग करके पाया जा सकता है। यह एल्गोरिथ्म परिणाम के रूप में पाया गया पहला शिखर लौटाता है, जिसके परिणामस्वरूप एल्गोरिथ्म की समय जटिलता O(log(n)) है। एल्गोरिदम Begin    PeakElement() function has &ls

  1. सी ++ प्रोग्राम एक ऐरे का सबसे बड़ा तत्व खोजने के लिए

    एक सरणी में कई तत्व होते हैं और एक सरणी में सबसे बड़ा तत्व वह होता है जो अन्य तत्वों से बड़ा होता है। उदाहरण के लिए। 5 1 7 2 4 उपरोक्त सरणी में, 7 सबसे बड़ा तत्व है और यह इंडेक्स 2 पर है। किसी सरणी के सबसे बड़े तत्व को खोजने का प्रोग्राम इस प्रकार दिया गया है। उदाहरण #include <iostream> u