1 00:00:00,000 --> 00:00:11,904 >> [Daqq tal-mużika] 2 00:00:11,904 --> 00:00:12,910 >> Professur: Kull dritt. 3 00:00:12,910 --> 00:00:16,730 Dan huwa CS50 u dan huwa l-aħħar ta 'tlieta ġimgħa. 4 00:00:16,730 --> 00:00:20,230 Allura aħna qed hawn illum, mhux fil Sanders Teatru, minflok fil Weidner Librerija. 5 00:00:20,230 --> 00:00:23,170 Ġewwa tiegħu hija studio magħrufa bħala Hauser Studio, 6 00:00:23,170 --> 00:00:28,310 jew nistgħu ngħidu Studio H, jew għandhom aħna say-- jekk inti jgawdu dan ċajta, 7 00:00:28,310 --> 00:00:30,540 huwa attwalment mil classmate, Mark, online, 8 00:00:30,540 --> 00:00:32,420 li ssuġġeriet kemm permezz Twitter. 9 00:00:32,420 --> 00:00:34,270 Issa x'hemm jibred dwar tkun hawn fi studjo 10 00:00:34,270 --> 00:00:38,410 huwa li jien mdawra minn dawn aħdar ħitan, skrin aħdar jew chromakey, 11 00:00:38,410 --> 00:00:43,290 biex ngħidu hekk, li jfisser li s CS50 tim tal-produzzjoni, unbeknownst lili 12 00:00:43,290 --> 00:00:47,380 dritt issa, jista 'jkun it-tqegħid me aktar kullimkien fid-dinja, 13 00:00:47,380 --> 00:00:48,660 għall-aħjar jew għall-agħar. 14 00:00:48,660 --> 00:00:51,800 >> Issa dak li jinsab quddiem, il-problema sett tnejn hija f'idejk għal din il-ġimgħa, 15 00:00:51,800 --> 00:00:53,830 iżda bil-problema stabbiliti tliet din il-ġimgħa li ġejjin, 16 00:00:53,830 --> 00:00:56,600 inti ser jiġu kkontestati ma il-logħba hekk imsejħa ta '15, 17 00:00:56,600 --> 00:00:58,960 favor parti antik li inti tista 'recall tirċievi 18 00:00:58,960 --> 00:01:02,030 bħala wild li għandha mazz sħiħ ta 'numri li jistgħu slide up, down, 19 00:01:02,030 --> 00:01:05,790 xellug u lemin, u hemm distakk wieħed fi ħdan il-puzzle, li fih inti 20 00:01:05,790 --> 00:01:07,840 jistgħu attwalment slide dawk il-biċċiet puzzle. 21 00:01:07,840 --> 00:01:11,150 Fl-aħħar inti tirċievi dan puzzle f'xi ordni każwali semi, 22 00:01:11,150 --> 00:01:12,940 u l-għan huwa li sort dan, fuq għal isfel, 23 00:01:12,940 --> 00:01:16,310 xellug għal-lemin, minn wieħed it-triq kollha sa permezz 15. 24 00:01:16,310 --> 00:01:19,360 >> Sfortunatament, l-implimentazzjoni inti ser ikollok fil-idejn 25 00:01:19,360 --> 00:01:21,590 se tkun software ibbażata, mhux fiżikament. 26 00:01:21,590 --> 00:01:25,280 Int fil-fatt se jkollhom jiktbu kodiċi li magħhom student jew utent jista 27 00:01:25,280 --> 00:01:26,760 jilagħbu l-logħba tal-15. 28 00:01:26,760 --> 00:01:29,030 U fil-fatt, fil-Hacker edizzjoni ta 'logħba tal-15, 29 00:01:29,030 --> 00:01:32,155 inti ser tkun sfida biex jimplimentaw, mhux biss l-daqq ta 'din l-iskola antika 30 00:01:32,155 --> 00:01:35,010 logħba, iżda pjuttost il-solving ta 'dan, l-implimentazzjoni modalità god, 31 00:01:35,010 --> 00:01:38,280 biex ngħidu hekk, li attwalment issolvi l-puzzle għall-bniedem, 32 00:01:38,280 --> 00:01:41,080 billi jipprovdulhom ħjiel, wara ħjiel, wara ħjiel. 33 00:01:41,080 --> 00:01:42,280 Allura aktar fuq dik il-ġimgħa d-dieħla. 34 00:01:42,280 --> 00:01:43,720 Imma dan huwa dak li jinsab quddiem. 35 00:01:43,720 --> 00:01:47,610 >> Għal issa ifakkar li aktar kmieni din il-ġimgħa kellna dan cliffhanger, jekk inti se, 36 00:01:47,610 --> 00:01:52,560 li biha l-aħjar aħna kienu qed jagħmlu l-issortjar għaqli kien limitu massimu ta 'big o ta n 37 00:01:52,560 --> 00:01:53,210 kwadrat. 38 00:01:53,210 --> 00:01:56,520 Fi kliem ieħor, sort bużżieqa, sort għażla, sort inserzjoni, 39 00:01:56,520 --> 00:01:59,120 kollha kemm huma, filwaqt li jkunu differenti fl-implimentazzjoni tagħhom, 40 00:01:59,120 --> 00:02:03,480 devoluti fi n kwadrat taħdem time fil-ħafna agħar każ. 41 00:02:03,480 --> 00:02:06,010 U aħna ġeneralment tassumi li il ħafna agħar każ għall-għażla 42 00:02:06,010 --> 00:02:08,814 huwa wieħed li inputs tiegħek huma kompletament lura. 43 00:02:08,814 --> 00:02:11,980 U fil-fatt, hija ħadet pjuttost ftit passi biex timplimenta kull waħda minn dawk il algoritmi. 44 00:02:11,980 --> 00:02:15,110 >> Issa fl-aħħar nett tal-klassi irtirar, qabbilna sort bużżieqa 45 00:02:15,110 --> 00:02:19,390 kontra sort għażla kontra ieħor li aħna msejħa jingħaqdu sort fil-ħin, 46 00:02:19,390 --> 00:02:22,120 u nipproponi li huwa jieħu vantaġġ ta 'lezzjoni minn ġimgħa 47 00:02:22,120 --> 00:02:24,060 żero, qasma u conquer. 48 00:02:24,060 --> 00:02:28,810 U b'xi mod kisba xi tip ta ' logaritmika running time finalment, 49 00:02:28,810 --> 00:02:31,024 minflok xi ħaġa dan huwa purament kwadratiċi. 50 00:02:31,024 --> 00:02:33,440 U huwa pjuttost mhux logaritmika, huwa daqsxejn aktar minn dak. 51 00:02:33,440 --> 00:02:36,520 Imma jekk inti recall mill-klassi, kien ħafna, ħafna aktar mgħaġġla. 52 00:02:36,520 --> 00:02:38,210 Ejja tagħti ħarsa lejn fejn aħna jitħalla 'off. 53 00:02:38,210 --> 00:02:41,880 54 00:02:41,880 --> 00:02:45,370 >> Bubble sort versus għażla sort versus sort jingħaqdu. 55 00:02:45,370 --> 00:02:47,700 Issa dawn qed kollha timxi, fil teorija, fl-istess ħin. 56 00:02:47,700 --> 00:02:50,510 Il-CPU qed taħdem bl-istess veloċità. 57 00:02:50,510 --> 00:02:54,990 Iżda int tista 'tħossok kif boring dan huwa malajr ħafna se ssir, 58 00:02:54,990 --> 00:02:58,790 u kemm fast, meta aħna injetta daqsxejn ta 'algoritmi ġimgħa żero, il 59 00:02:58,790 --> 00:03:00,080 nistgħu veloċità affarijiet up. 60 00:03:00,080 --> 00:03:01,630 >> Allura sort marka jistenna aqwa. 61 00:03:01,630 --> 00:03:05,220 Kif nistgħu lieva, sabiex sort numri aktar malajr. 62 00:03:05,220 --> 00:03:07,140 Well ejja jaħsbu lura li ingredjent li aħna 63 00:03:07,140 --> 00:03:10,380 kellhom lura fil żero ġimgħa, dak ta ' tiftix għal xi ħadd fil-ktieb tat-telefon, 64 00:03:10,380 --> 00:03:12,380 u tfakkar li l- pseudocode li aħna propost, 65 00:03:12,380 --> 00:03:14,560 li permezz tagħhom nistgħu nsibu xi ħadd bħal Mike Smith, 66 00:03:14,560 --> 00:03:16,310 stenna ftit xi ħaġa bħal din. 67 00:03:16,310 --> 00:03:20,820 >> Issa tagħti ħarsa b'mod partikolari fil-linja 7 u 8, u 10 u 11, 68 00:03:20,820 --> 00:03:25,240 li jinduċi li loop, fejn aħna tinżamm tmur lura għal-linja 3 għal darb'oħra, u għal darb'oħra, 69 00:03:25,240 --> 00:03:26,520 u għal darb'oħra. 70 00:03:26,520 --> 00:03:31,790 Iżda jirriżulta li nistgħu tara dan algoritmu, hawnhekk fil pseudocode, 71 00:03:31,790 --> 00:03:33,620 ftit aktar ħolistiku. 72 00:03:33,620 --> 00:03:35,960 Fil-fatt, dak li jien tfittex fil hawn fuq l-iskrin, 73 00:03:35,960 --> 00:03:41,180 huwa algoritmu għat-tiftix għal Mike Smith fost uħud sett ta 'paġni. 74 00:03:41,180 --> 00:03:45,520 U fil-fatt, nistgħu jissimplifika dan algoritmu fil dawk il-linji 7 u 8, 75 00:03:45,520 --> 00:03:49,860 u 10 u 11 biss jgħidu dan, li stajt ppreżentati hawnhekk bl-isfar. 76 00:03:49,860 --> 00:03:52,210 Fi kliem ieħor, jekk Mike Smith huwa aktar kmieni fil-ktieb, 77 00:03:52,210 --> 00:03:55,004 aħna ma bżonn li jispeċifikaw pass pass issa kif imorru issib lilu. 78 00:03:55,004 --> 00:03:56,920 Aħna ma jkollhom biex tispeċifika li jmorru lura għal-linja 3, 79 00:03:56,920 --> 00:03:58,960 għaliex ma we biss minflok, jiġifieri, b'mod iktar ġenerali, 80 00:03:58,960 --> 00:04:01,500 tfittxija għall Mike fil- nofs tax-xellug tal-ktieb. 81 00:04:01,500 --> 00:04:03,960 >> Bil-maqlub, jekk Mike huwa attwalment aktar tard fil-ktieb, 82 00:04:03,960 --> 00:04:07,540 għaliex ma aħna biss jikkwotaw tfittxija unquote għall Mike fil-nofs tal-lemin tal-ktieb. 83 00:04:07,540 --> 00:04:11,030 Fi kliem ieħor, għaliex ma we biss tip ta 'Punt li lilna nfusna qal, 84 00:04:11,030 --> 00:04:13,130 tfittxija għal Mike f'dan subsett tal-ktieb, 85 00:04:13,130 --> 00:04:16,279 u tħalli f'idejn l eżistenti tagħna algoritmu biex tgħidilna 86 00:04:16,279 --> 00:04:18,750 Kif tfittex Mike fil li nofs tax-xellug tal-ktieb. 87 00:04:18,750 --> 00:04:20,750 Fi kliem ieħor, tagħna algoritmu jaħdem jekk huwa 88 00:04:20,750 --> 00:04:24,670 ktieb tat-telefon ta 'din il-ħxuna, ta' dan ħxuna, jew kwalunkwe ħxuna tkun xi tkun. 89 00:04:24,670 --> 00:04:27,826 Allura nistgħu recursively jiddefinixxu dan algoritmu. 90 00:04:27,826 --> 00:04:29,950 Fi kliem ieħor, fuq il- screen hawn, huwa algoritmu 91 00:04:29,950 --> 00:04:33,130 għat-tiftix għal Mike Smith fost il-paġni ta 'ktieb tat-telefon. 92 00:04:33,130 --> 00:04:37,410 Dan b'konformità 7 u 10, ejja biss jgħidu eżattament dan. 93 00:04:37,410 --> 00:04:40,250 U jien jużaw dan it-terminu mument ilu, u tabilħaqq, recursion 94 00:04:40,250 --> 00:04:42,450 huwa l-buzzword għal issa, u huwa dan il-proċess 95 00:04:42,450 --> 00:04:47,210 ta 'kif isir xi ħaġa ċiklika mill b'xi użu kodiċi li diġà għandek, 96 00:04:47,210 --> 00:04:49,722 u ssejjaħ dan mill-ġdid, u għal darb'oħra, u għal darb'oħra. 97 00:04:49,722 --> 00:04:51,930 Issa li għaddej biex tkun importanti li aħna b'xi mod qiegħ 98 00:04:51,930 --> 00:04:53,821 out, u ma tagħmel dan infinitament twil. 99 00:04:53,821 --> 00:04:56,070 Inkella aħna qed tmur biex ikollhom tabilħaqq loop infinita. 100 00:04:56,070 --> 00:04:59,810 Imma ejja ara jekk nistgħu tissellef din l-idea ta 'recursion, tagħmel xi ħaġa mill-ġdid 101 00:04:59,810 --> 00:05:03,600 u għal darb'oħra u għal darb'oħra, biex isolvu il-problema issortjar permezz jingħaqdu 102 00:05:03,600 --> 00:05:05,900 sort, l-aktar effiċjenti. 103 00:05:05,900 --> 00:05:06,970 >> So I jagħtuk jingħaqdu sort. 104 00:05:06,970 --> 00:05:07,920 Ejja tagħti ħarsa. 105 00:05:07,920 --> 00:05:10,850 Allura hawnhekk huwa pseudocode, ma li nistgħu jimplimentaw issortjar, 106 00:05:10,850 --> 00:05:12,640 jużaw dan algoritmu imsejħa tip jingħaqdu. 107 00:05:12,640 --> 00:05:13,880 U huwa pjuttost sempliċi dan. 108 00:05:13,880 --> 00:05:15,940 Fuq l-input ta 'elementi N, fi kliem ieħor, jekk int 109 00:05:15,940 --> 00:05:18,830 minħabba n elementi u n-numri u ittri jew ikun x'ikun l-input huwa, 110 00:05:18,830 --> 00:05:22,430 jekk int tingħata l-elementi n, jekk n huwa inqas minn 2, biss jirritorna. 111 00:05:22,430 --> 00:05:22,930 Dritt? 112 00:05:22,930 --> 00:05:26,430 Għaliex jekk n hija inqas minn 2, li ifisser dik il-lista tiegħi ta 'elementi 113 00:05:26,430 --> 00:05:30,446 huwa jew daqs 0 jew 1, u f'dawn iż-żewġ każijiet trivjali, 114 00:05:30,446 --> 00:05:31,570 l-lista hija diġà riżolta. 115 00:05:31,570 --> 00:05:32,810 Jekk ma jkunx hemm lista, huwa magħżula. 116 00:05:32,810 --> 00:05:35,185 U jekk hemm lista ta 'tul 1, huwa ovvjament magħżula. 117 00:05:35,185 --> 00:05:38,280 Allura l-algoritmu biss jeħtieġ li verament tagħmel xi ħaġa interessanti, 118 00:05:38,280 --> 00:05:40,870 jekk ikollna tnejn jew aktar elementi mogħtija lilna. 119 00:05:40,870 --> 00:05:42,440 Mela ejja nħarsu lejn il-magic imbagħad. 120 00:05:42,440 --> 00:05:47,500 Else issolvi l nofs tax-xellug tal-elementi, imbagħad sort in-nofs lemini ta 'elementi, 121 00:05:47,500 --> 00:05:49,640 imbagħad jingħaqdu l-nofsijiet magħżula. 122 00:05:49,640 --> 00:05:52,440 U x'hemm tip tal-moħħ liwi hawnhekk, huwa li jien ma verament 123 00:05:52,440 --> 00:05:56,190 jidhru li qallek xejn għadha biss, id-dritt? 124 00:05:56,190 --> 00:05:59,560 All I ve qal huwa, tingħata lista ta n elementi, issolvi l-nofs xellugi, 125 00:05:59,560 --> 00:06:01,800 allura l-nofs tal-lemin, imbagħad jingħaqdu l-nofsijiet magħżula, 126 00:06:01,800 --> 00:06:03,840 iżda fejn huwa l-zalza sigriet attwali? 127 00:06:03,840 --> 00:06:05,260 Fejn hi l-algoritmu? 128 00:06:05,260 --> 00:06:09,150 Ukoll jirriżulta li dawn iż-żewġ linji ewwel, nofs tip xellug ta 'elementi, 129 00:06:09,150 --> 00:06:13,970 u tip dritt nofs ta 'elementi, huma sejħiet rikursivi, biex ngħidu hekk. 130 00:06:13,970 --> 00:06:16,120 >> Wara kollox, f'dan il-ħin, għandi 131 00:06:16,120 --> 00:06:18,950 algoritmu li biex sort mazz sħiħ ta 'elementi? 132 00:06:18,950 --> 00:06:19,450 Iva. 133 00:06:19,450 --> 00:06:20,620 Huwa dritt hawn. 134 00:06:20,620 --> 00:06:25,180 Huwa dritt hawn fuq l-iskrin, u so I jistgħu jużaw l-istess sett ta 'passi 135 00:06:25,180 --> 00:06:28,500 biex isolvi l-nofs tax-xellug, kif nista in-nofs lemini. 136 00:06:28,500 --> 00:06:30,420 U fil-fatt, għal darb'oħra, u għal darb'oħra. 137 00:06:30,420 --> 00:06:34,210 Allura b'xi mod jew ieħor, u aħna ser dalwaqt tara dan, il-maġija ta 'tip jingħaqdu 138 00:06:34,210 --> 00:06:37,967 huwa inkorporat f'dak finali ħafna linja, li qed jingħaqdu in-nofsijiet magħżula. 139 00:06:37,967 --> 00:06:39,300 U li jidher pjuttost intuwittivi. 140 00:06:39,300 --> 00:06:41,050 Tieħu żewġ nofsijiet, u int, b'xi, jingħaqdu flimkien, 141 00:06:41,050 --> 00:06:43,260 u aħna ser tara dan konkret fil-mument. 142 00:06:43,260 --> 00:06:45,080 >> Iżda din hija algoritmu kompluta. 143 00:06:45,080 --> 00:06:46,640 U ejja tara eżattament għaliex. 144 00:06:46,640 --> 00:06:50,912 Well ejja ngħidu li aħna qed jingħataw dawn l-istess tmien elementi hawn fuq l-iskrin, wieħed 145 00:06:50,912 --> 00:06:53,120 permezz tmienja, iżda dawn qed sabiex apparentement każwali. 146 00:06:53,120 --> 00:06:55,320 U l-għan fil-idejn huwa biex issolvi dawn l-elementi. 147 00:06:55,320 --> 00:06:58,280 Well kif nista tmur dwar nagħmilx hekk tuża, għal darb'oħra, 148 00:06:58,280 --> 00:07:00,407 jingħaqdu sort, permezz ta 'dan pseudocode? 149 00:07:00,407 --> 00:07:02,740 U għal darb'oħra, ingrain dan moħħok, għal ftit mument. 150 00:07:02,740 --> 00:07:05,270 L-ewwel każ hija pjuttost trivjali, jekk huwa inqas minn 2, 151 00:07:05,270 --> 00:07:07,060 redditu ġust, hemm ebda xogħol xi jsir. 152 00:07:07,060 --> 00:07:09,290 Allura verament hemm biss tlieta passi biex verament iżomm f'moħħu. 153 00:07:09,290 --> 00:07:11,081 Għal darb'oħra, u għal darb'oħra, jien tmur jridu jkollhom 154 00:07:11,081 --> 00:07:13,980 biex isolvi l-nofs tax-xellug, sort l-nofs tal-lemin, 155 00:07:13,980 --> 00:07:15,890 u mbagħad darba tagħhom żewġ nofsijiet huma magħżula, 156 00:07:15,890 --> 00:07:18,710 Irrid li jingħaqdu flimkien fil-lista Issortjati wieħed. 157 00:07:18,710 --> 00:07:19,940 Sabiex iżommu dan f'moħħhom. 158 00:07:19,940 --> 00:07:21,310 >> Allura hawnhekk-lista oriġinali. 159 00:07:21,310 --> 00:07:23,510 Ejja jittratta dan bħala array, kif aħna bdew 160 00:07:23,510 --> 00:07:25,800 f'żewġ ġimgħa, li huwa blokk kontigwa ta 'memorja. 161 00:07:25,800 --> 00:07:28,480 F'dan il-każ, li jkun fih tmien numri, lura lura lura. 162 00:07:28,480 --> 00:07:30,700 U ejja issa japplikaw sort jingħaqdu. 163 00:07:30,700 --> 00:07:33,300 So I l-ewwel trid issolvi in-nofs tax-xellug ta 'din il-lista, 164 00:07:33,300 --> 00:07:37,370 u ejja, għalhekk, tiffoka fuq 4, 8, 6, u 2. 165 00:07:37,370 --> 00:07:41,000 >> Issa kif nista tmur dwar issortjar lista ta 'daqs 4? 166 00:07:41,000 --> 00:07:45,990 Well I għandhom issa jqisu issortjar ix-xellug tan-nofs tax-xellug. 167 00:07:45,990 --> 00:07:47,720 Għal darb'oħra, ejja Rewind għal ftit mument. 168 00:07:47,720 --> 00:07:51,010 Jekk il-pseudocode huwa dan, u jien mogħtija tmien elementi, 169 00:07:51,010 --> 00:07:53,230 8 huwa ovvjament akbar minn jew ugwali għal 2. 170 00:07:53,230 --> 00:07:54,980 Allura l-ewwel każ ma japplikax. 171 00:07:54,980 --> 00:07:58,120 Allura biex issolvi tmien elementi, I-ewwel sort l-nofs tax-xellug ta 'elementi, 172 00:07:58,120 --> 00:08:01,930 imbagħad I sort l-nofs tal-lemin, imbagħad I jingħaqdu l-żewġ nofsijiet magħżula, kull waħda ta 'daqs 4. 173 00:08:01,930 --> 00:08:02,470 KOLLOX SEW. 174 00:08:02,470 --> 00:08:07,480 >> Imma jekk inti stajt biss told me, isolvi l- nofs tax-xellug, li issa hija d-daqs 4, 175 00:08:07,480 --> 00:08:09,350 kif nista sort l-nofs xellug? 176 00:08:09,350 --> 00:08:11,430 Ukoll jekk I jkollhom input ta 'erba' elementi, 177 00:08:11,430 --> 00:08:14,590 I ewwel sort ix-xellug tnejn, allura l-tnejn id-dritt, 178 00:08:14,590 --> 00:08:16,210 u mbagħad I jingħaqdu flimkien. 179 00:08:16,210 --> 00:08:18,700 Għalhekk għal darb'oħra, din issir bit ta mind liwi logħba hawn, 180 00:08:18,700 --> 00:08:21,450 għaliex inti, tip ta ', għandek ftakar fejn inti fil-istorja, 181 00:08:21,450 --> 00:08:23,620 iżda fl-aħħar tal-ġurnata, minħabba kwalunkwe numru ta 'elementi, 182 00:08:23,620 --> 00:08:25,620 inti l-ewwel trid issolvi l- nofs tax-xellug, allura l-nofs tal-lemin, 183 00:08:25,620 --> 00:08:26,661 imbagħad jingħaqdu flimkien. 184 00:08:26,661 --> 00:08:28,630 Nibdew biex jagħmlu eżattament dan. 185 00:08:28,630 --> 00:08:30,170 Hawn il-input ta 'tmien elementi. 186 00:08:30,170 --> 00:08:31,910 Issa aħna qed tħares lejn in-nofs tax-xellug hawn. 187 00:08:31,910 --> 00:08:33,720 Kif nista sort erba 'elementi? 188 00:08:33,720 --> 00:08:35,610 Well I ewwel isolvi l-nofs tax-xellug. 189 00:08:35,610 --> 00:08:37,720 Issa kif nista sort l-nofs xellug? 190 00:08:37,720 --> 00:08:39,419 Well I kont qed jingħataw żewġ elementi. 191 00:08:39,419 --> 00:08:41,240 Mela ejja sort dawn iż-żewġ elementi. 192 00:08:41,240 --> 00:08:44,540 2 hija akbar minn jew ugwali għal 2, tal-kors. 193 00:08:44,540 --> 00:08:46,170 Allura li l-ewwel każ ma japplikax. 194 00:08:46,170 --> 00:08:49,010 >> So I issa għandhom biex issolvi ix-xellug nofs ta 'dawn iż-żewġ elementi. 195 00:08:49,010 --> 00:08:50,870 Il-half-xellug, naturalment, huwa biss 4. 196 00:08:50,870 --> 00:08:54,020 Allura kif nista sort lista ta 'element wieħed? 197 00:08:54,020 --> 00:08:57,960 Ukoll issa, din il-bażi speċjali top up, biex ngħidu hekk, tapplika. 198 00:08:57,960 --> 00:09:01,470 1 huwa inqas minn 2, u tiegħi lista hija tabilħaqq ta 'daqs 1. 199 00:09:01,470 --> 00:09:02,747 So I biss ritorn. 200 00:09:02,747 --> 00:09:03,580 I ma tagħmel xejn. 201 00:09:03,580 --> 00:09:06,770 U fil-fatt, tħares lejn dak li stajt jsir, 4 huwa diġà magħżula. 202 00:09:06,770 --> 00:09:09,220 Bħal Jien diġà parzjalment suċċess hawn. 203 00:09:09,220 --> 00:09:11,750 >> Issa li jidher tip ta 'stupid li jitlob, iżda huwa veru. 204 00:09:11,750 --> 00:09:13,700 4 hija lista ta 'daqs 1. 205 00:09:13,700 --> 00:09:15,090 Huwa diġà magħżula. 206 00:09:15,090 --> 00:09:16,270 Dik hija l-nofs tax-xellug. 207 00:09:16,270 --> 00:09:18,010 Now I sort l-nofs tal-lemin. 208 00:09:18,010 --> 00:09:22,310 Input tiegħi huwa element wieħed, 8 bl-istess mod, diġà magħżula. 209 00:09:22,310 --> 00:09:25,170 Stupid, wisq, iżda għal darb'oħra, dan il-prinċipju bażiku 210 00:09:25,170 --> 00:09:28,310 se jippermettilna naslu biex issa jibnu fuq quċċata ta 'dan b'suċċess. 211 00:09:28,310 --> 00:09:32,260 4 magħżula, 8 huwa magħżul, issa dak li kien dan l-aħħar pass? 212 00:09:32,260 --> 00:09:35,330 Allura l-tielet u laħħar pass, kwalunkwe ħin li inti qed issortjar lista, irtirar, 213 00:09:35,330 --> 00:09:38,310 kien li jingħaqdu ż-żewġ nofsijiet, ix-xellug u d-dritt. 214 00:09:38,310 --> 00:09:39,900 Mela ejja nagħmlu eżattament dan. 215 00:09:39,900 --> 00:09:41,940 Nofs tax-xellug tiegħi huwa, ovvjament, 4. 216 00:09:41,940 --> 00:09:43,310 Nofs tal-lemin tiegħi hija 8. 217 00:09:43,310 --> 00:09:44,100 >> Mela ejja tagħmel dan. 218 00:09:44,100 --> 00:09:46,410 L-ewwel jien ser talloka xi memorja addizzjonali, 219 00:09:46,410 --> 00:09:48,680 li jien ser jirrappreżentaw hawn, biss bħala firxa sekondarja, 220 00:09:48,680 --> 00:09:49,660 li l-kbir biżżejjed biex joqgħodu f'din. 221 00:09:49,660 --> 00:09:52,243 Iżda int tista 'timmaġina li testendi li rettangolu t-tul kollu, 222 00:09:52,243 --> 00:09:53,290 jekk għandna bżonn aktar tard. 223 00:09:53,290 --> 00:09:58,440 Kif nista 'tieħu 4 u 8, u jingħaqdu dawn iż-żewġ listi ta 'daqs 1 flimkien? 224 00:09:58,440 --> 00:10:00,270 Hawnhekk, ukoll, pretty sempliċi. 225 00:10:00,270 --> 00:10:03,300 4 jiġi l-ewwel, mbagħad taqa 8. 226 00:10:03,300 --> 00:10:07,130 Għaliex jekk irrid biex issolvi l- nofs tax-xellug, allura l-nofs tal-lemin, 227 00:10:07,130 --> 00:10:09,900 u mbagħad jingħaqdu dawn iż-żewġ nofsijiet flimkien, sabiex magħżula, 228 00:10:09,900 --> 00:10:11,940 4 jiġi l-ewwel, mbagħad taqa 8. 229 00:10:11,940 --> 00:10:15,810 >> Allura aħna jidhru li jagħmlu progress, anke għalkemm I ma jsir ebda xogħol effettiv. 230 00:10:15,810 --> 00:10:17,800 Imma ftakar fejn ninsabu fl-istorja. 231 00:10:17,800 --> 00:10:19,360 Aħna oriġinarjament ħadet tmien elementi. 232 00:10:19,360 --> 00:10:21,480 Aħna magħżula l-nofs tax-xellug, li huwa ta '4. 233 00:10:21,480 --> 00:10:24,450 Imbagħad aħna magħżula in-nofs tax-xellug tan-nofs tax-xellug, li kien ta '2. 234 00:10:24,450 --> 00:10:25,270 U here we go. 235 00:10:25,270 --> 00:10:26,920 Aħna qed isir ma dak il-pass. 236 00:10:26,920 --> 00:10:29,930 >> Allura jekk aħna ve magħżula l xellug nofs ta '2, issa aħna 237 00:10:29,930 --> 00:10:32,130 jkollhom biex issolvi l-nofs tal-lemin tat-2. 238 00:10:32,130 --> 00:10:35,710 Allura l-nofs tal-lemin tat-2 huwa dawn iż-żewġ valuri hawn, 6 u 2. 239 00:10:35,710 --> 00:10:40,620 Mela ejja issa tieħu l-input ta 'daqs 2, u sort l-nofs tax-xellug, u mbagħad 240 00:10:40,620 --> 00:10:42,610 in-nofs lemini, u mbagħad jingħaqdu flimkien. 241 00:10:42,610 --> 00:10:45,722 Well kif nista sort lista ta 'daqs 1, li jkun fiha biss in-numru 6? 242 00:10:45,722 --> 00:10:46,430 Jien diġà sar. 243 00:10:46,430 --> 00:10:48,680 Dik il-lista ta 'daqs 1 huwa magħżul. 244 00:10:48,680 --> 00:10:52,140 >> Kif nista sort lista oħra ta ' daqs 1, l-hekk imsejħa nofs tal-lemin. 245 00:10:52,140 --> 00:10:54,690 Ukoll, wisq, huwa diġà magħżula. 246 00:10:54,690 --> 00:10:56,190 In-numru 2 huwa waħdu. 247 00:10:56,190 --> 00:11:00,160 Allura issa I għandhom żewġ nofsijiet, tax-xellug u dritt, I-ħtieġa li jingħaqdu flimkien. 248 00:11:00,160 --> 00:11:01,800 Ħalli nagħtikom myself xi spazju żejjed. 249 00:11:01,800 --> 00:11:05,580 U mqiegħda 2 fil hemm, allura 6 fil hemm, u b'hekk 250 00:11:05,580 --> 00:11:10,740 issortjar dik il-lista, tax-xellug u lemin, u li jingħaqad flimkien, finalment. 251 00:11:10,740 --> 00:11:12,160 Hekk jien fil-forma ftit aħjar. 252 00:11:12,160 --> 00:11:16,250 Jien ma jsirx, minħabba b'mod ċar 4, 8, 2, 6 mhijiex l-ordni finali li nixtieq. 253 00:11:16,250 --> 00:11:20,640 Imma jien issa għandhom żewġ listi ta 'daqs 2, li ikunu t-tnejn, rispettivament, ġew magħżula. 254 00:11:20,640 --> 00:11:24,580 Allura issa jekk inti kontrina fil moħħ tiegħek għajn, fejn ma dan il-leave us? 255 00:11:24,580 --> 00:11:28,520 I bdew bi tmien elementi, imbagħad I fadal l-isfel man-nofs tax-xellug ta '4, 256 00:11:28,520 --> 00:11:31,386 allura l-nofs tax-xellug ta '2, u allura l-nofs tal-lemin ta '2, 257 00:11:31,386 --> 00:11:34,510 I lest, għalhekk, l-issortjar ix-xellug nofs ta '2, u n-nofs dritt ta' 2, 258 00:11:34,510 --> 00:11:37,800 Allura x'inhu l-tielet u laħħar pass hawn? 259 00:11:37,800 --> 00:11:41,290 Għandi biex jingħaqdu flimkien żewġ listi ta 'daqs 2. 260 00:11:41,290 --> 00:11:42,040 Mela ejja imorru quddiem. 261 00:11:42,040 --> 00:11:43,940 U fuq l-iskrin hawn, jagħtu me xi memorja addizzjonali, 262 00:11:43,940 --> 00:11:47,170 għalkemm teknikament, avviż li stajt ltqajna mazz sħiħ ta 'vojt ispazju top up 263 00:11:47,170 --> 00:11:47,670 hemmhekk. 264 00:11:47,670 --> 00:11:50,044 Jekk Nixtieq inkun speċjalment ispazju effiċjenti għaqli, 265 00:11:50,044 --> 00:11:52,960 I tista 'biss tibda miexja l-elementi quddiem u lura, fuq u isfel. 266 00:11:52,960 --> 00:11:55,460 Iżda biss għaċ-ċarezza viżwali, Jien ser tpoġġi l-isfel hawn taħt, 267 00:11:55,460 --> 00:11:56,800 li żżomm affarijiet sbieħ u nodfa. 268 00:11:56,800 --> 00:11:58,150 >> So I ħadthom ltqajna żewġ listi ta 'daqs 2. 269 00:11:58,150 --> 00:11:59,770 L-ewwel lista għandha 4 u 8. 270 00:11:59,770 --> 00:12:01,500 It-tieni lista tkun 2 u 6. 271 00:12:01,500 --> 00:12:03,950 Ejja jingħaqdu dawk flimkien sabiex Issortjat. 272 00:12:03,950 --> 00:12:09,910 2, naturalment, jiġi l-ewwel, imbagħad 4, imbagħad 6, imbagħad 8. 273 00:12:09,910 --> 00:12:12,560 U issa aħna jidhru li qegħdin ikunu x'imkien interessanti. 274 00:12:12,560 --> 00:12:15,720 Nofs Issa stajt magħżula tal- lista, u inzerta, huwa 275 00:12:15,720 --> 00:12:18,650 il-numri anke, iżda li huwa, tabilħaqq, biss koinċidenza. 276 00:12:18,650 --> 00:12:22,220 U jien issa magħżula ix-xellug nofs, b'tali mod li huwa 2, 4, 6, u 8. 277 00:12:22,220 --> 00:12:23,430 Xejn huwa out of order. 278 00:12:23,430 --> 00:12:24,620 Li jħoss simili progress. 279 00:12:24,620 --> 00:12:26,650 >> Issa jħoss simili stajt kien jitkellem dejjem issa, 280 00:12:26,650 --> 00:12:29,850 Allura dak għad irid jara jekk din algoritmu huwa, tabilħaqq, aktar effiċjenti. 281 00:12:29,850 --> 00:12:31,766 Iżda aħna qed tmur permezz super metodiku. 282 00:12:31,766 --> 00:12:34,060 A kompjuter, naturalment, tagħmel dan bħal dik. 283 00:12:34,060 --> 00:12:34,840 Għalhekk, fejn huma aħna? 284 00:12:34,840 --> 00:12:36,180 Bdejna bi tmien elementi. 285 00:12:36,180 --> 00:12:37,840 I magħżula l nofs tax-xellug tal-4. 286 00:12:37,840 --> 00:12:39,290 I jidhru li jsir ma 'dak. 287 00:12:39,290 --> 00:12:42,535 Allura issa l-pass li jmiss huwa li sort in-nofs lemini tal-4. 288 00:12:42,535 --> 00:12:44,410 U din il-parti nistgħu mmorru permezz ta 'aktar ftit 289 00:12:44,410 --> 00:12:47,140 malajr, għalkemm int merħba lill kontrina jew nieqaf, biss 290 00:12:47,140 --> 00:12:49,910 jaħsbu permezz dan fid pass tiegħek, imma dak 291 00:12:49,910 --> 00:12:53,290 għandna issa hija opportunità biex jagħmlu l-istess algoritmu eżatt fuq erba 292 00:12:53,290 --> 00:12:54,380 numri differenti. 293 00:12:54,380 --> 00:12:57,740 >> Mela ejja aqbad, u tiffoka fuq in-nofs lemini, li aħna qegħdin hawn. 294 00:12:57,740 --> 00:13:01,260 Il-half xellug ta 'dik nofs tal-lemin, u issa l- 295 00:13:01,260 --> 00:13:04,560 nofs xellugija xellug nofs ta 'li nofs id-dritt, 296 00:13:04,560 --> 00:13:08,030 u kif nista sort lista ta 'daqs 1 fih biss in-numru 1? 297 00:13:08,030 --> 00:13:09,030 Huwa diġà sar. 298 00:13:09,030 --> 00:13:11,830 Kif nista 'tagħmel l-istess lista ta 'daqs 1 fih biss 7? 299 00:13:11,830 --> 00:13:12,840 Huwa diġà sar. 300 00:13:12,840 --> 00:13:16,790 It-tielet pass għal dan nofs imbagħad huwa li jingħaqdu dawn iż-żewġ elementi 301 00:13:16,790 --> 00:13:20,889 fi lista ġdida ta 'daqs 2, 1 u 7. 302 00:13:20,889 --> 00:13:23,180 Ma jidhirx li għamlu kollha xogħol li ħafna interessanti. 303 00:13:23,180 --> 00:13:24,346 Ejja naraw x'jiġri li jmiss. 304 00:13:24,346 --> 00:13:29,210 I biss magħżula l-nofs tax-xellug tal- nofs tal-lemin tal-input oriġinali tiegħi. 305 00:13:29,210 --> 00:13:32,360 Issa ejja sort-dritt nofs, li jkun fih 5 u 3. 306 00:13:32,360 --> 00:13:35,740 Ejja darb'oħra nħarsu lejn ix-xellug nofs, magħżula, nofs tal-lemin, magħżula, 307 00:13:35,740 --> 00:13:39,120 u jingħaqdu dawn iż-żewġ flimkien, fis xi spazju addizzjonali, 308 00:13:39,120 --> 00:13:41,670 3 jiġi l-ewwel, mbagħad taqa 5. 309 00:13:41,670 --> 00:13:46,190 U hekk issa, aħna għandna magħżula l nofs xellugija nofs tal-lemin 310 00:13:46,190 --> 00:13:49,420 tal-problema oriġinali, u in-nofs lemini tal-nofs tal-lemin 311 00:13:49,420 --> 00:13:50,800 tal-problema oriġinali. 312 00:13:50,800 --> 00:13:52,480 X'hemm-tielet u laħħar Pass? 313 00:13:52,480 --> 00:13:54,854 Ukoll biex jingħaqdu dawn iż-żewġ nofsijiet flimkien. 314 00:13:54,854 --> 00:13:57,020 So let me nikseb myself xi ispazju żejda, iżda, għal darb'oħra, I 315 00:13:57,020 --> 00:13:58,699 jista 'jkun jużaw dak l-ispazju up żejda top. 316 00:13:58,699 --> 00:14:00,490 Iżda aħna qed tmur biex iżommu sempliċi viżwalment. 317 00:14:00,490 --> 00:14:07,070 Let me jingħaqdu fil issa 1, u imbagħad 3, u mbagħad 5, u mbagħad 7. 318 00:14:07,070 --> 00:14:10,740 B'hekk jħallu me issa mal- nofs tal-lemin tal-problema oriġinali 319 00:14:10,740 --> 00:14:12,840 li l-perfettament riżolta. 320 00:14:12,840 --> 00:14:13,662 >> Allura dak li jibqa? 321 00:14:13,662 --> 00:14:16,120 Inħoss bħal I iżommu qal il istess affarijiet darb'oħra, u għal darb'oħra, 322 00:14:16,120 --> 00:14:18,700 iżda li jirrifletti tal- fatt li aħna qed tuża recursion. 323 00:14:18,700 --> 00:14:21,050 Il-proċess ta 'użu ta algoritmu darb'oħra, u għal darb'oħra, 324 00:14:21,050 --> 00:14:23,940 fuq sottogruppi iżgħar ta ' il-problema oriġinali. 325 00:14:23,940 --> 00:14:27,580 So I issa għandhom xellug magħżula nofs il-problema oriġinali. 326 00:14:27,580 --> 00:14:30,847 I jkollu nofs Issortjat dritt tal-problema oriġinali. 327 00:14:30,847 --> 00:14:32,180 X'hemm-tielet u laħħar pass? 328 00:14:32,180 --> 00:14:33,590 Oh, huwa qed jingħaqdu. 329 00:14:33,590 --> 00:14:34,480 Mela ejja tagħmel dan. 330 00:14:34,480 --> 00:14:36,420 Ejja jalloka xi addizzjonali memorja, iżda god tiegħi, aħna 331 00:14:36,420 --> 00:14:37,503 tista 'tpoġġi kullimkien issa. 332 00:14:37,503 --> 00:14:40,356 Għandna spazju tant disponibbli lilna, imma aħna ser jżommha sempliċi. 333 00:14:40,356 --> 00:14:42,730 Minflok tmur lura u raba memorja oriġinali tagħna, 334 00:14:42,730 --> 00:14:44,480 ejja biss tagħmel dan viżwalment stabbiliti hawn taħt, 335 00:14:44,480 --> 00:14:47,240 biex jintemm l-għaqda tal- nofs tax-xellug u n-nofs lemin. 336 00:14:47,240 --> 00:14:49,279 >> Allura bl-inkorporazzjoni, dak li għandi bżonn tagħmel? 337 00:14:49,279 --> 00:14:50,820 I tixtieq li tieħu l-elementi fl-ordni. 338 00:14:50,820 --> 00:14:53,230 Allura tħares lejn l-nofs tax-xellug, Nara l-ewwel numru huwa 2. 339 00:14:53,230 --> 00:14:55,230 I tħares lejn in-nofs lemini, Nara l-ewwel numru 340 00:14:55,230 --> 00:14:58,290 huwa 1, dan ovvjament li Numru do Irrid ġewwieni out, 341 00:14:58,290 --> 00:15:00,430 u mqiegħda ewwel fil-lista finali tiegħi? 342 00:15:00,430 --> 00:15:01,449 Of course, 1. 343 00:15:01,449 --> 00:15:02,990 Issa nixtieq li jistaqsu l-istess kwistjoni. 344 00:15:02,990 --> 00:15:05,040 Fuq in-nofs tax-xellug, stajt għadhom kisbu n-numru 2. 345 00:15:05,040 --> 00:15:07,490 Min-nofs tal-lemin, Stajt ltqajna l-għadd 3. 346 00:15:07,490 --> 00:15:08,930 Liema wieħed do Irrid li jagħżlu? 347 00:15:08,930 --> 00:15:11,760 Of course, numru 2 U issa avviż l-kandidati 348 00:15:11,760 --> 00:15:13,620 huma 4 fuq ix-xellug, 3 fuq il-lemin. 349 00:15:13,620 --> 00:15:15,020 Ejja, naturalment, jagħżlu 3. 350 00:15:15,020 --> 00:15:18,020 Issa l-kandidati huma 4 dwar fuq ix-xellug, 5 fuq il-lemin. 351 00:15:18,020 --> 00:15:19,460 Aħna, naturalment, jagħżlu 4. 352 00:15:19,460 --> 00:15:21,240 6 fuq ix-xellug, 5 fuq il-lemin. 353 00:15:21,240 --> 00:15:22,730 Aħna, naturalment, jagħżlu 5. 354 00:15:22,730 --> 00:15:25,020 6 fuq ix-xellug, 7 fuq il-lemin. 355 00:15:25,020 --> 00:15:29,320 Nagħżlu 6, u allura aħna jagħżlu 7, u allura aħna jagħżlu 8. 356 00:15:29,320 --> 00:15:30,100 Voila. 357 00:15:30,100 --> 00:15:34,370 >> Allura numru kbir ta 'kliem aktar tard, we jkunu magħżula din il-lista ta 'tmien elementi 358 00:15:34,370 --> 00:15:38,450 fi lista ta 'wieħed permezz tmienja, li żied ma 'kull pass, 359 00:15:38,450 --> 00:15:40,850 imma kemm ħin ma jieħdu magħna biex tagħmel dan. 360 00:15:40,850 --> 00:15:43,190 Well stajt deliberatament affarijiet stabbiliti pictorially 361 00:15:43,190 --> 00:15:46,330 hawn, sabiex inkunu nistgħu tip ta ' tara jew japprezzaw id-diviżjoni 362 00:15:46,330 --> 00:15:49,060 fil conquering li kien jiġri. 363 00:15:49,060 --> 00:15:52,830 >> Tabilħaqq jekk inti tħares lura lejn il-qawmien, Stajt xellug kollha ta 'dawn il-linji bit-tikek 364 00:15:52,830 --> 00:15:55,660 fis-seħħ id-detenturi, inti tista ', tip ta ', ara, f'ordni riversa, 365 00:15:55,660 --> 00:15:58,800 jekk inti tip ta 'ħarsa lura fil istorja issa, lista oriġinali tiegħi 366 00:15:58,800 --> 00:16:00,250 huwa, ovvjament, ta 'daqs ta' 8. 367 00:16:00,250 --> 00:16:03,480 U allura qabel, I kien jittrattaw żewġ listi ta 'daqs 4, 368 00:16:03,480 --> 00:16:08,400 u mbagħad erba 'listi ta' daqs 2, u mbagħad tmien listi ta 'daqs 1. 369 00:16:08,400 --> 00:16:10,151 >> Allura dak li ma dan, tip ta ', infakkarkom ta'? 370 00:16:10,151 --> 00:16:11,858 Ukoll, fil-fatt, xi wieħed l-algoritmi Imxejna 371 00:16:11,858 --> 00:16:14,430 ħares lejn s'issa fejn aħna firda, u jaqsmu, u qasma, 372 00:16:14,430 --> 00:16:19,500 iżommu jkollhom affarijiet mill-ġdid, u għal darb'oħra, jirriżulta din l-idea ġenerali. 373 00:16:19,500 --> 00:16:23,100 U hekk hemm xi ħaġa logaritmika għaddejjin hawn. 374 00:16:23,100 --> 00:16:26,790 U m'humiex log pjuttost ta n, iżda hemm komponent logaritmiku 375 00:16:26,790 --> 00:16:28,280 għal dak li aħna ħadthom biss isir. 376 00:16:28,280 --> 00:16:31,570 >> Issa ejja tikkunsidra kif dan fil-fatt hu. 377 00:16:31,570 --> 00:16:34,481 Allura log ta n, reġa 'kien żmien running kbir, 378 00:16:34,481 --> 00:16:36,980 meta għamilna xi ħaġa bħal tfittxija binarju, kif aħna issa sejħa hija, 379 00:16:36,980 --> 00:16:40,090 l-istrateġija firda u conquer permezz tagħhom sibna Mike Smith. 380 00:16:40,090 --> 00:16:41,020 Issa teknikament. 381 00:16:41,020 --> 00:16:43,640 C'est log bażi 2 tal n, anke għalkemm fil-klassijiet matematika aktar, 382 00:16:43,640 --> 00:16:45,770 10 huwa normalment il-bażi li għandek tassumi. 383 00:16:45,770 --> 00:16:48,940 Imma x-xjenzjati tal-kompjuter kważi dejjem jaħsbu u jitkellmu f'termini ta 'bażi ​​2, 384 00:16:48,940 --> 00:16:52,569 hekk aħna ġeneralment biss jgħidu log ta n, minflok log bażi 2 tal n, 385 00:16:52,569 --> 00:16:55,110 iżda dawn qed eżattament waħda u l- istess fid-dinja tal-kompjuter 386 00:16:55,110 --> 00:16:57,234 xjenza, u bħala twarrib, hemm fattur kostanti 387 00:16:57,234 --> 00:17:01,070 differenza bejn it-tnejn, dan huwa irrilevanti xorta waħda, għal raġunijiet aktar formali. 388 00:17:01,070 --> 00:17:04,520 >> Iżda għal issa, dak li aħna kura dwar huwa dan l-eżempju. 389 00:17:04,520 --> 00:17:08,520 Mela ejja ma jipprova bl-eżempju, iżda fl inqas użu eżempju tan-numri 390 00:17:08,520 --> 00:17:10,730 fil-idejn bħala kontroll sanità, jekk inti se. 391 00:17:10,730 --> 00:17:14,510 Allura qabel il-formula kienet log bażi 2 ta 'n, imma dak li hu n f'dan il-każ. 392 00:17:14,510 --> 00:17:18,526 Kelli numri n oriġinali, jew 8 numru oriġinali speċifikament. 393 00:17:18,526 --> 00:17:20,359 Issa huwa kien ftit imma jien pretty 394 00:17:20,359 --> 00:17:25,300 żgur li log bażi 2 tal-valur 8 huwa 3, 395 00:17:25,300 --> 00:17:29,630 u fil-fatt, x'hemm sbieħ dwar dan hija li 3 huwa eżattament l-għadd ta 'drabi 396 00:17:29,630 --> 00:17:33,320 li inti tista 'taqsam lista ta 'tul 8 darb'oħra, u għal darb'oħra, 397 00:17:33,320 --> 00:17:36,160 u għal darb'oħra, sakemm int xellug ma 'listi ta' ftit daqs 1. 398 00:17:36,160 --> 00:17:36,660 Dritt? 399 00:17:36,660 --> 00:17:40,790 8 tmur sa 4, tmur għal 2, tmur għal 1, u li l- 400 00:17:40,790 --> 00:17:43,470 jirriflettu eżattament dak stampa kellna ftit mument ilu. 401 00:17:43,470 --> 00:17:47,160 Allura sanità ftit jiċċekkjaw dwar fejn l-logaritmu huwa attwalment involut. 402 00:17:47,160 --> 00:17:50,180 >> Allura issa, x'iktar huwa involut hawnhekk? n. 403 00:17:50,180 --> 00:17:53,440 Allura avviż li kull time I maqsuma l-lista, 404 00:17:53,440 --> 00:17:58,260 għalkemm ordni invers fl-istorja hawn, I kien għadhom jagħmlu n-affarijiet. 405 00:17:58,260 --> 00:18:02,320 Dak il-pass li qed jingħaqdu meħtieġ li I tolqot kull wieħed mill-numri, 406 00:18:02,320 --> 00:18:05,060 sabiex mexxiha fil post xieraq tagħha. 407 00:18:05,060 --> 00:18:10,760 Għalhekk anki jekk l-għoli ta 'din dijagramma tkun ta 'daqs log n ta' n jew 3, 408 00:18:10,760 --> 00:18:13,860 speċifikament, fi kliem ieħor, Jien għamilt tliet diviżjonijiet hawn. 409 00:18:13,860 --> 00:18:18,800 Kemm ix-xogħol ma nagħmel orizzontalment flimkien din it-tabella kull darba? 410 00:18:18,800 --> 00:18:21,110 >> Well, I ma n-passi ta ' xogħol, għaliex jekk stajt 411 00:18:21,110 --> 00:18:24,080 ltqajna erba 'elementi u erba' elementi, u għandi bżonn biex jingħaqdu flimkien. 412 00:18:24,080 --> 00:18:26,040 I bżonn li tgħaddi minn dawn l-erba u dawn l-erba, 413 00:18:26,040 --> 00:18:28,123 finalment jingħaqdu magħhom lura fi tmien elementi. 414 00:18:28,123 --> 00:18:32,182 Jekk maqlub Stajt ltqajna tmien swaba minn hawn, li jiena ma, u tmienja 415 00:18:32,182 --> 00:18:34,390 fingers-- sorry-- Jekk stajt ltqajna erba 'frottiet hawn fuq, 416 00:18:34,390 --> 00:18:37,380 li nagħmel, erba 'frottiet minn hawn, li nagħmel, 417 00:18:37,380 --> 00:18:40,590 allura dak l-istess eżempju bħal qabel, jekk nagħmel 418 00:18:40,590 --> 00:18:44,010 tmien swaba għalkemm fil B'kollox, li nista ', tip ta', do. 419 00:18:44,010 --> 00:18:47,950 I tista 'eżattament do hawnhekk, imbagħad I jista 'ċertament 420 00:18:47,950 --> 00:18:50,370 jingħaqdu kollha ta 'dawn il-listi ta 'daqs 1 flimkien. 421 00:18:50,370 --> 00:18:54,050 Imma I ċertament jkollha tħares f'kull element darba eżattament. 422 00:18:54,050 --> 00:18:59,640 Allura l-għoli ta 'dan il-proċess huwa log n, il-wisa 'dan il-proċess, biex ngħidu hekk, 423 00:18:59,640 --> 00:19:02,490 huwa n, sabiex dak we jidhru li jkollhom, finalment, huwa 424 00:19:02,490 --> 00:19:06,470 żmien running-daqs n drabi log n. 425 00:19:06,470 --> 00:19:08,977 >> Fi kliem ieħor, aħna maqsuma il-lista, log n drabi, 426 00:19:08,977 --> 00:19:11,810 imma kull darba għamilna dan, kellna tmissx kull wieħed mill-elementi 427 00:19:11,810 --> 00:19:13,560 sabiex jingħaqdu kollha flimkien, li 428 00:19:13,560 --> 00:19:18,120 kien n pass, hekk aħna n ħinijiet log n, jew bħala xjenzat kompjuter ngħid, 429 00:19:18,120 --> 00:19:20,380 asimptotikalment, li ikun il-kelma big 430 00:19:20,380 --> 00:19:22,810 biex jiddeskrivu l-ogħla marbuta fuq running time, 431 00:19:22,810 --> 00:19:28,010 qed norganizzaw fil-o big ta 'log n żmien, biex ngħidu hekk. 432 00:19:28,010 --> 00:19:31,510 >> Issa dan huwa sinifikanti, għaliex tfakkar dak il-ħinijiet tmexxija kienu 433 00:19:31,510 --> 00:19:34,120 ma sort bużżieqa, u l-għażla sort, u sort inserzjoni, 434 00:19:34,120 --> 00:19:38,200 u anki ftit oħrajn li jeżistu, n kwadrat kien fejn konna fuq. 435 00:19:38,200 --> 00:19:39,990 U inti tista ', tip ta', tara dan hawn. 436 00:19:39,990 --> 00:19:45,720 Jekk n kwadrat hija ovvjament n darbiet n, iżda hawnhekk għandna n ħinijiet log n, 437 00:19:45,720 --> 00:19:48,770 u aħna diġà jafu minn ġimgħa żero, li log n, l-logaritmika, 438 00:19:48,770 --> 00:19:50,550 huwa aħjar minn lineari xi ħaġa. 439 00:19:50,550 --> 00:19:52,930 Wara kollox, tfakkar l-istampa mal-aħmar u l-isfar 440 00:19:52,930 --> 00:19:56,500 u l-linji aħdar li aħna ġibdet, l linja logaritmika aħdar kien ħafna inqas. 441 00:19:56,500 --> 00:20:00,920 U għalhekk, ħafna aħjar u aktar malajr mill-linji sofor u ħomor dritta, 442 00:20:00,920 --> 00:20:05,900 n ħinijiet log n jiġifieri, tabilħaqq, aħjar minn żminijiet n n, jew n kwadrat. 443 00:20:05,900 --> 00:20:09,110 >> Allura aħna jidhru li jkollhom identifikat jingħaqdu algoritmu 444 00:20:09,110 --> 00:20:11,870 sort li tmur fil ħafna iktar ħeffa, u tabilħaqq, 445 00:20:11,870 --> 00:20:16,560 hu għalhekk, aktar kmieni din il-ġimgħa, meta rajna dak il-konkors bejn bużżieqa 446 00:20:16,560 --> 00:20:20,750 sort, sort għażla, u jingħaqdu sort, jingħaqdu sort tassew, tassew rebaħ. 447 00:20:20,750 --> 00:20:23,660 U fil-fatt, aħna lanqas biss stenna għall bubble sort u sort għażla 448 00:20:23,660 --> 00:20:24,790 biex jintemm. 449 00:20:24,790 --> 00:20:27,410 >> Issa ejja tagħti pass ieħor għal dan, minn ftit aktar 450 00:20:27,410 --> 00:20:31,030 perspettiva formali, biss fil- każ, dan resonates aħjar 451 00:20:31,030 --> 00:20:33,380 minn dik id-diskussjoni f'livell ogħla. 452 00:20:33,380 --> 00:20:34,880 Allura hawnhekk-algoritmu ġdid. 453 00:20:34,880 --> 00:20:36,770 Ejja nistaqsu lilna nfusna, dak il-ħin qed taħdem 454 00:20:36,770 --> 00:20:39,287 huwa ta 'din algoritmi diversi passi? 455 00:20:39,287 --> 00:20:41,620 Ejja diviż l-ewwel każ u t-tieni każ. 456 00:20:41,620 --> 00:20:46,280 L-IF u l-ieħor fil-każ IF, JEKK n huwa inqas minn 2, biss jirritorna. 457 00:20:46,280 --> 00:20:47,580 Iħoss bħal time kostanti. 458 00:20:47,580 --> 00:20:50,970 Huwa, tip ta, bħal żewġ passi, JEKK n huwa inqas minn 2, mbagħad jirritornaw. 459 00:20:50,970 --> 00:20:54,580 Imma kif għidna nhar it-Tnejn, ħin kostanti, jew kbar o ta '1, 460 00:20:54,580 --> 00:20:57,130 jista jkun żewġ skali, tliet passi, anke 1,000 passi. 461 00:20:57,130 --> 00:20:59,870 Li huwa importanti huwa li huwa numru kostanti ta 'passi. 462 00:20:59,870 --> 00:21:03,240 Allura l-isfar enfasizzati pseudocode hawn runs fi, aħna ser sejħa hija, 463 00:21:03,240 --> 00:21:04,490 ħin kostanti. 464 00:21:04,490 --> 00:21:06,780 Allura b'mod aktar formali, u aħna qed tmur to-- dan 465 00:21:06,780 --> 00:21:09,910 se jkun il-punt sa fejn aħna jifformalizza dan id-dritt now-- T ta n, 466 00:21:09,910 --> 00:21:15,030 l running time ta 'problema li jieħu somethings n bħala input, 467 00:21:15,030 --> 00:21:19,150 ugwali big o wieħed, JEKK n huwa inqas minn 2. 468 00:21:19,150 --> 00:21:20,640 Allura huwa kondizzjonali fuq dan. 469 00:21:20,640 --> 00:21:24,150 Allura biex tkun ċara, JEKK n huwa inqas minn 2, aħna għandna lista qasira ħafna, imbagħad 470 00:21:24,150 --> 00:21:29,151 l-running time, T ta 'n, fejn n hija 1 jew 0, f'dan il-każ speċifiku ħafna, 471 00:21:29,151 --> 00:21:30,650 huwa biss se jkun żmien kostanti. 472 00:21:30,650 --> 00:21:32,691 Huwa ser jieħu waħda pass, żewġ passi, tkun xi tkun. 473 00:21:32,691 --> 00:21:33,950 Huwa numru fiss ta 'passi. 474 00:21:33,950 --> 00:21:38,840 >> Allura l-parti mmerraq żgur li jridu fil il każ l-ieħor fil-pseudocode. 475 00:21:38,840 --> 00:21:40,220 Il-każ IKTAR. 476 00:21:40,220 --> 00:21:44,870 Sort nofs tax-xellug ta 'elementi, tip dritt nofs ta 'elementi, jingħaqdu nofsijiet magħżula. 477 00:21:44,870 --> 00:21:46,800 Kemm idum ma kull wieħed minn dawk il-passi tieħu? 478 00:21:46,800 --> 00:21:49,780 Ukoll, jekk it-tmexxija ħin biex issolvi elementi n 479 00:21:49,780 --> 00:21:53,010 huwa, ejja sejħa hija ħafna ġenerikament, T ta n, 480 00:21:53,010 --> 00:21:55,500 imbagħad issortjar ix-xellug nofs mill-elementi 481 00:21:55,500 --> 00:21:59,720 huwa, tip ta ', simili qal, T ta 'n diviż bi 2, 482 00:21:59,720 --> 00:22:03,000 u l-istess għażla in-nofs lemini ta 'elementi huwa, tip ta', simili qal, 483 00:22:03,000 --> 00:22:06,974 T ta 'n maqsuma 2, u mbagħad jingħaqdu l nofsijiet magħżula. 484 00:22:06,974 --> 00:22:08,890 Ukoll jekk stajt ltqajna xi numru ta 'elementi hawn, 485 00:22:08,890 --> 00:22:11,230 bħall erba, u xi numru ta 'elementi hawn, bħal erbgħa, 486 00:22:11,230 --> 00:22:14,650 u I għandhom jingħaqdu kull wieħed minn dawn l-erba fi, u kull wieħed minn dawn l-erba fi, wieħed 487 00:22:14,650 --> 00:22:17,160 wara l-oħra, b'tali mod li finalment I jkollhom tmien elementi. 488 00:22:17,160 --> 00:22:20,230 Hija tħoss bħal dan huwa big o ta 'passi n? 489 00:22:20,230 --> 00:22:23,500 Jekk Stajt ltqajna n swaba u kull wieħed minnhom għandu jiġu amalgamati fis-seħħ, 490 00:22:23,500 --> 00:22:25,270 dan huwa simili ieħor passi n. 491 00:22:25,270 --> 00:22:27,360 >> Allura fil-fatt formulaically, nistgħu tesprimi din, 492 00:22:27,360 --> 00:22:29,960 għalkemm scarily ftit fl-ewwel daqqa t'għajn, iżda hija xi ħaġa 493 00:22:29,960 --> 00:22:31,600 li jaqbad eżattament li l-loġika. 494 00:22:31,600 --> 00:22:35,710 Il-ħin taħdem, T ta n-IF n hija akbar minn jew ugwali għal 2. 495 00:22:35,710 --> 00:22:42,500 F'dan il-każ, il-każ IKTAR, huwa T ta n maqsum bi 2, flimkien ma T ta 'N diviż bi 2, 496 00:22:42,500 --> 00:22:45,320 plus big o ta n, xi Numru lineari ta 'passi, 497 00:22:45,320 --> 00:22:51,630 forsi eżattament n, forsi 2 darbiet n, imma hija bejn wieħed u ieħor, l-ordni ta 'n. 498 00:22:51,630 --> 00:22:54,060 Allura dan, wisq, huwa kif nistgħu tesprimi din formulaically. 499 00:22:54,060 --> 00:22:56,809 Issa inti ma tkunx taf dan sakemm inti ħadthom rreġistrati fil moħħok, 500 00:22:56,809 --> 00:22:58,710 jew tfittex it up fil- lura ta 'textbook, li 501 00:22:58,710 --> 00:23:00,501 jista 'jkollhom ftit iqarrqu sheet fit-tmiem, 502 00:23:00,501 --> 00:23:03,940 iżda dan huwa, tabilħaqq, ser tagħtina big o ta n log n, 503 00:23:03,940 --> 00:23:06,620 minħabba r-rikorrenza li int tara hawn fuq l-iskrin, 504 00:23:06,620 --> 00:23:09,550 jekk inti fil-fatt ma kien out, ma numru infinit ta 'eżempji, 505 00:23:09,550 --> 00:23:13,000 jew inti ma kien formulaically, inti tara li dan, minħabba din il-formula 506 00:23:13,000 --> 00:23:17,100 innifsu huwa rikursivi, ma 't ta n fuq xi ħaġa fuq il-lemin, 507 00:23:17,100 --> 00:23:21,680 u t ta 'N fuq ix-xellug, din tista fil-fatt jiġu espressi, finalment, 508 00:23:21,680 --> 00:23:24,339 go kemm kbar ta 'log n n. 509 00:23:24,339 --> 00:23:26,130 Jekk ma konvint, li multa għal issa, ftit 510 00:23:26,130 --> 00:23:28,960 jieħdu fuq il-fidi, li dan huwa, tabilħaqq, dak li rikorrenza twassal għal, 511 00:23:28,960 --> 00:23:31,780 iżda din hija biss daqsxejn aktar ta ' approċċ matematika li tfittex 512 00:23:31,780 --> 00:23:36,520 fil-mument tmexxija ta sort jingħaqdu ibbażata fuq pseudocode tagħha waħdu. 513 00:23:36,520 --> 00:23:39,030 >> Issa ejja tagħti daqsxejn ta ' breather minn dak kollu li, 514 00:23:39,030 --> 00:23:41,710 u tagħti ħarsa lejn ċerti ex Senatur, li 515 00:23:41,710 --> 00:23:44,260 tista 'tidher ftit familjari, li poġġa bilqiegħda ma 'Eric Google 516 00:23:44,260 --> 00:23:48,410 Schmidt, xi żmien ilu, għal intervista fuq il-palk, quddiem il-mazz sħiħ 517 00:23:48,410 --> 00:23:53,710 ta 'nies, jitkellem finalment dwar suġġett, li pjuttost issa familjari. 518 00:23:53,710 --> 00:23:54,575 Ejja tagħti ħarsa. 519 00:23:54,575 --> 00:24:01,020 520 00:24:01,020 --> 00:24:03,890 >> ERIC SCHMIDT: Issa Senatur, int hawn fuq Google, 521 00:24:03,890 --> 00:24:09,490 u Inħobb naħseb tal- presidenza bħala intervista tax-xogħol. 522 00:24:09,490 --> 00:24:11,712 Issa huwa diffiċli li jsibu xogħol bħala president. 523 00:24:11,712 --> 00:24:12,670 PRESIDENT OBAMA: Dritt. 524 00:24:12,670 --> 00:24:13,940 ERIC SCHMIDT: U int se tagħmel [inaudible] issa. 525 00:24:13,940 --> 00:24:15,523 Huwa wkoll diffiċli li jsibu xogħol fil-Google. 526 00:24:15,523 --> 00:24:17,700 PRESIDENT OBAMA: Dritt. 527 00:24:17,700 --> 00:24:21,330 >> ERIC SCHMIDT: Aħna mistoqsijiet, u aħna jistaqsu mistoqsijiet kandidati tagħna, 528 00:24:21,330 --> 00:24:24,310 u dan huwa wieħed mill Larry Schwimmer. 529 00:24:24,310 --> 00:24:25,890 >> PRESIDENT OBAMA: OK. 530 00:24:25,890 --> 00:24:27,005 >> ERIC SCHMIDT: What? 531 00:24:27,005 --> 00:24:28,130 You guys think jien kidding? 532 00:24:28,130 --> 00:24:30,590 Huwa dritt hawn. 533 00:24:30,590 --> 00:24:33,490 X'inhu l-aktar mod effiċjenti biex sort xi interi miljun 32 bit? 534 00:24:33,490 --> 00:24:37,560 535 00:24:37,560 --> 00:24:38,979 >> PRESIDENT OBAMA: Well-- 536 00:24:38,979 --> 00:24:41,020 ERIC SCHMIDT: Kultant, forsi jien sorry, maybe-- 537 00:24:41,020 --> 00:24:42,750 PRESIDENT OBAMA: No, no, no, no, no, I think-- 538 00:24:42,750 --> 00:24:43,240 ERIC SCHMIDT: Li mhux it-- 539 00:24:43,240 --> 00:24:45,430 PRESIDENT OBAMA: I think, naħseb li l-bużżieqa 540 00:24:45,430 --> 00:24:46,875 sort tkun l-mod żbaljat biex imorru. 541 00:24:46,875 --> 00:24:49,619 542 00:24:49,619 --> 00:24:50,535 ERIC SCHMIDT: Come on. 543 00:24:50,535 --> 00:24:52,200 Li qallu dan? 544 00:24:52,200 --> 00:24:54,020 KOLLOX SEW. 545 00:24:54,020 --> 00:24:55,590 I ma l-xjenza tal-kompjuter on-- 546 00:24:55,590 --> 00:24:58,986 >> PRESIDENT OBAMA: Imxejna ltqajna Spies tagħna fil hemmhekk. 547 00:24:58,986 --> 00:24:59,860 Professur: Kull dritt. 548 00:24:59,860 --> 00:25:03,370 Ejja jħallu warajhom us issa l dinja teoretiku ta 'algoritmi 549 00:25:03,370 --> 00:25:06,520 fl-analiżi asintotika tiegħu, u r-ritorn għal xi suġġetti 550 00:25:06,520 --> 00:25:09,940 minn ġimgħa żero u wieħed, u l-bidu li jitneħħew xi roti ta 'taħriġ, 551 00:25:09,940 --> 00:25:10,450 jekk inti se. 552 00:25:10,450 --> 00:25:13,241 Sabiex inti verament jifhmu finalment mill-art up, x'hemm 553 00:25:13,241 --> 00:25:16,805 għaddej taħt il-barnuża, meta inti jiktbu, jikkompilaw, u tesegwixxi programmi. 554 00:25:16,805 --> 00:25:19,680 Recall b'mod partikolari, li dan kien l-ewwel programm C ħarisna lejn, 555 00:25:19,680 --> 00:25:22,840 a, programm sempliċi canonical ta 'tipi, relattivament, 556 00:25:22,840 --> 00:25:24,620 fejn, prints, Hello World. 557 00:25:24,620 --> 00:25:27,610 U recall li għidt, il-proċess li source code tmur permezz 558 00:25:27,610 --> 00:25:28,430 huwa eżattament dan. 559 00:25:28,430 --> 00:25:31,180 Tieħu kodiċi sors tiegħek, jgħaddu permezz kompilatur, bħal Clang, 560 00:25:31,180 --> 00:25:34,650 u l jaqa object code, li tista 'tidher bħal dan, żerijiet u dawk 561 00:25:34,650 --> 00:25:37,880 li CPU tal-kompjuter, ċentrali ipproċessar unità jew moħħ, 562 00:25:37,880 --> 00:25:39,760 finalment jifhem. 563 00:25:39,760 --> 00:25:42,460 >> Jirriżulta li li l- daqsxejn ta oversimplification, 564 00:25:42,460 --> 00:25:44,480 li aħna qed issa fil- f'pożizzjoni li tease apparti 565 00:25:44,480 --> 00:25:46,720 biex jifhem dak li verament kien għaddej taħt il-barnuża 566 00:25:46,720 --> 00:25:48,600 kull darba li inti tmexxi Clang, jew b'mod iktar ġenerali, 567 00:25:48,600 --> 00:25:53,040 kull darba li inti tagħmel programm, użu Għamla u CF 50 IDE. 568 00:25:53,040 --> 00:25:56,760 B'mod partikolari, għalf bħal dan huwa l-ewwel ġġenerat, 569 00:25:56,760 --> 00:25:58,684 meta inti l-ewwel jikkompilaw program tiegħek. 570 00:25:58,684 --> 00:26:00,600 Fi kliem ieħor, meta inti tieħu kodiċi sors tiegħek 571 00:26:00,600 --> 00:26:04,390 u josservawha, x'hemm ewwel qed outputted mill Clang 572 00:26:04,390 --> 00:26:06,370 hija xi ħaġa magħrufa bħala kodiċi assemblea. 573 00:26:06,370 --> 00:26:08,990 U fil-fatt, jidher eżattament bħal dan. 574 00:26:08,990 --> 00:26:11,170 >> I dam kmand fil- linja ta 'kmand qabel. 575 00:26:11,170 --> 00:26:16,260 Kapital sing Clang s hello.c, u dan ħoloq fajl 576 00:26:16,260 --> 00:26:19,490 għalija imsejħa hello.s, ġewwa minnhom kienu eżattament 577 00:26:19,490 --> 00:26:22,290 dawn il-kontenuti, u aktar ftit hawn fuq u ftit aktar hawn taħt, 578 00:26:22,290 --> 00:26:25,080 imma stajt tpoġġi l-juiciest informazzjoni hawn fuq l-iskrin. 579 00:26:25,080 --> 00:26:29,190 U jekk inti tħares mill-qrib, tkun taf tara keywords familjari mill-inqas ftit. 580 00:26:29,190 --> 00:26:31,330 Għandna prinċipali fil-quċċata. 581 00:26:31,330 --> 00:26:35,140 Aħna printf fl-nofs. 582 00:26:35,140 --> 00:26:38,670 U għandna wkoll bonjour dinja backslash n fil-kwotazzjonijiet isfel hawn taħt. 583 00:26:38,670 --> 00:26:42,450 >> U kull ħaġa oħra fil hawn huwa istruzzjonijiet f'livell baxx ħafna 584 00:26:42,450 --> 00:26:45,500 li CPU tal-kompjuter jifhem. 585 00:26:45,500 --> 00:26:50,090 Istruzzjonijiet CPU li jiċċaqalqu memorja madwar, li kordi tagħbija mill-memorja, 586 00:26:50,090 --> 00:26:52,750 u finalment, jistampa affarijiet fuq l-iskrin. 587 00:26:52,750 --> 00:26:56,780 Issa x'jiġri għalkemm wara din il-kodiċi assemblaġġ huwa ġġenerat? 588 00:26:56,780 --> 00:26:59,964 Fl-aħħarnett, inti tagħmel, tabilħaqq, xorta jiġġeneraw object code. 589 00:26:59,964 --> 00:27:02,630 Iżda l-passi li għandhom verament ilu għaddej taħt il-barnuża 590 00:27:02,630 --> 00:27:04,180 tfittex ftit aktar bħal dan. 591 00:27:04,180 --> 00:27:08,390 Kodiċi tas-sors isir kodiċi assemblaġġ, li mbagħad isir object code, 592 00:27:08,390 --> 00:27:11,930 u l-kliem operattiva hawnhekk huma li, meta inti tiġbor kodiċi sors tiegħek, 593 00:27:11,930 --> 00:27:16,300 out taqa kodiċi assemblaġġ, u mbagħad meta inti tiġbor kodiċi assemblaġġ tiegħek, 594 00:27:16,300 --> 00:27:17,800 out taqa object code. 595 00:27:17,800 --> 00:27:20,360 >> Issa Clang huwa super sofistikati, simili ħafna ta 'kompilaturi, 596 00:27:20,360 --> 00:27:23,151 u dan ma kollha ta 'dawn il-passi flimkien, u għaliex mhux neċessarjament 597 00:27:23,151 --> 00:27:25,360 output kwalunkwe intermedjarja fajls li inti tista 'anki tara. 598 00:27:25,360 --> 00:27:28,400 Hija biss jikkompila affarijiet, li huwa t-terminu ġenerali li 599 00:27:28,400 --> 00:27:30,000 jiddeskrivi dan il-proċess kollu. 600 00:27:30,000 --> 00:27:32,000 Imma jekk int verament tixtieq li jkun partikulari, hemm 601 00:27:32,000 --> 00:27:34,330 ħafna aktar għaddejjin hemmhekk ukoll. 602 00:27:34,330 --> 00:27:38,860 >> Imma ejja jikkunsidraw ukoll issa li anke dak il-programm super sempliċi, hello.c, 603 00:27:38,860 --> 00:27:40,540 imsejħa funzjoni. 604 00:27:40,540 --> 00:27:41,870 Huwa sejjaħ printf. 605 00:27:41,870 --> 00:27:46,900 Imma jien ma jiktbu printf, tabilħaqq, li jiġi ma ċ, biex ngħidu hekk. 606 00:27:46,900 --> 00:27:51,139 Huwa irtirar funzjoni li l- iddikjarat io.h standard, li 607 00:27:51,139 --> 00:27:53,180 huwa fajl header, li huwa suġġett aħna ser fil-fatt 608 00:27:53,180 --> 00:27:55,780 adsa fis f'aktar dettal qabel ma twil. 609 00:27:55,780 --> 00:27:58,000 Iżda fajl header hija tipikament akkumpanjat 610 00:27:58,000 --> 00:28:02,920 minn fajl kodiċi, fajl source code, hekk ferm simili teżisti io.h. standard 611 00:28:02,920 --> 00:28:05,930 >> F'xi ilu, xi ħadd, jew someones, kiteb ukoll 612 00:28:05,930 --> 00:28:11,040 fajl imsejjaħ io.c standard, fil li d-definizzjonijiet attwali, 613 00:28:11,040 --> 00:28:15,220 jew implimentazzjonijiet ta printf, u għenieqed ta 'funzjonijiet oħra, 614 00:28:15,220 --> 00:28:16,870 huma attwalment miktuba. 615 00:28:16,870 --> 00:28:22,140 Allura peress li, jekk wieħed jikkunsidra li hawn fuq il-, hello.c xellug, li meta 616 00:28:22,140 --> 00:28:26,250 ikkumpilata, jagħtina hello.s, anki jekk Clang ma jolqot iffrankar fil-post 617 00:28:26,250 --> 00:28:31,360 nistgħu naraw dan, u dan il-kodiċi assemblaġġ gets mmuntati fi hello.o, li 618 00:28:31,360 --> 00:28:34,630 huwa, tabilħaqq, l-isem default mogħtija kull meta inti tiġbor sors 619 00:28:34,630 --> 00:28:39,350 kodiċi fis object code, iżda mhumiex pjuttost lesta li teżegwixxi encore, 620 00:28:39,350 --> 00:28:41,460 minħabba pass ieħor għandu jiġri, u għandha 621 00:28:41,460 --> 00:28:44,440 kien jiġri għall-aħħar ftit ġimgħat, forsi unbeknownst lilek. 622 00:28:44,440 --> 00:28:47,290 >> Speċifikament x'imkien fil CS50 IDE, u dan, 623 00:28:47,290 --> 00:28:49,870 wisq, se tkun daqsxejn ta ' oversimplification għal mument, 624 00:28:49,870 --> 00:28:54,670 hemm, jew kien fuq żmien, fajl imsejjaħ io.c standard, 625 00:28:54,670 --> 00:28:58,440 li xi ħadd ikkumpilata fis io.s standard jew l-ekwivalenti, 626 00:28:58,440 --> 00:29:02,010 li xi ħadd allura immuntati fis io.o standard, 627 00:29:02,010 --> 00:29:04,600 jew jirriżulta fi fajl kemmxejn differenti 628 00:29:04,600 --> 00:29:07,220 f'format li jista 'jkollhom differenti fajl estensjoni għal kollox, 629 00:29:07,220 --> 00:29:11,720 iżda fit-teorija u kunċettwali, eżattament dawk il-passi kellhom jiġri f'xi forma. 630 00:29:11,720 --> 00:29:14,060 Li jfisser, li issa meta jien kitba ta 'programm, 631 00:29:14,060 --> 00:29:17,870 hello.c, li biss jgħid, bonjour dinja, u jien jużaw kodiċi xi ħadd ieħor 632 00:29:17,870 --> 00:29:22,480 bħal printf, li darba kien fuq time, fil-fajl imsejħa io.c standard, 633 00:29:22,480 --> 00:29:26,390 imbagħad b'xi I għandhom jieħdu tiegħi object code, żerijiet tiegħi u dawk, 634 00:29:26,390 --> 00:29:29,260 u l-għan tal-persuna kodiċi, jew żero u dawk, 635 00:29:29,260 --> 00:29:34,970 u b'xi mod torbothom flimkien fi fajl wieħed finali, imsejħa hello, li 636 00:29:34,970 --> 00:29:38,070 għandu l-żerijiet u dawk mill-funzjoni prinċipali tiegħi, 637 00:29:38,070 --> 00:29:40,830 u kollha ta 'l-żerijiet u dawk għall-printf. 638 00:29:40,830 --> 00:29:44,900 >> U fil-fatt, dan il-proċess l-aħħar huwa imsejħa, li jgħaqqdu kodiċi ta 'oġġett tiegħek. 639 00:29:44,900 --> 00:29:47,490 L-produzzjoni tagħhom huwa fajl eżekutibbli. 640 00:29:47,490 --> 00:29:49,780 Għalhekk fl-ekwità, fil- aħħar tal-ġurnata, xejn 641 00:29:49,780 --> 00:29:52,660 inbidlet mill ġimgħa, meta aħna ewwel beda kumpilazzjoni programmi. 642 00:29:52,660 --> 00:29:55,200 Tabilħaqq, dan kollu kien jiġri taħt il-barnuża, 643 00:29:55,200 --> 00:29:57,241 iżda issa aħna qed f'pożizzjoni fejn nistgħu attwalment 644 00:29:57,241 --> 00:29:58,794 tease apparti dawn il-passi varji. 645 00:29:58,794 --> 00:30:00,710 U fil-fatt, fl-aħħar tal-ġurnata, aħna qed għadhom 646 00:30:00,710 --> 00:30:04,480 xellug b'żero u dawk li huwa attwalment segue kbir issa 647 00:30:04,480 --> 00:30:08,620 għall-kapaċità oħra ta 'C, li konna ma kellhom lieva aktar probabbli 648 00:30:08,620 --> 00:30:11,250 sal-lum, magħrufa bħala operaturi bitwise. 649 00:30:11,250 --> 00:30:15,220 Fi kliem ieħor, s'issa, f'kull waqt konna ttrattati bid-data fi C jew varjabbli fis-C, 650 00:30:15,220 --> 00:30:17,660 aħna kellna affarijiet simili Chars u sufruni u ins 651 00:30:17,660 --> 00:30:21,990 u twal u doubles u simili, iżda kollha ta 'dawn huma mill-inqas tmien bits. 652 00:30:21,990 --> 00:30:25,550 Imxejna qatt għadu jista jimmanipulaw bits individwali, 653 00:30:25,550 --> 00:30:28,970 anki jekk daqsxejn individwali, aħna jafu, jista 'jirrappreżenta 0 u 1. 654 00:30:28,970 --> 00:30:32,640 Issa jirriżulta li fis-C, inti jistgħu jiksbu aċċess għall-bits individwali, 655 00:30:32,640 --> 00:30:35,530 jekk inti taf l-sintassi, li biex tikseb għalihom. 656 00:30:35,530 --> 00:30:38,010 >> Mela ejja tagħti ħarsa fil operaturi bitwise. 657 00:30:38,010 --> 00:30:41,700 Allura isaffru hawn huma simboli ftit li konna, tip ta ', tip ta', rajna qabel. 658 00:30:41,700 --> 00:30:45,580 Nara ampersand, vertikali bar, u xi oħrajn kif ukoll, 659 00:30:45,580 --> 00:30:49,430 u jfakkru li ampersand ampersand hija xi ħaġa rajna qabel. 660 00:30:49,430 --> 00:30:54,060 L-operatur loġiku U, fejn inti għandek tnejn minnhom flimkien, jew il-loġika OR 661 00:30:54,060 --> 00:30:56,300 operatur, fejn inti għandhom żewġ bars vertikali. 662 00:30:56,300 --> 00:31:00,550 Operaturi bitwise, li aħna ser tara joperaw fuq bits individwalment, 663 00:31:00,550 --> 00:31:03,810 biss użu ampersand waħda, bar vertikali waħda, is-simbolu caret 664 00:31:03,810 --> 00:31:06,620 li jmiss tidħol, il-ftit tilde, u mbagħad titħalla 665 00:31:06,620 --> 00:31:08,990 parentesi xellug parentesi, jew bracket dritt bracket dritt. 666 00:31:08,990 --> 00:31:10,770 Kull wieħed minn dawn għandhom tifsiriet differenti. 667 00:31:10,770 --> 00:31:11,950 >> Fil-fatt, ejja tagħti ħarsa. 668 00:31:11,950 --> 00:31:16,560 Ejja ħa mmorru l-iskola antika llum, u l-użu touch screen mill-imgħoddi, 669 00:31:16,560 --> 00:31:18,002 magħrufa bħala bord abjad. 670 00:31:18,002 --> 00:31:19,710 U dan il-bord abjad se jippermettilna naslu 671 00:31:19,710 --> 00:31:27,360 li jesprimu xi simboli pjuttost sempliċi, jew pjuttost xi formuli pjuttost sempliċi, 672 00:31:27,360 --> 00:31:29,560 li nistgħu mbagħad finalment ingranaġġ, sabiex 673 00:31:29,560 --> 00:31:33,230 għall-aċċess individwali bits fi ħdan programm C. 674 00:31:33,230 --> 00:31:34,480 Fi kliem ieħor, ejja tagħmel dan. 675 00:31:34,480 --> 00:31:37,080 Ejja ewwel talk għal mument dwar ampersand, 676 00:31:37,080 --> 00:31:39,560 li hija l-bitwise U operatur. 677 00:31:39,560 --> 00:31:42,130 Fi kliem ieħor, dan huwa operatur li jippermetti 678 00:31:42,130 --> 00:31:45,930 me li jkollhom varjabbli fuq ix-xellug tipikament, u varjabbli tal-lemin, 679 00:31:45,930 --> 00:31:50,640 jew valur individwali, li jekk aħna U flimkien, tagħti me riżultat finali. 680 00:31:50,640 --> 00:31:51,560 Allura dak li għandi jfisser? 681 00:31:51,560 --> 00:31:54,840 Jekk fi programm, għandek varjabbli li l-ħażniet waħda minn dawn il-valuri, 682 00:31:54,840 --> 00:31:58,000 jew ejja jżommha sempliċi, u biss jiktbu l żerijiet u dawk individwalment, 683 00:31:58,000 --> 00:32:00,940 hawnhekk kif l-operatur ampersand xogħlijiet. 684 00:32:00,940 --> 00:32:06,400 0 ampersand 0 se ugwali 0. 685 00:32:06,400 --> 00:32:07,210 Issa għaliex huwa li? 686 00:32:07,210 --> 00:32:09,291 >> Dan huwa simili ħafna għal Espressjonijiet Boolean, 687 00:32:09,291 --> 00:32:10,540 li konna diskussi s'issa. 688 00:32:10,540 --> 00:32:15,800 Jekk taħseb wara kollox, il 0 hija falza, 0 hija falza, foloz u foloz 689 00:32:15,800 --> 00:32:18,720 huwa, kif konna diskussi loġikament, ukoll falza. 690 00:32:18,720 --> 00:32:20,270 Allura aħna nikseb 0 hawnhekk ukoll. 691 00:32:20,270 --> 00:32:24,390 Jekk tieħu 0 ampersand 1, sew li, wisq, 692 00:32:24,390 --> 00:32:29,890 se jkun 0, għaliex għal dan espressjoni tan-naħa tax-xellug biex ikunu vera jew 1, 693 00:32:29,890 --> 00:32:32,360 ikun jeħtieġ li jkun veru u vera. 694 00:32:32,360 --> 00:32:36,320 Iżda hawnhekk għandna falza u vera, jew 0 u 1. 695 00:32:36,320 --> 00:32:42,000 Issa mill-ġdid, jekk ikollna 1 ampersand 0, dan, wisq, se jkun 0, 696 00:32:42,000 --> 00:32:47,240 u jekk ikollna 1 ampersand 1, finalment do għandna 1 bit. 697 00:32:47,240 --> 00:32:50,340 Allura fi kliem ieħor, aħna mhux qed isir xejn interessanti ma 'dan l-operatur 698 00:32:50,340 --> 00:32:51,850 għadha biss, dan l-operatur ampersand. 699 00:32:51,850 --> 00:32:53,780 Hu l-bitwise U operatur. 700 00:32:53,780 --> 00:32:57,290 Iżda dawn huma l-ingredjenti li permezz tagħhom nistgħu nagħmlu 701 00:32:57,290 --> 00:32:59,240 affarijiet interessanti, kif aħna ser dalwaqt tara. 702 00:32:59,240 --> 00:33:02,790 >> Issa ejja nħarsu lejn biss l-uniku bar vertikali minn hawn fuq il-lemin. 703 00:33:02,790 --> 00:33:06,710 Jekk ikolli 0 daqsxejn u I Jew ma ', l bitwise 704 00:33:06,710 --> 00:33:11,030 JEW operatur, 0 bit ieħor, li għaddej biex jagħti me 0. 705 00:33:11,030 --> 00:33:17,540 Jekk I tieħu 0 daqsxejn u OR ma ta '1 bit, allura jien ser tikseb 1. 706 00:33:17,540 --> 00:33:19,830 U fil-fatt, biss għall ċarezza, let me jmorru lura, 707 00:33:19,830 --> 00:33:23,380 sabiex bars vertikali tiegħi mhumiex żbaljata għal 1 s. 708 00:33:23,380 --> 00:33:26,560 Let me jikteb kollha ta ' my 1 l-ftit aktar 709 00:33:26,560 --> 00:33:32,700 b'mod ċar, sabiex inkunu jmiss tara, jekk I jkunu ta '1 JEW 0, li għaddej biex tkun ta' 1, 710 00:33:32,700 --> 00:33:39,060 u jekk ikolli 1 JEW 1 li, wisq, se tkun ta '1. 711 00:33:39,060 --> 00:33:42,900 Allura tista 'tara loġikament li l-OR operatur iġib ruħu b'mod differenti ħafna. 712 00:33:42,900 --> 00:33:48,070 Dan jagħti me 0 JEW 0 tagħti me 0, iżda kull kombinazzjoni oħra tagħti me 1. 713 00:33:48,070 --> 00:33:52,480 Sakemm I jkollhom waħda 1 fil- formula, ir-riżultat se tkun 1. 714 00:33:52,480 --> 00:33:55,580 >> B'kuntrast mal-U operatur, il ampersand, 715 00:33:55,580 --> 00:34:00,940 biss jekk Għandi żewġ 1 fil- ekwazzjoni, nista attwalment nikseb out 1. 716 00:34:00,940 --> 00:34:02,850 Issa hemm ieħor ftit operaturi kif ukoll. 717 00:34:02,850 --> 00:34:04,810 Waħda minnhom hija ftit aktar involuti. 718 00:34:04,810 --> 00:34:07,980 So let me jimxi 'l quddiem u tħassar dan biex tillibera xi spazju. 719 00:34:07,980 --> 00:34:13,020 720 00:34:13,020 --> 00:34:16,460 U ejja tagħti ħarsa lejn l- simbolu caret, għal ftit mument. 721 00:34:16,460 --> 00:34:18,210 Dan huwa tipikament karattru inti tista tip 722 00:34:18,210 --> 00:34:21,420 fuq Shift azjenda tastiera tiegħek u mbagħad wieħed mill-numri atop Istati Uniti tiegħek 723 00:34:21,420 --> 00:34:22,250 keyboard. 724 00:34:22,250 --> 00:34:26,190 >> Allura dan huwa l esklussiva JEW operatur, esklussiv JEW. 725 00:34:26,190 --> 00:34:27,790 Allura aħna biss raw l-operatur OR. 726 00:34:27,790 --> 00:34:29,348 Dan huwa operatur l esklussiv JEW. 727 00:34:29,348 --> 00:34:30,639 X'hemm fil-fatt id-differenza? 728 00:34:30,639 --> 00:34:34,570 Well ejja biss ħarsa lejn il-formula, u jużaw dan bħala ingredjenti fl-aħħar. 729 00:34:34,570 --> 00:34:37,690 0 XOR 0. 730 00:34:37,690 --> 00:34:39,650 Jien se ngħid huwa dejjem 0. 731 00:34:39,650 --> 00:34:41,400 Dik hija d-definizzjoni ta XOR. 732 00:34:41,400 --> 00:34:47,104 0 XOR 1 se tkun 1. 733 00:34:47,104 --> 00:34:58,810 1 XOR 0 se jkun 1, u 1 XOR 1 se tkun? 734 00:34:58,810 --> 00:34:59,890 Wrong? 735 00:34:59,890 --> 00:35:00,520 Jew id-dritt? 736 00:35:00,520 --> 00:35:01,860 I do not know. 737 00:35:01,860 --> 00:35:02,810 0. 738 00:35:02,810 --> 00:35:04,700 Issa dak li qed jiġri hawn? 739 00:35:04,700 --> 00:35:06,630 Ukoll jaħsbu dwar il- isem ta 'dan l-operatur. 740 00:35:06,630 --> 00:35:09,980 Esklussiva JEW, sabiex il- isem, it-tip ta ', jissuġġerixxi, 741 00:35:09,980 --> 00:35:13,940 it-tweġiba hija biss ser tkun a 1 jekk l-inputs huma esklussivi, 742 00:35:13,940 --> 00:35:15,560 esklussivament differenti. 743 00:35:15,560 --> 00:35:18,170 Allura hawnhekk l-inputs huma l- istess, sabiex il-produzzjoni hija ta '0. 744 00:35:18,170 --> 00:35:20,700 Hawn l-inputs huma l- istess, sabiex il-produzzjoni hija ta '0. 745 00:35:20,700 --> 00:35:25,640 Hawn huma l-outputs huma differenti, dawn huma esklussivi, u għalhekk l-output huwa 1. 746 00:35:25,640 --> 00:35:28,190 Allura huwa simili ħafna għall U, huwa simili ħafna, 747 00:35:28,190 --> 00:35:32,760 jew pjuttost huwa simili ħafna għall JEW, iżda biss b'mod esklussiv. 748 00:35:32,760 --> 00:35:36,210 Dan huwa wieħed m'għadux 1, għaliex għandna żewġ 1, il 749 00:35:36,210 --> 00:35:38,621 u mhux esklużivament, biss wieħed minnhom. 750 00:35:38,621 --> 00:35:39,120 Kull dritt. 751 00:35:39,120 --> 00:35:40,080 Xi ngħidu dwar l-oħrajn? 752 00:35:40,080 --> 00:35:44,220 Ukoll l-tilde, sadanittant, hija attwalment sbieħ u sempliċi, Thankfully. 753 00:35:44,220 --> 00:35:46,410 U dan huwa unary operatur, li jfisser 754 00:35:46,410 --> 00:35:50,400 huwa applikat għall-input wieħed biss, operand wieħed, biex ngħidu hekk. 755 00:35:50,400 --> 00:35:51,800 Mhux għal xellug u dritt. 756 00:35:51,800 --> 00:35:56,050 Fi kliem ieħor, jekk inti tieħu tilde ta 0, ir-risposta se tkun l-oppost. 757 00:35:56,050 --> 00:35:59,710 U jekk inti tieħu tilde ta '1, il- tweġiba se jkun hemm l-oppost. 758 00:35:59,710 --> 00:36:02,570 Allura l-operatur tilde hija mod ta 'ċaħdu daqsxejn, 759 00:36:02,570 --> 00:36:06,000 jew flipping daqsxejn minn 0-1, jew 1-0. 760 00:36:06,000 --> 00:36:09,820 >> U li l-weraq us finalment bil biss żewġ operaturi finali, 761 00:36:09,820 --> 00:36:13,840 l-hekk imsejħa shift xellug, u l- hekk imsejħa operatur shift dritt. 762 00:36:13,840 --> 00:36:16,620 Ejja tagħti ħarsa lejn kif dawn ix-xogħol. 763 00:36:16,620 --> 00:36:20,780 L-operatur shift xellug, miktuba b'żewġ parentesi angolu bħal dak, 764 00:36:20,780 --> 00:36:22,110 topera kif ġej. 765 00:36:22,110 --> 00:36:27,390 Jekk input tiegħi, jew operand tiegħi, lejn ix-xellug operatur shift hija sempliċament 1. 766 00:36:27,390 --> 00:36:33,750 U I imbagħad tgħid il-kompjuter li xellug shift li 1, jgħidu seba postijiet, 767 00:36:33,750 --> 00:36:37,150 ir-riżultat huwa bħallikieku I jieħdu dik 1, u jġorrhom 768 00:36:37,150 --> 00:36:40,160 seba postijiet fuq l- xellug, u awtomatikament, 769 00:36:40,160 --> 00:36:42,270 aħna qed tmur biex wieħed jassumi li l-ispazju fuq il-lemin 770 00:36:42,270 --> 00:36:44,080 se tkun padded b'żero. 771 00:36:44,080 --> 00:36:50,316 Fi kliem ieħor, 1 ħallew shift 7 va li tagħti me dak 1, segwit minn 1, 2, 3, 772 00:36:50,316 --> 00:36:54,060 4, 5, 6, 7 żerijiet. 773 00:36:54,060 --> 00:36:57,380 Dan b'mod, li jippermettilek li tieħu numru żgħir bħal 1, 774 00:36:57,380 --> 00:37:00,740 u b'mod ċar jagħmilha ferm ħafna, ħafna akbar b'dan il-mod, 775 00:37:00,740 --> 00:37:06,460 imma aħna qed attwalment għaddejjin biex tara approċċi aktar għaqlija għal dan 776 00:37:06,460 --> 00:37:08,080 minflok, kif ukoll, 777 00:37:08,080 --> 00:37:08,720 >> Kull dritt. 778 00:37:08,720 --> 00:37:10,060 Li lilha għall tliet ġimgħat. 779 00:37:10,060 --> 00:37:11,400 Aħna se tara inti ħin li jmiss. 780 00:37:11,400 --> 00:37:12,770 Dan kien CS50. 781 00:37:12,770 --> 00:37:17,270 782 00:37:17,270 --> 00:37:22,243 >> [Daqq tal-mużika] 783 00:37:22,243 --> 00:37:25,766 >> SPEAKER 1: Hu kien fil-snack bar tiekol fudge hot sundae. 784 00:37:25,766 --> 00:37:28,090 Huwa kellu dan kollu fuq wiċċu. 785 00:37:28,090 --> 00:37:30,506 Hu ilbies li ċikkulata bħal beard 786 00:37:30,506 --> 00:37:31,756 SPEAKER 2: X'Ser tagħmel? 787 00:37:31,756 --> 00:37:32,422 SPEAKER 3: Hmmm? 788 00:37:32,422 --> 00:37:33,500 Xiex? 789 00:37:33,500 --> 00:37:36,800 >> SPEAKER 2: Ridt biss dip doppja? 790 00:37:36,800 --> 00:37:38,585 Inti double dipped-ċippa. 791 00:37:38,585 --> 00:37:39,460 SPEAKER 3: Skuża me. 792 00:37:39,460 --> 00:37:44,440 SPEAKER 2: Inti dipped-ċippa, inti ħa gidma, u inti dipped-ġdid. 793 00:37:44,440 --> 00:37:44,940 SPEAKER 3: 794 00:37:44,940 --> 00:37:48,440 SPEAKER 2: Allura dak hu simili tqegħid dritt tiegħek ħalq sħiħa fil-dip. 795 00:37:48,440 --> 00:37:52,400 Next time inti tieħu chip, biss dip darba, u t-tmiem dan. 796 00:37:52,400 --> 00:37:53,890 >> SPEAKER 3: Inti taf liema, Dan? 797 00:37:53,890 --> 00:37:58,006 Inti dip-mod li inti tixtieq li dip. 798 00:37:58,006 --> 00:38:01,900 I ser dip l-mod li nixtieq li dip. 799 00:38:01,900 --> 00:38:03,194