Tip:
Highlight text to annotate it
X
[Powered by Google Translate] [रैखिक खोज]
[पैट्रिक Schmid, हार्वर्ड विश्वविद्यालय]
[यह CS50 है.] [CS50.TV]
खोज रहा है कि आप शायद अधिक बार से आपको लगता है कि कुछ है.
जाहिर है, हर बार जब आप एक वेब ब्राउज़र खोलें
और एक वेब पेज के लिए खोज -
या अपने पसंदीदा सामाजिक नेटवर्किंग साइट पर अपने दोस्तों के लिए खोज -
आप खोज रहे हैं.
लेकिन वह सिर्फ खोज है कि आप एक दैनिक आधार पर क्या का एक छोटा सा हिस्सा है.
, जब आप कोठरी में है कि एक नीले रंग की शर्ट मिल चाहते हैं
या अवसर के लिए एकदम सही है कि लाल ब्लाउज,
आप खोज रहे हैं.
जब आप एक दुकान है कि आप पहले कभी नहीं किया गया है के लिए जाना है,
और आप उत्पादन गलियारे में ब्रोकोली के लिए देख रहे हैं
आप खोज रहे हैं.
क्या आप को नोटिस शुरू हो सकती है
यह है कि क्या आप के लिए देख रहे हैं पर निर्भर करता है
या कैसे आइटम का आयोजन कर रहे हैं जब आप उनके लिए देख रहे हैं
यह आप कैसे खोज पर एक प्रभाव है.
उदाहरण के लिए, यदि आपके शर्ट कोठरी में लटक रहे हैं,
आप शायद यह बस ले सकते हैं बहुत खोज के बिना बाहर.
यदि आप यह सोचते हैं आप गलियारे नीचे चलना
ब्रोकोली मिलता है, तो आप शायद अन्य सभी सब्जियों को देखने के लिए है
इससे पहले कि आप कि ब्रोकोली पाते हैं.
या एल्गोरिथ्म - लीनियर खोज एक ऐसी खोज विधि का एक उदाहरण है.
जैसा कि नाम का तात्पर्य,
इस विधि एक रैखिक फैशन में एक आइटम के लिए खोज, एक के बाद एक.
इसलिए, जब आप अपने पसंदीदा खोज इंजन से परिणामों को देख रहे हैं
और तुम नीचे परिणामों की सूची पढ़ने के लिए,
आप रैखिक खोज का उपयोग कर रहे हैं.
ठीक है. चलो एक उदाहरण देखें.
कहते हैं कि हम संख्या की एक सूची है - 2, 4, 0, 5, 3, 7, 8, और 1 -
और हम संख्या 0 के लिए देख रहे हैं.
जाहिर है, तुम बस देखना है कि 0 3 की स्थिति में है.
लेकिन, एक कंप्यूटर प्रोग्राम है कि भाग्यशाली नहीं है.
यह केवल "देख" कर सकते हैं एक समय में नंबर एक है.
तो, सूची की शुरुआत में शुरू,
यह केवल "देखता है" 2.
कार्यक्रम तो चेक - 2 0 के बराबर है?
कतई नहीं. तो यह अगले संख्या, 4 पर चला जाता है.
4 0 के बराबर करता है? नहीं.
अगले एक, 0. आह! शून्य 0 के बराबर है.
वहाँ हम यह है! यह तीसरे स्थान पर है.
ठीक है. चलो कुछ pseudocode पर देखो.
यह केवल लंबी लाइनों की एक जोड़ी है, लेकिन हम यह एक समय में एक लाइन पर देखने.
पहले, चलो समारोह को परिभाषित और हम यह रैखिक खोज कॉल करने के लिए जा रहे हैं -
और यह दो तर्क लेता है - कुंजी और सरणी.
महत्वपूर्ण है कि मूल्य है कि हम देख रहे हैं,
पिछले उदाहरण में, कि शून्य था.
एक सरणी संख्याओं की एक सूची है
कि सभी मूल्यों है कि हम खोज करने के लिए जा रहे हैं.
तो, हम क्या करना चाहते है हम में देखना चाहता हूँ -
सभी पदों से, तो सरणी के बहुत शुरुआत में शुरू
सरणी के बहुत अंत टिल सरणी की लंबाई तो -
हर एक स्थिति में लग रही है और हर एक की जाँच करें.
तो है कि कि क्या "के लिए" पाश कर रही है.
और प्रत्येक स्थिति में, हम कहने जा रहे हैं
"कुंजी है कि हम देख रहे हैं के बराबर है कि मौजूदा स्थिति में है कि मूल्य है?"
- तो फिर पिछले उदाहरण में, कुंजी 0 गया था -
तो हम कह रहे हैं "सरणी स्थिति में मैं शून्य के बराबर है?"
अगर ऐसा है, तो हम 'मैं' है कि क्योंकि मौजूदा स्थिति में हम कर रहे हैं जा रहे हैं.
तो, पिछले उदाहरण में,
कि तीसरे स्थान पर था.
अगर हम पूरे सरणी के माध्यम से चले गए
और हम कुछ भी नहीं मिला है -
तो हम कहते हैं कि हम 500 नंबर के लिए देख रहे थे
जो कि उदाहरण में स्पष्ट रूप से नहीं था -
हम कुछ वापसी है,
और हम -1 वापस करने के लिए जा रहे हैं.
और हम बस -1 लौट रहे हैं क्योंकि वह एक स्थिति है
कि सरणी में मौजूद नहीं है.
और तो इसका मतलब है कि जब आप इसे एक समारोह से वापस पाने के लिए
इसे कहते हैं, "हाँ, ठीक है. मुझे लगता है कि मैं कुछ भी नहीं मिला.
तो यह है कि 500 वहाँ कभी नहीं था. "
रैखिक खोज के बारे में अच्छी बात यह है कि
यह मदों की किसी भी सूची पर काम करेंगे,
चाहे कैसे आइटम के आदेश दिए हैं.
यह वह जगह है जहाँ ब्रोकोली उत्पादन गलियारे में है फर्क नहीं पड़ता.
लंबे समय के रूप में आप शुरू से अंत तक नीचे चल गलियारे के रूप में,
आप इसे खोजने के लिए बाध्य कर रहे हैं,
दुकान संभालने ब्रोकोली का नहीं चला गया है निश्चित रूप से,.
लेकिन यह सबसे बड़ी ताकत भी यह सबसे बड़ी कमजोरी है.
कहते हैं कि आप दो सौ संख्या की एक सूची है
कि 1 से 200 के लिए हल कर रहे हैं.
यदि आप 198 नंबर के लिए देख रहे हैं
आप लगभग संख्या की पूरी सूची खोज
इससे पहले कि आप एक के लिए आप देख रहे हैं लगता है.
वहाँ एक बेहतर तरीका होना चाहिए!
बाकी का आश्वासन दिया है.
लेकिन, कि एक और वीडियो के लिए एक विषय है.
इसके अलावा, झल्लाहट नहीं है!
सिर्फ इसलिए कि रैखिक खोज सभी स्थितियों में सबसे अच्छा समाधान नहीं है,
इसका मतलब यह नहीं है कि यह काम में नहीं आता है.
अन्यथा, आप उपज गलियारे में कि ब्रोकोली कैसे मिलेगा?
मेरा नाम पैट्रिक Schmid है, और इस CS50 है.
[CS50.TV]