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

C++ में मैक्स हीप में न्यूनतम एलिमेंट


समस्या कथन

मैक्स हीप में सबसे कम मान वाला एलिमेंट ढूंढें।

नीचे दिए गए मैक्स हीप पर विचार करें।

C++ में मैक्स हीप में न्यूनतम एलिमेंट

मैक्स हीप में रूट नोड का मान हमेशा उसके बच्चों से अधिक होता है। इस गुण के कारण, हम निष्कर्ष निकाल सकते हैं कि मान लीफ नोड्स में से एक में मौजूद होगा। यदि हीप में n नोड्स हैं तो ceil(n/2) लीफ होंगे।

मैक्स हीप एक पूर्ण बाइनरी ट्री है इसलिए इसे ऐरे में दर्शाया जा सकता है। ऐसे हीप में पहला लीफ floor(n/2) इंडेक्स के बाद मौजूद होगा। इसलिए हमारे उदाहरण में, पहला लीफ इंडेक्स 5 पर मौजूद होगा।

एल्गोरिदम

हम मैक्स हीप में न्यूनतम मान खोजने के लिए नीचे दिए गए एल्गोरिदम का उपयोग कर सकते हैं -

1. हीप में पहला लीफ ढूंढें और उसके मान को min मानें 2. सभी शेष लीफ्स पर इटरेट करें और यदि छोटे मान वाला लीफ मिले तो min वैल्यू अपडेट करें

उदाहरण

#include <iostream> #define SIZE(arr) (sizeof(arr) / sizeof(arr[0])) using namespace std; int getMinElement(int *heap, int n){    int minElement = heap[n / 2];    for (int i = n / 2 + 1; i < n; ++i) {       minElement = min(minElement, heap[i]);    }    return minElement; } int main(){    int heap[] = {120, 90, 100, 70, 75, 80, 60, 25, 40, 35};    cout << "Min value: " << getMinElement(heap, SIZE(heap)) << "\n";    return 0; }

आउटपुट

जब आप उपरोक्त प्रोग्राम को कंपाइल और एक्जीक्यूट करते हैं। यह निम्नलिखित आउटपुट जनरेट करता है -

Min value: 25

  1. C++ में बाइनोमियल हीप C++ में बाइनोमियल हीप

    बाइनोमियल हीप को बाइनरी हीप के विस्तार के रूप में परिभाषित किया गया है जो बाइनरी हीप द्वारा प्रदान किए गए अन्य ऑपरेशन्स के साथ तेज़ मर्ज या यूनियन ऑपरेशन प्रदान करता है।एक बाइनोमियल हीप को बाइनोमियल ट्रीज़ के संग्रह के रूप में माना जाता है।बाइनोमियल ट्री क्या है?k क्रम का एक बाइनोमियल ट्री k-1 क्रम

  1. - C++ में expm1() फ़ंक्शन

    expm1() फ़ंक्शन का उपयोग किसी भी संख्या की घात में एक्सपोनेंशियल घटा एक की गणना के लिए किया जाता है। यह (e की घात a) - 1 का मान लौटाता है। गणितीय अभिव्यक्ति expm1(a) = (e^a) - 1 C++ में सिंटैक्स float expm1(variable_name); पैरामीटर्स: variable_name - जिस वेरिएबल का मान गणना किया जाना है, उसे दिय

  1. - C++ में log1p() फ़ंक्शन

    log1p() फ़ंक्शन का उपयोग किसी भी संख्या a के लिए (a+1) के नेचुरल लॉगरिदम (आधार e लॉगरिदम) की गणना के लिए किया जाता है। यह (a+1) के नेचुरल लॉगरिदम का मान लौटाता है। जब हम -1 से कम मान पास करते हैं तो यह NaN (नॉट ए नंबर) लौटाता है। गणितीय अभिव्यक्ति log1p(a) = base-e log(a+1) C++ में सिंटैक्स float