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

C++ में सरणी में सबसे बड़े तीन तत्व ज्ञात करें


इस समस्या में, हमें N असॉर्टेड तत्वों से युक्त एक arr[] दिया गया है। हमारा कार्य सरणी में सबसे बड़े तीन तत्व ज्ञात करना है।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट : arr[] = {7, 3, 9, 12, 1} आउटपुट : 12, 9, 7

समाधान दृष्टिकोण

हमें मूल रूप से सरणी के तीन सबसे बड़े तत्व ढूंढने और उन्हें प्रिंट करने की आवश्यकता है। यह कई तरीकों से किया जा सकता है,

विधि 1

सबसे बड़े तीन तत्वों के लिए, हम उनके मानों को धारण करने वाले तीन तत्व बनाएंगे, max, max2 and max3 और इन मानों को arr[0] पर सेट करेंगे।

फिर हम i -> 1 से n-1 तक लूप करेंगे और प्रत्येक तत्व के लिए

if (arr[i] > max) -> max3 = max2, max2 = max , max = arr[i].

else if (arr[i] > max2) -> max3 = max2, max2 = arr[i].

else if (arr[i] > max3) -> max3 = arr[i].

लूप के अंत में, हम तीनों मान प्रिंट करेंगे।

उदाहरण

हमारे समाधान के कार्य को दर्शाने वाला प्रोग्राम

#include <iostream> using namespace std; void findThreeLargestElements(int arr[], int arr_size){    int max, max2, max3;    max3 = max = max2 = arr[0];    for(int i = 0; i < arr_size; i++){       if (arr[i] > max){          max3 = max2;          max2 = max;          max = arr[i];       }       else if (arr[i] > max2){          max3 = max2;          max2 = arr[i];       }       else if (arr[i] > max3)          max3 = arr[i];    }    cout<<endl<<"सरणी के तीन सबसे बड़े तत्व हैं "<<max<<", "<<max2<<", "<<max3; } int main(){    int arr[] = {15, 2, 7, 86, 0, 21, 50};    int n = sizeof(arr) / sizeof(arr[0]);    cout<<"सरणी है : ";    for(int i = 0; i < n; i++)       cout<<arr[i]<<"\t"; findThreeLargestElements(arr, n); return 0; }

आउटपुट

सरणी है : 15 2 7 86 0 21 50 तीन सबसे बड़े तत्व हैं 86, 50, 21 

विधि 2

समस्या को हल करने की एक और विधि सरणी को सॉर्ट करना और फिर सरणी के पहले तीन तत्वों को प्रिंट करना है जो तीन सबसे बड़े तत्व हैं।

एल्गोरिदम

चरण 1 − एक सॉर्टिंग तकनीक का उपयोग करके सरणी को सॉर्ट करें।

चरण 2 − पहले तीन तत्व प्रिंट करें : arr[0] , arr[1] , arr[2]

उदाहरण

हमारे समाधान के कार्य को दर्शाने वाला प्रोग्राम

#include <bits/stdc++.h> using namespace std; void findThreeLargestElements(int arr[], int n){    sort(arr, arr + n, std::greater<>());    int j = 0;    cout<<"\nतीन सबसे बड़े तत्व हैं ";    for(int i = 0; i < n; i++){       if(arr[i] != arr[i+1]){          cout<<arr[i]<<" "; j++;       } if(j == 3){ break; } } } int main(){ int arr[] = {15, 2, 7, 86, 0, 21, 50, 53, 50}; int n = sizeof(arr) / sizeof(arr[0]); cout<<"सरणी है : "; for(int i = 0; i < n; i++) cout<<arr[i]<<"\t"; findThreeLargestElements(arr, n); return 0; }

आउटपुट

सरणी है : 15 2 7 86 0 21 50 53 50 तीन सबसे बड़े तत्व हैं 86 53 50

  1. - C++ प्रोग्राम: सरणी में सबसे छोटा और दूसरा सबसे छोटा तत्व ज्ञात करना

    मान लें हमारे पास n तत्वों की एक सरणी है। हमें सरणी में पहला और दूसरा सबसे छोटा तत्व ज्ञात करना है। पहला सबसे छोटा सरणी का न्यूनतम है, दूसरा सबसे छोटा न्यूनतम है लेकिन पहले सबसे छोटे से बड़ा है। प्रत्येक तत्व को स्कैन करें, फिर तत्व की जांच करें, और पहले और दूसरे सबसे छोटे तत्वों की शर्तों को संबंध

  1. - C++ प्रोग्राम: सरणी में पहला, दूसरा और तीसरा न्यूनतम तत्व ज्ञात करना

    मान लें हमारे पास n तत्वों की एक सरणी है। हमें सरणी में पहला, दूसरा और तीसरा न्यूनतम तत्व ज्ञात करना है। पहला न्यूनतम सरणी का न्यूनतम है, दूसरा न्यूनतम न्यूनतम है लेकिन पहले से बड़ा, और इसी तरह तीसरा न्यूनतम न्यूनतम है लेकिन दूसरे न्यूनतम से बड़ा। प्रत्येक तत्व को स्कैन करें, फिर तत्व की जांच करें,

  1. - C++ में सरणी का सबसे बड़ा एलिमेंट खोजने का प्रोग्राम

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