एक एल्गोरिदम को निर्देशों के एक परिमित समूह (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);
}