Algorithm क्या है? (What is Algorithm in Hindi)

जब कभी आपने गूगल में कुछ सर्च किया होगा तब आपको गूगल सर्च रिजल्ट में कुछ पेज दिखाई दिए होंगे |  गूगल, सर्च रिजल्ट में इन पेजो को दिखाने के लिए कुछ विशेष Algorithm का उपयोग करता है | 

मगर ये एल्गोरिथ्म क्या है? (What is Algorithm In Hindi) इसका क्या उपयोग है? और कंप्यूटर प्रोग्रामिंग में एल्गोरिथ्म कैसे लिखा जाता है? आदि कुछ सवाल है जिनके बारे में आज हम इस आर्टिल्स में बात करने वाले है | 

तो आइये बना समय गवाए जानते है कि Algorithm Kya Hai?

Algorithm क्या है? (What is Algorithm in Hindi)

एल्गोरिथ्म क्या है? (What is Algorithm in Hindi)

“किसी स्पेसिफिक प्रॉब्लम को सॉल्व करने के लिए लिखा जाने वाला step by step प्रोसीजर Algorithm कहलाता है |”

Algorithm” शब्द का अर्थ है “process या set of rules या problem-solving operations”

Algorithm, किसी प्रॉब्लम को सॉल्व करने का एक procedure या step by step इंस्ट्रक्शन है |

एल्गोरिथम में एक बड़े स्टेप को छोटे-छोटे स्टेप्स में तोड़कर लिखा जाता है | 

Algorithm कुछ set of instructions है जो किसी विशिष्ट कार्य (जैसे दो नंबर को जोड़ने या फिर कोई काम्प्लेक्स ऑपरेशन भी हो सकता है) को करने के लिए डिज़ाइन किये जाते है | 

Search engines भी कुछ विशेष Algorithm का उपयोग सर्च रिजल्ट में पजो को दिखाने के लिए करते हैं।

ऐसे कई मामलों में किसी सॉफ्टवेयर प्रोग्राम के भीतर किसी ऑपरेशन को परफॉर्म करने के कई असारे तरीके हो सकते है इसलिए उन सभी तरीको में से सबसे सही तरीके को लागु करने के लिए एक कुशल Algorithm बनाया जाता है | 

अत्यधिक कुशल Algorithm का उपयोग करके, डेवलपर्स यह सुनिश्चित कर सकते हैं कि उनके प्रोग्राम्स यथासंभव तेजी से चलें और कम से कम सिस्टम रिसोर्सेज का उपयोग करें। 

बेशक, सभी Algorithm पहली बार पूरी तरह से नहीं बनाए जा सकते इसलिए, डेवलपर्स अक्सर मौजूदा Algorithm में सुधार करते रहते हैं और उन्हें भविष्य के सॉफ़्टवेयर अपडेट में शामिल करते रहते हैं।

जब आप किसी सॉफ़्टवेयर प्रोग्राम का new version देखते हैं जिसे “optimized” किया गया है या जिसका “faster performance” है, तो इसका अर्थ है कि नए संस्करण में अधिक कुशल Algorithm शामिल किया गया हैं।

प्रोग्रामिंग एल्गोरिथ्म क्या है? (What is Algorithm in Computer Programming)

प्रोग्रामिंग एल्गोरिथम एक procedure या sequence of instruction है जो कंप्यूटर को बताती है कि क्या करना है और कैसे करना है | 

कंप्यूटर एल्गोरिथम language-independent होता हैं, यानी एल्गोरिथम ऐसे निर्देश हैं जिन्हें किसी भी लैंग्वेज में अप्लाई किया जा सकता है | 

एक बार जब आप अपने Algorithm को किसी लैंग्वेज में बदल देंगे जिसे वह समझता है तो कंप्यूटर इसे हर बार ठीक उसी तरह करेगा जिस तरह Algorithm में बताया गया होगा। 

हालांकि, यह बात ध्यान रखना महत्वपूर्ण है कि प्रोग्रामिंग एल्गोरिदम कोई कंप्यूटर कोड नहीं है। यह साधारण अंग्रेजी में लिखा गया इंस्ट्रक्शन या स्टेप्स है। 

इसमें केवल वही चीजे शामिल होती है जो आपको कार्य पूरा करने के लिए आवश्यक होते है। इसमें unclear कुछ भी शामिल नहीं होता।

आप प्रोग्रामिंग एल्गोरिथम को एक recipe के रूप में मान सकते हैं जो किसी प्रॉब्लम को सॉल्व करने या लक्ष्य तक पहुंचने के लिए कंप्यूटर के लिए आवश्यक steps को describe करता है।

कुछ लोग केवल फ़्लोचार्ट डायग्राम या pseudocode का उपयोग करते हैं, जिसके बारे में हम आगे बात करेंगे | अभी के लिए हम अब एल्गोरिथ्म को एक उदाहरण द्दारा समझने का प्रयास करते है -:

Example of Algorithm -:

जैसे की हम कोई व्यंजन बनाने के लिए कुछ स्टेप्स ऑफ़ रूल्स फॉलो करते है ठीक उसी तरह किसी प्रोग्राम को बनाने के लिए हम Algorithm डिज़ाइन करते है | ये Algorithm उस प्रोग्राम को कुशल तरीके से बनाने में उपयोग होने वाला सेट ऑफ़ रूल्स को describe करते है | 

Example 1: केतली में पानी उबालने का तरीका बताना।

कंप्यूटर को दिए गए निर्देश किसी मित्र को दिए गए निर्देशों से भिन्न होते हैं। आइए उनके बीच के अंतर को देखें और जानें कि कंप्यूटर को निर्देश कैसे दिया जाता है और इसके लिए एल्गोरिथ्म कैसे लिखा जाता है।

Instructions to a Friend:

  • Step 1: केतली को पानी से भरें।
  • Step 2: इसे स्टोव पर रखें और बर्नर चालू करें।
  • Step 3: जब पानी उबलने लगे तो बर्नर को बंद कर दें।

Instructions to the Computer:

  • Step 1: केतली को नल के नीचे रखें।
  • Step 2: नल चालू करें।
  • Step 3: जांचें कि केतली का 90% भरा हुआ है या नहीं।
  • Step 4: यदि नहीं, तो उपरोक्त चरण को दोहराएं।
  • Step 5: नल बंद करें।
  • Step 6: केतली को बर्नर में रखें।
  • Step 7: बर्नर चालू करें।
  • Step 8: जाँच करें कि पानी 100 C है या नहीं
  • Step 9: यदि नहीं, तो उपरोक्त चरण को दोहराएं।
  • Step 10: बर्नर बंद करें।

Example 2 -:

Instruction to a Friend:

  • Step 1: कॉलेज बोर्ड के पास जाना |
  • Step 2: बोर्ड पर मेरा नाम सर्च करना |
  • Step 3: मेरे नाम के सामने क्या रैंक है उसे चेक करना | 

Instructions to the Computer:

  • Step 1: कॉलेज बोर्ड पर जाएं।
  • Step 2: पहला नाम पढ़ें।
  • Step 3: यदि यह मेरा नाम है, तो रैंक देखें और वापस आएं
  • Step 4: यदि यह मेरा नाम नहीं है तो अगला नाम पढ़ें।
  • Step 5: उपरोक्त दो चरणों को तब तक दोहराएं जब तक आपको मेरा नाम न मिल जाए।

ऊपर बताये गए उदाहरण को आप एक बार ध्यान से देखे! इस उदाहरण में मैंने कंप्यूटर से कार्य कराने के लिए जो इंस्ट्रक्शन या स्टेप्स बताये है वही एल्गोरिथ्म है 

प्रोग्राम लिखने का प्रयास करने से पहले एल्गोरिथम को लिखना एक अच्छा प्रैक्टिस माना जाता है। एल्गोरिथम का प्रत्येक स्टेप प्रोग्रामिंग लैंग्वेज में एक लाइन या set of lines में परिवर्तित हो जाता है।

एल्गोरिथ्म की विशेषताएं (Characteristics of an algorithm)

जैसा कि कोई व्यंजन बनाने के लिए हम केवल कुछ standard इंस्ट्रक्शन को फॉलो करते है इसी तरह, प्रोग्रामिंग के लिए सभी इंस्ट्रक्शन एक एल्गोरिथम नहीं होते  । एल्गोरिथम बनने के लिए इनमे निम्नलिखित विशेषताएं होनी चाहिए:

1. Clear and Unambiguous -: Algorithm स्पष्ट होने चाहिए। इसके प्रत्येक steps सभी पहलुओं में Clear होने चाहिए और मीनिंग भी केवल एक ही होने चाहिए।

2. Well-Defined Inputs -: यदि कोई Algorithm इनपुट लेने के लिए कहता है, तो यह इनपुट अच्छी तरह से defined होना चाहिए।

3. Well-Defined Outputs -: एल्गोरिथम को स्पष्ट रूप से define करना चाहिए कि कौन सा आउटपुट प्राप्त होगा | 

4. Finite-ness -: एल्गोरिथ्म finite या सिमित होना चाहिए, अर्थात यह एक अनंत लूप या समान में समाप्त नहीं होना चाहिए। इसकी एक सीमा होनी चाहिए | 

5. Feasible -: एल्गोरिथ्म सरल, सामान्य और व्यावहारिक होना चाहिए | यह available resources पर execute किया जा सके | 

6. Language Independent -: डिज़ाइन किया गया एल्गोरिदम Language Independent होना चाहिए, यानी यह केवल plain instructions होने चाहिए जिसे किसी भी Language में अप्लाई किया जा सके, और फिर आउटपुट वही हो, जैसा की expected था।

एल्गोरिथम के फायदे (Advantages of Algorithm In Hindi)

  • एल्गोरिथ्म को समझना आसान होता है।
  • एल्गोरिथम किसी समस्या के समाधान का step-wise representation है।
  • एल्गोरिथम में समस्या को छोटे-छोटे टुकड़ों या चरणों में तोड़ दिया जाता है, इसलिए प्रोग्रामर के लिए इसे वास्तविक प्रोग्राम में बदलना आसान हो जाता है।
  • एल्गोरिथम के प्रत्येक चरण का अपना logical sequence होता है, जिससे डिबग करना आसान हो जाता है।

एल्गोरिथम के नुकसान (Disadvantages of Algorithm In Hindi)

  • एल्गोरिथम लिखने में लंबा समय लगता है इसलिए यह time-consuming है।
  • एल्गोरिथम में ब्रांचिंग और लूपिंग स्टेटमेंट show करना मुश्किल होता है | 

Algorithm शब्द कहा से आया? 

‘Algorithm” शब्द पर्शियन माथेमैटिशन “Muhammad ibn-Musa al-Khwarizmi” (जिन्होंने मैथेमेटिक्स के साथ , कंप्यूटर साइंस , जियोग्राफी, आदि क्षेत्रों में अपना अहम् योगदान दिया) के नाम से आया | 

al-Khwarizmi शब्द से algorism शब्द आया और फिर algorism से algorithm शब्द बना | 

Algorithm के प्रकार (Types of Algorithm)

अलग अलग प्रॉब्लम को सॉल्व करने के लिए अलग अलग प्रकार के अल्गोरिथम का उपयोग किया जाता है | इनमे से कुछ प्रमुख Algorithm निम्नलिखित है -:

  • Simple recursive algorithms.
  • Backtracking algorithms.
  • Divide and conquer algorithms.
  • Dynamic programming algorithms.
  • Greedy algorithms.
  • Branch and bound algorithms.
  • Brute force algorithms.
  • Randomized algorithms.

ये सभी Algorithm के प्रकार है जिनके बारे में हो सकता है कि आपको कुछ न पता हो इसलिए मैंने निचे एक इंग्लिश आर्टिकल का लिंक दिया है जहाँ से आप एल्गोरिथ्म के इन प्रकारो के बारे में पढ़ सकते है | 

Conclusion

तो दोस्तों आज के इस आर्टिकल में हमनें जाना कि एल्गोरिथ्म क्या है? (What is Algorithm In Hindi) एल्गोरिथ्म कितने प्रकार के होते है? (Types of Algorithm In Hindi) और एल्गोरिथ्म उपयोग करने के क्या फायदे और क्या नुकसान है? (Advantages and Disadvantages of Algorithm in Hindi)

अगर आपको ये पोस्ट पसंद आया है तो इस पोस्ट को अपने दोस्तों को शेयर करना न भूलिएगा ताकि उनको भी Algorithm Kya Hai के बारे में जानकारी प्राप्त हो सके |

अगर आपको अभी भी What is Algorithm in Hindi से संबंधित कोई भी प्रश्न या Doubt है तो आप कमेंट्स के जरिए हमसे पुछ सकते है। मैं आपके सभी सवालों का जवाब दूँगा और ज्यादा जानकारी के लिए आप हमसे संपर्क कर सकते है |

ऐसे ही नया टेक्नोलॉजी, Computer Science, computer fundamentals से रिलेटेड जानकारियाँ पाने के लिए हमारे इस वेबसाइट को सब्सक्राइब कर दीजिए | जिससे हमारी आने वाली नई पोस्ट की सूचनाएं जल्दी प्राप्त होगी |

Jeetu Sahu is A Web Developer | Computer Engineer | Passionate about Coding, Competitive Programming and Blogging

Leave a Comment