एल्गोरिदम क्या है?

पता लगाएं कि एल्गोरिदम दुनिया कैसे चलाते हैं

एक एल्गोरिदम निर्देशों का एक सेट है। परिभाषा वास्तव में सरल है। एक एल्गोरिदम इस तरह के निर्देश देने के रूप में आसान हो सकता है:

  1. नीचे सड़क पर जाना
  2. पहले दाएं मोड़ से जाएं
  3. बाईं ओर दूसरा घर खोजें
  4. दरवाजे पर दस्तक और
  5. पैकेज वितरित करें।

लेकिन जबकि एल्गोरिदम की परिभाषा सरल है, वास्तविक अर्थ और यह हमारे जीवन को कैसे प्रभावित करता है, यह काफी जटिल हो सकता है।

एक एल्गोरिदम का एक उदाहरण

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

लेकिन क्या होगा यदि आप नहीं जानते कि मापने वाले कप को कहाँ रखा जाता है? इसे खोजने के लिए आपको एक एल्गोरिदम की आवश्यकता होगी। मापने वाले कप का उपयोग करने के तरीके पर आपको एल्गोरिदम की भी आवश्यकता हो सकती है।

इसलिए जब एक एल्गोरिदम निर्देशों का एक सेट होता है, तो उसे यह भी ध्यान रखना होगा कि उन निर्देशों की व्याख्या करने के लिए कौन या क्या जा रहा है। उदाहरण के लिए, यदि आप किसी मित्र को दिशानिर्देश देते हैं कि अपने घर से निकटतम किराने की दुकान में कैसे पहुंचे, तो आपके दोस्त को केवल यह पता चलेगा कि उस स्टोर में कैसे जाना है यदि उन्हें पता है कि आपका घर कहां स्थित है। वे उस विशेष किराने की दुकान को कहने में सक्षम नहीं हैं (अभी तक), एक और दोस्त का घर।

इस प्रकार एक एल्गोरिदम सरल और जटिल दोनों हो सकता है। और जब हम कंप्यूटर एल्गोरिदम के मामले में बात करते हैं, समझते हैं कि कंप्यूटर क्या करने में सक्षम है एल्गोरिदम तैयार करने का एक मौलिक हिस्सा है।

सॉर्टिंग एल्गोरिदम कैसे विकसित हुआ

बनाए गए सबसे शुरुआती एल्गोरिदम में से एक बबल सॉर्ट दिनचर्या था। बबल सॉर्ट डेटा सेट के माध्यम से लूपिंग करके संख्याओं, अक्षरों या शब्दों को क्रमबद्ध करने के लिए एक विधि है, मूल्यों के प्रत्येक सेट की तुलना करके, और आवश्यकता होने पर उन्हें स्वैप करना।

इस लूप को दोहराया जाता है जब तक कि एल्गोरिदम पूरी सूची के माध्यम से कुछ भी स्वैप करने की आवश्यकता के बिना आगे बढ़ सकता है, जिसका अर्थ है कि मान सही ढंग से क्रमबद्ध होते हैं। इस प्रकार के एल्गोरिदम को अक्सर रिकर्सिव एल्गोरिदम के रूप में जाना जाता है क्योंकि यह कार्य को पूरा होने तक अपने आप को ऊपर और ऊपर लूप करता है।

एल्गोरिदम इस तरह के रूप में सरल लग सकता है:

  1. पहले मूल्य पर जाएं।
  2. यदि आवश्यक हो तो अगले मान और स्वैप पदों के विरुद्ध उस मान को जांचें
  3. अगले मूल्य पर जाएं और तुलना दोहराएं।
  4. यदि हम सूची के अंत में हैं, तो लूप के दौरान किसी भी मूल्य को स्वैप किए जाने पर शीर्ष पर वापस जाएं।

लेकिन बबल प्रकार मूल्यों को क्रमबद्ध करने का सबसे प्रभावी तरीका नहीं बन गया। समय बीतने के बाद और कंप्यूटर जटिल कार्यों को जल्दी करने में अधिक सक्षम हो गए, नए सॉर्टिंग एल्गोरिदम पॉप अप हो गए।

ऐसा एक एल्गोरिदम पहली सूची के माध्यम से स्कैन करता है और क्रमबद्ध मानों की दूसरी सूची बनाता है। यह विधि केवल मूल सूची के माध्यम से एक ही पास बनाती है, और प्रत्येक मान के साथ, यह दूसरी सूची के माध्यम से लूप करेगा जब तक कि यह मान लगाने के लिए सही जगह न पाएं। आमतौर पर, यह बबल सॉर्ट विधि का उपयोग करने से अधिक कुशल है।

यह वह जगह है जहां एल्गोरिदम वास्तव में पागल हो सकते हैं। या वास्तव में दिलचस्प है, इस पर निर्भर करता है कि आप इसे कैसे देखते हैं।

जबकि बबल सॉर्ट विधि को कई तरीकों से मूल्यों को क्रमबद्ध करने के सबसे अक्षम तरीकों में से एक माना जाता है, यदि मूल सूची ठीक से निर्धारित की जाती है, तो बबल सॉर्ट सबसे कुशल में से एक हो सकता है। ऐसा इसलिए है क्योंकि, उस उदाहरण में, बबल सॉर्ट एल्गोरिदम एक ही समय में सूची के माध्यम से जाएगा और यह निर्धारित करेगा कि यह सही तरीके से सॉर्ट किया गया है।

दुर्भाग्यवश, हम हमेशा नहीं जानते कि हमारी सूची को पूर्ववत किया गया है, इसलिए हमें एक एल्गोरिदम चुनना है जो बड़ी संख्या में सूचियों में औसतन उपयोग करने के लिए सबसे प्रभावी होगा।

हम बबल सॉर्ट से क्या सीखते हैं

फेसबुक एल्गोरिदम और रोजमर्रा की जिंदगी में अधिक

एल्गोरिदम काम पर हैं हर दिन इंसानों की मदद करते हैं। जब आप वेब पर खोज करते हैं, तो एक एल्गोरिदम काम पर है जो सर्वोत्तम खोज परिणामों को खोजने का प्रयास कर रहा है। अपने स्मार्टफ़ोन को दिशानिर्देशों के लिए पूछें, और एक एल्गोरिदम आपके लिए सबसे अच्छा मार्ग तय करता है। और जब आप फेसबुक ब्राउज़ करते हैं, तो एक एल्गोरिदम तय करता है कि हमारे कौन से मित्र के फेसबुक पोस्ट हमारे लिए सबसे महत्वपूर्ण हैं। (आइए आशा करते हैं कि हमारे दोस्तों को यह पता न लगे कि कौन सा फेसबुक सोचता है कि हम सबसे ज्यादा पसंद करते हैं!)

लेकिन एल्गोरिदमिक सोचने से हमें हमारे कंप्यूटर के जीवन से बहुत दूर तक मदद मिल सकती है। यह हमें एक बेहतर सैंडविच बनाने में भी मदद कर सकता है।

मान लें कि मैं रोटी के दो स्लाइसों से शुरू करता हूं, सरसों को एक टुकड़ा और मेयोनेज़ पर एक और टुकड़ा फैलता हूं। मैंने मेयोनेज़ के साथ रोटी पर पनीर का एक टुकड़ा लगाया, उसके ऊपर कुछ हैम, कुछ सलाद, टमाटर के दो स्लाइस और फिर उस टुकड़े के साथ उस सरसों के साथ कैप करें। अच्छा सैंडविच, है ना?

निश्चित रूप से अगर मैं इसे तुरंत खाऊंगा। लेकिन अगर मैं इसे थोड़ी देर के लिए टेबल पर छोड़ देता हूं, तो रोटी का शीर्ष टुकड़ा उस टमाटर को भिगोने से सूजी हो सकता है। यह एक समस्या है जिसकी मुझे उम्मीद नहीं थी, और मैं ध्यान देने से पहले वर्षों तक सैंडविच बना सकता हूं, लेकिन एक बार ऐसा करने के बाद, मैं बेहतर सैंडविच बनाने के लिए अपने एल्गोरिदम को बदलने के तरीकों के बारे में सोचना शुरू कर सकता हूं।

उदाहरण के लिए, मैं टमाटर से छुटकारा पा सकता हूं। लेकिन मैं उस टमाटर के स्वाद को खोना नहीं चाहता। तो इसके बजाय, मैं रोटी और सलाद के बाद टमाटर को सैंडविच पर रख सकता हूं। यह सलाद टमाटर और रोटी के बीच सुरक्षात्मक बाधा बनाने की अनुमति देता है।

इस तरह एक एल्गोरिदम विकसित होता है। और एक एल्गोरिदम को कंप्यूटर द्वारा एल्गोरिदम होने के लिए चलाने की आवश्यकता नहीं होती है। एक एल्गोरिदम एक प्रक्रिया है, और प्रक्रियाएं हमारे चारों तरफ हैं।