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

C++ में किसी सरणी में सबसे बड़े तीन तत्व खोजें

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

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

Input : arr[] = {7, 3, 9, 12, 1}
Output : 12, 9, 7

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

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

विधि 1

सबसे बड़े तीन तत्वों के लिए, हम उनके मान रखने वाले तीन तत्व बनाएंगे, अधिकतम, अधिकतम2 और अधिकतम3 और इन मानों को गिरफ्तारी [0] पर सेट करें।

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

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

और अगर (arr[i]> max2) -> max3 =max2, max2 =arr[i]।

और अगर (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<<"Three largest elements of the array are "<<max<<", "<<max2<<", "<<max3;
}
int main(){
   int arr[] = {15, 2, 7, 86, 0, 21, 50};
   int n = sizeof(arr) / sizeof(arr[0]); 
   cout<<"The array is : ";
   for(int i = 0; i < n; i++) 
      cout<<arr[i]<<"\t"; 
   findThreeLargestElements(arr, n);
   return 0;
}

आउटपुट

The array is : 15 2 7 86 0 21 50 Three largest elements of the array are 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<<"\nThree largest elements are ";
   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<<"The array is : ";
   for(int i = 0; i < n; i++)
      cout<<arr[i]<<"\t";
   findThreeLargestElements(arr, n);
   return 0;
}

आउटपुट

The array is : 15 2 7 86 0 21 50 53 50
Three largest elements are 86 53 50

  1. C++ में किसी सरणी में सबसे छोटा और दूसरा सबसे छोटा तत्व खोजें

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

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

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

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

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