1 00:00:00,000 --> 00:00:08,532 >> [संगीत खेल] 2 00:00:08,532 --> 00:00:12,060 >> ZAMYLA चान: आपको शायद पहली बात मिल के बारे में सूचना है कि हम पहले से ही 3 00:00:12,060 --> 00:00:13,450 कोड हमारे लिए लिखा है. 4 00:00:13,450 --> 00:00:15,160 इस वितरण कोड कहा जाता है. 5 00:00:15,160 --> 00:00:18,000 तो हम सिर्फ अपने ही लिख नहीं रहे अब और खरोंच से कोड. 6 00:00:18,000 --> 00:00:22,800 बल्कि, हम voids में भरने रहे हैं कुछ पूर्व मौजूदा कोड में. 7 00:00:22,800 --> 00:00:27,790 >> find.c कार्यक्रम संख्या के लिए संकेत देता है सूखी घास का ढेर भरने के लिए, खोजता है 8 00:00:27,790 --> 00:00:32,189 एक उपयोगकर्ता प्रस्तुत सुई के लिए टेबल, और यह की तरह बुला रही है और द्वारा इस करता है 9 00:00:32,189 --> 00:00:35,590 खोज, कार्यों परिभाषित helpers.c में. 10 00:00:35,590 --> 00:00:37,670 तो find.c पहले से ही लिखा है. 11 00:00:37,670 --> 00:00:40,770 अपनी नौकरी के सहायकों लिखने के लिए है. 12 00:00:40,770 --> 00:00:41,870 >> तो हम क्या कर रहे हो? 13 00:00:41,870 --> 00:00:44,210 हम दो कार्यों को लागू कर रहे हैं. 14 00:00:44,210 --> 00:00:49,030 सच जो रिटर्न खोज, अगर एक मूल्य लौटने, टेबल में पाया जाता है 15 00:00:49,030 --> 00:00:51,370 झूठी मान है नहीं सूखी घास का ढेर में. 16 00:00:51,370 --> 00:00:57,990 और फिर हम भी सॉर्ट लागू कर रहे हैं जो मान कहा सरणी सॉर्ट करता है. 17 00:00:57,990 --> 00:00:59,960 >> तो चलो खोज निपटने. 18 00:00:59,960 --> 00:01:04,560 खोज वर्तमान में एक के रूप में लागू किया जाता है रैखिक खोज, लेकिन आप कुछ कर सकते हैं 19 00:01:04,560 --> 00:01:05,550 उस से भी बेहतर. 20 00:01:05,550 --> 00:01:09,910 रैखिक खोज हे में कार्यान्वित किया जाता है n समय की, जो काफी धीमी है. 21 00:01:09,910 --> 00:01:13,850 हालांकि, यह खोज कर सकते हैं यह करने के लिए दिए गए किसी भी सूची. 22 00:01:13,850 --> 00:01:20,130 अपनी नौकरी के लिए द्विआधारी खोज को लागू करने के लिए है, लॉग n के समय हे चला गया है जो. 23 00:01:20,130 --> 00:01:21,130 यह बहुत तेजी से है. 24 00:01:21,130 --> 00:01:23,170 >> लेकिन एक शर्त नहीं है. 25 00:01:23,170 --> 00:01:27,600 द्विआधारी खोज ही खोज सकते हैं पूर्व क्रमबद्ध सूची के माध्यम से. 26 00:01:27,600 --> 00:01:30,370 ऐसा क्यों है? 27 00:01:30,370 --> 00:01:32,620 >> खैर चलो एक उदाहरण देखो. 28 00:01:32,620 --> 00:01:36,280 मूल्यों की एक सरणी को देखते हुए, टेबल, हम देख रहे हो जा रहे हैं 29 00:01:36,280 --> 00:01:37,130 एक सुई के लिए. 30 00:01:37,130 --> 00:01:40,460 और इस उदाहरण में, पूर्णांक तीन. 31 00:01:40,460 --> 00:01:44,130 द्विआधारी खोज काम करता है जिस तरह से है कि हम के बीच मूल्य तुलना 32 00:01:44,130 --> 00:01:48,370 बहुत पसंद सुई को सरणी, कैसे हम बीच करने के लिए एक फोनबुक खोला 33 00:01:48,370 --> 00:01:50,660 सप्ताह शून्य में पृष्ठ. 34 00:01:50,660 --> 00:01:54,650 >> तो करने के लिए मध्य मूल्य की तुलना के बाद सुई, आप या तो रद्द कर सकते हैं 35 00:01:54,650 --> 00:01:58,530 बाईं या सरणी के ठीक आधे अपनी सीमा कस द्वारा. 36 00:01:58,530 --> 00:02:03,390 इस मामले में, तीन के बाद से, हमारे सुई, कम से कम 10, मध्य मूल्य, है 37 00:02:03,390 --> 00:02:05,990 सही बाध्य घटा सकते हैं. 38 00:02:05,990 --> 00:02:08,400 लेकिन अपनी सीमा बनाने की कोशिश यथासंभव तंग. 39 00:02:08,400 --> 00:02:11,630 मध्य मूल्य सुई नहीं है, तो क्या आप की जरूरत नहीं है कि पता 40 00:02:11,630 --> 00:02:13,010 अपनी खोज में यह शामिल है. 41 00:02:13,010 --> 00:02:17,310 तो आप सही ही रहे कस कर सकते हैं सिर्फ एक छोटा सा और खोज सीमा, 42 00:02:17,310 --> 00:02:21,770 और इतने पर और बहुत आगे तक आप अपने सुई पाते हैं. 43 00:02:21,770 --> 00:02:23,480 >> तो क्या pseudocode की तरह दिखता है? 44 00:02:23,480 --> 00:02:28,420 हम अभी भी माध्यम से देख रहे हैं ठीक है, जबकि सूची और अभी भी करने के लिए तत्वों 45 00:02:28,420 --> 00:02:33,690 में देखो, हम सूची के बीच ले और करने के लिए कि मध्यम मूल्य की तुलना 46 00:02:33,690 --> 00:02:34,950 हमारे सुई. 47 00:02:34,950 --> 00:02:37,310 वे बराबर हो, तो वह हम है इसका मतलब सुई पाया और हम कर सकते हैं 48 00:02:37,310 --> 00:02:38,990 वापसी सच. 49 00:02:38,990 --> 00:02:42,870 >> अन्यथा, सुई से कम है तो मध्य मूल्य, तब कि हम का मतलब 50 00:02:42,870 --> 00:02:47,280 सही आधा त्यागें, और अभी कर सकते हैं सरणी के बाईं ओर खोज. 51 00:02:47,280 --> 00:02:51,090 अन्यथा, हम खोज लेंगे सरणी के दाईं ओर. 52 00:02:51,090 --> 00:02:54,410 और अंत में, यदि आप किसी भी नहीं है अधिक खोज करने के लिए छोड़ दिया तत्वों लेकिन आप 53 00:02:54,410 --> 00:02:58,050 यदि आप अभी तक अपने सुई नहीं मिला है वापसी झूठी क्योंकि सुई 54 00:02:58,050 --> 00:03:01,890 निश्चित रूप से सूखी घास का ढेर में नहीं है. 55 00:03:01,890 --> 00:03:05,270 >> इस pseudocode के बारे में अब एक बात साफ द्विआधारी खोज में यह हो सकता है 56 00:03:05,270 --> 00:03:09,940 एक चलने या तो के रूप में व्याख्या या पुनरावर्ती कार्यान्वयन. 57 00:03:09,940 --> 00:03:13,810 तुम्हें बुलाया तो अगर यह पुनरावर्ती होगा खोज के भीतर खोज समारोह 58 00:03:13,810 --> 00:03:17,350 सरणी की या तो आधे पर कार्य करते हैं. 59 00:03:17,350 --> 00:03:21,030 हम थोड़ा बाद में recursion कवर करेंगे बेशक, लेकिन यह एक है कि जानते हो 60 00:03:21,030 --> 00:03:24,190 विकल्प तुम कोशिश करना चाहते हैं. 61 00:03:24,190 --> 00:03:26,030 >> अब के आधार पर क्रमबद्ध देखो. 62 00:03:26,030 --> 00:03:30,750 क्रमबद्ध एक सरणी और पूर्णांक लेता है सरणी के आकार है जो एन,. 63 00:03:30,750 --> 00:03:34,030 अब विभिन्न विभिन्न प्रकार के होते हैं एक तरह की है, और आप कुछ पर देख सकते हैं 64 00:03:34,030 --> 00:03:36,370 क़ौम और स्पष्टीकरण के लिए शॉर्ट्स. 65 00:03:36,370 --> 00:03:39,580 के लिए वापसी प्रकार हमारे सॉर्ट समारोह शून्य है. 66 00:03:39,580 --> 00:03:43,580 इसलिए कि हम नहीं जा रहे हैं इसका मतलब है कि प्रकार से किसी भी सरणी वापस जाने के लिए. 67 00:03:43,580 --> 00:03:48,140 हम वास्तव में बहुत परिवर्तन करने के लिए जा रहे हैं हमें में पारित किया गया था कि सरणी. 68 00:03:48,140 --> 00:03:52,290 >> सरणियों हैं और क्योंकि संभव है कि हम अब सी में संदर्भ द्वारा हूँ पारित किया 69 00:03:52,290 --> 00:03:55,290 बाद में इस बारे में अधिक देखते हैं, लेकिन पासिंग के बीच अंतर आवश्यक 70 00:03:55,290 --> 00:03:59,340 एक पूर्णांक और पारित की तरह कुछ में एक सरणी में, है कि जब आप 71 00:03:59,340 --> 00:04:03,490 एक पूर्णांक में पारित, सी बस जा रहा है कि पूर्णांक की एक प्रतिलिपि बनाने और पारित 72 00:04:03,490 --> 00:04:04,450 समारोह के लिए यह. 73 00:04:04,450 --> 00:04:08,530 मूल चर बदला नहीं जाएगा समारोह समाप्त हो जाने के बाद. 74 00:04:08,530 --> 00:04:12,480 एक सरणी के साथ, दूसरे हाथ पर, यह है एक प्रतिलिपि बनाने जा रही है, और तुम हूँ नहीं 75 00:04:12,480 --> 00:04:17,910 वास्तव में संपादन किया बहुत सरणी ही. 76 00:04:17,910 --> 00:04:21,269 >> तो एक तरह से एक प्रकार है चयन के आधार पर क्रमबद्ध. 77 00:04:21,269 --> 00:04:24,750 चयन के आधार पर क्रमबद्ध पर शुरू से काम करता है आप पुनरावृति फिर शुरुआत है, और 78 00:04:24,750 --> 00:04:26,820 पर और छोटी तत्व हैं. 79 00:04:26,820 --> 00:04:30,710 और फिर आप स्वैप कि छोटी से छोटी पहली बार एक साथ तत्व. 80 00:04:30,710 --> 00:04:34,360 और फिर आप दूसरे तत्व के लिए कदम अगले सबसे छोटा लगता है 81 00:04:34,360 --> 00:04:38,320 तब तत्व, और स्वैप कि साथ सरणी में दूसरा तत्व है क्योंकि 82 00:04:38,320 --> 00:04:41,100 पहला तत्व पहले से ही हल है. 83 00:04:41,100 --> 00:04:45,370 और यदि ऐसा है तो आप हर के लिए जारी छोटी से छोटी पहचान करने में तत्व 84 00:04:45,370 --> 00:04:47,690 मूल्य और इसे बाहर गमागमन. 85 00:04:47,690 --> 00:04:53,460 >> मैं 0, बहुत पहले तत्व बराबर होती है के लिए एन शून्य से 1 के लिए, आप की तुलना करने के लिए जा रहे हैं 86 00:04:53,460 --> 00:04:57,820 हर अगले उस के बाद मूल्य और लगता है न्यूनतम मूल्य के सूचकांक. 87 00:04:57,820 --> 00:05:02,520 आप न्यूनतम मूल्य सूचकांक मिलने के बाद आप सरणी की कि मूल्य स्वैप कर सकते हैं 88 00:05:02,520 --> 00:05:05,930 न्यूनतम और सरणी आई. 89 00:05:05,930 --> 00:05:09,760 >> तरह की एक अन्य प्रकार है कि आप कर सकते हैं लागू बुलबुला तरह है. 90 00:05:09,760 --> 00:05:14,380 सूची में इतने बुलबुला तरह दोहराता आसन्न तत्वों और की तुलना 91 00:05:14,380 --> 00:05:17,720 तत्वों गमागमन कि गलत क्रम में हैं. 92 00:05:17,720 --> 00:05:22,380 और इस तरह, सबसे बड़ा तत्व बुलबुला अंत तक होगा. 93 00:05:22,380 --> 00:05:28,070 और इस सूची में एक बार से अधिक नहीं है हल तत्वों बदली की गई है. 94 00:05:28,070 --> 00:05:31,920 >> तो उन प्रकार के दो उदाहरण हैं आप के लिए लागू कर सकते हैं कि एल्गोरिदम 95 00:05:31,920 --> 00:05:33,230 मिल कार्यक्रम. 96 00:05:33,230 --> 00:05:37,350 आप सॉर्ट खत्म, और आपने एक बार खोज किया, आप समाप्त कर रहे हैं. 97 00:05:37,350 --> 00:05:39,720 मेरा नाम Zamyla है, और इस CS50 है. 98 00:05:39,720 --> 00:05:46,987 >> [संगीत खेल]