1 00:00:00,000 --> 00:00:09,560 2 00:00:09,560 --> 00:00:13,120 >> ZAMYLA चान: आपको शायद पहली बात मिल के बारे में सूचना है कि हम पहले से ही 3 00:00:13,120 --> 00:00:14,520 कोड हमारे लिए लिखा है. 4 00:00:14,520 --> 00:00:16,219 इस वितरण कोड कहा जाता है. 5 00:00:16,219 --> 00:00:19,060 तो हम सिर्फ अपने ही लिख नहीं रहे अब और खरोंच से कोड. 6 00:00:19,060 --> 00:00:23,870 बल्कि, हम voids में भरने रहे हैं कुछ पूर्व मौजूदा कोड में. 7 00:00:23,870 --> 00:00:28,860 >> find.c कार्यक्रम संख्या के लिए संकेत देता है सूखी घास का ढेर भरने के लिए, खोजता है 8 00:00:28,860 --> 00:00:33,260 एक उपयोगकर्ता प्रस्तुत सुई के लिए टेबल, और यह की तरह बुला रही है और द्वारा इस करता है 9 00:00:33,260 --> 00:00:36,660 खोज, कार्यों परिभाषित helpers.c में. 10 00:00:36,660 --> 00:00:38,740 तो find.c पहले से ही लिखा है. 11 00:00:38,740 --> 00:00:41,840 अपनी नौकरी के सहायकों लिखने के लिए है. 12 00:00:41,840 --> 00:00:42,940 >> तो हम क्या कर रहे हो? 13 00:00:42,940 --> 00:00:45,270 हम दो कार्यों को लागू कर रहे हैं. 14 00:00:45,270 --> 00:00:50,110 सच जो रिटर्न खोज, अगर एक मूल्य लौटने, टेबल में पाया जाता है 15 00:00:50,110 --> 00:00:52,430 झूठी मान है नहीं सूखी घास का ढेर में. 16 00:00:52,430 --> 00:00:59,060 और फिर हम भी सॉर्ट लागू कर रहे हैं, जो मान कहा सरणी सॉर्ट करता है. 17 00:00:59,060 --> 00:01:01,120 तो चलो खोज निपटने. 18 00:01:01,120 --> 00:01:04,550 >> खोज वर्तमान में लागू किया जाता है एक रेखीय खोज के रूप में. 19 00:01:04,550 --> 00:01:06,620 लेकिन आप उस से भी ज्यादा बेहतर कर सकते हैं. 20 00:01:06,620 --> 00:01:11,610 रैखिक खोज के n ओ में कार्यान्वित किया जाता है काफी धीमी है जो समय है, यह हालांकि 21 00:01:11,610 --> 00:01:14,920 यह करने के लिए दिए गए किसी भी सूची खोज सकते हैं. 22 00:01:14,920 --> 00:01:21,190 अपनी नौकरी के लिए द्विआधारी खोज को लागू करने के लिए है, लॉग n के समय हे चला गया है जो. 23 00:01:21,190 --> 00:01:22,200 यह बहुत तेजी से है. 24 00:01:22,200 --> 00:01:24,240 >> लेकिन एक शर्त नहीं है. 25 00:01:24,240 --> 00:01:28,910 द्विआधारी खोज ही खोज सकते हैं पूर्व क्रमबद्ध सूची के माध्यम से. 26 00:01:28,910 --> 00:01:31,450 ऐसा क्यों है? 27 00:01:31,450 --> 00:01:33,690 ठीक है, चलो एक उदाहरण देखो. 28 00:01:33,690 --> 00:01:37,350 मूल्यों की एक सरणी को देखते हुए, टेबल, हम देख रहे हो जा रहे हैं 29 00:01:37,350 --> 00:01:41,510 एक सुई के लिए, और इस में उदाहरण के लिए, पूर्णांक 3. 30 00:01:41,510 --> 00:01:45,220 >> द्विआधारी खोज काम करता है जिस तरह से है कि हम के बीच मूल्य तुलना 31 00:01:45,220 --> 00:01:49,430 बहुत पसंद सुई को सरणी, कैसे हम बीच करने के लिए एक फोन की किताब खोली 32 00:01:49,430 --> 00:01:51,720 हफ्ते 0 में पृष्ठ. 33 00:01:51,720 --> 00:01:55,710 तो करने के लिए मध्य मूल्य की तुलना के बाद सुई, आप या तो रद्द कर सकते हैं 34 00:01:55,710 --> 00:01:59,620 बाईं या सरणी के ठीक आधे अपनी सीमा कस द्वारा. 35 00:01:59,620 --> 00:02:04,450 इस मामले में, 3 के बाद से, हमारे सुई, है कम से कम 10, मध्य मूल्य, 36 00:02:04,450 --> 00:02:07,060 सही बाध्य घटा सकते हैं. 37 00:02:07,060 --> 00:02:09,470 >> लेकिन अपनी सीमा बनाने की कोशिश यथासंभव तंग. 38 00:02:09,470 --> 00:02:12,690 मध्य मूल्य सुई नहीं है, तो क्या आप की जरूरत नहीं है कि पता 39 00:02:12,690 --> 00:02:14,070 अपनी खोज में यह शामिल है. 40 00:02:14,070 --> 00:02:18,390 इसलिए बाध्य अपनी सही कस कर सकते हैं सिर्फ एक छोटा सा और खोज सीमा, 41 00:02:18,390 --> 00:02:22,840 और इतने पर और बहुत आगे है, जब तक आप अपने सुई पाते हैं. 42 00:02:22,840 --> 00:02:24,580 >> तो छद्म क्या करता है कोड की तरह लग रही हो? 43 00:02:24,580 --> 00:02:28,980 ठीक है, हम अभी भी माध्यम से देख रहे हैं, जबकि सूची और अभी भी है 44 00:02:28,980 --> 00:02:33,540 में देखने के लिए तत्वों, हम बीच ले सूची की और कहा कि तुलना 45 00:02:33,540 --> 00:02:36,020 हमारे सुई को मध्यम मूल्य. 46 00:02:36,020 --> 00:02:38,380 वे बराबर हो, तो वह हम है इसका मतलब सुई पाया, और हम कर सकते हैं 47 00:02:38,380 --> 00:02:40,160 वापसी सच. 48 00:02:40,160 --> 00:02:43,940 >> अन्यथा, सुई से कम है तो मध्य मूल्य, तब कि हम का मतलब 49 00:02:43,940 --> 00:02:48,350 सिर्फ सही आधा त्यागने और कर सकते हैं सरणी के बाईं ओर खोज. 50 00:02:48,350 --> 00:02:51,860 अन्यथा, हम खोज लेंगे सरणी के दाईं ओर. 51 00:02:51,860 --> 00:02:55,470 और अंत में, यदि आप किसी भी नहीं है अधिक खोज करने के लिए छोड़ दिया तत्वों लेकिन आप 52 00:02:55,470 --> 00:02:58,030 अभी तक अपने सुई नहीं मिली है, तो आप वापसी झूठी. 53 00:02:58,030 --> 00:03:02,960 सुई निश्चित रूप से क्योंकि टेबल में नहीं है. 54 00:03:02,960 --> 00:03:06,200 >> अब, इस छद्म के बारे में एक बात साफ द्विआधारी खोज में कोड है यह कर सकते हैं कि 55 00:03:06,200 --> 00:03:11,000 एक चलने का किसी भी रूप में व्याख्या की जा या पुनरावर्ती कार्यान्वयन. 56 00:03:11,000 --> 00:03:14,900 तुम्हें बुलाया तो अगर यह पुनरावर्ती होगा खोज के भीतर खोज समारोह 57 00:03:14,900 --> 00:03:18,400 सरणी की या तो आधे पर कार्य करते हैं. 58 00:03:18,400 --> 00:03:20,750 हम recursion एक बिट कवर करेंगे बाद में पाठ्यक्रम में. 59 00:03:20,750 --> 00:03:23,210 लेकिन यह एक विकल्प है कि जानते हो तुम कोशिश करना चाहते हैं. 60 00:03:23,210 --> 00:03:24,460