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

डेटा स्ट्रक्चर में एल्गोरिदम विशिष्टता-परिचय

एक एल्गोरिदम को निर्देशों के एक परिमित समूह (Finite Set of Instructions) के रूप में परिभाषित किया जाता है जिसका पालन करने पर एक विशेष कार्य पूरा होता है। सभी एल्गोरिदम निम्नलिखित मानदंडों को पूरा करना चाहिए:

  • इनपुट (Input): एक एल्गोरिदम में शून्य या अधिक इनपुट होते हैं, जो वस्तुओं के एक निर्दिष्ट समूह से लिए या एकत्र किए जाते हैं।
  • आउटपुट (Output): एक एल्गोरिदम में एक या अधिक आउटपुट होते हैं जिनका इनपुट से विशिष्ट संबंध होता है।
  • निश्चितता (Definiteness): प्रत्येक चरण स्पष्ट रूप से परिभाषित होना चाहिए; प्रत्येक निर्देश स्पष्ट और अस्पष्टता रहित होना चाहिए।
  • परिमितता (Finiteness): एल्गोरिदम को परिमित संख्या में चरणों के बाद समाप्त या समाप्त होना चाहिए।
  • प्रभावशीलता (Effectiveness): किए जाने वाले सभी ऑपरेशन पर्याप्त रूप से बुनियादी होने चाहिए कि वे सटीक और परिमित लंबाई में किए जा सकें।

हम एक एल्गोरिदम को कई तरीकों से चित्रित कर सकते हैं।

  • प्राकृतिक भाषा (Natural Language): अंग्रेजी जैसी प्राकृतिक भाषा लागू करें
  • फ्लो चार्ट्स (Flow Charts): फ्लोचार्ट्स द्वारा चित्रमय प्रतिनिधित्व, केवल तभी यदि एल्गोरिदम छोटा और सरल हो।
  • स्यूडो कोड (Pseudo Code): यह स्यूडो कोड अस्पष्टता के अधिकांश मुद्दों को छोड़ देता है; प्रोग्रामिंग भाषा के सिंटैक्स के संबंध में कोई विशेष बात नहीं।

उदाहरण 1: किसी संख्या का फैक्टोरियल मान निकालने के लिए एल्गोरिदम

Step 1: एक संख्या n इनपुट की जाती है
Step 2: वेरिएबल final को 1 सेट किया जाता है
Step 3: final ← final * n
Step 4: n घटाएं
Step 5: जांचें कि क्या n 0 के बराबर है
Step 6: यदि n शून्य के बराबर है, तो Step 8 पर जाएं (लूप से बाहर निकलें)
Step 7: अन्यथा Step 3 पर जाएं
Step 8: परिणाम final प्रिंट किया जाता है

रिकर्सिव एल्गोरिदम (Recursive Algorithms)

एक रिकर्सिव एल्गोरिदम स्वयं को कॉल करता है जो आमतौर पर रिटर्न वैल्यू को पैरामीटर के रूप में एल्गोरिदम को फिर से पास करता है। यह पैरामीटर इनपुट को इंगित करता है जबकि रिटर्न वैल्यू आउटपुट को इंगित करता है।

रिकर्सिव एल्गोरिदम को सरलीकरण की एक विधि के रूप में परिभाषित किया जाता है जो समस्या को समान प्रकृति के उप-समस्याओं (Sub-problems) में विभाजित करता है। एक रिकर्सन का परिणाम अगले रिकर्सन के लिए इनपुट के रूप में माना जाता है। पुनरावृत्ति स्व-समान फैशन (Self-similar Fashion) में होती है। एल्गोरिदम छोटे इनपुट मानों के साथ स्वयं को कॉल करता है और केवल इन छोटे मानों पर ऑपरेशन करके परिणाम प्राप्त करता है। फैक्टोरियल उत्पन्न करना, फाइबोनैचि संख्या श्रृंखला रिकर्सिव एल्गोरिदम के उदाहरण हैं।

उदाहरण: रिकर्सन का उपयोग करके फैक्टोरियल फंक्शन लिखना

int factorialA(int n) {
    return n * factorialA(n-1);
}
  1. डेटा संरचना में येन का k-सबसे छोटा पथ एल्गोरिदम (Yen s k-Shortest Path Algorithm) डेटा संरचना में येन का k-सबसे छोटा पथ एल्गोरिदम (Yen's k-Shortest Path Algorithm)

    एकल सबसे छोटा पथ देने के बजाय, येन का k-सबसे छोटा पथ एल्गोरिदम k सबसे छोटे पथ देता है ताकि हम दूसरा सबसे छोटा पथ और तीसरा सबसे छोटा पथ और इसी तरह प्राप्त कर सकें। आइए एक परिदृश्य पर विचार करें कि हमें स्थान A से स्थान B तक यात्रा करनी है और स्थान A और स्थान B के बीच कई मार्ग उपलब्ध हैं, लेकिन हमें

  1. डेटा संरचना में व्यंजक ट्री बनाने का एल्गोरिदम (Algorithm to construct an Expression Tree) डेटा संरचना में व्यंजक ट्री बनाने का एल्गोरिदम (Algorithm to construct an Expression Tree)

    व्यंजक ट्री (Expression trees) व्यंजक ट्री वे हैं जिनमें पत्ती नोड्स में संचालित होने वाले मान होते हैं, और आंतरिक नोड्स में वह ऑपरेटर होता है जिस पर पत्ती नोड का संचालन किया जाएगा। उदाहरण 4 + ((7 + 9) * 2) का व्यंजक ट्री निम्नानुसार होगा: व्यंजक ट्री बनाने का एल्गोरिदम मान लीजिए T व्यंजक ट्री ह

  1. हाफएज डेटा स्ट्रक्चर (Halfedge Data Structure) हाफएज डेटा स्ट्रक्चर (Halfedge Data Structure)

    परिचय (Introduction) टेम्पलेट पैरामीटर्स के लिए HDS या हाफएज डेटा स्ट्रक्चर (Halfedge Data Structure - संक्षिप्त HalfedgeDS) को एक एज-केंद्रित डेटा स्ट्रक्चर (Edge-centered Data Structure) के रूप में परिभाषित किया जाता है जो वर्टेक्स, एज और फेसेस (Vertices, Edges and Faces) की घटना जानकारी (Incidenc