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

C++ में अनसॉर्टेड सरणी में फ्लोर और सील ढूंढना

यहां हम देखेंगे कि अनसॉर्टेड सरणी में फ्लोर (floor) और सील (ceiling) कैसे ढूंढें। फ्लोर मान वह सबसे बड़ा तत्व है जो x से छोटा या बराबर है, और सील मान वह सबसे छोटा मान है जो x से बड़ा है। यदि सरणी A = [5, 6, 8, 9, 6, 5, 5, 6] है, और x=7 है, तो फ्लोर मान 6 है, और सील मान 8 है।

इस समस्या को हल करने के लिए, हम रैखिक खोज दृष्टिकोण का पालन करेंगे। हम सरणी को पार करेंगे और x के संबंध में दो दूरियों को ट्रैक करेंगे।

  • x से बड़ा या बराबर तत्व की न्यूनतम दूरी
  • x से छोटा या बराबर तत्व की न्यूनतम दूरी
  • अंत में, न्यूनतम दूरी वाले तत्व को प्रिंट करें

C++ उदाहरण

#include <iostream>
#include <climits>
using namespace std;

void floorCeilingPair(int arr[], int n, int x) {
    int floor_index = -1, ceiling_index = -1;
    int floor_dist = INT_MAX, ceil_dist = INT_MAX;
    
    for (int i = 0; i < n; i++) {
        if (arr[i] >= x && ceil_dist > (arr[i] - x)) {
            ceiling_index = i;
            ceil_dist = arr[i] - x;
        }
        if (arr[i] <= x && floor_dist > (x - arr[i])) {
            floor_index = i;
            floor_dist = x - arr[i];
        }
    }
    
    if (floor_dist == INT_MAX) cout << "Floor not found" << endl;
    else cout << "Floor value is " << arr[floor_index] << endl;
    
    if (ceil_dist == INT_MAX) cout << "Ceiling not found" << endl;
    else cout << "Ceil value is " << arr[ceiling_index] << endl;
}

int main() {
    int arr[] = {5, 6, 8, 9, 6, 5, 5, 6};
    int n = sizeof(arr) / sizeof(int);
    int x = 7;
    floorCeilingPair(arr, n, x);
    return 0;
}

आउटपुट

Floor value is 6
Ceil value is 8
  1. C++ में BST से फ्लोर और सीलिंग मान प्राप्त करना C++ में BST से फ्लोर और सीलिंग मान प्राप्त करना

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

  1. - C++ प्रोग्राम: दो अनसॉर्टेड एरे का यूनियन और इंटरसेक्शन ज्ञात करना

    इस लेख में, हम एक प्रोग्राम पर चर्चा करेंगे जो दो दिए गए अनसॉर्टेड एरे का यूनियन और इंटरसेक्शन ज्ञात करता है। आइए दो एरे को A और B से दर्शाएं। फिर उन एरे का यूनियन A ∪ B द्वारा दर्शाया जाता है जो मूल रूप से दोनों दिए गए एरे में सभी तत्वों का एक एरे है; बशर्ते कि प्रत्येक तत्व केवल एक बार दोहराए। इस

  1. - C++ में सील (ceil) और फ्लोर (floor) फ़ंक्शंस

    ceil फ़ंक्शन दिए गए मान के बराबर या उससे बड़ा सबसे छोटा पूर्णांक मान लौटाता है। <cmath> हेडर में घोषित। सिंगल पैरामीटर लेता है (double/float/long double)। सिंटैक्स double ceil(double x); float ceil(float x); उदाहरण #include <iostream> #include <cmath> using namespace std; int m