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

C++ . का उपयोग करके दो सरणियों में तत्वों की गणना करना

आइए मान लें कि हमने दो अवर्गीकृत सरणियाँ दी हैं arr1[] और arr2[]। कार्य arr2 [] में तत्वों की कुल संख्या की गणना करना है जिसके लिए arr1 [] का प्रत्येक तत्व arr2 [] में मौजूद तत्वों से कम या बराबर है। हालांकि, दोनों सरणी में तत्व में डुप्लीकेट भी हो सकते हैं।

उदाहरण के लिए,

इनपुट-1 -

N = 6
M = 7
arr1[N] = {1, 2, 5, 0, 6, 3}
arr2[M] = {0,0,1,2,1,3,4,6,8}

आउटपुट -

4 5 7 2 8 6

इस समस्या को हल करने के लिए इस्तेमाल किया जाने वाला तरीका

arr1 [] के प्रत्येक तत्व को गिनने के लिए और यह जांचने के लिए कि क्या वे arr2 [] में तत्वों से कम या बराबर हैं, विचार arr2 [] को सॉर्ट करना है और arr1 [] के तत्व को खोजने के लिए बाइनरी सर्च विधि का उपयोग करना है जो कम हैं या arr2 [] में मौजूद तत्व के बराबर।

  • arr1 और arr1 के आकार को 'm' और 'n' के रूप में इनपुट करें।

  • सरणी तत्वों का इनपुट लें।

  • एक फ़ंक्शन countInSecond(int *arr1, int *arr2, int m, int n) इनपुट के रूप में दो सरणियाँ और उसका आकार लेता है और arr2[] में मौजूद तत्व की गिनती लौटाता है।

  • arr2 को क्रमबद्ध करें []।

  • arr1[] पर पुनरावृति करें और arr2[] में विशेष तत्व को खोजने के लिए बाइनरी खोज का उपयोग करें।

  • तत्व की संख्या कम या बराबर लौटाएं।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
void countInSecond(int *nums1,int *nums2,int m,int n){
   sort(nums2, nums2+n);
   int i=0;
   for(int i=0;i<m;i++){
      int s=0;
      int e=n-1;
      while(s<=e){
         int mid= (s+e)/2;
         if(nums2[mid]<=nums1[i])
            s= mid+1;
         else
            e= mid-1;
      }
      cout<<e+1<<" ";
   }
}
int main(){
   int m=6;
   int n=9;
   int arr1[m]={1,2,5,0,6,3};
   int arr2[n]= {0,0,1,2,1,3,4,6,8};
   countInSecond(arr1,arr2,m,n);
   return 0;
}

आउटपुट

उपरोक्त कोड को चलाने से आउटपुट इस प्रकार उत्पन्न होगा,

4 5 7 2 8 6

arr1 के सभी तत्वों की संख्या, जो arr2 से कम या उसके बराबर हैं, {4 5 7 2 8 6} है।


  1. तत्वों की एक जोड़ी खोजें जो C++ में समान दो सरणियों का योग बनाता है

    विचार करें कि हमारे पास विभिन्न तत्वों के साथ दो सरणियाँ हैं। हमें तत्वों की एक जोड़ी (x, y) ढूंढनी है, जहां x पहली सरणी में मौजूद है, और y दूसरी सरणी में मौजूद है। जोड़ी को इस तरह चुना जाएगा कि इन दो सरणियों के बीच तत्वों की अदला-बदली के बाद, इन दो सरणियों का योग समान होगा। मान लीजिए कि पहली एरे ए

  1. C++ में काउंटिंग सॉर्ट का उपयोग करते हुए माध्यिका और विधा

    विचार करें कि हमारे पास आकार n की एक सरणी है, हमें काउंटिंग सॉर्ट तकनीक का उपयोग करके माध्यिका और मोड को खोजना होगा। यह तकनीक तब उपयोगी होती है जब सरणी तत्व सीमित सीमा में हों। मान लीजिए कि तत्व {1, 1, 1, 2, 7, 1} हैं, तो बहुलक 1 है और माध्यिका 1.5 है। आइए देखें कि माध्यिका क्या है और बहुलक क्या है

  1. सी ++ प्रोग्राम पॉइंटर का उपयोग करके एक ऐरे के तत्वों तक पहुंचने के लिए

    पॉइंटर्स मेमोरी लोकेशन या वेरिएबल्स के एड्रेस को स्टोर करते हैं। दूसरे शब्दों में, पॉइंटर्स एक मेमोरी लोकेशन को रेफर करते हैं और उस मेमोरी लोकेशन पर स्टोर किए गए वैल्यू को प्राप्त करना पॉइंटर को डीरेफ्रेंसिंग के रूप में जाना जाता है। एक प्रोग्राम जो किसी सरणी के एक तत्व तक पहुँचने के लिए पॉइंटर्स क