1 00:00:00,000 --> 00:00:08,532 >> [Daqq tal-mużika] 2 00:00:08,532 --> 00:00:12,060 >> ZAMYLA Chan: L-ewwel ħaġa inti tista ' avviż dwar jsibu hi li aħna diġà 3 00:00:12,060 --> 00:00:13,450 jkunu kodiċi miktub għalina. 4 00:00:13,450 --> 00:00:15,160 Din tissejjaħ kodiċi distribuzzjoni. 5 00:00:15,160 --> 00:00:18,000 Allura aħna mhux biss bil-miktub tagħna stess kodiċi mill-bidu aktar. 6 00:00:18,000 --> 00:00:22,800 Pjuttost, aħna qed timla l-vojt f'xi kodiċi pre-eżistenti. 7 00:00:22,800 --> 00:00:27,790 >> Il-programm find.c iqajjem għal numri biex timla l-haystack, tfittxijiet- 8 00:00:27,790 --> 00:00:32,189 Haystack għal utent sottomessa labra, u dan tagħmlu billi ċċempel it-tip u 9 00:00:32,189 --> 00:00:35,590 tiftix, il-funzjonijiet definiti fil helpers.c. 10 00:00:35,590 --> 00:00:37,670 Allura find.c hija diġà bil-miktub. 11 00:00:37,670 --> 00:00:40,770 Xogħol tiegħek huwa li tikteb helpers. 12 00:00:40,770 --> 00:00:41,870 >> Allura dak li qed nagħmlu? 13 00:00:41,870 --> 00:00:44,210 Aħna qed timplimenta żewġ funzjonijiet. 14 00:00:44,210 --> 00:00:49,030 Search, li jirritorna minnu jekk valur jinstab fil-haystack, jirritornaw 15 00:00:49,030 --> 00:00:51,370 falz jekk il-valur huwa mhux fil-haystack. 16 00:00:51,370 --> 00:00:57,990 U allura aħna qed timplimenta wkoll sort li xorta l-array imsejħa valuri. 17 00:00:57,990 --> 00:00:59,960 >> Mela ejja tindirizza search. 18 00:00:59,960 --> 00:01:04,560 Fittex bħalissa hija implimentata bħala tfittxija lineari, imma int tista 'tagħmel ħafna 19 00:01:04,560 --> 00:01:05,550 aħjar minn dik. 20 00:01:05,550 --> 00:01:09,910 Tfittxija lineari hija implimentata O ta 'żmien n, li huwa pjuttost bil-mod. 21 00:01:09,910 --> 00:01:13,850 Għalkemm, tista 'tfittex kull lista mogħtija lilha. 22 00:01:13,850 --> 00:01:20,130 Xogħol tiegħek huwa li timplimenta tfittxija binarju, li tkun run time O ta 'log n. 23 00:01:20,130 --> 00:01:21,130 Li pretty fast. 24 00:01:21,130 --> 00:01:23,170 >> Iżda hemm stipulazzjoni. 25 00:01:23,170 --> 00:01:27,600 Tfittxija Binarju tista 'tfittex biss permezz ta 'listi magħżula minn qabel. 26 00:01:27,600 --> 00:01:30,370 Għaliex huwa li? 27 00:01:30,370 --> 00:01:32,620 >> Well ejja nħarsu lejn eżempju. 28 00:01:32,620 --> 00:01:36,280 Minħabba l-firxa ta 'valuri, il-haystack, aħna qed tmur biex tkun tfittex 29 00:01:36,280 --> 00:01:37,130 għal labra. 30 00:01:37,130 --> 00:01:40,460 U f'dan l-eżempju, n-numru sħiħ tlieta. 31 00:01:40,460 --> 00:01:44,130 Il-mod li tfittxija binarju jaħdem huwa li inqabblu l-valur medju ta ' 32 00:01:44,130 --> 00:01:48,370 il-firxa tal-labra, ferm simili kif aħna fetħet phonebook għall-nofs 33 00:01:48,370 --> 00:01:50,660 paġna żero ġimgħa. 34 00:01:50,660 --> 00:01:54,650 >> Allura wara tqabbil tal-valur medju biex il-labra, inti tista 'jarmi jew il- 35 00:01:54,650 --> 00:01:58,530 xellug jew in-nofs lemini tal-array billi issikkar limiti tiegħek. 36 00:01:58,530 --> 00:02:03,390 F'dan il-każ, la darba tlieta, labra tagħna, huwa anqas minn 10, il-valur tan-nofs, il- 37 00:02:03,390 --> 00:02:05,990 dritt marbut jistgħu jnaqqsu. 38 00:02:05,990 --> 00:02:08,400 Iżda jippruvaw jagħmlu limiti tiegħek stretta daqs kemm possibbli. 39 00:02:08,400 --> 00:02:11,630 Jekk il-valur tan-nofs mhuwiex il-labra, imbagħad inti taf li inti m'għandekx bżonn li 40 00:02:11,630 --> 00:02:13,010 tinkludih fit-tfittxija tiegħek. 41 00:02:13,010 --> 00:02:17,310 Allura int dritt bound tista issikka l- limiti tat-tiftix biss ftit żgħira aktar, 42 00:02:17,310 --> 00:02:21,770 u hekk u ibqa 'sejjer hekk sakemm issib labra tiegħek. 43 00:02:21,770 --> 00:02:23,480 >> Allura dak li l pseudocode look like? 44 00:02:23,480 --> 00:02:28,420 Well filwaqt li aħna qed għadhom tfittex permezz il-lista u għad għandhom l-elementi għall- 45 00:02:28,420 --> 00:02:33,690 tħares, nieħdu l-nofs tal-lista, u jqabblu dak il-valur medju biex 46 00:02:33,690 --> 00:02:34,950 labra tagħna. 47 00:02:34,950 --> 00:02:37,310 Jekk dawn qed ugwali, allura dan ifisser konna sabu l-labra u nistgħu 48 00:02:37,310 --> 00:02:38,990 ritorn vera. 49 00:02:38,990 --> 00:02:42,870 >> Inkella, jekk il-labra tkun inqas minn il-valur tan-nofs, allura dan ifisser li aħna 50 00:02:42,870 --> 00:02:47,280 jistgħu jeħilsu in-nofs lemini, u biss tfittxija ix-xellug tal-array. 51 00:02:47,280 --> 00:02:51,090 Inkella, aħna ser tfittex il- lemin tal-array. 52 00:02:51,090 --> 00:02:54,410 U fl-aħħar, jekk inti ma għandekx xi aktar elementi xellug ta 'tiftix imma int 53 00:02:54,410 --> 00:02:58,050 ma sabu labra għadu tiegħek, allura inti ritorn foloz għaliex il-labra 54 00:02:58,050 --> 00:03:01,890 definittivament mhux fil-haystack. 55 00:03:01,890 --> 00:03:05,270 >> Issa ħaġa pulita dwar dan pseudocode fit-tfittxija binarju huwa li tista 'tkun 56 00:03:05,270 --> 00:03:09,940 interpretata jew bħala iterattiv jew l-implimentazzjoni rikursiv. 57 00:03:09,940 --> 00:03:13,810 Għalhekk ikun rikursivi jekk inti imsejħa il-funzjoni ta 'tfittxija fil-search 58 00:03:13,810 --> 00:03:17,350 jiffunzjonaw fuq kull nofs il-firxa. 59 00:03:17,350 --> 00:03:21,030 Aħna ser ikopru recursion daqsxejn aktar tard fil- naturalment, iżda nafu li dan huwa 60 00:03:21,030 --> 00:03:24,190 għażla jekk inti tixtieq li jippruvaw. 61 00:03:24,190 --> 00:03:26,030 >> Issa ejja nħarsu lejn tip. 62 00:03:26,030 --> 00:03:30,750 Sort jieħu firxa u n-numru sħiħ n, li huwa d-daqs tal-array. 63 00:03:30,750 --> 00:03:34,030 Issa hemm tipi differenti varji ta 'tipi, u inti tista' tħares lejn xi 64 00:03:34,030 --> 00:03:36,370 xorts għall demos u spjegazzjonijiet. 65 00:03:36,370 --> 00:03:39,580 It-tip ritorn għall tagħna funzjoni sort huwa null. 66 00:03:39,580 --> 00:03:43,580 Allura dan ifisser li aħna ma tkunx qed tmur jibagħtu lura kull array minn tip. 67 00:03:43,580 --> 00:03:48,140 Aħna fil-fatt se jibdlu l-ħafna array li kienet għaddiet fil us. 68 00:03:48,140 --> 00:03:52,290 >> U li jista 'jkun minħabba arrays huma għadda b'riferenza C. Issa aħna ser 69 00:03:52,290 --> 00:03:55,290 tara aktar dwar din aktar tard, iżda l- differenza essenzjali bejn tgħaddi 70 00:03:55,290 --> 00:03:59,340 fil xi ħaġa simili integer u t-trasferiment fil-firxa, hija li meta inti 71 00:03:59,340 --> 00:04:03,490 jgħaddu integer, C huwa biss se jagħmel kopja ta 'dak integer u jgħaddu 72 00:04:03,490 --> 00:04:04,450 lill-funzjoni. 73 00:04:04,450 --> 00:04:08,530 Il-varjabbli oriġinali mhux se tinbidel ladarba l-funzjoni huwa lest. 74 00:04:08,530 --> 00:04:12,480 Ma 'firxa, min-naħa l-oħra, huwa mhux se tagħmel kopja, u tkun taf 75 00:04:12,480 --> 00:04:17,910 attwalment jiġu editjar ħafna array innifsu. 76 00:04:17,910 --> 00:04:21,269 >> Allura tip wieħed ta 'tip huwa t-tip ta 'għażla. 77 00:04:21,269 --> 00:04:24,750 Il sort għażla jaħdem billi jibda il-bidu, u allura inti jtenni 78 00:04:24,750 --> 00:04:26,820 fuq u jsibu l-element iżgħar. 79 00:04:26,820 --> 00:04:30,710 U allura inti tpartit li iżgħar element bl-ewwel wieħed. 80 00:04:30,710 --> 00:04:34,360 U allura inti timxi għat-tieni element , Isibu l-iżgħar li jmiss 81 00:04:34,360 --> 00:04:38,320 element, u mbagħad tpartit li bl- tieni element fil-firxa minħabba 82 00:04:38,320 --> 00:04:41,100 l-ewwel element huwa diġà magħżula. 83 00:04:41,100 --> 00:04:45,370 U hekk allura inti tkompli għal kull element fl-identifikazzjoni l-iżgħar 84 00:04:45,370 --> 00:04:47,690 valur u jagħmlu skambju out. 85 00:04:47,690 --> 00:04:53,460 >> Għall I ikun egwali għal 0, l-ewwel element li n minus 1, int ser iqabblu 86 00:04:53,460 --> 00:04:57,820 kull valur li jmiss wara dik u jsibu l-indiċi tal-valur minimu. 87 00:04:57,820 --> 00:05:02,520 Ladarba ssib l-indiċi tal-valur minimu, inti tista 'tpartit li l-valur tal-firxa 88 00:05:02,520 --> 00:05:05,930 firxa minima u I. 89 00:05:05,930 --> 00:05:09,760 >> Tip ieħor ta 'tip li inti tista' jimplimentaw huwa tip bubble. 90 00:05:09,760 --> 00:05:14,380 Allura ttenni sort buzzieqa fuq il-lista jitqabblu elementi biswit u 91 00:05:14,380 --> 00:05:17,720 iskambji l-elementi li huma fl-ordni żbaljata. 92 00:05:17,720 --> 00:05:22,380 U b'dan il-mod, l-akbar element se bubble sa l-aħħar. 93 00:05:22,380 --> 00:05:28,070 U l-lista huwa magħżul darba mhux aktar elementi ġew skambjati. 94 00:05:28,070 --> 00:05:31,920 >> Għalhekk dawn huma żewġ eżempji ta 'tip algoritmi li inti tista 'timplimenta għall- 95 00:05:31,920 --> 00:05:33,230 il-programm ssib. 96 00:05:33,230 --> 00:05:37,350 Ladarba inti finitura sort, u inti stajt jsir tiftix, int lest. 97 00:05:37,350 --> 00:05:39,720 Jisimni Zamyla, u dan huwa CS50. 98 00:05:39,720 --> 00:05:46,987 >> [Daqq tal-mużika]