यह बाइनरी सर्च दृष्टिकोण का उपयोग करके सरणी के न्यूनतम एलिमेंट को खोजने के लिए एक C++ प्रोग्राम है। इस प्रोग्राम की समय जटिलता O(log n) है।
एल्गोरिदम
शुरुआत दिए गए अनसॉर्टेड डेटा सरणी के लिए बाइनरी सर्च ट्री बनाएं। न्यूनतम एलिमेंट खोजने के लिए पॉइंटर को बाएं सबसे चाइल्ड नोड पर ले जाएं। इस मान को दिए गए डेटा में न्यूनतम मान के रूप में प्रिंट करें। अंत
उदाहरण कोड
#include<iostream> using namespace std; struct node { int d; node *left; node *right; }; node* CreateNode(int d) { node *newnode = new node; newnode->d = d; newnode->left = NULL; newnode->right = NULL; return newnode; } node* InsertIntoTree(node* root, int d) { node *temp = CreateNode(d); node *t = new node; t = root; if(root == NULL) root = temp; else{ while(t != NULL) { if(t->d < d) { if(t->right == NULL) { // यदि वर्तमान नोड NULL है तो नोड डालें। t->right = temp; break; } // पॉइंटर को दाएं शिफ्ट करें। t = t->right; } else if(t->d > d) { if(t->left == NULL) { t->left = temp; break; } t = t->left; } } } return root; } int main() { int n, i, a[10]={86, 63, 95, 6, 7, 67, 52, 26, 45, 98}; node *root = new node; root = NULL; cout<<"\nडेटा सेट:\n"; for(i = 0; i < 10; i++) { cout<<a[i]<<" "; root = InsertIntoTree(root, a[i]); } cout<<"\n\nदिए गए डेटा सेट का न्यूनतम एलिमेंट है "; i = 0; while(root->left != NULL) { i++; root = root->left; } cout<<root->d<<" जो रूट से "<<i<<" गहराई पर मिला।"; return 0; } आउटपुट
डेटा सेट: 86 63 95 6 7 67 52 26 45 98 दिए गए डेटा सेट का न्यूनतम एलिमेंट 6 है जो रूट से 2 गहराई पर मिला।