1 00:00:00,000 --> 00:00:09,560 2 00:00:09,560 --> 00:00:13,120 >> ZAMYLA Chan: L-ewwel ħaġa inti tista ' avviż dwar jsibu hi li aħna diġà 3 00:00:13,120 --> 00:00:14,520 jkunu kodiċi miktub għalina. 4 00:00:14,520 --> 00:00:16,219 Din tissejjaħ kodiċi distribuzzjoni. 5 00:00:16,219 --> 00:00:19,060 Allura aħna mhux biss bil-miktub tagħna stess kodiċi mill-bidu aktar. 6 00:00:19,060 --> 00:00:23,870 Pjuttost, aħna qed timla l-vojt f'xi kodiċi pre-eżistenti. 7 00:00:23,870 --> 00:00:28,860 >> Il-programm find.c iqajjem għal numri biex timla l-haystack, tfittxijiet- 8 00:00:28,860 --> 00:00:33,260 Haystack għal utent sottomessa labra, u dan tagħmlu billi ċċempel it-tip u 9 00:00:33,260 --> 00:00:36,660 tiftix, il-funzjonijiet definiti fil helpers.c. 10 00:00:36,660 --> 00:00:38,740 Allura find.c hija diġà bil-miktub. 11 00:00:38,740 --> 00:00:41,840 Xogħol tiegħek huwa li tikteb helpers. 12 00:00:41,840 --> 00:00:42,940 >> Allura dak li qed nagħmlu? 13 00:00:42,940 --> 00:00:45,270 Aħna qed timplimenta żewġ funzjonijiet. 14 00:00:45,270 --> 00:00:50,110 Search, li jirritorna minnu jekk valur jinstab fil-haystack, jirritornaw 15 00:00:50,110 --> 00:00:52,430 falz jekk il-valur huwa mhux fil-haystack. 16 00:00:52,430 --> 00:00:59,060 U allura aħna qed timplimenta wkoll sort, li xorta l-array imsejħa valuri. 17 00:00:59,060 --> 00:01:01,120 Mela ejja tindirizza search. 18 00:01:01,120 --> 00:01:04,550 >> Search hija implimentata bħalissa bħala search lineari. 19 00:01:04,550 --> 00:01:06,620 Iżda int tista 'tagħmel ħafna aħjar minn dik. 20 00:01:06,620 --> 00:01:11,610 Tfittxija lineari hija implimentata O ta 'n time, li huwa pjuttost bil-mod, għalkemm 21 00:01:11,610 --> 00:01:14,920 tista 'tfittex kull lista mogħtija lilha. 22 00:01:14,920 --> 00:01:21,190 Xogħol tiegħek huwa li timplimenta tfittxija binarju, li tkun run time O ta 'log n. 23 00:01:21,190 --> 00:01:22,200 Li pretty fast. 24 00:01:22,200 --> 00:01:24,240 >> Iżda hemm stipulazzjoni. 25 00:01:24,240 --> 00:01:28,910 Tfittxija Binarju tista 'tfittex biss permezz ta 'listi magħżula minn qabel. 26 00:01:28,910 --> 00:01:31,450 Għaliex huwa li? 27 00:01:31,450 --> 00:01:33,690 Well, ejja nħarsu lejn eżempju. 28 00:01:33,690 --> 00:01:37,350 Minħabba l-firxa ta 'valuri, il-haystack, aħna qed tmur biex tkun tfittex 29 00:01:37,350 --> 00:01:41,510 għal labra, u f'dan il- eżempju, il-integer 3. 30 00:01:41,510 --> 00:01:45,220 >> Il-mod li tfittxija binarju jaħdem huwa li inqabblu l-valur medju ta ' 31 00:01:45,220 --> 00:01:49,430 il-firxa tal-labra, ferm simili kif aħna fetħet ktieb tat-telefon għall-nofs 32 00:01:49,430 --> 00:01:51,720 paġna fil f'Ġimgħa 0. 33 00:01:51,720 --> 00:01:55,710 Allura wara tqabbil tal-valur medju biex il-labra, inti tista 'jarmi jew il- 34 00:01:55,710 --> 00:01:59,620 xellug jew in-nofs lemini tal-array billi issikkar limiti tiegħek. 35 00:01:59,620 --> 00:02:04,450 F'dan il-każ, mit-3, labra tagħna, huwa anqas minn 10, il-valur tan-nofs, il- 36 00:02:04,450 --> 00:02:07,060 dritt marbut jistgħu jnaqqsu. 37 00:02:07,060 --> 00:02:09,470 >> Iżda jippruvaw jagħmlu limiti tiegħek stretta daqs kemm possibbli. 38 00:02:09,470 --> 00:02:12,690 Jekk il-valur tan-nofs mhuwiex il-labra, imbagħad inti taf li inti m'għandekx bżonn li 39 00:02:12,690 --> 00:02:14,070 tinkludih fit-tfittxija tiegħek. 40 00:02:14,070 --> 00:02:18,390 Allura dritt tiegħek marbuta tista issikka l- limiti tat-tiftix biss ftit żgħira aktar, 41 00:02:18,390 --> 00:02:22,840 u hekk u ibqa 'sejjer hekk, sakemm issib labra tiegħek. 42 00:02:22,840 --> 00:02:24,580 >> Allura dak li ma l-psewdo kodiċi look like? 43 00:02:24,580 --> 00:02:28,980 Well, filwaqt li aħna qed għadhom tfittex permezz il-lista u għad għandhom 44 00:02:28,980 --> 00:02:33,540 elementi biex tfittex fil, nieħdu l-nofs tal-lista u jqabblu li 45 00:02:33,540 --> 00:02:36,020 valur medju għall-labra tagħna. 46 00:02:36,020 --> 00:02:38,380 Jekk dawn qed ugwali, allura dan ifisser konna sabet il-labra, u nistgħu 47 00:02:38,380 --> 00:02:40,160 ritorn vera. 48 00:02:40,160 --> 00:02:43,940 >> Inkella, jekk il-labra tkun inqas minn il-valur tan-nofs, allura dan ifisser li aħna 49 00:02:43,940 --> 00:02:48,350 jista 'jarmi l-nofs tal-lemin u biss tfittxija ix-xellug tal-array. 50 00:02:48,350 --> 00:02:51,860 Inkella, aħna ser tfittex il- lemin tal-array. 51 00:02:51,860 --> 00:02:55,470 U fl-aħħar, jekk inti ma għandekx xi aktar elementi xellug ta 'tiftix imma int 52 00:02:55,470 --> 00:02:58,030 ma sabu labra tiegħek għadhom, allura inti tirritorna falza. 53 00:02:58,030 --> 00:03:02,960 Minħabba li l-labra definittivament mhuwiex fil-haystack. 54 00:03:02,960 --> 00:03:06,200 >> Issa, ħaġa waħda pulita dwar dan psewdo kodiċi fit-tfittxija binarju huwa li tista ' 55 00:03:06,200 --> 00:03:11,000 tiġi interpretata jew bħala iterattiv jew l-implimentazzjoni rikursiv. 56 00:03:11,000 --> 00:03:14,900 Għalhekk ikun rikursivi jekk inti imsejħa il-funzjoni ta 'tfittxija fil-search 57 00:03:14,900 --> 00:03:18,400 jiffunzjonaw fuq kull nofs il-firxa. 58 00:03:18,400 --> 00:03:20,750 Aħna ser ikopru recursion daqsxejn aktar tard fil-kors. 59 00:03:20,750 --> 00:03:23,210 Imma nafu li hija possibilità jekk inti tixtieq li jippruvaw. 60 00:03:23,210 --> 00:03:24,460