Algorithm क्या है? Algorithm की परिभाषा तथा उदाहरण, उपयोग, लिखने का तरीका तथा इसके प्रकार | Need of algorithm, What is Algorithm in Hindi
Table of Contents
- 1 एल्गोरिदम(Algorithm) क्या है?
- 2 एल्गोरिदम (Algorithm) की परिभाषा
- 3 Algorothims के विशेषता क्या है( Characteristics of an Algorithms)
- 4 Advantage of Algorithm (एल्गोरिदम के लाभ)
- 5 Disadvantage of Algorithm ( एल्गोरिदम के हानी)
- 6 Algorithm कैसे लिखते हैं
- 7 एल्गोरिदम के प्रकार( Type of Algorithm)
- 8 Algorithm की जरूरत क्या है(Need of Algorithm)
- 9 Algorithm के उदाहरण
- 10 FAQ
एल्गोरिदम(Algorithm) क्या है?
हर काम को करने का एक तरीका होता है| इन तरीको के कई चरण(Steps) होते हैं| जिसे एक के बाद एक स्टेप करने पर पूरा काम संपन्न होता प है| कोई भी काम को सुचारू रूप से करने के लिए हमें इसे कई चरण में करने पड़ते हैं| इन चरणों की संख्या निश्चित होती है तथा यह स्पष्ट भाषा में लिखे होते हैं| साधारण भाषा में किसी भी काम को चरणबद्ध तरीके से करने की प्रक्रिया को Algorithm कहते हैं| आइए हम Algorithms को परिभाषित करें|
एल्गोरिदम (Algorithm) की परिभाषा
किसी भी कार्य जैसे कोई Mathematical Computation, कोई logical computation या विशेष प्रकार के Problem को solve करने के लिए निश्चित संख्या तथा स्पष्ट तरीके से लिखे गए set of Instruction को Algorithm कहते हैं|
दूसरे शब्दों में कहें तो Algorithm एक set of rules होता है, जो step by step यह सुनिश्चित करता है कि, कोई विशेष कार्य वांछित परिणाम(expected result) के लिए कैसे संपादित किया जाएगा|
Algorithm को हम Inpute देते हैं| उस Input को Algorithm प्रोसेस करता है और हमें Output प्रदान करता है|
Algorithm को हम एक नई रेसिपी बनाने का उदाहरण लेकर आसानी से समझ सकते हैं| जब हमें कोई एक नई डिश बनानी होती है| तो उसके बनाने के तरीके को step by step समझते हैं | जिस क्रम में उनके steps दिए होते हैं । उसे उसी क्रम में पालन करते हुए उसे बनाते हैं| परिणाम स्वरूप हमारा नया डिश बनकर तैयार हो जाता है|
बिल्कुल इसी तरह से कंप्यूटर साइंस में वांछित परिणाम प्राप्त करने में Algorithm हमारी सहायता करता है| जब किसी task को पूरा करने के लिए Computer program लिखना होता है| तब हम सबसे पहले उसका Algorithm लिखते हैं| Algoritms किसी भी Computer programming language पर आधारित नहीं होता है| हम इसे साधारण अंग्रेजी भाषा या अन्य बोलचाल की भाषा में लिखते हैं|
एक बार algorithm लिख लिया जाता है| तब इसे किसी भी programmimg language के programe में आसानी के साथ कन्वर्ट कर दिया जाता है|
Algorothims के विशेषता क्या है( Characteristics of an Algorithms)
जैसा कि अभी हमने बताया की Set of Instruction को Algorithm कहते हैं| परंतु कोई भी Set of Instruction को Algorithm नहीं कह सकते हैं| Set of Instruction को Algorithm कहलाने के लिए निम्नलिखित charteristics का पालन करना पड़ता है-
- Well Defined Inputs(अच्छी तरह से परिभाषित इनपुट)
- Well Defind Outputs(अच्छी तरह से परिभाषित आउटपुट)
- Finiteness(निश्चित स्टेप्स )
- Clear and Unambiguous(स्पष्टता)
- Feasible( होने लायक)
- Language Independent(किसी भाषा पर आधारित नहीं)
Well Defined Inputs
किसी भी प्रकार के कार्य के संपादन के लिए Algorithms को Input देना पड़ता है| यह इनपुट किस प्रकार का का होगा, इसकी संख्या क्या होगी इत्यादि स्पष्ट रूप से परिभाषित होना चाहिए|
Well Defined Outputs
Algorithm दिए गए इनपुट को process कर आउटपुट प्रदान करता है| अर्थात Algorithm अपना कार्य को संपादन करके वांछित परिणाम देता है| यह परिणाम स्पष्ट रूप से परिभाषित होना चाहिए| आउटपुट का प्रकार होगा, इसकी संख्या क्या होगी इत्यादि|
Finiteness
जैसा कि हम जानते हैं, Set of Instruction को हम Algorithm कहते हैं| Algorithm में Instruction की संख्या निश्चित होनी चाहिए| अर्थात एक निश्चित number of Instruction के बाद दिया गया task पूरा होकर वांछित परिणाम मिल जाना चाहिए|
Feasible
Algorithm साधारण शब्दों में लिखा होना चाहिए | यह सामान्य और व्यवहारिक भी होना चाहिए| कभी भी Algorithm के Instruction भविष्य के तकनीक पर आधारित तथा अनुपलब्ध साधन पर आधारित नहीं होना चाहिए| Algorithm को उपलब्ध संसाधन पर ही कार्य करने वाला होना चाहिए|
Language Independent
Algorithm को किसी भी प्रोग्रामिंग भाषा पर आधारित नहीं होना चाहिए| इसे सामान्य भाषा में लिखा होना चाहिए| जिसे कभी भी किसी भी प्रोग्रामिंग भाषा में बदला जा सके| किसी भी प्रोग्रामिंग भाषा में बदलने के बाद एक ही तरह का वांछित परिणाम मिलना चाहिए|
Advantage of Algorithm (एल्गोरिदम के लाभ)
Algorithm के लाभ को निम्न प्रकार से देख सकते हैं:-
- Algorithm को लिखना आसान है|
- लिखे गए Algorithm को Flow Chart अथवा program में कन्वर्ट करना काफी आसान हो जाता है|
- इसे समझना बहुत आसान होता है|
- Algorithm किसी भी समस्या का step by step समाधान होता है|
- यह जटिल समस्या के समाधान को छोटे-छोटे steps में बांट देता है|
- इसे किसी भी प्रोग्रामिंग लैंग्वेज के प्रोग्राम में बदलना आसान हो जाता है|
Disadvantage of Algorithm ( एल्गोरिदम के हानी)
- Actual program लिखने से पहले Algorithm लिखना एक अतिरिक्त कार्य हो जाता है|
- Algorithm लिखने में काफी समय लगता है| अतः यह एक Time consuming Pocess है|
- Algorithm में Branching तथा Looping instructions को लिखना कठिन कार्य है|
- Complex logic को Algorithm में लिखना मुश्किल होता है|
- बड़े Task का Algorithm लिखना मुश्किल कार्य है|
Algorithm कैसे लिखते हैं
Algorithm लिखने से पहले कुछ बातों का ध्यान रखना पड़ता है| इसे लिखने से पहले कई सारे चीजों को अच्छी तरह से analyse करते हैं| कई तरह के Parameter को ध्यान में रख कर Algorithm को लिखा जाता है| आइए समझते है कि वह कौन-कौन से कारक है, जिसे Algorithm लिखने से पहले समझना जरूरी है|
- The Problem(समस्या) -सर्वप्रथम हमें दिए गए समस्या को समझना पड़ता है| अगर हम समस्या को समझ गए| तो समझिए समस्या का आधा समाधान मिल गया| इसलिए समस्या क्या है, इसको अच्छी तरह से analyse करना बहुत जरूरी होता है|
- The Constraints( शर्तें)-समस्या को अच्छी तरह से समझ लेने के बाद उसके समाधान निकालने के क्रम में कौन-कौन सी शर्तों को का पालन करना है| इन शर्तों को अच्छी तरह से समझना तथा उनका ध्यान रखना जरूरी होता है|
- The Input– समस्या का समाधान निकालने के लिए किस तरह का इनपुट की जरूरत होगी| इनपुट का प्रकार क्या होगा, उनकी संख्या क्या होगी| यह सुनिश्चित करना जरूरी हो जाता है|
- The Output(परिणाम) – इनपुट लेने के बाद Algorithm किस प्रकार का आउटपुट प्रदान करेगा| इसे भी पहले से समझ लेना पड़ता है| आउटपुट का प्रकार क्या होगा तथा इसे किस तरह से प्रदर्शित किया जाएगा|
- The Solution (समाधान)– समस्या, शर्तें, इनपुट, तथा आउटपुट को अच्छी तरह से विश्लेषण कर लेने के बाद उसकी समाधान का विश्लेषण करते हैं| यह किस तरह से स्टेप बाय स्टेप लिखा जाएगा, किस तरह से हम इनपुट का उपयोग उपयोग करेंगे, इसके प्रोसेसिंग में कौन सा फार्मूला लगाएंगे इत्यादि बातों को विश्लेषण करते हैं|
एल्गोरिदम के प्रकार( Type of Algorithm)
Concept के आधार पर Algorithm को विभिन्न प्रकार में विभाजित किया गया है| इ इनमें से कुछ मुख्य प्रकार के Algorithm नीचे दिए गए है|
Divide and Conquer algorithm
इस तकनीक के द्वारा दिए गए बड़े प्रॉब्लम को छोटी प्रॉब्लम में विभाजित किया जाता है| अगर उस छोटे प्रॉब्लम का भी Solution नहीं मिलता है| तब उसे फिर से और छोटे प्रॉब्लम में विभाजित किया जाता है| इस तरह से विभाजित करते करते प्रॉब्लम को सबसे छोटे प्रॉब्लम तक विभाजित कर दिया जाता है| जहां उसका समाधान मिल जाता है| फिर इन छोटे-छोटे प्रॉब्लम के समाधान को जोड़कर, मुख्य समस्या के समाधान को प्राप्त कर लिया जाता है|
Recursive Algorithm
इस प्रकार के एल्गोरिदम अपने आप को छोटे इनपुट वैल्यू के साथ कॉल करता है| फिर कॉल किए गए एल्गोरिदम फिर से और छोटे इनपुट के साथ अपने आपको कॉल करता है| इस तरह से Algorithm प्रॉब्लम का सॉल्यूशन मिलने तक अपने आपको कॉल करते रहता है|
Brute Force Algorithm
यह एक सबसे सरल Algorithm का Concept है| इसमें algorithm समस्या के एक या एक से अधिक समाधान प्राप्त करने के लिए सभी संभावित सभी समाधानओ की जांच करता है|
Greedy Algorithm
इस प्रकार की Algorithm के द्वारा Optimization problem का समाधान निकालते हैं| इसमें भविष्य में होने वाली किसी भी परिणाम की परवाह किए बिना Locally optimum solution निकाला जाता है| इसका उपयोग करते हुए global level पर Optimum solution प्राप्त कर लिया जाता है|
Dynamic Programming Algorithm
डायनेमिक प्रोग्रामिंग Algorithm में कंपलेक्स प्रॉब्लम को छोटे और साधारण सब प्रॉब्लम में विभाजित कर दिया जाता है| फिर इन छोटे सब प्रॉब्लम का समाधान निकाल कर भविष्य के उपयोग के लिए स्टोर कर लिया जाता है| दरअसल डायनेमिक प्रोग्रामिंग Algorithm अपने पिछले एग्जीक्यूट किए हुए रिजल्ट याद रखता है और इसका उपयोग नया रिजल्ट प्राप्त करने के लिए करता है|
Backtraching Algorithm
Backtraching Algorithm तकनीक के द्वारा समस्या का समाधान Incremental approach में निकाला जाता है | इसमें प्रॉब्लम का सॉल्यूशन recursively निकाला जाता है| एक बार में प्रॉब्लम के एक छोटे से भाग को solve किया जाता है| अगर algorithm इसमें फेल हो जाता है| तब फिर से पीछे जाकर (backtrack) प्रॉब्लम के उस छोटे भाग का सॉल्यूशन फिर से निकालने की कोशिश करता है|
Algorithm की जरूरत क्या है(Need of Algorithm)
एल्गोरिदम हमें problem का विश्लेषण करने तथा इसको समाधान करने के लिए बुनियादी तरीका बताता है| कई कारणों से इसकी जरूरत महसूस होती है| Algorithm की जरूरत क्या है(Need of Algorithm) :
- Algorithm वर्तमान तकनीक के efficiency को improve करता है|
- इसके सहायता से एक तकनीक की दूसरे तकनीक से तुलना करते हैं|
- Algorithm की सहायता से flow of control को समझने में मदद मिलती है|
- एल्गोरिथम इनपुट, आउटपुट और मेमोरी के जरूरत की पहचान करता है|
- Algorithm की मदद से problem की time comlexity और space complexity की विश्लेषण तथा गणना करते हैं |
- इसकी सहायता से किसी भी Method का परफॉर्मेंस(Best case, Worst Case, average case) measure करते हैं
- Algorithm डिजाइन में होने वाले खर्च को कम करता है|
Algorithm के उदाहरण
अब हम Algorithm को कुछ उदाहरण के द्वारा समझते हैं| आखिर इसे लिखा कैसे जाता है|
Example 1: दो नंबर को जोड़ने के लिए एक Algorithm लिखिए|
Algorithm:
Step1: Start
Step2: Read 2 numbers X, Y
Step3: Add two numbers Z=X+Y
Step4: Display C
Step5: Stop
Example2: दिए गए तीन नंबर में से सबसे बड़े नंबर को प्रिंट करने के लिए अ Algorithm लिखें|
Example3 : Quadratic equatin ax2 + bx + c = 0 की रूट निकालने के लिए Algorithm लिखें|
Exmale2 और Example3 के Algorithm नीचे लिखें|
FAQ
Algorithm की दक्षता किसी दूसरे alternative algorithm की तुलना में मापने की तरीके को Complexity of Algorithm कहते हैं| जो algorithm कम से कम execuion time तथा कम से कम memory space लेता है, वह efficient algorithm माना जाता है|
किसी भी होगा Program(algorithm) को दिए हुए input के लिए exucute( run) करने में लगने वाले समय को Time complexity कहते हैं|
Spca complesity के द्वारा एल्गोरिदम के एग्जीक्यूशन में जरूरत पड़ने वाली memory space का विश्लेषण किया जाता है|
Merge sort, Quick Sort, Binary Sort.
आशा है आपको Algorithm से संबंधित यह आर्टिकल एक पसंद आया होगा| आपको समझ में आ गया होगा कि Algorithm क्या है? यह आर्टिकल खासकर उन विद्यार्थियों को ध्यान में रखकर लिखा गया है| जो कंप्यूटर से संबंधित कोई कोर्स हिंदी में करते हैं| जैसे ओ लेवल कोर्स, बीसीए इत्यादि| इससे संबंधित अगर कोई और प्रश्न आपके पास है| तो आप कमेंट कर पूछ सकते हैं|
इन्हें भी पढ़ें:
Bahut hi behtrin trike se smjhaya,sbse bdi baat ek hi chij repeat nhi ki gai …..Plz visit my site also!