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

C++ में क्रमबद्ध सरणी में छोटे या समान तत्वों की गणना

हमें पूर्णांकों की एक सरणी दी गई है। लक्ष्य एक सरणी के तत्वों की गिनती का पता लगाना है जो दिए गए मान K से कम या उसके बराबर हैं।

इनपुट

Arr[]= { 1, 2, 3, 14, 50, 69, 90 } K=12

आउटपुट

Numbers smaller or equal to K: 3

स्पष्टीकरण

Numbers 1,2,3 is smaller or equal to 12.

इनपुट

Arr[]= { 12, 13, 13, 13, 14, 50, 54, 100 } K=14

आउटपुट

Numbers smaller or equal to K: 5

स्पष्टीकरण

Numbers 12, 13, 14 are smaller or equal to 14.

निष्पक्ष दृष्टिकोण

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

  • हम पूर्णांक सरणी Arr[] और K.

    लेते हैं
  • फ़ंक्शन smallorEqual(int arr[],int k,int len) arr[] के उन तत्वों की संख्या लौटाता है जो K के बराबर या छोटे होते हैं

  • ऐसी संख्याओं के लिए प्रारंभिक चर गणना को 0 के रूप में लें।

  • लूप के लिए संख्याओं का अनुप्रस्थ सरणी। i=0 से i<लेन

  • अब प्रत्येक संख्या के लिए गिरफ्तारी [i], यदि यह <=k है, तो वृद्धि की गणना करें।

  • अंत में लूप काउंट की कुल संख्या होगी जो शर्त को पूरा करती है।

  • परिणाम के रूप में गिनती लौटाएं।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int smallorEqual(int arr[],int k,int len){
   int count = 0;
   for (int i = 0; i < len; i++){
      if(arr[i]<=k)
         { count++; }
      else
         { break; }
   }
   return count;
}
int main(){
   int Arr[] = { 1,5,11,12,19,21,32,53,70,100 };
   int K = 21;
   int Length= sizeof(Arr)/sizeof(Arr[0]);
   cout <<"Numbers smaller or equal to K: "<<smallorEqual(Arr,K,Length);
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Numbers smaller or equal to K: 6

कुशल दृष्टिकोण (द्विआधारी खोज का उपयोग करना)

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

  • हम पूर्णांक सरणी Arr[] और K.

    लेते हैं
  • फंक्शन बाइनरीसर्च(int arr[],int k,int len) arr[] के उन तत्वों की गिनती लौटाता है जो K के बराबर या छोटे होते हैं

  • इंडेक्स लो =0, हाई =लेन -1 और मिड =(लो + हाई)/2;/p>

  • परिवर्तनीय अनुक्रमणिका लें =-1;

  • लूप के दौरान उपयोग करना, निम्न तक<=उच्च

  • गिरफ्तारी के मूल्य की जाँच करें [मध्य]। यदि यह <=k है। फिर सूचकांक =मध्य। नया निम्न=मध्य+1

  • नहीं तो नया उच्च=मध्य-1.

  • जबकि लूप इंडेक्स के अंत में अंतिम नंबर का इंडेक्स होगा<=k.

  • परिणाम के रूप में अनुक्रमणिका+1 लौटाएं क्योंकि सरणी अनुक्रमण 0 से प्रारंभ होता है और अनुक्रमणिका 0 से अनुक्रमणिका तक सभी संख्याएं k से कम होती हैं।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int binarySearch(int arr[],int k,int len){
   int low = 0;
   int high = len -1;
   int mid = (high+low)/2;
   int index = -1;
   while(low <= high){
      mid =( low + high ) / 2;
      if(arr[mid] <= k){
         index = mid;
         low = mid+1;
      }
      else{
         high=mid-1;
      }
   }
   return (index+1);
}
int main(){
   int Arr[] = { 1,5,11,12,19,21,32,53,70,100 };
   int K = 21;
   int Length= sizeof(Arr)/sizeof(Arr[0]);
   cout <<"Numbers smaller or equal to K: "<<binarySearch(Arr,K,Length);
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Numbers smaller or equal to K: 6

  1. सी ++ में सभी तत्वों को समान बनाने के लिए न्यूनतम ऑपरेशन

    समस्या कथन n धनात्मक पूर्णांकों वाली एक सरणी को देखते हुए। हमें सभी तत्वों को समान बनाने के लिए न्यूनतम संख्या में ऑपरेशन खोजने की आवश्यकता है। हम सरणी तत्व पर किसी भी तत्व के साथ जोड़, गुणा, घटाव या भाग कर सकते हैं। उदाहरण यदि इनपुट ऐरे ={1, 2, 3, 4} है तो हमें सभी तत्वों को समान बनाने के लिए न्य

  1. सभी सरणी तत्वों को C++ में समान बनाने के लिए आवश्यक न्यूनतम संचालन

    समस्या कथन n धनात्मक पूर्णांकों वाली एक सरणी को देखते हुए। हमें सभी तत्वों को समान बनाने के लिए न्यूनतम संख्या में ऑपरेशन खोजने की आवश्यकता है। हम सरणी तत्व पर किसी भी तत्व के साथ जोड़, गुणा, घटाव या भाग कर सकते हैं। उदाहरण यदि इनपुट ऐरे ={1, 2, 3, 4} है तो हमें सभी तत्वों को समान बनाने के लिए न्य

  1. सी ++ में घुमाए गए क्रमबद्ध सरणी में घूर्णन गणना खोजें

    विचार करें कि हमारे पास एक सरणी है, जो क्रमबद्ध सरणी घुमाई गई है। हमें सरणी को सॉर्ट करने के लिए आवश्यक घुमावों की संख्या का पता लगाना होगा। (हम दाएं से बाएं घुमाने पर विचार करेंगे।) मान लीजिए कि सरणी इस प्रकार है:{15, 17, 1, 2, 6, 11}, तो हमें सरणी को क्रमबद्ध करने के लिए दो बार घुमाना होगा। अंतिम