1 00:00:00,000 --> 00:00:09,560 2 00:00:09,560 --> 00:00:13,120 >> ZAMYLA CHAN: Jambo la kwanza nguvu ilani kuhusu kupata ni kwamba tayari 3 00:00:13,120 --> 00:00:14,520 kuwa kanuni zilizoandikwa kwa ajili yetu. 4 00:00:14,520 --> 00:00:16,219 Hii inaitwa usambazaji code. 5 00:00:16,219 --> 00:00:19,060 Hivyo sisi siyo tu kuandika yetu wenyewe kanuni kutoka mwanzo tena. 6 00:00:19,060 --> 00:00:23,870 Badala yake, sisi ni kujaza katika voids katika baadhi ya kanuni kabla ya zilizopo. 7 00:00:23,870 --> 00:00:28,860 >> mpango find.c papo kwa idadi kujaza haystack, utafutaji 8 00:00:28,860 --> 00:00:33,260 haystack kwa mtumiaji in sindano, na haina kwa kuita aina na 9 00:00:33,260 --> 00:00:36,660 search, kazi inavyoelezwa katika helpers.c. 10 00:00:36,660 --> 00:00:38,740 Hivyo find.c imeandikwa tayari. 11 00:00:38,740 --> 00:00:41,840 Kazi yako ni kuandika kuwanusuru. 12 00:00:41,840 --> 00:00:42,940 >> Basi ni nini sisi kufanya? 13 00:00:42,940 --> 00:00:45,270 Sisi ni utekelezaji wa kazi mbili. 14 00:00:45,270 --> 00:00:50,110 Search, ambayo anarudi kweli kama thamani hupatikana katika haystack, kurudi 15 00:00:50,110 --> 00:00:52,430 uongo kama thamani ni si katika haystack. 16 00:00:52,430 --> 00:00:59,060 Na kisha sisi ni pia kutekeleza aina, ambayo aina safu kuitwa maadili. 17 00:00:59,060 --> 00:01:01,120 Basi hebu kukabiliana na search. 18 00:01:01,120 --> 00:01:04,550 >> Search kwa sasa ni kutekelezwa kama search linear. 19 00:01:04,550 --> 00:01:06,620 Lakini unaweza kufanya bora zaidi kuliko ile. 20 00:01:06,620 --> 00:01:11,610 Search linear unatekelezwa katika O ya n wakati, ambayo ni polepole kabisa, ingawa 21 00:01:11,610 --> 00:01:14,920 Unaweza kutafuta orodha wowote yake. 22 00:01:14,920 --> 00:01:21,190 Kazi yako ni kutekeleza search binary, ambayo ina kukimbia wakati O logi n. 23 00:01:21,190 --> 00:01:22,200 Hiyo ni pretty haraka. 24 00:01:22,200 --> 00:01:24,240 >> Lakini kuna ahadi. 25 00:01:24,240 --> 00:01:28,910 Search kisha unaweza tu kutafuta kwa njia ya orodha kabla ya yamepangwa. 26 00:01:28,910 --> 00:01:31,450 Kwa nini ni kwamba? 27 00:01:31,450 --> 00:01:33,690 Naam, hebu tuangalie mfano. 28 00:01:33,690 --> 00:01:37,350 Kutokana na safu ya maadili, haystack, tunakwenda kuwa na kuangalia 29 00:01:37,350 --> 00:01:41,510 kwa sindano, na katika hii mfano, integer 3. 30 00:01:41,510 --> 00:01:45,220 >> njia ambayo search binary kazi ni kuwa sisi kulinganisha thamani katikati ya 31 00:01:45,220 --> 00:01:49,430 safu ya sindano, kama ilivyo kwa jinsi sisi kufunguliwa kitabu cha simu katikati 32 00:01:49,430 --> 00:01:51,720 ukurasa katika Wiki 0. 33 00:01:51,720 --> 00:01:55,710 Hivyo, baada ya kulinganisha thamani ya katikati ya sindano, unaweza kuondokana na ama 34 00:01:55,710 --> 00:01:59,620 upande wa kushoto au nusu wa kulia wa safu na inaimarisha mipaka yako. 35 00:01:59,620 --> 00:02:04,450 Katika kesi hiyo, tangu 3, sindano yetu, ni chini ya 10, thamani ya kati, 36 00:02:04,450 --> 00:02:07,060 haki amefungwa unaweza kupungua. 37 00:02:07,060 --> 00:02:09,470 >> Lakini kujaribu kufanya mipaka yako kama tight kama iwezekanavyo. 38 00:02:09,470 --> 00:02:12,690 Kama thamani katikati ni si sindano, kisha unajua kwamba hawana haja ya 39 00:02:12,690 --> 00:02:14,070 ni pamoja na katika utafutaji wako. 40 00:02:14,070 --> 00:02:18,390 Hivyo amefungwa haki yako unaweza kaza mipaka search tu kidogo kidogo zaidi, 41 00:02:18,390 --> 00:02:22,840 na kadhalika na kadhalika, mpaka kupata sindano yako. 42 00:02:22,840 --> 00:02:24,580 >> Hivyo gani Pseudo code kuangalia kama? 43 00:02:24,580 --> 00:02:28,980 Naam, wakati bado tuko kutafuta njia ya orodha na bado wana 44 00:02:28,980 --> 00:02:33,540 mambo ya kuangalia katika, sisi kuchukua katikati ya orodha na kulinganisha kwamba 45 00:02:33,540 --> 00:02:36,020 thamani katikati ya sindano yetu. 46 00:02:36,020 --> 00:02:38,380 Kama uko sawa, basi hiyo ina maana tumekuwa kupatikana sindano, na tunaweza 47 00:02:38,380 --> 00:02:40,160 kurudi kweli. 48 00:02:40,160 --> 00:02:43,940 >> Vinginevyo, kama sindano ni chini ya thamani katikati, basi hiyo ina maana sisi 49 00:02:43,940 --> 00:02:48,350 unaweza kuondokana na nusu haki na wa haki kutafuta upande wa kushoto wa safu. 50 00:02:48,350 --> 00:02:51,860 Vinginevyo, tutaweza kutafuta upande wa safu ya haki. 51 00:02:51,860 --> 00:02:55,470 Na mwisho, kama wewe huna lolote mambo zaidi wa kushoto na kutafuta lakini 52 00:02:55,470 --> 00:02:58,030 sikuona sindano yako bado, kisha kurudi uongo. 53 00:02:58,030 --> 00:03:02,960 Kwa sababu sindano dhahiri ni si katika haystack. 54 00:03:02,960 --> 00:03:06,200 >> Sasa, jambo moja nadhifu kuhusu Pseudo hii code katika kutafuta binary ni kwamba unaweza 55 00:03:06,200 --> 00:03:11,000 kutafsiriwa kama ama iterative au utekelezaji kujirudia. 56 00:03:11,000 --> 00:03:14,900 Hivyo itakuwa kujirudia kama wewe kuitwa kutafuta kazi ndani ya search 57 00:03:14,900 --> 00:03:18,400 kazi ama nusu ya safu. 58 00:03:18,400 --> 00:03:20,750 Tutaweza cover kujirudia kidogo baadaye katika shaka. 59 00:03:20,750 --> 00:03:23,210 Lakini tunajua kwamba ni chaguo kama Ningependa kujaribu. 60 00:03:23,210 --> 00:03:24,460