एल्गोरिथ्म के हो?

एल्गोरिदम कसरी संसार चलाउन खोज्नुहोस्

एल्गोरिदम निर्देशनहरूको सेट हो। परिभाषा वास्तवमा सरल छ। एल्गोरिथ्म यो निर्देशनहरू जस्तै सजिलो हुन सक्छ:

  1. सडक तल जानुहोस्
  2. पहिलो दायाँ लिनुहोस्
  3. बाँयामा दोस्रो घर फेला पार्नुहोस्
  4. ढोका खोल्नुहोस् र
  5. प्याकेज डेलिभर गर्नुहोस्।

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

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

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

तर यदि तपाईलाई थाहा छैन भने मापन प्याला राखिएको छ? तपाईंलाई यो फेला पार्न एल्गोरिदमको आवश्यकता पर्दछ। तपाइँ कसरी मापने कप प्रयोग गर्ने बारे एल्गोरिथ्मको आवश्यकता हुन सक्छ।

त्यसोभए एल्गोरिदम एक निर्देश हो भने, यो पनि खातामा लिने वा ती निर्देशनहरू व्याख्या गर्न आवश्यक छ। उदाहरणका लागि, यदि तपाईं आफ्नो घरबाट निकटतम किराना पसलमा कसरी प्राप्त गर्न विस्तार गर्नुहुन्छ भने मित्रलाई दिनुहुन्छ भने, तपाईको साथीले मात्र यो भण्डारमा कसरी जान्छ भनेर थाहा पाउँछ भने उनीहरूले तपाइँको घरको स्थान कहाँ जान्दछन् भने। तिनीहरू त्यस विशेष किराने पसललाई, अर्को मित्रको घरबाट सक्षम पार्नका लागि सक्षम छैनन् (अझैसम्म)।

यो एल्गोरिथ्म कसरी सरल र जटिल हुन सक्छ। र जब हामी कम्प्यूटर एल्गोरिदम को मामला मा कुरा गर्छन, एक कम्प्यूटर को गर्न को लागी सक्षम छ को बुझें एल्गोरिदम को एक सूत्र को एक मूल भाग हो।

कसरी सङ्ग्रहित एल्गोरिदमहरू विकसित भयो

सुरु भएको सबैभन्दा पहिला एल्गोरिदमहरू मध्ये एक बुलबुला क्रम नियमित थियो। बुलबुला क्रम डेटा सेट मार्फत लुपिंग गरेर संख्याहरू, अक्षरहरू वा शब्दहरू क्रमबद्ध गर्न एक विधि हो, मानहरू प्रत्येक सेटको साइड-द्वारा-साइड तुलना गर्नुहोस् र आवश्यक भएमा तिनीहरूलाई स्वैप गर्नुहोस्।

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

एल्गोरिथ्म सरल जस्तो लाग्न सक्छ:

  1. पहिलो मानमा जानुहोस्।
  2. त्यो मूल्यलाई अर्को मूल्यको विरुद्धमा जाँच गर्नुहोस् र पछाडि स्वैप स्थानहरू
  3. अर्को मानमा जानुहोस् र तुलना दोहोर्याउनुहोस्।
  4. यदि हामी सूचीको अन्त्यमा छौं भने, शीर्षमा फर्कनुहोस् यदि लूपको समयमा कुनै पनि मूल्य बदलिदियो।

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

एउटा यस्तो एल्गोरिथ्म पहिलो सूची मार्फत स्क्यान गर्दछ र क्रमबद्ध मानहरूको दोस्रो सूची सिर्जना गर्दछ। यो पद्धतिले मात्र मूल सूचीको माध्यमबाट एकल पास गर्छ, र प्रत्येक मानको साथ, यो दोस्रो सूची मार्फत लूप हुनेछ जबसम्म यसले सही स्थान मान राख्न पाउँदैन। सामान्यतया, यो बबल प्रकारको विधि प्रयोग गर्नु भन्दा अधिक कुशल छ।

यो एल्गोरिदम कहाँ साँच्चै पागल हुन सक्छ। वा साँच्चै रोचक, तपाईं कसरी हेर्नुहुन्छ कि आधारमा।

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

दुर्भाग्यवश, हामी सधैं हाम्रो ठेगाना सूचीबद्ध भएमा हामीलाई थाहा छैन, त्यसैले हामीले एल्गोरिथ्म छनोट गर्ने छौँ जुन सूचीमा ठूलो संख्यामा औसत प्रयोग गर्न सबैभन्दा सक्षम हुन्छ।

बबल क्रमबाट हामी के सिक्छौं

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

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

तर एल्गोरिदमले सोचेर हामीलाई हाम्रो कम्प्युटरको जीवनभन्दा टाढाको मदत गर्न सक्दछ। यसले हामीलाई राम्रो स्यान्डविच निर्माण गर्न मद्दत गर्न सक्छ।

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

निश्चित रूपमा यदि मैले यसलाई खाएको छु। तर यदि म केहि समयको लागि टेबलमा छोड्छु, त्यस रोटीको शीर्ष टुक्राले केहि टमाटरलाई जगेडा गर्न सक्दिन सक्छ। यो एक समस्या हो जुन मैले अनुमान गर्नुभएन, र म स्यान्डविचहरू साढे वर्ष पहिले देख्न सक्दिनँ, तर एक पटक मैले गरें, म राम्रो स्यान्डविच निर्माण गर्न मेरो एल्गोरिदम परिवर्तन गर्ने तरिकाहरू सुरू गर्न सक्दिन।

उदाहरणका लागि, मैले टमाटरबाट छुट्न सक्दिन। तर म त्यो टमाटर स्वाद हराउन चाहन्न। त्यसैले यसको सट्टा, म रोटी र लेट्सी पछि स्याण्डवाचमा टमाटर राख्न सक्छु। यसले लेफ्टमा टमाटर र रोटी बीचको सुरक्षा बाधा बनाउँछ।

यो कसरी एक एल्गोरिथ्म विकसित हुन्छ। र एक एल्गोरिथ्म कम्प्यूटर द्वारा एल्गोरिदम हुन को लागी चलान छैन। एक एल्गोरिथ्म एक प्रक्रिया हो, र प्रक्रियाहरू हामी वरिपरी वरपर छन्।