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

C++ में सर्च इंसर्ट पोजीशन


समस्या विवरण

मान लीजिए हमारे पास एक सॉर्टेड सरणी arr और एक लक्ष्य मान है, हमें वह इंडेक्स ढूंढना है जहां लक्ष्य पाया जाता है। यदि यह मौजूद नहीं है, तो वह इंडेक्स लौटाएं जहां इसे क्रम में डाला जाएगा।

उदाहरण

यदि इनपुट है: [1,3,4,6,6], और target = 5, तो आउटपुट होगा 3, क्योंकि हम 5 को इंडेक्स 3 पर डाल सकते हैं, तो सरणी होगी [1,3,4,5,6,6]

हल करने का दृष्टिकोण

इस समस्या को हल करने के लिए निम्नलिखित चरणों का पालन करें (बाइनरी सर्च):

  • n := A का आकार
  • यदि n < 1, तो 0 लौटाएं
  • low := 0, high := n - 1
  • जब low <= high:
    • mid := low + (high - low) / 2
    • यदि A[mid], target के समान है:
      • mid लौटाएं
    • अन्यथा यदि A[mid] > target:
      • high := mid - 1, pos := mid
    • अन्यथा:
      • low := mid + 1, pos := mid + 1
  • pos लौटाएं

C++ कार्यान्वयन

#include <bits/stdc++.h>
using namespace std;

class Solution {
public:
    int searchInsert(vector<int>& A, int target) {
        int n = A.size();
        if(n < 1) {
            return 0;
        }
        int low = 0;
        int high = n-1;
        int mid;
        int pos;
        while(low <= high) {
            mid = low + (high-low)/2;
            if(A[mid] == target) {
                return mid;
            } else if(A[mid] > target) {
                high = mid - 1;
                pos = mid;
            } else {
                low = mid + 1;
                pos = mid + 1;
            }
        }
        return pos;
    }
};

int main() {
    Solution ob;
    vector<int> v = {1,3,4,6,6};
    cout << (ob.searchInsert(v,5));
    return 0;
}

इनपुट

{1,3,4,6,6},5

आउटपुट

3
  1. C++ में अद्वितीय बाइनरी सर्च ट्री II C++ में अद्वितीय बाइनरी सर्च ट्री II

    समस्यामान लीजिए हमारे पास एक पूर्णांक n है, हमें उन सभी संरचनात्मक रूप से अद्वितीय बाइनरी सर्च ट्री को उत्पन्न करना है जो 1 से n तक के मान संग्रहीत करते हैं। उदाहरण के लिए, यदि इनपुट 3 है, तो ट्री इस प्रकार होंगे:समाधान दृष्टिकोणइसे हल करने के लिए हम निम्न चरणों का पालन करेंगे:generate() नामक एक पुन

  1. C/C++ में 2-3 ट्री (खोज और सम्मिलन) C/C++ में 2-3 ट्री (खोज और सम्मिलन)

    2-3 ट्री को एक ट्री डेटा संरचना के रूप में परिभाषित किया गया है, जहां बच्चों वाला हर नोड (आंतरिक नोड) या तो दो बच्चे (2-नोड) और एक डेटा तत्व या तीन बच्चे (3-नोड्स) और दो डेटा तत्व रखता है।परिभाषाएंहम कहते हैं कि एक आंतरिक नोड 2-नोड है यदि इसमें एक डेटा तत्व और दो बच्चे हैं।हम कहते हैं कि एक आंतरिक न

  1. C++ में बाइनरी खोज प्रोग्राम C++ में बाइनरी खोज प्रोग्राम

    बाइनरी खोज क्या है? बाइनरी खोज (आधा-अंतराल खोज) एक खोज एल्गोरिदम है जो क्रमबद्ध सरणी में लक्ष्य मान की स्थिति ढूंढता है। यह लक्ष्य मान की तुलना मध्य तत्व से करता है और खोज स्थान को आधा कर देता है। मुख्य बिंदु केवल क्रमबद्ध सरणी पर काम करता है समय जटिलता: O(log n) दुनिया के सभी नाम क्रमबद्ध हों तो