1 00:00:00,000 --> 00:00:00,030 2 00:00:00,030 --> 00:00:00,460 >> DAVID Malan: Gerai. 3 00:00:00,460 --> 00:00:01,094 Mes grįžome. 4 00:00:01,094 --> 00:00:04,260 Taigi šiame segmente programavimo ką Aš maniau, mes norime padaryti, tai daug dalykų derinys. 5 00:00:04,260 --> 00:00:06,340 Vienas iš jų, padaryti šiek tiek kažko hands-on, 6 00:00:06,340 --> 00:00:08,690 nors naudojant daugiau žaismingumo programavimo environment-- 7 00:00:08,690 --> 00:00:11,620 vienas, kad yra demonstratyvus iš tiksliai idėjų rūšių 8 00:00:11,620 --> 00:00:14,220 mes jau kalbame apie, bet šiek tiek daugiau formaliai. 9 00:00:14,220 --> 00:00:18,200 Du, pažvelgti į kai labiau techniniai būdai 10 00:00:18,200 --> 00:00:21,520 kad programuotojas iš tikrųjų išspręsti problemos, pavyzdžiui, ieško problemos 11 00:00:21,520 --> 00:00:24,530 kad mes pažvelgė prieš ir Taip pat labiau iš esmės 12 00:00:24,530 --> 00:00:26,020 Įdomu problema rūšiavimas. 13 00:00:26,020 --> 00:00:28,840 >> Mes tiesiog prielaida iš gauti eiti kad telefonas knyga buvo rūšiuojamos, 14 00:00:28,840 --> 00:00:31,980 bet, kad vien iš tikrųjų rūšies sunku problema su daugeliu skirtingų būdų 15 00:00:31,980 --> 00:00:32,479 ją išspręsti. 16 00:00:32,479 --> 00:00:34,366 Taigi, mes naudosime juos kaip nemažai problemų klasė 17 00:00:34,366 --> 00:00:36,740 atstovas dalykų, kurie gali būti išspręsta iš esmės. 18 00:00:36,740 --> 00:00:38,980 Ir tada mes kalbame apie gana išsamiai, ką 19 00:00:38,980 --> 00:00:42,360 yra vadinami duomenų structures-- mėgėjas būdų, kaip tiesinis sąrašas 20 00:00:42,360 --> 00:00:46,290 ir dėstymo lentelė ir medžiai, kurie programuotojas iš tikrųjų 21 00:00:46,290 --> 00:00:48,890 naudoti ir paprastai naudoja Lentoje tapyti 22 00:00:48,890 --> 00:00:51,840 iš vaizdo, ką jis ar ji įsivaizduoja įgyvendinimo 23 00:00:51,840 --> 00:00:52,980 kai programinė įranga,. 24 00:00:52,980 --> 00:00:55,130 >> Taigi darykime rankas ant dalį pirmiausia. 25 00:00:55,130 --> 00:01:00,090 Taigi tiesiog gauti savo rankas purvinas su Aplinka vadinami scratch.mit.edu. 26 00:01:00,090 --> 00:01:02,636 Tai yra įrankis, kad mes naudojame Mūsų bakalauro klasėje. 27 00:01:02,636 --> 00:01:04,510 Nors jis sukurtas 12 metų ir daugiau, 28 00:01:04,510 --> 00:01:07,570 mes ją naudoti aukštyn dalis, kad gana didelis 29 00:01:07,570 --> 00:01:10,020 nes jis gražus, įdomus grafinė mokymosi būdas 30 00:01:10,020 --> 00:01:12,160 šiek tiek kažkas apie programavimą. 31 00:01:12,160 --> 00:01:17,600 Taigi galvą į tą URL, kur jums turėtų pamatyti puslapyje labai patiko tai, 32 00:01:17,600 --> 00:01:23,330 ir eiti į priekį ir spustelėkite Prisijunkite prie nulio viršuje dešinėje 33 00:01:23,330 --> 00:01:28,300 ir pasirinkite vardą ir slaptažodis ir galiausiai gauti sau 34 00:01:28,300 --> 00:01:29,970 account-- scratch.mit.edu. 35 00:01:29,970 --> 00:01:32,165 36 00:01:32,165 --> 00:01:34,665 Aš maniau, kad aš naudoju tai kaip galimybė pirmą kartą parodyti tai. 37 00:01:34,665 --> 00:01:39,120 Klausimas atėjo pertraukos metu apie tai, ką kodas tikrųjų atrodo. 38 00:01:39,120 --> 00:01:41,315 Ir mes kalbame Per pertrauką apie C, 39 00:01:41,315 --> 00:01:45,060 į particular-- ypač mažesnis lygis vyresnio kalba. 40 00:01:45,060 --> 00:01:47,750 Ir aš tiesiog padarė greitai "Google" paieška rasti C kodą 41 00:01:47,750 --> 00:01:51,574 naudojant dvejetainį paieškos algoritmas, kad mes naudojama paieškos sistema, telefono knyga anksčiau. 42 00:01:51,574 --> 00:01:54,240 Šis konkretus pavyzdys, žinoma, neieško telefono knyga. 43 00:01:54,240 --> 00:01:57,840 Jis tiesiog ieško visa krūva numeriai kompiuterio atmintyje. 44 00:01:57,840 --> 00:02:01,000 Bet jei norite tik gauti vaizdo jausmas, kas yra faktinis programavimo 45 00:02:01,000 --> 00:02:05,370 Kalba išvaizda, atrodo, šiek tiek kažką panašaus į tai. 46 00:02:05,370 --> 00:02:09,759 Taigi, tai apie 20-plius, 30 arba tiek eilučių kodo, 47 00:02:09,759 --> 00:02:12,640 bet pokalbis mes buvo turintys per pertrauką 48 00:02:12,640 --> 00:02:16,000 buvo apie tai, kaip tai iš tikrųjų gauna peraugo į nulių ir 49 00:02:16,000 --> 00:02:19,200 ir jei jūs galite ne tik sugrįžti, kad apdoroti ir eik iš nulių ir 50 00:02:19,200 --> 00:02:20,210 atgal į kodą. 51 00:02:20,210 --> 00:02:22,620 >> Deja, šis procesas taip transformacijos 52 00:02:22,620 --> 00:02:24,890 kad tai daug lengviau pasakyti nei padaryti. 53 00:02:24,890 --> 00:02:29,400 Nuėjau į priekį ir iš tikrųjų pasirodė Ta programa, Dvejetainiai Paieška, 54 00:02:29,400 --> 00:02:32,700 į nulių ir pateikdamas programa, vadinama kompiliatorius, kad aš 55 00:02:32,700 --> 00:02:34,400 atsitikti, kad čia tiesiai ant mano Mac. 56 00:02:34,400 --> 00:02:37,850 Ir jei peržvelgsite ekrane čia daugiausia dėmesio skiriama būtent 57 00:02:37,850 --> 00:02:43,520 šiais vidutinio šešių kolonų tik pamatysite tik nulių ir. 58 00:02:43,520 --> 00:02:48,290 Ir tas yra nuliai ir tie, kurie rašyti tiksliai kad asmenys, ieškantys programą. 59 00:02:48,290 --> 00:02:53,720 >> Ir taip kiekvieną iš penkių bitų riekė, kiekvienas iš nulių ir baitų čia 60 00:02:53,720 --> 00:02:57,310 atstovauti kokį nurodymą paprastai viduje kompiuterio. 61 00:02:57,310 --> 00:03:00,730 Ir iš tiesų, jei jūs girdėjote rinkodaros šūkis "Intel Inside", - kad 62 00:03:00,730 --> 00:03:04,610 Žinoma, tiesiog reiškia, kad jūs turėti Intel CPU arba smegenų viduje kompiuterio. 63 00:03:04,610 --> 00:03:08,000 Ir ką tai reiškia, kad turi būti CPU yra kad jūs turite instrukcijų rinkinys, 64 00:03:08,000 --> 00:03:08,840 taip sakant. 65 00:03:08,840 --> 00:03:11,620 >> Kiekvienas pasaulyje CPU, daugelis iš juos padarė "Intel" šių dienų, 66 00:03:11,620 --> 00:03:13,690 supranta baigtinis skaičius instrukcijas. 67 00:03:13,690 --> 00:03:18,690 Ir tie nurodymai yra toks žemas lygis kaip pridėti šie du numerius kartu, 68 00:03:18,690 --> 00:03:22,560 daugintis šiuos du numerius kartu, perkelti šį duomenų gabalas iš čia 69 00:03:22,560 --> 00:03:27,340 į čia iš atminties, išsaugoti tai informacija iš čia į čia atminties, 70 00:03:27,340 --> 00:03:32,200 ir taip forth-- taip labai, labai žemo lygio, beveik elektronikos detales. 71 00:03:32,200 --> 00:03:34,780 Bet su tais, matematinis operacijos kartu 72 00:03:34,780 --> 00:03:37,410 su tuo, ką aptarėme anksčiau, duomenų atvaizdavimas 73 00:03:37,410 --> 00:03:40,450 kaip nulių ir gali jums sukurti viską 74 00:03:40,450 --> 00:03:44,180 kad kompiuteris gali padaryti šiandien, ar tai tekstinė, grafinė, muzikinė, 75 00:03:44,180 --> 00:03:45,580 arba kitaip. 76 00:03:45,580 --> 00:03:49,450 >> Todėl tai yra labai lengva gauti prarasta greitai piktžolių. 77 00:03:49,450 --> 00:03:52,150 Ir ten daug sintaksiniai iššūkiai 78 00:03:52,150 --> 00:03:56,630 kuriuo, jei jūs padarote paprasčiausias, stupidest iš rašybos nė programos 79 00:03:56,630 --> 00:03:57,860 dirbs kokia. 80 00:03:57,860 --> 00:04:00,366 Ir todėl vietoj naudojant kalba kaip C šįryt 81 00:04:00,366 --> 00:04:02,240 Maniau, kad tai būtų smagiau tikrųjų 82 00:04:02,240 --> 00:04:04,840 kažkas daugiau vaizdo, kuris o skirtas vaikams 83 00:04:04,840 --> 00:04:08,079 iš tikrųjų yra tobula išraiška kurių faktinė programavimo 84 00:04:08,079 --> 00:04:10,370 language-- tik atsitinka naudoti nuotraukas, o ne tekstą 85 00:04:10,370 --> 00:04:11,710 atstovauti šias idėjas. 86 00:04:11,710 --> 00:04:15,470 >> Taigi, kai jūs iš tikrųjų turėti abonementas scratch.mit.edu, 87 00:04:15,470 --> 00:04:21,070 spustelėkite mygtuką "Sukurti" viršuje kairėje svetainėje. 88 00:04:21,070 --> 00:04:24,620 Ir jūs turėtumėte pamatyti, kaip aplinkos vienas aš apie matyti mano ekrano 89 00:04:24,620 --> 00:04:26,310 čia. 90 00:04:26,310 --> 00:04:29,350 Ir mes praleisti tik šiek tiek tiek laiko žaisti čia. 91 00:04:29,350 --> 00:04:34,080 Leiskite pamatyti, jei mes galime ne visos išspręsti kai problemos kartu į tokiu būdu. 92 00:04:34,080 --> 00:04:39,420 >> Taigi, ką jūs pamatysite viduje tai environment-- ir iš tikrųjų tiesiog leiskite 93 00:04:39,420 --> 00:04:40,050 man pristabdyti. 94 00:04:40,050 --> 00:04:42,680 Ar kas nors čia nėra? 95 00:04:42,680 --> 00:04:45,070 Ne čia? 96 00:04:45,070 --> 00:04:45,800 GERAI. 97 00:04:45,800 --> 00:04:49,030 Taigi leiskite man pabrėžti keletą charakteristikos šioje aplinkoje. 98 00:04:49,030 --> 00:04:55,024 >> Taigi viršuje kairėje ekrano, mes turi įbrėžimams scenoje, taip sakant. 99 00:04:55,024 --> 00:04:57,440 Įbrėžimams yra ne tik pavadinimas Šio programavimo kalba; 100 00:04:57,440 --> 00:05:00,356 tai taip pat yra katė vardas matote pagal nutylėjimą ten oranžinė. 101 00:05:00,356 --> 00:05:02,160 Jis yra etape, todėl panašiai kaip aprašiau 102 00:05:02,160 --> 00:05:05,770 vėžlys anksčiau kaip A stačiakampio formos balta lenta aplinka. 103 00:05:05,770 --> 00:05:09,800 Ši katė pasaulis apsiriboja tik tai stačiakampis iki viršūnės. 104 00:05:09,800 --> 00:05:12,210 >> Tuo tarpu, dešinėje pusėje čia, tai 105 00:05:12,210 --> 00:05:15,610 tik scenarijai zona, tuščias šiferis, jei bus. 106 00:05:15,610 --> 00:05:18,590 Tai kur mes ketiname rašyti Mūsų programos tik akimirkai. 107 00:05:18,590 --> 00:05:22,935 Ir statybiniai blokai, kad mes naudoti parašyti šį program-- galvosūkį 108 00:05:22,935 --> 00:05:25,310 vienetų, jei will-- yra tie čia centru, 109 00:05:25,310 --> 00:05:27,500 ir jie suskirstyti funkcionalumą. 110 00:05:27,500 --> 00:05:31,000 Taigi, pavyzdžiui, aš ruošiuosi eiti į priekį ir įrodyti bent vieną iš jų. 111 00:05:31,000 --> 00:05:33,690 Aš ruošiuosi eiti į priekį ir spustelėkite Valdymo kategorijoje iki viršaus. 112 00:05:33,690 --> 00:05:35,720 >> Taigi tai yra kategorijos iki viršaus. 113 00:05:35,720 --> 00:05:39,410 Aš ruošiuosi spustelėkite Control kategoriją. 114 00:05:39,410 --> 00:05:44,020 Atvirkščiai, aš ruošiuosi spustelėkite Renginiai kategorija, labai pirmasis iki viršaus. 115 00:05:44,020 --> 00:05:47,790 Ir jei jūs norite sekti kartu net kaip mes tai padaryti, jūs gana Sveiki. 116 00:05:47,790 --> 00:05:52,180 Aš ruošiuosi spustelėkite ir vilkite tai Pirmasis "Kai žalia vėliava paspaudėte". 117 00:05:52,180 --> 00:05:58,410 Ir tada aš ruošiuosi atsisakyti jo tiesiog maždaug tuo mano tuščių šiferis viršuje. 118 00:05:58,410 --> 00:06:01,450 >> Ir kas malonu apie Scratch yra tai, kad įspūdį, kai 119 00:06:01,450 --> 00:06:04,560 sujungtas su kitomis dėlionės vienetų, ketina daryti tiesiog 120 00:06:04,560 --> 00:06:06,460 ką tie įspūdį pasakyti daryti. 121 00:06:06,460 --> 00:06:09,710 Taigi, pavyzdžiui, "Scratch yra teisinga dabar jo pasaulyje viduryje. 122 00:06:09,710 --> 00:06:14,660 Aš ruošiuosi eiti į priekį ir pasirinkti dabar tarkim, judesio kategorija, 123 00:06:14,660 --> 00:06:18,000 jei norite daryti same-- Motion kategoriją. 124 00:06:18,000 --> 00:06:20,430 Ir dabar pastebėsite, turiu vieną visumą krūva įspūdį čia 125 00:06:20,430 --> 00:06:23,370 , kad vėl, tipo tai, ką jie sako. 126 00:06:23,370 --> 00:06:28,110 Ir aš ruošiuosi eiti į priekį ir vilkite ir lašas Perkelti blokas teisę čia. 127 00:06:28,110 --> 00:06:31,860 >> Ir pastebėti, kad kuo greičiau gauti netoli "žaliosios vėliavos apačioje 128 00:06:31,860 --> 00:06:34,580 paspaudėte "mygtuką pranešimas kaip atrodo balta linija, 129 00:06:34,580 --> 00:06:36,950 kaip nors ji beveik magnetinis, ji nori ten eiti. 130 00:06:36,950 --> 00:06:43,070 Tiesiog leiskite eiti, ir jis bus rodomas kartu ir figūros sutaps. 131 00:06:43,070 --> 00:06:46,620 Ir dabar jūs galite galbūt beveik atspėti, kur mes ketiname su tai. 132 00:06:46,620 --> 00:06:51,570 >> Jei pažvelgti į "Scratch etape čia ir atrodo, kad jo viršuje, 133 00:06:51,570 --> 00:06:55,142 pamatysite raudoną šviesą A sustabdyti pasirašyti ir žalia vėliava. 134 00:06:55,142 --> 00:06:57,100 Ir aš ruošiuosi eiti į priekį ir žiūrėti savo screen-- 135 00:06:57,100 --> 00:06:58,460 tik už akimirką, jei galėtų. 136 00:06:58,460 --> 00:07:01,960 Aš ruošiuosi spustelėkite žalia vėliava dabar, 137 00:07:01,960 --> 00:07:07,850 ir jis persikėlė kas atrodo, kad 10 žingsnių arba 10 taškų, 10 taškų, ekrane. 138 00:07:07,850 --> 00:07:13,390 >> Ir taip nėra, kad įdomus, bet leiskite man pasiūlyti 139 00:07:13,390 --> 00:07:17,440 net moko tai, tiesiog naudojant savo savo intuition-- tegul 140 00:07:17,440 --> 00:07:22,560 man pasiūlyti, kad jums išsiaiškinti, kaip padaryti Scratch vaikščioti į dešinę nuo scenos. 141 00:07:22,560 --> 00:07:28,700 Ar jam padaryti kelią dešinėje pusėje ekranas, visą kelią į dešinę. 142 00:07:28,700 --> 00:07:32,200 Leiskite man duoti jums momentą ar taip galynėtis su tuo. 143 00:07:32,200 --> 00:07:37,681 Jūs galbūt norėsite pažvelgti ne kitų kategorijų blokus. 144 00:07:37,681 --> 00:07:38,180 Gerai. 145 00:07:38,180 --> 00:07:41,290 Taigi tik Priminti, kai mes turime žalia vėliava čia paspaudėte 146 00:07:41,290 --> 00:07:44,850 ir perkelti 10 žingsnių yra tik instrukcija, kiekvieną kartą 147 00:07:44,850 --> 00:07:46,720 spustelėkite žalią vėliavą, kas vyksta? 148 00:07:46,720 --> 00:07:50,070 Na, tai veikia mano programą. 149 00:07:50,070 --> 00:07:52,450 Kad galėčiau tai padaryti gal 10 kartų rankiniu būdu, 150 00:07:52,450 --> 00:07:55,130 bet tai jaučiasi šiek tiek tiek hackish, taip sakant, 151 00:07:55,130 --> 00:07:57,480 kuriuo aš tikrai ne sprendžiant šią problemą. 152 00:07:57,480 --> 00:08:00,530 Aš tiesiog bando vėl ir vėl ir vėl ir vėl 153 00:08:00,530 --> 00:08:03,180 kol aš tarsi netyčia pasiekti direktyvos 154 00:08:03,180 --> 00:08:05,560 kad aš, nustatytus siekiant anksčiau. 155 00:08:05,560 --> 00:08:08,200 >> Bet mes žinome iš mūsų Pseudocode anksčiau, kad ten 156 00:08:08,200 --> 00:08:11,870 ši sąvoka yra programavimo ąselę, daro kažką vėl ir vėl. 157 00:08:11,870 --> 00:08:14,888 Ir taip aš pamačiau, kad iš jūsų krūva pasiekė, kas įspūdį? 158 00:08:14,888 --> 00:08:17,870 159 00:08:17,870 --> 00:08:18,730 Kartokite, kol. 160 00:08:18,730 --> 00:08:21,400 Taigi, mes galime padaryti kažką kaip kartokite tol, kol. 161 00:08:21,400 --> 00:08:23,760 Ir ką tu kartokite tol, kol tiksliai? 162 00:08:23,760 --> 00:08:27,720 163 00:08:27,720 --> 00:08:28,540 >> GERAI. 164 00:08:28,540 --> 00:08:31,974 Ir leiskite man eiti su vienu tai šiek tiek paprasčiau tiesiog momentu. 165 00:08:31,974 --> 00:08:33,140 Leiskite man eiti į priekį ir tai padaryti. 166 00:08:33,140 --> 00:08:35,559 Atkreipkite dėmesį, kad, kaip jūs gali turėti atrado kontroliuojama, 167 00:08:35,559 --> 00:08:38,409 ten tai pakartokite blokas, kuri neatrodo kaip tai, kad didelis. 168 00:08:38,409 --> 00:08:41,039 Čia nėra daug kambarys tarp šių dviejų geltonų linijų. 169 00:08:41,039 --> 00:08:43,539 Bet kaip kai kurie iš jūsų gali turėti pastebėjau, jei jūs vilkite ir upuść, 170 00:08:43,539 --> 00:08:45,150 pastebėti, kaip jis auga užpildyti formą. 171 00:08:45,150 --> 00:08:46,274 >> Ir jūs netgi galite prisikimšti daugiau. 172 00:08:46,274 --> 00:08:48,670 Tai bus tik nuolat auga, jei vilkite ir užveskite pelės žymeklį ant jo. 173 00:08:48,670 --> 00:08:51,110 Ir aš nežinau, kas yra geriausia čia, tad 174 00:08:51,110 --> 00:08:54,760 man bent jau pakartoti penkis kartus, už atvejis, ir tada grįžti į sceną 175 00:08:54,760 --> 00:08:56,720 ir spauskite žalią vėliavą. 176 00:08:56,720 --> 00:08:59,110 Ir dabar pastebėsite, kad tai ne visai ten. 177 00:08:59,110 --> 00:09:02,400 >> Dabar kai kurie iš jūsų, siūloma, kaip Viktorija ką tik padarė, pakartokite 10 kartų. 178 00:09:02,400 --> 00:09:05,140 Ir tai paprastai daro gauti jį visą kelią, 179 00:09:05,140 --> 00:09:10,510 Bet ar ne ten būti labiau patikimas būdas nei savavališkai suprasti, 180 00:09:10,510 --> 00:09:12,640 kiek juda padaryti? 181 00:09:12,640 --> 00:09:17,680 Kas gali būti geriau blokas nei pakartoti 10 kartų būti? 182 00:09:17,680 --> 00:09:20,380 >> Taip, tai kodėl gi ne padaryti kažką amžinai? 183 00:09:20,380 --> 00:09:24,390 O dabar leiskite man pereiti šį įspūdį viduje yra ir atsikratyti šio vieno. 184 00:09:24,390 --> 00:09:28,300 Dabar pastebėti, nesvarbu, kur įbrėžimams prasideda, jis eina į krašto. 185 00:09:28,300 --> 00:09:30,700 Ir laimei MIT, kas daro nulio, tiesiog 186 00:09:30,700 --> 00:09:33,190 užtikrina, kad jis niekada visiškai išnyksta. 187 00:09:33,190 --> 00:09:35,360 Jūs visada galite patraukti savo uodegą. 188 00:09:35,360 --> 00:09:37,680 >> Ir tik intuityviai, kodėl jis nuolat juda? 189 00:09:37,680 --> 00:09:38,892 Kas čia vyksta? 190 00:09:38,892 --> 00:09:41,440 191 00:09:41,440 --> 00:09:43,824 Jis, atrodo, sustojo, bet tada, jei aš pasiimti ir vilkite 192 00:09:43,824 --> 00:09:45,240 jis nuolat nori eiti ten. 193 00:09:45,240 --> 00:09:46,123 Kodėl taip yra? 194 00:09:46,123 --> 00:09:51,610 195 00:09:51,610 --> 00:09:54,360 Tikrai, kompiuteris yra tiesiog ketinate daryti ką pasakyti, daryti. 196 00:09:54,360 --> 00:09:58,380 Taigi, jei jūs ją sakė anksčiau padaryti Žemiau dalykas amžinai, perkelti 10 žingsnių, 197 00:09:58,380 --> 00:10:01,860 jis ketina nesustoti ir eiti kol aš paspauskite raudoną stop ženklas 198 00:10:01,860 --> 00:10:04,620 ir sustabdyti programą apskritai. 199 00:10:04,620 --> 00:10:06,610 >> Taigi, net jei tu negali tai padaryti, kaip galėčiau 200 00:10:06,610 --> 00:10:09,510 padaryti Scratch judėti greičiau per ekraną? 201 00:10:09,510 --> 00:10:12,060 202 00:10:12,060 --> 00:10:13,280 Daugiau žingsniai, tiesa? 203 00:10:13,280 --> 00:10:15,710 Taigi užuot 10 metu, kodėl ne mes 204 00:10:15,710 --> 00:10:20,100 eiti į priekį ir pakeisti jį to-- ką jūs propose-- 50? 205 00:10:20,100 --> 00:10:24,410 Taigi, dabar aš ruošiuosi spustelėkite žalia vėliava, ir iš tiesų, jis eina labai greitai. 206 00:10:24,410 --> 00:10:27,180 >> Ir tai, žinoma, yra tik iš animacijos apraiška. 207 00:10:27,180 --> 00:10:28,060 Kas yra animacija? 208 00:10:28,060 --> 00:10:33,090 Tai tiesiog rodo tau žmogiškai visa krūva nejudančius vaizdus tikrai, 209 00:10:33,090 --> 00:10:34,160 tikrai, tikrai greitai. 210 00:10:34,160 --> 00:10:36,500 Ir todėl, jei mes tiesiog sakau jam judėti daugiau veiksmų, 211 00:10:36,500 --> 00:10:39,750 mes tiesiog efektas būti Pakeisti kur jis yra ekrane 212 00:10:39,750 --> 00:10:42,900 visi daugiau greitai per laiko vienetą. 213 00:10:42,900 --> 00:10:46,454 >> Dabar kitas uždavinys, kad aš pasiūliau buvo turėti jam Bounce off krašto. 214 00:10:46,454 --> 00:10:49,120 Ir nežinant, ką dėlionės vienetų exist-- nes tai gerai 215 00:10:49,120 --> 00:10:53,030 jei nenorite gauti į etapas challenge-- ką 216 00:10:53,030 --> 00:10:54,280 tu nori daryti intuityviai? 217 00:10:54,280 --> 00:10:58,030 Kaip mes turime jam atšokti atgal ir pirmyn, tarp kairės ir dešinės? 218 00:10:58,030 --> 00:11:02,630 219 00:11:02,630 --> 00:11:03,810 >> Taip. 220 00:11:03,810 --> 00:11:05,680 Taigi mums reikia tam tikros rūšies nuo būklės ir mes 221 00:11:05,680 --> 00:11:09,710 atrodo, kad sąlyginių, taip kalbėti, prižiūrint kategorijas. 222 00:11:09,710 --> 00:11:14,110 Kuris iš šių blokų mes tikriausiai nori? 223 00:11:14,110 --> 00:11:15,200 Taip, gal ", jei vėliau." 224 00:11:15,200 --> 00:11:18,780 Taigi pastebėti, kad tarp geltonų blokų mes turime čia, yra tai "jei" 225 00:11:18,780 --> 00:11:23,920 ar tai ", jei dar" blokas, kuri bus leidžia mums priimti sprendimą, kaip tai padaryti 226 00:11:23,920 --> 00:11:25,000 arba tai padaryti. 227 00:11:25,000 --> 00:11:27,380 Ir jūs netgi galite lizdą juos padaryti kelis dalykus. 228 00:11:27,380 --> 00:11:34,910 Arba, jei jūs ne dingo čia dar, eiti į priekį, jautriųjų kategorijos 229 00:11:34,910 --> 00:11:39,612 and-- pažiūrėkime, jei tai čia. 230 00:11:39,612 --> 00:11:43,050 231 00:11:43,050 --> 00:11:52,050 >> Taigi, kas blokas gali būti naudinga čia siekiant nustatyti, ar jis nuo scenos? 232 00:11:52,050 --> 00:11:56,740 Taip, pastebėsite, kad kai kurie iš šių blokų gali būti Parametrizuotieji, taip sakant. 233 00:11:56,740 --> 00:12:00,706 Jie gali būti tarsi pritaikyti, o ne skirtingai HTML vakar su atributais, 234 00:12:00,706 --> 00:12:03,330 kur tie atributai rūšies pritaikyti žymės elgesį. 235 00:12:03,330 --> 00:12:08,880 Panašiai čia galiu patraukti šio neliesti blokas, keisti ir užduoti klausimą, 236 00:12:08,880 --> 00:12:11,500 tu neliesti pele rodyklė kaip žymeklio 237 00:12:11,500 --> 00:12:13,250 ar tu neliesti kraštą? 238 00:12:13,250 --> 00:12:15,210 >> Taigi leiskite man eiti ir tai padaryti. 239 00:12:15,210 --> 00:12:18,130 Aš ruošiuosi nutolinti akimirką. 240 00:12:18,130 --> 00:12:21,320 Leiskite patraukti šio įspūdį čia tai įspūdį tai, 241 00:12:21,320 --> 00:12:24,570 ir aš ruošiuosi Maišyti juos tik už momentu. 242 00:12:24,570 --> 00:12:27,620 Aš ruošiuosi pereiti tai, pakeisti tai neliesti krašto, 243 00:12:27,620 --> 00:12:38,590 ir aš ruošiuosi judesio tai padaryti. 244 00:12:38,590 --> 00:12:40,490 Taigi čia yra keletas ingredientų. 245 00:12:40,490 --> 00:12:42,570 Manau, aš turiu viską, ką nori. 246 00:12:42,570 --> 00:12:47,710 >> Ar kas nors norėtų pasiūlyti, kaip aš gali sujungti šiuos gal iš viršaus į apačią 247 00:12:47,710 --> 00:12:52,020 tam, kad rozwiązujesz problema problemą Įbrėžimams Perkelti į dešinę į kairę į dešinę 248 00:12:52,020 --> 00:12:57,020 kairės į dešinę į kairę, kiekvienas laikas tik šoktelėti nuo sienos? 249 00:12:57,020 --> 00:12:58,050 Ką norite daryti? 250 00:12:58,050 --> 00:13:01,097 Kuris blokas turėčiau prisijungti prie "Kai žalia vėliava paspaudėte pirmasis"? 251 00:13:01,097 --> 00:13:04,060 252 00:13:04,060 --> 00:13:06,200 >> Gerai, kad galime pradėti su "amžinai". 253 00:13:06,200 --> 00:13:07,170 Kas vyksta viduje toliau? 254 00:13:07,170 --> 00:13:10,290 Kažkas kitas. 255 00:13:10,290 --> 00:13:11,850 Gerai, perkelti veiksmus. 256 00:13:11,850 --> 00:13:12,350 Gerai. 257 00:13:12,350 --> 00:13:14,470 Kas tada? 258 00:13:14,470 --> 00:13:15,120 Taigi tada, jei. 259 00:13:15,120 --> 00:13:17,720 Ir pastebėti, nors ji atrodo įtvirtinta kartu sandariai, 260 00:13:17,720 --> 00:13:19,500 jis tiesiog auga užpildyti. 261 00:13:19,500 --> 00:13:21,500 Jis tiesiog šokinėti kur aš noriu ją. 262 00:13:21,500 --> 00:13:25,920 >> Ir ką aš įdėti tarp IF ir tada? 263 00:13:25,920 --> 00:13:27,180 Tikriausiai ", jei liečiant krašto." 264 00:13:27,180 --> 00:13:31,800 Ir pranešimas, vėlgi, tai per didelis už jį, bet ji bus augti užpildyti. 265 00:13:31,800 --> 00:13:35,002 Ir tada pasukite 15 laipsnių? 266 00:13:35,002 --> 00:13:35,710 Kiek laipsnių? 267 00:13:35,710 --> 00:13:38,800 268 00:13:38,800 --> 00:13:41,196 Taip, taip, 180 suksis man visą kelią aplink. 269 00:13:41,196 --> 00:13:42,570 Taigi pažiūrėkime, jei aš šią teisę. 270 00:13:42,570 --> 00:13:43,930 Leiskite nutolinti. 271 00:13:43,930 --> 00:13:45,130 >> Leiskite vilkite sukrapštyti. 272 00:13:45,130 --> 00:13:50,030 Taigi jis yra šiek tiek iškreiptas dabar, bet tai gerai. 273 00:13:50,030 --> 00:13:52,231 Kaip aš galiu iš naujo jį lengvai? 274 00:13:52,231 --> 00:13:59,879 275 00:13:59,879 --> 00:14:01,045 Aš ruošiuosi šiek tiek apgauti. 276 00:14:01,045 --> 00:14:04,074 277 00:14:04,074 --> 00:14:05,990 Taigi, aš pridedant kitą blokas, tiesiog, kad būtų aišku. 278 00:14:05,990 --> 00:14:08,424 Aš noriu jį atkreipti 90 laipsnių į pagal nutylėjimą teise, 279 00:14:08,424 --> 00:14:10,840 todėl aš tik ketina jam pasakyti padaryti, kad programiškai. 280 00:14:10,840 --> 00:14:11,632 Ir čia mes einame. 281 00:14:11,632 --> 00:14:14,740 282 00:14:14,740 --> 00:14:15,740 Mes, atrodo, padarė. 283 00:14:15,740 --> 00:14:19,980 Tai šiek tiek keista, nes jis vaikšto aukštyn kojom. 284 00:14:19,980 --> 00:14:21,250 Tegul vadina, kad per klaidą. 285 00:14:21,250 --> 00:14:22,120 Tai yra klaida. 286 00:14:22,120 --> 00:14:27,320 Re yra Programoje, klaida logiška klaida, kad aš, žmogus, padarė. 287 00:14:27,320 --> 00:14:28,985 Kodėl jis vyksta aukštyn kojom? 288 00:14:28,985 --> 00:14:33,560 289 00:14:33,560 --> 00:14:35,250 Ar MIT susukti ar aš? 290 00:14:35,250 --> 00:14:38,840 291 00:14:38,840 --> 00:14:42,550 >> Taip, aš turiu galvoje, tai ne MIT kaltės. Jie davė man įspūdį 292 00:14:42,550 --> 00:14:44,970 kad sako pasukti šiek tiek laipsnių skaičių. 293 00:14:44,970 --> 00:14:47,672 Ir Victoria siūlymu Aš tekinimo 180 laipsnių, 294 00:14:47,672 --> 00:14:48,880 kuris yra teisingas intuicija. 295 00:14:48,880 --> 00:14:53,700 Bet sukant 180 laipsnių pažodžiui reiškia sukant 180 laipsnių, 296 00:14:53,700 --> 00:14:55,860 ir tai tikrai ne ką aš noriu, matyt. 297 00:14:55,860 --> 00:14:58,026 Nes bent jau jis į tai dvimatis pasaulis, 298 00:14:58,026 --> 00:15:00,740 taip tekinimo iš tiesų vyksta apversti jį aukštyn kojom. 299 00:15:00,740 --> 00:15:04,030 >> Aš tikriausiai norite panaudoti tai, ką blokas vietoj to, remiantis ką matote čia? 300 00:15:04,030 --> 00:15:11,890 301 00:15:11,890 --> 00:15:14,790 Kaip mes galime išspręsti šią problemą? 302 00:15:14,790 --> 00:15:18,380 Taip, taip, mes galime atkreipti priešinga kryptimi. 303 00:15:18,380 --> 00:15:22,300 Ir iš tikrųjų, net tai nebus pakankamai 304 00:15:22,300 --> 00:15:26,410 nes mes galime tik sunkiai kodas į nukreipta į kairę arba į dešinę. 305 00:15:26,410 --> 00:15:27,920 >> Jūs žinote, ką mes galime padaryti? 306 00:15:27,920 --> 00:15:30,160 Atrodo, mes turime patogumas blokas čia. 307 00:15:30,160 --> 00:15:32,987 Jei aš priartinti, pamatyti kažkas mums patinka čia? 308 00:15:32,987 --> 00:15:36,120 309 00:15:36,120 --> 00:15:40,020 Taigi atrodo, kad MIT has an abstrakcija pastatyta čia. 310 00:15:40,020 --> 00:15:45,440 Ši skiltis atrodo, būtų lygiavertė prie kurio kiti blokai, daugiskaitos? 311 00:15:45,440 --> 00:15:49,510 >> Tai vienas blokas atrodo, būtų lygiavertė į visą šią trio blokų 312 00:15:49,510 --> 00:15:50,880 kad mes turime čia. 313 00:15:50,880 --> 00:15:54,670 Taigi paaiškėja, galiu supaprastinti mano programa atsikratyti visa tai 314 00:15:54,670 --> 00:15:58,270 ir tiesiog įdėti šią nuorodą į čia. 315 00:15:58,270 --> 00:16:01,620 Ir dabar jis dar šiek tiek Buggy, ir kad gerai dabar. 316 00:16:01,620 --> 00:16:03,370 Mes palikti, kad būtų. 317 00:16:03,370 --> 00:16:06,000 Bet mano programa yra net paprastesnė, ir tai, taip pat, 318 00:16:06,000 --> 00:16:09,060 Būtų atstovas iš į programming-- tikslas 319 00:16:09,060 --> 00:16:13,430 yra idealiai padaryti savo kodą paprastas, kompaktiškas, kaip įmanoma, 320 00:16:13,430 --> 00:16:15,650 o vis dar kaip skaitoma, kaip įmanoma. 321 00:16:15,650 --> 00:16:20,310 Jūs nenorite, kad jis taip ir glaustai kad sunku suprasti. 322 00:16:20,310 --> 00:16:22,826 >> Bet pastebėsite aš pakeisti trys blokai, turintis vieną, 323 00:16:22,826 --> 00:16:24,200 ir tai, be abejo, geras dalykas. 324 00:16:24,200 --> 00:16:27,280 Aš išgaunamo toli sąvoką patikrinti, ar esate 325 00:16:27,280 --> 00:16:29,120 ant krašto su vienu bloku. 326 00:16:29,120 --> 00:16:31,520 Dabar mes galime smagiai su tai, tiesą sakant. 327 00:16:31,520 --> 00:16:35,790 Tai nereiškia, pridėti tiek daug intelektinės vertė, bet žaismingas vertė. 328 00:16:35,790 --> 00:16:39,730 Aš ruošiuosi eiti į priekį ir patraukti šį garsą čia. 329 00:16:39,730 --> 00:16:42,900 330 00:16:42,900 --> 00:16:46,420 Taigi leiskite man eiti į priekį ir leiskite man sustabdyti akimirką programą. 331 00:16:46,420 --> 00:16:52,070 Aš ruošiuosi įrašyti tokią, galima prieiti prie mano mikrofoną. 332 00:16:52,070 --> 00:16:53,181 >> Čia mes einame. 333 00:16:53,181 --> 00:16:53,680 Ouch. 334 00:16:53,680 --> 00:16:58,710 335 00:16:58,710 --> 00:17:01,140 Pabandykime tai dar kartą. 336 00:17:01,140 --> 00:17:02,279 Čia mes einame. 337 00:17:02,279 --> 00:17:03,570 Gerai, įrašiau blogas dalykas. 338 00:17:03,570 --> 00:17:04,580 Čia mes einame. 339 00:17:04,580 --> 00:17:05,080 Ouch. 340 00:17:05,080 --> 00:17:07,910 341 00:17:07,910 --> 00:17:08,800 Ouch. 342 00:17:08,800 --> 00:17:09,300 Gerai. 343 00:17:09,300 --> 00:17:10,791 Dabar man reikia atsikratyti, kad. 344 00:17:10,791 --> 00:17:11,290 Gerai. 345 00:17:11,290 --> 00:17:13,950 >> Taigi dabar aš turiu įrašymas tik "Ouch". 346 00:17:13,950 --> 00:17:18,040 Taigi, dabar aš ruošiuosi eiti į priekį ir tai vadiname "Ouch". 347 00:17:18,040 --> 00:17:20,270 Aš ruošiuosi grįžti mano scenarijus, o dabar 348 00:17:20,270 --> 00:17:25,460 pranešimas ten tai blokas tai vadinama žaisti Sound "meow" arba žaisti garsą "Ouch". 349 00:17:25,460 --> 00:17:28,920 Aš ruošiuosi vilkite tai, ir kur Turėčiau pateikti tai už komiškas efektas? 350 00:17:28,920 --> 00:17:31,740 351 00:17:31,740 --> 00:17:37,860 Taip, taip, dabar tai tipo Buggy, nes dabar tai block-- 352 00:17:37,860 --> 00:17:42,050 pastebėti, kaip ši ", jei ant krašto, Bounce "rūšies uždaro. 353 00:17:42,050 --> 00:17:43,704 Taigi man reikia išspręsti šią problemą. 354 00:17:43,704 --> 00:17:44,870 Leiskite man eiti į priekį ir tai padaryti. 355 00:17:44,870 --> 00:17:48,630 Leiskite atsikratyti šio ir grįžti mūsų originalas, daugiau tyčinis 356 00:17:48,630 --> 00:17:49,870 funkcionalumas. 357 00:17:49,870 --> 00:18:01,080 Taigi "jei neliesti kraštą, tada" Aš noriu pasukti, kaip siūloma Viktorija 358 00:18:01,080 --> 00:18:02,480 180 laipsnių. 359 00:18:02,480 --> 00:18:05,497 Ir aš noriu žaisti garsas "Ouch" ten? 360 00:18:05,497 --> 00:18:11,800 361 00:18:11,800 --> 00:18:15,580 >> Taip, pastebėsite, kad tai ne kad geltona blokas. 362 00:18:15,580 --> 00:18:17,680 Todėl tai, taip pat, būtų klaidą, bet aš pastebėjau ją. 363 00:18:17,680 --> 00:18:21,290 Taigi, aš ruošiuosi vilkite jį čia ir pranešimas dabar tai viduje ", jei". 364 00:18:21,290 --> 00:18:24,250 Taigi "jei" tai tarsi panašaus rankos-kaip dėmė 365 00:18:24,250 --> 00:18:26,260 kad tik ketina daryti tai, kas viduje ji. 366 00:18:26,260 --> 00:18:30,216 Taigi dabar, jei aš nutolinti bent iš annoying-- rizika 367 00:18:30,216 --> 00:18:32,860 368 00:18:32,860 --> 00:18:36,470 >> Kompiuteris: Ouch, Ouch, Ouch. 369 00:18:36,470 --> 00:18:39,910 >> DAVID Malan: Ir tai tiesiog tęstis amžinai. 370 00:18:39,910 --> 00:18:44,160 Dabar tik paspartinti dalykus čia, leiskite man eiti į priekį ir atverti, 371 00:18:44,160 --> 00:18:50,460 tegul say-- leiskite man eiti į kai mano paties stuff iš klasės. 372 00:18:50,460 --> 00:18:53,000 373 00:18:53,000 --> 00:19:00,220 Ir leiskite man atverti, tarkim, tai vienas padarė vienas iš mūsų mokymo bičiulių 374 00:19:00,220 --> 00:19:01,500 porą metų senumo. 375 00:19:01,500 --> 00:19:04,732 Taigi kai kurie iš jūsų gali prisiminti Šis žaidimas iš praeities, 376 00:19:04,732 --> 00:19:05,940 ir tai tikrai puikus. 377 00:19:05,940 --> 00:19:08,190 Nors mes padarė tą Paprasčiausias programų dabar, 378 00:19:08,190 --> 00:19:09,980 aptarkime, kas tai iš tikrųjų atrodo. 379 00:19:09,980 --> 00:19:10,650 Leiskite paspausti žaisti. 380 00:19:10,650 --> 00:19:14,210 381 00:19:14,210 --> 00:19:18,980 >> Taigi šiame žaidime, mes turime varlė, ir naudojant rodyklę keys-- 382 00:19:18,980 --> 00:19:23,340 jis mano didesnių žingsnių, nei aš remember-- Turiu kontroliuoti šio varlė. 383 00:19:23,340 --> 00:19:29,630 Ir tikslas yra gauti per užimtas kelių nesukeldama į automobilius. 384 00:19:29,630 --> 00:19:34,735 Ir tegul see-- jei man eiti čia, aš turi laukti žurnalas, slinkti. 385 00:19:34,735 --> 00:19:38,130 386 00:19:38,130 --> 00:19:39,274 Tai jaučiasi klaidą. 387 00:19:39,274 --> 00:19:42,240 388 00:19:42,240 --> 00:19:43,495 Tai rūšies klaidą. 389 00:19:43,495 --> 00:19:45,980 390 00:19:45,980 --> 00:19:46,480 Gerai. 391 00:19:46,480 --> 00:19:51,550 Aš apie tai čia ten, ir tada jūs nuolat 392 00:19:51,550 --> 00:19:54,100 vyksta, kol jūs gausite visus Varlės į lelija trinkelės. 393 00:19:54,100 --> 00:19:55,920 Dabar tai gali atrodyti dar labiau kompleksas, 394 00:19:55,920 --> 00:19:57,840 bet pabandykime sulaužyti tai žemyn mintyse 395 00:19:57,840 --> 00:20:00,040 ir žodžiu į jo sudedamųjų blokų. 396 00:20:00,040 --> 00:20:03,910 Taigi ten tikriausiai dėlionės gabalas, kad mes nematėme dar 397 00:20:03,910 --> 00:20:07,440 bet tai reaguoti į klavišų, dalykų, aš paspauskite ant klaviatūros. 398 00:20:07,440 --> 00:20:11,660 >> Taigi ten tikriausiai kai natūra blokas, kuri sako, jei raktas lygus aukštyn, 399 00:20:11,660 --> 00:20:15,965 tada kažką daryti su Scratch-- gal perkelti jį 10 žingsnių šiuo būdu. 400 00:20:15,965 --> 00:20:20,240 Jei žemyn paspaudžiamas mygtukas, perkelti 10 žingsnių Tokiu būdu, arba kairėje raktas, perkelti 10 žingsnių 401 00:20:20,240 --> 00:20:21,710 Tokiu būdu, 10 žingsnių, kuriuos. 402 00:20:21,710 --> 00:20:23,644 Aš aiškiai pasuko katė į varlę. 403 00:20:23,644 --> 00:20:26,060 Taigi, kad tik kur kostiumas, kaip Scratch skambučiai it-- mes 404 00:20:26,060 --> 00:20:28,440 tik importavo varlės nuotrauką. 405 00:20:28,440 --> 00:20:29,570 >> Bet ką dar vyksta? 406 00:20:29,570 --> 00:20:32,794 Kas kitas eilučių kodo, ką kiti įspūdį 407 00:20:32,794 --> 00:20:35,460 padarė Bleikas, mūsų mokymo kolegos, naudoti šioje programoje, matyt? 408 00:20:35,460 --> 00:20:38,320 409 00:20:38,320 --> 00:20:42,730 Kas daro viską move-- kas programavimo statyti? 410 00:20:42,730 --> 00:20:44,950 >> Pasiūlymas, sure-- todėl Perkelti blokas, tikrai. 411 00:20:44,950 --> 00:20:49,330 Ir kas, kad Perkelti blokas viduje, greičiausiai? 412 00:20:49,330 --> 00:20:52,850 Taip, kai kurie iš kilpos natūra, gal amžinai blokuoti, gal pakartokite block-- 413 00:20:52,850 --> 00:20:54,070 kartokite tol, kol blokas. 414 00:20:54,070 --> 00:20:57,330 Ir tai, kas daro rąstus ir lelija trinkelės ir visa kita Perkelti 415 00:20:57,330 --> 00:20:57,990 į priekį ir atgal. 416 00:20:57,990 --> 00:21:00,270 Tai tiesiog vyksta be galo. 417 00:21:00,270 --> 00:21:03,180 >> Kodėl kai kurie iš automobilių juda greičiau, nei kiti? 418 00:21:03,180 --> 00:21:06,607 Kuo skiriasi šių programų? 419 00:21:06,607 --> 00:21:09,690 Taip, tikriausiai kai kurie iš jų, atsižvelgiant daugiau veiksmų vienu metu ir kai kurie iš jų 420 00:21:09,690 --> 00:21:10,690 mažiau žingsnių vienu metu. 421 00:21:10,690 --> 00:21:14,670 Ir vaizdo efektas greitai palyginti lėtai. 422 00:21:14,670 --> 00:21:16,030 >> Ką manote atsitiko? 423 00:21:16,030 --> 00:21:19,700 Kai aš gavau mano varlė visą kelią per gatvę ir upės 424 00:21:19,700 --> 00:21:23,560 ant lelijos trinkelėmis, kažkas Pažymėtina atsitiko. 425 00:21:23,560 --> 00:21:26,540 Kas atsitiko, kai aš padariau, kad? 426 00:21:26,540 --> 00:21:27,210 Ji sustojo. 427 00:21:27,210 --> 00:21:29,680 Tai varlė sustojo, ir Aš turiu antrą varlė. 428 00:21:29,680 --> 00:21:33,155 Taigi, kas konstruktas turi būti būdavo, ką funkcija? 429 00:21:33,155 --> 00:21:36,020 430 00:21:36,020 --> 00:21:38,660 >> Taip, taip, yra keletas natūra "Jei" sąlyga ten pat. 431 00:21:38,660 --> 00:21:41,909 Ir paaiškėja out-- mes nematė this-- bet ten kitas blokų ten, kad 432 00:21:41,909 --> 00:21:45,300 galiu pasakyti, jei esate neliesti Kitas dalykas ekrane, 433 00:21:45,300 --> 00:21:47,720 jei neliesti lelija bloknotu ", tada". 434 00:21:47,720 --> 00:21:50,810 Ir tada, kad kai mes kad antroji varlė atrodo. 435 00:21:50,810 --> 00:21:54,969 Taigi, nors šis žaidimas yra tikrai labai d, nors iš pirmo žvilgsnio 436 00:21:54,969 --> 00:21:58,010 ten tiek daug vyksta on-- ir Blake nebuvo plakti tai dviem minutėmis, 437 00:21:58,010 --> 00:22:00,390 tai tikriausiai užtruko kelis valandos kurti šį žaidimą 438 00:22:00,390 --> 00:22:03,850 remiantis jo atmintyje arba video pasekėjai versijos jį. 439 00:22:03,850 --> 00:22:07,940 Tačiau visų šių smulkmenų vyksta į izoliacijos ekrano 440 00:22:07,940 --> 00:22:11,550 skliautais į tai labai paprasta constructs-- judesiai ir pareiškimai 441 00:22:11,550 --> 00:22:15,519 kaip mes aptarėme, kilpos ir sąlygos, ir kad apie jį. 442 00:22:15,519 --> 00:22:17,060 Yra keletas kitų mėgėjas funkcijos. 443 00:22:17,060 --> 00:22:19,130 Kai kurie iš jų yra grynai estetinis arba garso, 444 00:22:19,130 --> 00:22:20,964 kaip garsų aš tiesiog grojo su. 445 00:22:20,964 --> 00:22:23,380 Tačiau didžioji dalis, jums turi šia kalba, nulio, 446 00:22:23,380 --> 00:22:25,350 visi esminis statybiniai blokai, kad jums 447 00:22:25,350 --> 00:22:29,280 turi C, Java, JavaScript, PHP Ruby, Python, 448 00:22:29,280 --> 00:22:32,960 ir bet kurį iš kitų kalbomis numeris. 449 00:22:32,960 --> 00:22:36,720 Turite klausimų apie nulio? 450 00:22:36,720 --> 00:22:37,220 Gerai. 451 00:22:37,220 --> 00:22:40,303 Taigi mes nepasakosime pasinerti giliau į nulio, nors esate laukiami šį savaitgalį, 452 00:22:40,303 --> 00:22:42,860 ypač jei turite vaikų ar dukterėčios ir sūnėnai ir tokių, 453 00:22:42,860 --> 00:22:44,220 supažindinti juos su nulio. 454 00:22:44,220 --> 00:22:47,960 Tai tikrai nuostabiai žaismingas aplinka su, kaip jo autoriai sako, 455 00:22:47,960 --> 00:22:49,120 labai aukštos lubos. 456 00:22:49,120 --> 00:22:51,670 Nors mes pradėjome labai mažo detalės, 457 00:22:51,670 --> 00:22:54,890 tikrai galite padaryti gana didelis su juo, ir tai yra galbūt 458 00:22:54,890 --> 00:22:57,360 iš būtent tai demonstravimas. 459 00:22:57,360 --> 00:23:02,920 >> Bet tegul dabar pereiti prie šiek tiek daugiau sudėtingų problemų, jei bus, 460 00:23:02,920 --> 00:23:05,870 žinomas kaip "paieškos" ir "Rūšiavimo" apskritai. 461 00:23:05,870 --> 00:23:09,500 Mes turėjome šis telefonas knyga earlier-- čia dar vienas tik discussion-- 462 00:23:09,500 --> 00:23:13,460 kad mes galėjome ieškoti efektyviau, nes 463 00:23:13,460 --> 00:23:15,270 apie reikšmingą prielaidą. 464 00:23:15,270 --> 00:23:17,655 Ir tiesiog, kad būtų aišku, kas prielaida buvo man padaryti 465 00:23:17,655 --> 00:23:19,280 ieškant per šią telefonų knygoje? 466 00:23:19,280 --> 00:23:23,342 467 00:23:23,342 --> 00:23:25,300 Tai Mike'as Smithas buvo telefonų knyga, nors aš 468 00:23:25,300 --> 00:23:27,410 galėtų tvarkyti scenarijus be jo 469 00:23:27,410 --> 00:23:30,720 ten, jei aš tiesiog sustojo anksti. 470 00:23:30,720 --> 00:23:31,806 Knyga abėcėlės. 471 00:23:31,806 --> 00:23:33,930 Ir tai yra labai turtinga prielaida, nes tai 472 00:23:33,930 --> 00:23:36,580 reiškia someone-- Aš tipo pjovimo kampą, 473 00:23:36,580 --> 00:23:40,580 kaip aš greičiau, nes kažkas kitas padarė daug sunkaus darbo man. 474 00:23:40,580 --> 00:23:43,120 >> Bet kas, jei telefonas knyga buvo Nerūšiuotos? 475 00:23:43,120 --> 00:23:47,050 Gal Verizon "gavo tingus, tiesiog išmetė kiekvieno žmogaus vardai ir numeriai ten 476 00:23:47,050 --> 00:23:50,120 gal ta tvarka, kuria jie užsiregistravau telefono paslauga. 477 00:23:50,120 --> 00:23:54,570 Ir kiek laiko tai užtruks mane rasti ką nors panašaus Mike Smith? 478 00:23:54,570 --> 00:23:58,160 1000 puslapis telefonas book-- kiek puslapiai turiu atrodyti per? 479 00:23:58,160 --> 00:23:58,905 >> Visi jie. 480 00:23:58,905 --> 00:24:00,030 Jūs esate tarsi iš laimės. 481 00:24:00,030 --> 00:24:03,420 Jūs tiesiog turite pažvelgti į kiekvieną puslapis, jei telefonas knyga yra tiesiog 482 00:24:03,420 --> 00:24:04,450 atsitiktinai rūšiuojami. 483 00:24:04,450 --> 00:24:06,910 Jūs galite gauti pasisekė ir sužinoti Mike ant labai pirmajame puslapyje, nes jis 484 00:24:06,910 --> 00:24:08,826 buvo pirmasis klientas užsakyti telefono paslaugą. 485 00:24:08,826 --> 00:24:10,760 Bet jis galėjo būti paskutinis, taip pat. 486 00:24:10,760 --> 00:24:12,500 >> Taigi atsitiktine tvarka nėra gera. 487 00:24:12,500 --> 00:24:16,750 Taigi tarkime, turime rūšiuoti telefonų knyga arba apskritai rūšiavimo duomenų 488 00:24:16,750 --> 00:24:18,520 kad mes buvo suteikta. 489 00:24:18,520 --> 00:24:19,440 Kaip mes galime padaryti? 490 00:24:19,440 --> 00:24:21,360 >> Na, leiskite man tiesiog pabandykite paprastas pavyzdys čia. 491 00:24:21,360 --> 00:24:24,290 Leiskite man eiti į priekį ir išmesti Keletas numeriai ant lentos. 492 00:24:24,290 --> 00:24:35,480 Tarkime, skaičius, mes turime yra, tarkim, keturi, du, vienas, trys. 493 00:24:35,480 --> 00:24:38,390 Ir, Benas, rūšiuoti šiuos numerius už mus. 494 00:24:38,390 --> 00:24:39,017 >> Gerai. 495 00:24:39,017 --> 00:24:39,850 Kaip tu tai padarei? 496 00:24:39,850 --> 00:24:42,731 497 00:24:42,731 --> 00:24:43,230 Gerai. 498 00:24:43,230 --> 00:24:44,710 Taigi pradėkite nuo mažiausio vertė ir didžiausias, 499 00:24:44,710 --> 00:24:46,084 ir tai tikrai gera intuicija. 500 00:24:46,084 --> 00:24:48,080 Ir suprasti, kad mes žmonės yra iš tikrųjų labai 501 00:24:48,080 --> 00:24:49,913 gerai problemų sprendimo kaip tai, ne mažiau kaip 502 00:24:49,913 --> 00:24:51,810 kai duomenys yra palyginti mažas. 503 00:24:51,810 --> 00:24:54,860 Kai tik pradėsite turėti šimtus skaičių, tūkstančiai skaičių, 504 00:24:54,860 --> 00:24:58,440 Milijonai numeriai, Benas tikriausiai negalėjo padaryti gana, kad greitai, 505 00:24:58,440 --> 00:25:00,620 darant prielaidą, kad ten buvo spragų skaičių. 506 00:25:00,620 --> 00:25:03,450 Gana lengva suskaičiuoti iki milijono kitaip, tiesiog laiko. 507 00:25:03,450 --> 00:25:07,150 >> Taigi algoritmas atrodo kaip Benas naudojami tik dabar 508 00:25:07,150 --> 00:25:08,930 buvo ieškoma mažiausio skaičiaus. 509 00:25:08,930 --> 00:25:12,900 Taigi, nors mes, žmonės gali imtis į daug informacijos vizualiai, 510 00:25:12,900 --> 00:25:14,830 kompiuteris yra iš tikrųjų šiek tiek daugiau ribotas. 511 00:25:14,830 --> 00:25:17,560 Kompiuteris gali tik peržvelgsite vienas baitas tuo metu, 512 00:25:17,560 --> 00:25:20,770 ar gal keturių baitų vienu LAIKĄ_ šių dienų, o gal 8 baitai vienu LAIKĄ_ 513 00:25:20,770 --> 00:25:24,450 bet labai nedaug baitų tam tikru metu. 514 00:25:24,450 --> 00:25:28,480 >> Todėl, kad mes tikrai turime keturi atskiri vertės here-- 515 00:25:28,480 --> 00:25:32,440 ir jūs galite galvoti apie Ben kaip turintys ne laukai ant jeigu jis buvo kompiuteryje, pavyzdžiui 516 00:25:32,440 --> 00:25:36,450 kad jis negali matyti nieko kito nei vieną numerį LAIKĄ_ 517 00:25:36,450 --> 00:25:39,720 todėl mes paprastai laikys, kaip ir Anglų, mes skaityti iš dešinės į kairę. 518 00:25:39,720 --> 00:25:42,870 Taigi pirmas skaičius Benas tikriausiai atrodė ne buvo keturių ir tada labai greitai 519 00:25:42,870 --> 00:25:44,770 supratau, kad gana didelė number-- leiskite nuolat ieško. 520 00:25:44,770 --> 00:25:45,357 >> Yra du. 521 00:25:45,357 --> 00:25:45,940 Palauk minutę. 522 00:25:45,940 --> 00:25:47,070 Du yra mažesnis kaip keturi. 523 00:25:47,070 --> 00:25:47,986 Aš ruošiuosi prisiminti. 524 00:25:47,986 --> 00:25:49,070 Du dabar mažiausias. 525 00:25:49,070 --> 00:25:50,417 Dabar one-- kad netgi geriau. 526 00:25:50,417 --> 00:25:51,250 Štai dar mažesnė. 527 00:25:51,250 --> 00:25:54,000 Aš ruošiuosi pamiršti apie du ir tiesiog prisiminti dabar. 528 00:25:54,000 --> 00:25:56,550 >> Ir jis galėtų sustabdyti ieškote? 529 00:25:56,550 --> 00:25:58,360 Na, jis galėtų pagrįsti į šią informaciją, 530 00:25:58,360 --> 00:26:00,477 bet verčiau paiešką dėl sąrašo poilsio. 531 00:26:00,477 --> 00:26:02,060 Nes kas, jei nulinis buvo sąraše? 532 00:26:02,060 --> 00:26:03,643 Ką daryti, jei neigiamas buvo sąraše? 533 00:26:03,643 --> 00:26:07,720 Jis tik žino, kad jo atsakymas yra teisingas, jei jis išsamiai 534 00:26:07,720 --> 00:26:08,729 patikrinti visą sąrašą. 535 00:26:08,729 --> 00:26:10,020 Taigi, mes pažvelgti į tai poilsio. 536 00:26:10,020 --> 00:26:11,394 Three-- tai buvo tik laiko švaistymas. 537 00:26:11,394 --> 00:26:13,540 Turite nepasisekė, bet aš buvau dar teisingai padaryti. 538 00:26:13,540 --> 00:26:17,857 Ir todėl dabar jis matyt pasirinkta mažiausią skaičių 539 00:26:17,857 --> 00:26:20,440 ir tiesiog įdėti jį pradžioje sąrašo, nes aš padarysiu čia. 540 00:26:20,440 --> 00:26:23,480 Dabar, ką veikei šalia, nors tu negali galvoti apie tai beveik 541 00:26:23,480 --> 00:26:25,962 į šį kiek? 542 00:26:25,962 --> 00:26:27,670 Pakartokite šį procesą, todėl kai kurie iš kilpos natūra. 543 00:26:27,670 --> 00:26:28,920 Yra susipažinę idėja. 544 00:26:28,920 --> 00:26:30,860 Taigi čia yra keturi. 545 00:26:30,860 --> 00:26:32,110 Štai šiuo metu mažiausias. 546 00:26:32,110 --> 00:26:33,220 Štai kandidatas. 547 00:26:33,220 --> 00:26:33,900 Jau nebe. 548 00:26:33,900 --> 00:26:34,770 Dabar aš mačiau du. 549 00:26:34,770 --> 00:26:36,630 Štai kitas mažiausias elementas. 550 00:26:36,630 --> 00:26:40,800 Three-- tai ne mažesnis, todėl dabar Benas gali išplėšti iš dviejų. 551 00:26:40,800 --> 00:26:44,510 >> Ir dabar mes pakartokite šį procesą ir Žinoma trijų gauna ištraukė toliau. 552 00:26:44,510 --> 00:26:45,420 Pakartokite šį procesą. 553 00:26:45,420 --> 00:26:46,990 Keturi gauna ištrauktas. 554 00:26:46,990 --> 00:26:50,140 Ir dabar mes iš skaičių, todėl sąraše turi būti rūšiuojami. 555 00:26:50,140 --> 00:26:51,960 >> Ir iš tiesų, tai yra formalus algoritmas. 556 00:26:51,960 --> 00:26:56,610 Kompiuteris mokslininkas būtų tai vadina "atranka rūšiuoti", 557 00:26:56,610 --> 00:27:00,880 idėja yra tarsi sąrašą iteratively-- vėl 558 00:27:00,880 --> 00:27:03,807 ir vėl ir vėl pasirinkdami mažiausias skaičius. 559 00:27:03,807 --> 00:27:06,140 Ir kas malonu apie tai tai tik taip adyti intuityvus. 560 00:27:06,140 --> 00:27:07,470 Tai taip paprasta. 561 00:27:07,470 --> 00:27:11,100 Ir jūs galite pakartoti tą patį vėl ir vėl operacija. 562 00:27:11,100 --> 00:27:12,150 Tai paprasta. 563 00:27:12,150 --> 00:27:17,170 >> Šiuo atveju tai buvo greitai, bet kiek laiko ji iš tikrųjų imtis? 564 00:27:17,170 --> 00:27:19,880 Leiskite, kad ji atrodo ir jaučiasi šiek tiek daugiau varginantis. 565 00:27:19,880 --> 00:27:24,150 Taip vieną, du, tris, keturis, penkis šešių, septynių, aštuonių, devynių, 10, 11, 12, 13, 14, 566 00:27:24,150 --> 00:27:26,160 15, 16-- kokiam. 567 00:27:26,160 --> 00:27:28,780 Aš tik norėjau daugiau tai laiko nei tik keturi. 568 00:27:28,780 --> 00:27:30,780 Taigi, jei aš turiu visą krūva skaičių now-- ją 569 00:27:30,780 --> 00:27:32,420 nėra net nesvarbu ką jie are-- tegul 570 00:27:32,420 --> 00:27:34,380 galvoti apie tai, kas tai algoritmas tikrai patinka. 571 00:27:34,380 --> 00:27:35,857 >> Tarkime, yra numeriai ten. 572 00:27:35,857 --> 00:27:38,190 Vėlgi, nesvarbu kas jie, bet jie atsitiktinai. 573 00:27:38,190 --> 00:27:39,679 Aš taikant Ben algoritmas. 574 00:27:39,679 --> 00:27:41,220 Man reikia pasirinkti mažiausią skaičių. 575 00:27:41,220 --> 00:27:41,761 Ka aš darau? 576 00:27:41,761 --> 00:27:44,240 Ir aš ruošiuosi fiziškai tai padaryti šįkart veikti jį. 577 00:27:44,240 --> 00:27:46,099 Domina, ieško, ieško, ieško, ieško. 578 00:27:46,099 --> 00:27:48,140 Tik iki to laiko gaunu iš sąrašo pabaigoje gali 579 00:27:48,140 --> 00:27:51,230 Suprantu mažiausias skaičius buvo du šį kartą. 580 00:27:51,230 --> 00:27:52,720 Vienas ne sąraše. 581 00:27:52,720 --> 00:27:54,400 Taigi aš pribaigti du. 582 00:27:54,400 --> 00:27:55,590 >> Ką daryti toliau? 583 00:27:55,590 --> 00:27:58,600 Domina, ieško, ieško, ieško. 584 00:27:58,600 --> 00:28:02,250 Dabar radau skaičius septyni, nes ten spragų šių numbers-- 585 00:28:02,250 --> 00:28:03,300 bet tiesiog savavališkai. 586 00:28:03,300 --> 00:28:03,800 Gerai. 587 00:28:03,800 --> 00:28:06,030 Taigi dabar galiu pribaigti septyni. 588 00:28:06,030 --> 00:28:08,860 Domina ieško, ieško. 589 00:28:08,860 --> 00:28:11,030 >> Dabar aš darant prielaidą, nuo Žinoma, kad Benas nėra 590 00:28:11,030 --> 00:28:14,780 turi papildomą RAM, papildomai atminties, nes, žinoma, 591 00:28:14,780 --> 00:28:16,080 Žiūriu tuo pačiu numeriu. 592 00:28:16,080 --> 00:28:18,246 Žinoma, galėčiau prisiminti visus tuos numerius, 593 00:28:18,246 --> 00:28:19,930 ir tai visiškai teisinga. 594 00:28:19,930 --> 00:28:22,610 Bet jei Benas prisimena visi iš numerių jis matė, 595 00:28:22,610 --> 00:28:24,430 jis nebuvo tikrai padarė esminę pažangą, pasiektą 596 00:28:24,430 --> 00:28:26,170 nes jis jau turi gebėjimas paiešką 597 00:28:26,170 --> 00:28:27,540 per numerius ant lentos. 598 00:28:27,540 --> 00:28:29,373 Prisimindamas visas numeriai nepadeda, 599 00:28:29,373 --> 00:28:32,490 nes jis vis dar gali kaip kompiuteris tik pažvelgti, mes pasakė: vieną numerį 600 00:28:32,490 --> 00:28:33,080 tuo metu. 601 00:28:33,080 --> 00:28:35,760 Taigi nėra jokio cheat rūšiuoti ten, kad jūs galite naudoti. 602 00:28:35,760 --> 00:28:39,170 >> Taigi iš tikrųjų, kaip aš nuolat ieško sąrašą, 603 00:28:39,170 --> 00:28:44,200 Aš tiesiog turiu tik nesustoti pirmyn ir atgal per jį, skynimas iš 604 00:28:44,200 --> 00:28:45,710 Kitas mažiausias skaičius. 605 00:28:45,710 --> 00:28:48,810 Ir kaip jūs galite rūšies išvadą iš mano kvailus judesius, 606 00:28:48,810 --> 00:28:50,860 Tai tiesiog gauna labai nuobodus labai greitai, 607 00:28:50,860 --> 00:28:54,850 ir man atrodo, kad bus grįžta ir pirmyn, pirmyn ir atgal gana šiek tiek. 608 00:28:54,850 --> 00:29:03,220 Dabar būtų teisinga, aš neturiu eiti visai taip, gerai, tegul see-- būtų teisinga, 609 00:29:03,220 --> 00:29:06,310 Aš neturiu vaikščioti gana kaip daug žingsnių kiekvieną kartą. 610 00:29:06,310 --> 00:29:09,200 Nes, žinoma, kaip aš pasirinkti numerius iš sąrašo 611 00:29:09,200 --> 00:29:11,860 likusi sąrašas trumpėja. 612 00:29:11,860 --> 00:29:14,240 >> Ir todėl galime galvoti apie kiek žingsnių aš iš tikrųjų 613 00:29:14,240 --> 00:29:16,010 traipsing per kiekvieną kartą. 614 00:29:16,010 --> 00:29:18,950 Be pirmųjų situacijoje mes turėjome 16 numerius, 615 00:29:18,950 --> 00:29:22,210 ir taip maximally-- tegul tik tai padaryti už discussion-- 616 00:29:22,210 --> 00:29:25,640 Turėjau atrodyti per 16 numeriai rasti mažiausias. 617 00:29:25,640 --> 00:29:28,420 Bet kai aš nupeštos iš mažiausias skaičius, kaip 618 00:29:28,420 --> 00:29:30,590 ilgai buvo likęs sąrašą, žinoma? 619 00:29:30,590 --> 00:29:31,420 Tiesiog 15. 620 00:29:31,420 --> 00:29:34,670 Taigi, kaip daugelis numeriai padarė Benas ar turiu ieškoti per antrą kartą aplink? 621 00:29:34,670 --> 00:29:36,832 15, tiesiog eiti ir rasti mažiausias. 622 00:29:36,832 --> 00:29:39,540 Bet dabar, žinoma, sąrašas, taip pat mažesni nei buvo anksčiau. 623 00:29:39,540 --> 00:29:42,540 Taigi, kiek žingsnių aš turi priimti kitą kartą? 624 00:29:42,540 --> 00:29:49,970 14 ir tada 13 ir tada 12, plius taškų, taškas, taškas, kol aš kairėje su tik vieną. 625 00:29:49,970 --> 00:29:53,146 Taigi, dabar kompiuteris mokslininkas būtų paklausti, gerai, ką tai visi lygūs? 626 00:29:53,146 --> 00:29:55,770 Tai iš tikrųjų yra lygus keletas konkrečių skaičius, kad galėtume tikrai 627 00:29:55,770 --> 00:30:00,490 padaryti aritmetiškai, bet mes norime kalbėti apie algoritmų efektyvumo 628 00:30:00,490 --> 00:30:04,940 šiek tiek daugiau formulaically, nepriklausoma nuo to, kaip ilgai sąrašas. 629 00:30:04,940 --> 00:30:06,240 >> Ir taip, jūs žinote, ką? 630 00:30:06,240 --> 00:30:09,860 Tai 16, bet kaip minėjau anksčiau, tegul tiesiog skambinkite problemos dydį 631 00:30:09,860 --> 00:30:10,970 n, kur n yra kai numeris. 632 00:30:10,970 --> 00:30:13,220 Gal tai 16, o gal tai trys, gal tai milijoną. 633 00:30:13,220 --> 00:30:13,761 Nežinau. 634 00:30:13,761 --> 00:30:14,390 Man nerūpi. 635 00:30:14,390 --> 00:30:16,520 Ką aš tikrai noriu tai formulė, kad galiu 636 00:30:16,520 --> 00:30:19,420 naudoti palyginti šį algoritmą prieš kitus algoritmus 637 00:30:19,420 --> 00:30:22,350 kad kas nors gali reikalauti yra geriau ar blogiau. 638 00:30:22,350 --> 00:30:25,430 >> Todėl Pasirodo, ir tik aš žinau, tai iš pradinėje mokykloje, 639 00:30:25,430 --> 00:30:34,790 kad tai iš tikrųjų veikia iš į tą patį dalykas kaip n per n plius viena virš dviejų. 640 00:30:34,790 --> 00:30:40,020 Ir tai atsitinka lygūs, iš Žinoma, n kvadratu plius n virš dviejų. 641 00:30:40,020 --> 00:30:43,250 Taigi, jei aš norėjau formulę už kiek žingsnių 642 00:30:43,250 --> 00:30:46,330 dalyvavo žiūri visi iš vėl ir vėl tų skaičių 643 00:30:46,330 --> 00:30:52,681 ir vėl ir vėl, sakyčiau tai n kvadratu plius n virš dviejų. 644 00:30:52,681 --> 00:30:53,430 Bet žinote ką? 645 00:30:53,430 --> 00:30:54,500 Tai tik atrodo nepatogus. 646 00:30:54,500 --> 00:30:56,470 Aš tiesiog tikrai noriu Apskritai jausmas dalykų. 647 00:30:56,470 --> 00:30:58,810 Ir jūs tikriausiai pamenate, kad iš aukštosios mokyklos, kad 648 00:30:58,810 --> 00:31:00,660 yra aukščiausios užsakymo terminas sąvoka. 649 00:31:00,660 --> 00:31:05,300 Kuris iš šių terminų, n langeliais, su N, ar pusę, 650 00:31:05,300 --> 00:31:07,550 turi didžiausią įtaką per tam tikrą laiką? 651 00:31:07,550 --> 00:31:11,920 Kuo didesnis n gauna, kuris iš labiausiai šiais klausimais? 652 00:31:11,920 --> 00:31:15,560 >> Kitaip tariant, jei aš prijungti iš milijono n kvadratu 653 00:31:15,560 --> 00:31:17,900 bus greičiausiai dominuojantis veiksnys, 654 00:31:17,900 --> 00:31:21,670 nes milijoną kartų pati yra daug didesnis 655 00:31:21,670 --> 00:31:23,682 nei plius vienas papildomas mln. 656 00:31:23,682 --> 00:31:24,390 Taigi jūs žinote, ką? 657 00:31:24,390 --> 00:31:27,305 Tai yra toks Lāpīt didelis numeris, jei kvadratinių numerį. 658 00:31:27,305 --> 00:31:28,430 Tai tikrai ne klausimas. 659 00:31:28,430 --> 00:31:30,596 Mes tiesiog ketiname kryžių, kad iš ir pamiršti apie jį. 660 00:31:30,596 --> 00:31:34,250 Ir taip kompiuteris mokslininkas pasakytų kad šio algoritmu, efektyvumas 661 00:31:34,250 --> 00:31:37,850 yra n tam, squared-- Aš turiu galvoje išties apytikriai. 662 00:31:37,850 --> 00:31:40,810 Jis tarsi maždaug n kvadratu. 663 00:31:40,810 --> 00:31:44,130 Laikui bėgant, tuo didesnis ir didesni N gauna, tai 664 00:31:44,130 --> 00:31:47,610 yra geras įvertinimas už tai, ką efektyvumas arba efektyvumo trūkumas 665 00:31:47,610 --> 00:31:49,400 Šio algoritmo iš tikrųjų yra. 666 00:31:49,400 --> 00:31:52,040 Ir aš gauti, kad, žinoma, iš tikrųjų daro matematiką. 667 00:31:52,040 --> 00:31:54,040 Bet dabar aš tiesiog mojuodami mano rankos, nes aš tiesiog 668 00:31:54,040 --> 00:31:55,790 noriu bendrąja prasme šios algoritmas. 669 00:31:55,790 --> 00:31:58,850 >> Taigi, naudojant tą pačią logiką, tuo tarpu, aptarkime kitą algoritmą 670 00:31:58,850 --> 00:32:01,162 mes jau atrodė at-- linijinis paiešką. 671 00:32:01,162 --> 00:32:02,870 Kai aš ieškojau už telefoną book-- 672 00:32:02,870 --> 00:32:05,980 nėra rūšiavimas, paieška per telefoną book-- 673 00:32:05,980 --> 00:32:09,197 mes nuolat kartojo, kad tai buvo 1000 žingsnių, arba 500 žingsnius. 674 00:32:09,197 --> 00:32:10,280 Bet tegul apibendrina, kad. 675 00:32:10,280 --> 00:32:12,860 Jei yra n puslapių telefonų knyga, kas 676 00:32:12,860 --> 00:32:17,250 važiavimo laikas arba efektyvumas tiesinės paieškos? 677 00:32:17,250 --> 00:32:19,750 Tai apie tam kiek žingsnių rasti 678 00:32:19,750 --> 00:32:24,210 Mike'as Smithas naudojant tiesinę paiešką, The pirmasis algoritmas, arba net antra? 679 00:32:24,210 --> 00:32:27,240 680 00:32:27,240 --> 00:32:31,710 >> Blogiausiu atveju, Mike yra knygos pabaigoje. 681 00:32:31,710 --> 00:32:35,590 Taigi, jei telefonas knyga turi 1000 puslapių, sakėme paskutinį kartą, blogiausiu atveju, 682 00:32:35,590 --> 00:32:38,380 tai gali užtrukti maždaug kaip daug puslapių rasti Mike? 683 00:32:38,380 --> 00:32:38,990 Kaip 1,000. 684 00:32:38,990 --> 00:32:39,830 Tai viršutinė riba. 685 00:32:39,830 --> 00:32:41,790 Tai blogiausia įmanoma situacija. 686 00:32:41,790 --> 00:32:44,410 Bet vėl, mes tolsta iš skaičiais, pavyzdžiui, 1000 dabar. 687 00:32:44,410 --> 00:32:45,730 Tai tiesiog n. 688 00:32:45,730 --> 00:32:47,470 >> Taigi, kas yra logiška išvada? 689 00:32:47,470 --> 00:32:50,210 Ieškoti mike telefoną knyga, kuri turi n puslapių 690 00:32:50,210 --> 00:32:55,280 gali užtrukti, o labai blogiausiu atveju, kiek žingsnių dėl n tam? 691 00:32:55,280 --> 00:32:58,110 Ir iš tiesų kompiuteris mokslininkas pasakytų 692 00:32:58,110 --> 00:33:02,340 kad, veikimo laiką, arba iš nevykdymo ar efektyvumas 693 00:33:02,340 --> 00:33:07,470 ar neefektyvumas, kurių, kaip algoritmas linijinis paieška yra n tvarka. 694 00:33:07,470 --> 00:33:10,010 Ir mes galime taikyti tą patį logika kirtimo kažką iš 695 00:33:10,010 --> 00:33:13,170 kaip aš ką tik padariau antrą algoritmas mes turėjome su telefono knyga, 696 00:33:13,170 --> 00:33:16,040 kur mes nuėjome du puslapius vienu metu. 697 00:33:16,040 --> 00:33:20,120 >> Taigi 1000 puslapis telefonų knyga galėtų mus 500 puslapis posūkiai, plius vienas 698 00:33:20,120 --> 00:33:21,910 jei mes dvigubai atgal truputį. 699 00:33:21,910 --> 00:33:26,590 Taigi, jei telefono knyga turi n puslapių, bet mes darome du puslapius vienu metu, 700 00:33:26,590 --> 00:33:28,900 tai maždaug kas? 701 00:33:28,900 --> 00:33:33,190 N. virš dviejų, kad lyg n per dvi. 702 00:33:33,190 --> 00:33:38,490 Bet aš padariau teiginio akimirka prieš, kad N per two-- 703 00:33:38,490 --> 00:33:41,060 kad tipo tas pats, kaip tik n. 704 00:33:41,060 --> 00:33:44,050 Tai tiesiog pastovus veiksnys, kompiuterių mokslininkai pasakytų. 705 00:33:44,050 --> 00:33:45,970 Leiskite tik sutelkti dėmesį į kintamieji, really-- 706 00:33:45,970 --> 00:33:47,780 didžiausi kintamieji lygtys. 707 00:33:47,780 --> 00:33:52,530 >> Taigi linijinis paieška, ar padaryti vieną puslapis vienu metu arba du puslapiai vienu metu, 708 00:33:52,530 --> 00:33:54,810 yra tarsi iš esmės tas pats. 709 00:33:54,810 --> 00:33:56,880 Tai vis dar n tvarka. 710 00:33:56,880 --> 00:34:01,930 Bet aš teigė su mano paveikslėlyje anksčiau kad trečiasis algoritmas nebuvo 711 00:34:01,930 --> 00:34:02,480 linijinis. 712 00:34:02,480 --> 00:34:03,605 Tai buvo ne tiesia linija. 713 00:34:03,605 --> 00:34:08,659 Ji buvo tai, kad išlenkta linija, ir algebrinė formulė buvo kas? 714 00:34:08,659 --> 00:34:11,812 Prisijungti nuo n-- taip logaritmas du n. 715 00:34:11,812 --> 00:34:14,520 Ir mes neturime eiti į pernelyg daug detalė logaritmas šiandien 716 00:34:14,520 --> 00:34:17,394 bet dauguma kompiuterių mokslininkai nebūtų net pasakyti, kas pagrindas yra. 717 00:34:17,394 --> 00:34:20,639 Kadangi visa tai tik nuolatiniai faktoriai, taip sakant, 718 00:34:20,639 --> 00:34:22,659 tik šiek tiek skaitmeniniai skirtumai. 719 00:34:22,659 --> 00:34:31,179 Ir taip, tai būtų labai dažna būdas ypač formalaus kompiuterio 720 00:34:31,179 --> 00:34:33,949 mokslininkai lentos arba programuotojai at baltos lentos 721 00:34:33,949 --> 00:34:36,889 iš tikrųjų teigdamas, kuri algoritmas jie būtų naudoti 722 00:34:36,889 --> 00:34:39,500 ar ką efektyvumas iš jų algoritmas. 723 00:34:39,500 --> 00:34:42,960 >> Ir tai nebūtinai kažkas Jūs aptarti bet labai išsamiai, 724 00:34:42,960 --> 00:34:47,889 bet geras programuotojas yra kažkas kas turi tvirtą, oficialų fone. 725 00:34:47,889 --> 00:34:50,120 Jis galėtų kalbėti Jums šiame kelyje rūšies 726 00:34:50,120 --> 00:34:53,350 ir iš tikrųjų padaryti kokybiniai argumentai kaip 727 00:34:53,350 --> 00:34:56,870 kodėl vienas algoritmas arba vienas gabalas programinės įrangos, 728 00:34:56,870 --> 00:35:00,165 yra pranašesnis tam tikru būdu į kitą. 729 00:35:00,165 --> 00:35:02,540 Kadangi jūs tikrai galėtų tiesiog paleisti vienas žmogus programą 730 00:35:02,540 --> 00:35:04,980 ir skaičiuoti sekundžių skaičių ji mano, kad rūšiuoti kai kuriuos skaičius, 731 00:35:04,980 --> 00:35:06,710 ir jūs galite paleisti kai kito asmens programa 732 00:35:06,710 --> 00:35:08,418 ir skaičiuoti numerį sekundžių užtrunka. 733 00:35:08,418 --> 00:35:12,840 Tačiau tai yra daugiau apskritai būdas, kad galite naudoti analizuoti algoritmus, 734 00:35:12,840 --> 00:35:15,520 jei bus, tiesiog ant popieriaus ar tiesiog žodžiu. 735 00:35:15,520 --> 00:35:18,430 Net paleisti jį be net bando pavyzdžius įėjimai, 736 00:35:18,430 --> 00:35:20,180 galite tiesiog samprotauti per ją. 737 00:35:20,180 --> 00:35:24,670 Ir taip su nuomos kūrėjas arba jei turintys jam ar jai tarsi teigia, jums 738 00:35:24,670 --> 00:35:28,460 kodėl jų algoritmas, jų paslaptis padažas ieško milijardus 739 00:35:28,460 --> 00:35:30,580 tinklalapių jūsų Bendrovė yra geriau, tai 740 00:35:30,580 --> 00:35:33,302 yra argumentų rūšių jie idealiu atveju turėtų būti suteikta galimybė. 741 00:35:33,302 --> 00:35:35,010 Arba bent jau tai yra Daiktų rūšys 742 00:35:35,010 --> 00:35:40,211 kad būtų sugalvoti svarstymo metu jau labai formalios diskusijos. 743 00:35:40,211 --> 00:35:40,710 Gerai. 744 00:35:40,710 --> 00:35:44,400 Taigi Benas pasiūlė kažką vadinamas atranka rūšiuoti. 745 00:35:44,400 --> 00:35:48,200 Bet aš ruošiuosi pasiūlyti, kad yra kitų būdų tai padaryti, taip pat. 746 00:35:48,200 --> 00:35:50,400 Ką aš nelabai patinka apie Beno algoritmas 747 00:35:50,400 --> 00:35:54,400 yra tai, kad jis nuolat vaikščioti, arba to, man vaikščioti, pirmyn ir atgal 748 00:35:54,400 --> 00:35:56,930 ir pirmyn ir atgal ir į priekį ir atgal. 749 00:35:56,930 --> 00:36:04,130 Ką daryti, jei vietoj aš būčiau daryti kažkas panašaus į šiuos numerius čia 750 00:36:04,130 --> 00:36:08,200 ir aš buvo tiesiog susidoroti su kiekvienu skaičius savo ruožtu, kaip aš ją atidavė? 751 00:36:08,200 --> 00:36:10,780 >> Kitaip tariant, čia Mano sąrašas numerius. 752 00:36:10,780 --> 00:36:12,944 Keturių, vienas, trys, du. 753 00:36:12,944 --> 00:36:14,360 Ir aš ruošiuosi daryti toliau. 754 00:36:14,360 --> 00:36:17,230 Aš ruošiuosi įrašyti skaičius kur jie priklauso, o 755 00:36:17,230 --> 00:36:18,980 , nei pasirinkti jiems vienu metu. 756 00:36:18,980 --> 00:36:20,820 Kitaip tariant, čia yra numeris keturi. 757 00:36:20,820 --> 00:36:22,430 >> Štai mano originalus sąrašą. 758 00:36:22,430 --> 00:36:25,290 Ir aš ruošiuosi išlaikyti iš esmės naujas sąrašas čia. 759 00:36:25,290 --> 00:36:26,710 Todėl tai yra senas sąrašas. 760 00:36:26,710 --> 00:36:28,560 Tai yra nauja sąrašas. 761 00:36:28,560 --> 00:36:30,220 Matau numeris keturi pirmas. 762 00:36:30,220 --> 00:36:34,500 Mano naujas sąrašas pradžių tuščias, todėl banaliai atvejis 763 00:36:34,500 --> 00:36:36,410 kad keturi dabar asorti sąrašą. 764 00:36:36,410 --> 00:36:39,560 Aš tik atsižvelgiant į skaičių aš tikrą, ir aš išleisti jį į mano naują sąrašą. 765 00:36:39,560 --> 00:36:41,460 >> Ar ši nauja sąrašas rūšiuojami? 766 00:36:41,460 --> 00:36:41,990 Taip. 767 00:36:41,990 --> 00:36:45,090 Tai kvaila, nes ten tik vienas elementas, bet jis absoliučiai rūšiuojami. 768 00:36:45,090 --> 00:36:46,390 Nėra nieko iš vietos. 769 00:36:46,390 --> 00:36:49,290 Tai įdomiau, šis algoritmas, kai aš pereiti prie kito žingsnio. 770 00:36:49,290 --> 00:36:50,550 >> Dabar turiu vieną. 771 00:36:50,550 --> 00:36:55,430 Taigi vienas, žinoma, priklauso ne pradžioje arba šios naujos sąrašo pabaigoje? 772 00:36:55,430 --> 00:36:56,360 Pradžia. 773 00:36:56,360 --> 00:36:58,530 Taigi turiu padaryti tam tikrą darbą dabar. 774 00:36:58,530 --> 00:37:01,410 Aš jau vartojate kai laisvės su mano persekiotoją 775 00:37:01,410 --> 00:37:03,120 tiesiog piešimo dalykus kur aš noriu juos, 776 00:37:03,120 --> 00:37:05,320 bet tai tikrai ne tiksli kompiuteryje. 777 00:37:05,320 --> 00:37:08,530 Kompiuteris, kaip žinome, turi RAM arba Random Access Memory, 778 00:37:08,530 --> 00:37:12,411 ir tai vienas baitas ir kitas baitas o kitas baitas. 779 00:37:12,411 --> 00:37:14,910 Ir jei jūs turite GIGABYTE RAM turite milijardas baitų, 780 00:37:14,910 --> 00:37:16,680 bet jie fiziškai vienoje vietoje. 781 00:37:16,680 --> 00:37:19,540 Jūs negalite tiesiog perkelti stuff aplink traukiant jį ant lentos 782 00:37:19,540 --> 00:37:20,750 ten, kur norite. 783 00:37:20,750 --> 00:37:24,090 Taigi, jei mano naujas sąrašas keturių vietų atmintyje, 784 00:37:24,090 --> 00:37:27,480 deja keturi yra jau į neteisingą vietą. 785 00:37:27,480 --> 00:37:30,410 >> Taigi, norint įterpti numeris vienas Aš negaliu tiesiog atkreipti jį čia. 786 00:37:30,410 --> 00:37:31,901 Tai atminties vieta neegzistuoja. 787 00:37:31,901 --> 00:37:35,150 Tai būtų oszukiwanie, ir aš jau oszukiwanie pavaizduotomis piktogramo- kelias minutes 788 00:37:35,150 --> 00:37:35,800 čia. 789 00:37:35,800 --> 00:37:40,950 Taigi tikrai, jei noriu įdėti vieną čia Turiu laikinai kopijuoti keturi 790 00:37:40,950 --> 00:37:43,030 ir tada įdėti vieną ten. 791 00:37:43,030 --> 00:37:45,500 >> Tai gerai, tai teisinga, tai techniškai įmanoma, 792 00:37:45,500 --> 00:37:48,410 bet suprantu, kad tai papildomas darbas. 793 00:37:48,410 --> 00:37:50,460 Aš ne tiesiog įdėti skaičių vietoje. 794 00:37:50,460 --> 00:37:53,026 Aš pirmą kartą buvo deportuoti skaičius, tada įdėti jį į vietą, 795 00:37:53,026 --> 00:37:54,650 todėl aš rūšies padvigubėjo mano darbo krūvį. 796 00:37:54,650 --> 00:37:55,660 Taigi keep that in mind. 797 00:37:55,660 --> 00:37:57,120 >> Bet aš dabar daroma su šio elemento. 798 00:37:57,120 --> 00:37:59,056 Dabar aš noriu patraukti numeris trys. 799 00:37:59,056 --> 00:38:00,430 Jei žinoma, tai priklauso? 800 00:38:00,430 --> 00:38:01,480 Tarp. 801 00:38:01,480 --> 00:38:03,650 Aš negaliu apgauti nebėra ir tiesiog padėkite jį ten, 802 00:38:03,650 --> 00:38:06,770 nes, vėlgi, šis atminties yra fizinių vietose. 803 00:38:06,770 --> 00:38:10,900 Taigi turiu kopijuoti keturi ir įdėti tris čia. 804 00:38:10,900 --> 00:38:11,550 Ne big deal. 805 00:38:11,550 --> 00:38:14,610 Tai tik vienas papildomas žingsnis again-- jaučiasi labai nebrangu. 806 00:38:14,610 --> 00:38:16,445 >> Bet dabar aš pereiti į dvi dalis. 807 00:38:16,445 --> 00:38:17,820 Du, žinoma, priklauso čia. 808 00:38:17,820 --> 00:38:20,990 Dabar jūs pradėsite matyti, kaip darbas gali sukaupti. 809 00:38:20,990 --> 00:38:23,520 Dabar, ką aš turiu daryti? 810 00:38:23,520 --> 00:38:28,570 Taip, turiu perkelti keturi, tada turiu kopijuoti trys, 811 00:38:28,570 --> 00:38:31,200 ir dabar aš galiu įdėti du. 812 00:38:31,200 --> 00:38:34,460 Ir laimikis su šiuo algoritmas, Įdomu, 813 00:38:34,460 --> 00:38:41,050 yra tai, kad tarkime turime daugiau ekstremalių atveju, kai jis tarkim aštuoni, septyni, 814 00:38:41,050 --> 00:38:45,150 šešių, penkių, keturių, trijų, du, vienas. 815 00:38:45,150 --> 00:38:49,450 Tai yra, įvairiomis aplinkybėmis, blogiausiu atveju, 816 00:38:49,450 --> 00:38:51,570 nes darn dalykas yra tiesiog atgal. 817 00:38:51,570 --> 00:38:53,670 >> Tai tikrai ne įtakos Ben algoritmas, 818 00:38:53,670 --> 00:38:55,940 nes Beno atrankos Rūšiuoti jis ketina išlaikyti 819 00:38:55,940 --> 00:38:58,359 vyksta ir atgal per sąrašo. 820 00:38:58,359 --> 00:39:01,150 Ir todėl, kad jis buvo visada ieškome per visą likusį sąrašą, 821 00:39:01,150 --> 00:39:02,858 nesvarbu kur elementai yra. 822 00:39:02,858 --> 00:39:05,630 Tačiau šiuo atveju su mano įterpimo approach-- pabandykime tai. 823 00:39:05,630 --> 00:39:08,616 >> Taip vieną, du, tris, keturis, penki, šeši, septyni, aštuoni. 824 00:39:08,616 --> 00:39:11,630 Vienas du trys keturi, penki, šeši, septyni, aštuoni. 825 00:39:11,630 --> 00:39:14,320 Aš ruošiuosi imtis aštuoni, ir kur man jį? 826 00:39:14,320 --> 00:39:17,260 Na, bent mano sąrašo pradžioje, nes ši nauja sąrašas surūšiuotas. 827 00:39:17,260 --> 00:39:18,760 Ir aš kirsti jį. 828 00:39:18,760 --> 00:39:20,551 >> Kur aš įdėti septyni? 829 00:39:20,551 --> 00:39:21,050 Darn ją. 830 00:39:21,050 --> 00:39:23,174 Reikia eiti ten, todėl Aš turiu padaryti tam tikrą kopijavimą. 831 00:39:23,174 --> 00:39:26,820 832 00:39:26,820 --> 00:39:28,480 Ir dabar septyni eina čia. 833 00:39:28,480 --> 00:39:29,860 Dabar aš pereiti prie šešių. 834 00:39:29,860 --> 00:39:30,980 Dabar tai dar daugiau darbo. 835 00:39:30,980 --> 00:39:32,570 >> Aštuoni turi eiti čia. 836 00:39:32,570 --> 00:39:33,920 Septyni turi eiti čia. 837 00:39:33,920 --> 00:39:35,450 Dabar šešių galite eiti čia. 838 00:39:35,450 --> 00:39:37,950 Dabar aš patraukti penki. 839 00:39:37,950 --> 00:39:40,560 Dabar aštuonios turi eiti čia septyni turi eiti čia 840 00:39:40,560 --> 00:39:43,650 šešių turi eiti čia, ir dabar penki ir pakartokite. 841 00:39:43,650 --> 00:39:46,610 Ir aš gana daug perkelti jį nuolat. 842 00:39:46,610 --> 00:39:52,950 >> Taigi pabaigoje, tai algorithm-- mes vadina jį įterpimo sort-- tikrųjų 843 00:39:52,950 --> 00:39:55,020 turi daug darbo, taip pat. 844 00:39:55,020 --> 00:39:56,970 Tai tiesiog skirtingi Darbo pobūdis, nei Benas-aisiais. 845 00:39:56,970 --> 00:40:00,090 Ben darbas buvo man vyksta pirmyn ir atgal visą laiką, 846 00:40:00,090 --> 00:40:03,510 Pasirinkę kitą mažiausias elementas vėl ir vėl. 847 00:40:03,510 --> 00:40:06,660 Taigi tai buvo tai labai vizualiai rūšies darbą. 848 00:40:06,660 --> 00:40:10,600 >> Tas kitas algoritmas, kuris yra vis dar correct-- jis gaus darbą done-- 849 00:40:10,600 --> 00:40:12,800 tiesiog keičia darbo kiekį. 850 00:40:12,800 --> 00:40:15,420 Atrodo, iš pradžių jūs taupyti, nes jūs tiesiog 851 00:40:15,420 --> 00:40:19,190 susijusius su kiekvieno elemento priekyje be vaikščioti visi 852 00:40:19,190 --> 00:40:20,930 būdas per sąrašą, kaip Ben buvo. 853 00:40:20,930 --> 00:40:25,300 Bet problema yra, ypač jų Crazy atvejų, kai visa tai atgal, 854 00:40:25,300 --> 00:40:27,830 jūs tiesiog rūšies atidėti sunkų darbą 855 00:40:27,830 --> 00:40:30,360 kol jūs turite išspręsti savo klaidų. 856 00:40:30,360 --> 00:40:33,919 >> Ir taip, jei jūs galite įsivaizduoti, tai aštuoni septyni, šeši ir penki 857 00:40:33,919 --> 00:40:36,710 ir vėliau keturių ir trijų ir dviejų perkelti savo kelią per sąrašą, 858 00:40:36,710 --> 00:40:39,060 mes ką tik pasikeitė tipo darbe mes darome. 859 00:40:39,060 --> 00:40:42,340 Užuot ją ne pradžioje mano iteracijos, 860 00:40:42,340 --> 00:40:45,250 Aš tiesiog tai daro ne pabaigoje kiekvieno pakartojimo. 861 00:40:45,250 --> 00:40:50,550 Taigi paaiškėja, kad šio algoritmo, taip pat paprastai vadinamas įterpimo rūšiuoti, 862 00:40:50,550 --> 00:40:52,190 yra taip pat dėl ​​tam n kvadrato skerspjūvį. 863 00:40:52,190 --> 00:40:56,480 Tai tikrai ne geriau, ne geriau ne visiems. 864 00:40:56,480 --> 00:41:00,810 >> Tačiau yra ir trečias kelias Norėčiau paskatinti mus apsvarstyti, 865 00:41:00,810 --> 00:41:02,970 kuris yra tai. 866 00:41:02,970 --> 00:41:07,850 Taigi tarkime savo sąrašą, paprastumo vėl, yra keturi, vienas, trys, 867 00:41:07,850 --> 00:41:11,080 two-- tik keturi skaičiai. 868 00:41:11,080 --> 00:41:13,300 Benas turėjo gerą intuiciją, geras žmogaus intuicija 869 00:41:13,300 --> 00:41:16,340 anksčiau, pagal kurį mes fiksuoto visa sąrašą eventually-- įterpimo rūšiuoti. 870 00:41:16,340 --> 00:41:18,020 Aš coaxed mus kartu. 871 00:41:18,020 --> 00:41:22,530 Bet tegul apsvarstyti Paprasčiausias būdas išspręsti šį sąrašą. 872 00:41:22,530 --> 00:41:24,110 >> Šis sąrašas nėra rūšiuojamos. 873 00:41:24,110 --> 00:41:26,130 Kodėl? 874 00:41:26,130 --> 00:41:31,920 Anglų kalba paaiškinti, kodėl tai nėra iš tikrųjų rūšiuojami. 875 00:41:31,920 --> 00:41:33,400 Ką tai reiškia negali būti rūšiuojami? 876 00:41:33,400 --> 00:41:34,220 >> STUDENTŲ: Tai ne nuoseklusis. 877 00:41:34,220 --> 00:41:34,990 >> DAVID Malan: Ne nuoseklusis. 878 00:41:34,990 --> 00:41:35,822 Duok man pavyzdį. 879 00:41:35,822 --> 00:41:37,180 >> STUDENTŲ: Įdėkite juos tvarka. 880 00:41:37,180 --> 00:41:37,440 >> DAVID Malan: Gerai. 881 00:41:37,440 --> 00:41:38,790 Duok man daugiau konkretų pavyzdį. 882 00:41:38,790 --> 00:41:39,832 >> STUDENTŲ: didėjančia tvarka. 883 00:41:39,832 --> 00:41:41,206 DAVID Malan: Ne Didėjančia tvarka. 884 00:41:41,206 --> 00:41:42,100 Tiksliau. 885 00:41:42,100 --> 00:41:45,190 Aš nežinau, ką reiškia didėjančia tvarka. 886 00:41:45,190 --> 00:41:47,150 Kas negerai? 887 00:41:47,150 --> 00:41:49,930 >> STUDENTŲ: Mažiausia iš numeriai yra ne pirmoje erdvėje. 888 00:41:49,930 --> 00:41:51,140 >> DAVID Malan: Mažiausias skaičius s ne pirmoje erdvėje. 889 00:41:51,140 --> 00:41:52,120 Būti konkretesnis. 890 00:41:52,120 --> 00:41:55,000 Aš pradedu pagauti. 891 00:41:55,000 --> 00:41:59,470 Mes tikimės, tačiau kas iš tam čia? 892 00:41:59,470 --> 00:42:00,707 >> STUDENTŲ: skaičių seka. 893 00:42:00,707 --> 00:42:02,040 DAVID Malan: skaičių seka. 894 00:42:02,040 --> 00:42:04,248 Kiekvieno žmogaus rūšies palaikymo tai here-- labai aukšto lygio. 895 00:42:04,248 --> 00:42:07,450 Tiesiog tiesiog pasakykite man, kas negerai kaip penkerių metų senumo jėgomis. 896 00:42:07,450 --> 00:42:08,310 >> STUDENTŲ: Plius vienas. 897 00:42:08,310 --> 00:42:08,750 >> DAVID Malan: Kas tai? 898 00:42:08,750 --> 00:42:09,610 >> STUDENTŲ: Plius vienas. 899 00:42:09,610 --> 00:42:11,235 >> DAVID Malan: Ką reiškia plius vienas? 900 00:42:11,235 --> 00:42:12,754 901 00:42:12,754 --> 00:42:14,170 Duok man kitoks penkerių metų senumo. 902 00:42:14,170 --> 00:42:16,840 903 00:42:16,840 --> 00:42:18,330 Kas negerai, mama? 904 00:42:18,330 --> 00:42:19,940 Kas negerai, tėtis? 905 00:42:19,940 --> 00:42:22,808 Ką reiškia tai nėra rūšiuojamos? 906 00:42:22,808 --> 00:42:24,370 >> STUDENTŲ: Tai nėra tinkama vieta. 907 00:42:24,370 --> 00:42:25,580 >> DAVID Malan: Kas nėra reikiamoje vietoje? 908 00:42:25,580 --> 00:42:26,174 >> STUDENTŲ: Keturi. 909 00:42:26,174 --> 00:42:27,090 DAVID Malan: Gerai, gerai. 910 00:42:27,090 --> 00:42:29,110 Taip keturių yra ne ten, kur ji turėtų būti. 911 00:42:29,110 --> 00:42:30,590 Visų pirma, tai yra tiesa? 912 00:42:30,590 --> 00:42:33,000 Keturių ir vienas, pirmasis du numeriai matau. 913 00:42:33,000 --> 00:42:34,930 Ar tai teisinga? 914 00:42:34,930 --> 00:42:36,427 Ne, jie iš tam, tiesa? 915 00:42:36,427 --> 00:42:38,135 Tiesą sakant, manau, kad dabar apie kompiuterio, taip pat. 916 00:42:38,135 --> 00:42:40,824 Tai gali atrodyti tik gal vieną, gal du dalykus once-- 917 00:42:40,824 --> 00:42:43,240 ir iš tikrųjų tik vienas dalykas vienu metu, tačiau ji gali bent 918 00:42:43,240 --> 00:42:45,790 pažvelgti vienas dalykas tada Kitas dalykas, šalia jo. 919 00:42:45,790 --> 00:42:47,380 >> Taigi šitie tam? 920 00:42:47,380 --> 00:42:48,032 Žinoma ne. 921 00:42:48,032 --> 00:42:48,740 Taigi jūs žinote, ką? 922 00:42:48,740 --> 00:42:51,020 Kodėl mes kūdikį žingsniai, kaip sutvarkyti šią problemą 923 00:42:51,020 --> 00:42:53,410 užuot šias išgalvotas algoritmai kaip Ben, kur 924 00:42:53,410 --> 00:42:56,440 jis tarsi nustatant jį iki apsisukimo per sąrašą 925 00:42:56,440 --> 00:42:59,670 užuot ką aš padariau, kur Aš tiesiog rūšies sutaisė, kaip mes einame? 926 00:42:59,670 --> 00:43:03,650 Tegul tik pažodžiui sugriauti sąvoka order-- eilės, 927 00:43:03,650 --> 00:43:06,990 vadina jį ką want-- į šias poravimas palyginimų. 928 00:43:06,990 --> 00:43:07,590 >> Keturi ir vienas. 929 00:43:07,590 --> 00:43:09,970 Ar tai teisinga tvarka? 930 00:43:09,970 --> 00:43:11,310 Taigi leiskite nustatyti, kad. 931 00:43:11,310 --> 00:43:14,700 Vienas ir keturių, ir tada mes tiesiog nukopijuokite kad. 932 00:43:14,700 --> 00:43:15,560 Gerai, gerai. 933 00:43:15,560 --> 00:43:17,022 Aš fiksuotas vienas ir keturi. 934 00:43:17,022 --> 00:43:18,320 Trys ir du? 935 00:43:18,320 --> 00:43:18,820 Ne. 936 00:43:18,820 --> 00:43:21,690 Tegul mano žodžiai atitiktų mano pirštus. 937 00:43:21,690 --> 00:43:23,695 Keturių ir trijų? 938 00:43:23,695 --> 00:43:27,930 >> Tai ne tam, kad aš ruošiuosi padaryti vieną, trys, keturios, dvi. 939 00:43:27,930 --> 00:43:28,680 Gerai. 940 00:43:28,680 --> 00:43:32,310 Dabar keturių ir dviejų? 941 00:43:32,310 --> 00:43:33,370 Mums reikia išspręsti šią problemą, taip pat. 942 00:43:33,370 --> 00:43:36,700 Taip vienas, trys, du, keturi. 943 00:43:36,700 --> 00:43:39,820 Taigi tai rūšiuojami? 944 00:43:39,820 --> 00:43:43,170 Ne, bet tai arčiau rūšiuojami? 945 00:43:43,170 --> 00:43:48,930 >> Tai, nes jau sutvarkėme tai klaida, jau sutvarkėme šią klaidą, 946 00:43:48,930 --> 00:43:50,370 ir mes fiksuoto šią klaidą. 947 00:43:50,370 --> 00:43:52,420 Taigi, mes fiksuoto tris klaidas, be abejo. 948 00:43:52,420 --> 00:43:58,100 Iki šiol nėra tikrai atrodo rūšiuojamos, bet jis yra objektyviai arčiau Rūšiuota 949 00:43:58,100 --> 00:44:00,080 nes jau sutvarkėme kai kurie iš šių klaidų. 950 00:44:00,080 --> 00:44:02,047 >> Dabar, ką daryti toliau? 951 00:44:02,047 --> 00:44:03,630 I rūšies pasiekė sąrašo pabaigoje. 952 00:44:03,630 --> 00:44:05,680 Aš, atrodo, fiksuoto visi klaidų, bet ne. 953 00:44:05,680 --> 00:44:08,510 Kadangi šiuo atveju, kai kurie numeriai galėjo burbuliukais arčiau 954 00:44:08,510 --> 00:44:10,410 kitų numerių, vis dar iš eilės. 955 00:44:10,410 --> 00:44:12,951 Taigi leiskite tai padaryti dar kartą, ir aš just do it vietoje šį kartą. 956 00:44:12,951 --> 00:44:14,170 Vienas ir trijų? 957 00:44:14,170 --> 00:44:14,720 Viskas gerai. 958 00:44:14,720 --> 00:44:16,070 Trys ir du? 959 00:44:16,070 --> 00:44:17,560 Žinoma ne, tad pakeisti. 960 00:44:17,560 --> 00:44:19,160 Taip du, trys. 961 00:44:19,160 --> 00:44:21,340 Trijų ir keturių? 962 00:44:21,340 --> 00:44:24,370 O dabar tegul tiesiog būti ypač pedantiškas čia. 963 00:44:24,370 --> 00:44:26,350 Ar rūšiuojami? 964 00:44:26,350 --> 00:44:29,280 Jūs, žmonės žino, kad manimi rūšiuojami. 965 00:44:29,280 --> 00:44:30,400 >> Turėčiau bandykite dar kartą. 966 00:44:30,400 --> 00:44:31,900 Taigi Olivia siūlo bandau dar kartą. 967 00:44:31,900 --> 00:44:32,530 Kodėl? 968 00:44:32,530 --> 00:44:35,810 Dėl to, kad kompiuteris neturi mūsų žmogaus akis prabanga 969 00:44:35,810 --> 00:44:38,080 tiesiog skaitydamas back-- Gerai, aš padariau. 970 00:44:38,080 --> 00:44:41,610 Kaip veikia kompiuteris nustatyti kad tas sąrašas būtų dabar rūšiuojami? 971 00:44:41,610 --> 00:44:44,590 Mechaniškai. 972 00:44:44,590 --> 00:44:47,650 >> Turėčiau eiti per dar kartą, ir tik tuomet, jei aš 973 00:44:47,650 --> 00:44:51,190 neverskite / rasti jokių klaidų galiu tada sudaryti kaip kompiuteriu, yep, 974 00:44:51,190 --> 00:44:51,980 mes gerai eiti. 975 00:44:51,980 --> 00:44:54,850 Taigi vienas ir du, du ir trys, trijų ir keturių. 976 00:44:54,850 --> 00:44:58,030 Dabar galiu galutinai pasakyti, kad tai yra rūšiuojamos, nes aš padariau jokių pakeitimų. 977 00:44:58,030 --> 00:45:01,940 Dabar tai būtų klaida ir tiesiog kvaila, jei aš, kompiuteris, 978 00:45:01,940 --> 00:45:05,640 paklausė tuos pačius klausimus vėl tikisi skirtingus atsakymus. 979 00:45:05,640 --> 00:45:07,110 Neturėtų atsitikti. 980 00:45:07,110 --> 00:45:08,600 >> Ir taip dabar sąrašas surūšiuotas. 981 00:45:08,600 --> 00:45:12,630 Deja, bėgimas laiką šis algoritmas taip pat n kvadratu. 982 00:45:12,630 --> 00:45:13,130 Kodėl? 983 00:45:13,130 --> 00:45:19,520 Kadangi jūs turite N numeriai, o blogiausiu atveju jūs turite perkelti n numerius 984 00:45:19,520 --> 00:45:23,637 n kartų, nes jūs turite nesustoti atgal patikrinti ir galbūt nustatyti 985 00:45:23,637 --> 00:45:24,220 Šie skaičiai. 986 00:45:24,220 --> 00:45:26,280 Ir mes galime padaryti daugiau oficialią analizę, taip pat. 987 00:45:26,280 --> 00:45:29,530 >> Taigi visa tai pasakyti mes atlikome trys skirtingi požiūriai, viena 988 00:45:29,530 --> 00:45:32,210 iš jų iš karto intuityvus nuo šikšnosparnių nuo Ben 989 00:45:32,210 --> 00:45:35,170 mano pasiūlytą įterpimo Rūšiuoti šį vieną 990 00:45:35,170 --> 00:45:38,540 kur rūšies pamiršti Už medžių pradžių miškas. 991 00:45:38,540 --> 00:45:41,760 Bet tada, jei žengti žingsnį atgal, voila, mes fiksuoto rūšiavimo sąvoką. 992 00:45:41,760 --> 00:45:43,824 Taigi, tai yra, Dare pasakyti, Žemesnio lygio gal 993 00:45:43,824 --> 00:45:45,740 nei kai kurios kitos algoritmai, bet tegul 994 00:45:45,740 --> 00:45:48,550 pamatyti, jei mes negalime įsivaizduoti tai būdu tai. 995 00:45:48,550 --> 00:45:51,450 >> Taigi tai yra kai gražus programinė įranga, kad kažkas 996 00:45:51,450 --> 00:45:56,110 rašė naudojant spalvinga barai ŠTAI ketina atlikti šiuos mums. 997 00:45:56,110 --> 00:45:57,736 Kiekviena iš šių barų reiškia skaičių. 998 00:45:57,736 --> 00:46:00,026 Aukštesni juosta, tuo didesnis skaičius, mažesnis baras, 999 00:46:00,026 --> 00:46:00,990 tuo mažesnis skaičius. 1000 00:46:00,990 --> 00:46:05,880 Taigi idealiai norime gražią piramidę kur ji prasideda maži ir gauna didelis, 1001 00:46:05,880 --> 00:46:08,330 ir tai reikštų, kad šie strypai yra rūšiuojami. 1002 00:46:08,330 --> 00:46:11,200 Taigi, aš ruošiuosi eiti į priekį ir pasirinkti, Pavyzdžiui, Ben algoritmas 1003 00:46:11,200 --> 00:46:13,990 first-- pasirinkimas rūšiuoti. 1004 00:46:13,990 --> 00:46:16,220 >> Ir pastebėsite, ką jis daro. 1005 00:46:16,220 --> 00:46:18,670 Kaip jie pasirinkote vizualizuoti šį algoritmą 1006 00:46:18,670 --> 00:46:22,090 yra tai, kad, kaip ir aš buvo vaikščioti per savo sąrašą, 1007 00:46:22,090 --> 00:46:24,710 Ši programa yra ėjimas per savo sąrašą skaičių, 1008 00:46:24,710 --> 00:46:28,160 pabrėžiant rožinė kiekvienos skaičius, kad jis žiūri. 1009 00:46:28,160 --> 00:46:32,360 Ir kas bręsti dabar? 1010 00:46:32,360 --> 00:46:35,154 >> Mažiausias skaičius, kurį I arba Benas rado staiga 1011 00:46:35,154 --> 00:46:36,820 pasireiškia perkeltas į sąrašo pradžioje. 1012 00:46:36,820 --> 00:46:40,037 Ir pranešimas, jie padarė iškeldinti skaičius, kad ten buvo, 1013 00:46:40,037 --> 00:46:41,120 ir tai visiškai gerai. 1014 00:46:41,120 --> 00:46:42,600 Aš negavau į tą detalumo lygiu. 1015 00:46:42,600 --> 00:46:44,308 Bet mums reikia įdėti šis skaičius kažkur, 1016 00:46:44,308 --> 00:46:47,775 todėl mes tiesiog perkėlė ją į atvira vieta, kuri buvo sukurta. 1017 00:46:47,775 --> 00:46:49,900 Taigi, aš ruošiuosi pagreitinti šį aukštyn, nes kitaip 1018 00:46:49,900 --> 00:46:51,871 tampa labai nuobodus greitai. 1019 00:46:51,871 --> 00:46:55,800 1020 00:46:55,800 --> 00:46:58,600 Animacijos speed-- ten einame. 1021 00:46:58,600 --> 00:47:01,850 Taigi dabar pats principas Man buvo taikyti, bet jūs 1022 00:47:01,850 --> 00:47:06,540 gali pradėti jaustis algoritmą, jei bus, ar šiek tiek aiškiau matyti. 1023 00:47:06,540 --> 00:47:13,190 Ir šis algoritmas turi poveikio į Pasirinkę kitą mažiausią elementą, 1024 00:47:13,190 --> 00:47:16,422 todėl jūs ketinate pradėti matyti kelią iki kairėje. 1025 00:47:16,422 --> 00:47:19,130 Ir ant kiekvienos iteracijos, kaip aš Siūloma, ji šiek tiek mažiau darbo. 1026 00:47:19,130 --> 00:47:21,921 Ji neturi eiti visą kelią atgal į kairę sąrašo pabaigoje, 1027 00:47:21,921 --> 00:47:23,900 nes ji jau žino tie yra rūšiuojami. 1028 00:47:23,900 --> 00:47:28,129 Taigi rūšies jaučiasi tai paspartinti, net jeigu kiekvienas žingsnis yra 1029 00:47:28,129 --> 00:47:29,420 atsižvelgiant tą patį laiką. 1030 00:47:29,420 --> 00:47:31,600 Yra tik mažiau žingsnių likę. 1031 00:47:31,600 --> 00:47:35,240 Ir dabar jūs galite rūšies jaučiasi algoritmas išvalyti jo pabaigos, 1032 00:47:35,240 --> 00:47:37,040 ir iš tikrųjų dabar jis rūšiuojami. 1033 00:47:37,040 --> 00:47:41,620 >> Taigi įterpimo rūšiuoti yra viskas padaryta. 1034 00:47:41,620 --> 00:47:43,600 Man reikia naujo atsitiktine masyvo. 1035 00:47:43,600 --> 00:47:45,940 Ir pastebėsite galiu tik išlaikyti randomizuojant ją, 1036 00:47:45,940 --> 00:47:50,630 ir mes gauti suderinimo Tas pats metodas, įterpimo rūšiuoti. 1037 00:47:50,630 --> 00:47:55,050 Leiskite lėtai jį žemyn, kad čia. 1038 00:47:55,050 --> 00:47:56,915 Pradėkime, kad per. 1039 00:47:56,915 --> 00:47:57,414 Sustabdyti. 1040 00:47:57,414 --> 00:48:00,662 1041 00:48:00,662 --> 00:48:02,410 >> Leiskite praleisti keturi. 1042 00:48:02,410 --> 00:48:03,200 Čia mes eiti. 1043 00:48:03,200 --> 00:48:04,190 Atsitiktinė jie masyvo. 1044 00:48:04,190 --> 00:48:05,555 Ir čia mes go-- įterpimo rūšiuoti. 1045 00:48:05,555 --> 00:48:10,260 1046 00:48:10,260 --> 00:48:12,800 Groti. 1047 00:48:12,800 --> 00:48:17,280 Atkreipkite dėmesį, kad tai susiję su kiekviena elementas ji susiduria karto, 1048 00:48:17,280 --> 00:48:20,282 bet jei jis priklauso ir netinkamoje vietoje pranešimas 1049 00:48:20,282 --> 00:48:21,740 visus darbus, kad turi atsitikti. 1050 00:48:21,740 --> 00:48:24,700 Mes turime išlaikyti vis didesnę ir daugiau elementų, kad paliktume vietos 1051 00:48:24,700 --> 00:48:27,340 už vieną norime įdiegti. 1052 00:48:27,340 --> 00:48:30,740 >> Taigi mes sutelkiant dėmesį į liko galas tik, sąrašą. 1053 00:48:30,740 --> 00:48:34,460 Reikėtų atkreipti dėmesį, mes net atrodė at-- mes nebuvo pabrėžta rožinė nieko 1054 00:48:34,460 --> 00:48:35,610 į dešinę. 1055 00:48:35,610 --> 00:48:38,180 Mes tiesiog bendraujant su problemos, kaip mes einame, 1056 00:48:38,180 --> 00:48:40,430 bet mes sukuriant daug dirbti sau ramiai. 1057 00:48:40,430 --> 00:48:44,410 Ir taip, jei mes pagreitinti tai iki dabar eiti iki pabaigos, 1058 00:48:44,410 --> 00:48:46,210 ji turi skirtingą feel it iš tikrųjų. 1059 00:48:46,210 --> 00:48:50,150 Tai tiesiog dėmesio kairėje pabaigos, tačiau daro šiek tiek daugiau darbo, kaip needed-- 1060 00:48:50,150 --> 00:48:53,230 rūšies suglodinimo dalykų daugiau, tvirtinimo dalykų, 1061 00:48:53,230 --> 00:48:58,350 bet sprendžiant, galiausiai, su kiekvienas elementas vienu metu 1062 00:48:58,350 --> 00:49:07,740 kol mes gauti gerai padirbėti, mes Visi žinome, kaip tai vyksta iki pabaigos, 1063 00:49:07,740 --> 00:49:09,700 todėl šiek tiek underwhelming galbūt. 1064 00:49:09,700 --> 00:49:12,830 >> Tačiau į end-- sąrašas spoiler-- ketina būti rūšiuojami. 1065 00:49:12,830 --> 00:49:15,300 Taigi pažvelkime vieną paskutinis. 1066 00:49:15,300 --> 00:49:16,840 Mes negalime tiesiog praleisti dabar. 1067 00:49:16,840 --> 00:49:18,000 Mes beveik ten. 1068 00:49:18,000 --> 00:49:19,980 Du eiti, viena eiti. 1069 00:49:19,980 --> 00:49:22,680 Ir voila. 1070 00:49:22,680 --> 00:49:23,450 Puikus. 1071 00:49:23,450 --> 00:49:27,220 >> Taigi dabar padarykime paskutinį vieną, naujo randomizuojant su burbulas rūšiuoti. 1072 00:49:27,220 --> 00:49:31,690 Ir pastebėsite čia, ypač jei aš lėtai jį žemyn, tai nuolat krenta per. 1073 00:49:31,690 --> 00:49:36,830 Bet pastebėsite jis tiesiog daro poromis comparisons-- Rūšiuoti vietos sprendimus. 1074 00:49:36,830 --> 00:49:39,050 Bet kaip tik mes turime Iš rožinių sąrašo pabaigoje, 1075 00:49:39,050 --> 00:49:40,690 kas teks vėl vyksta? 1076 00:49:40,690 --> 00:49:44,539 1077 00:49:44,539 --> 00:49:46,830 Taip, tai teks pradėti iš naujo, nes tai tik 1078 00:49:46,830 --> 00:49:49,870 fiksuoto poromis klaidų. 1079 00:49:49,870 --> 00:49:53,120 Ir tai galėjo atskleidė dar kitus. 1080 00:49:53,120 --> 00:49:58,950 Ir todėl, jei greitis tai iki, jūs matyti, kad, kiek rodo pats pavadinimas, 1081 00:49:58,950 --> 00:50:01,870 mažesnių elements-- arba, tiksliau, Didesnės elements-- pradeda 1082 00:50:01,870 --> 00:50:03,740 burbulas iki viršaus, jei bus. 1083 00:50:03,740 --> 00:50:07,380 Ir mažesni elementai pradeda burbuliukų žemyn į kairę. 1084 00:50:07,380 --> 00:50:10,780 Ir iš tiesų, tai kokios vizualinis poveikis, taip pat. 1085 00:50:10,780 --> 00:50:17,150 Ir todėl tai bus baigti apdailos labai panašiu būdu, taip pat. 1086 00:50:17,150 --> 00:50:19,160 >> Neturime gyventi dėl šio konkretaus vieną. 1087 00:50:19,160 --> 00:50:21,010 Leiskite atidaryti tai dabar taip pat. 1088 00:50:21,010 --> 00:50:24,040 Yra keletas kitų rūšiavimo algoritmai pasaulyje, keletas iš kurių 1089 00:50:24,040 --> 00:50:25,580 fiksuojamos čia. 1090 00:50:25,580 --> 00:50:29,960 Ir ypač besimokantiems, kurie nėra nebūtinai vaizdo ar matematinis, 1091 00:50:29,960 --> 00:50:31,930 kaip mes padarėme anksčiau, mes galime Taip pat tai padaryti audially 1092 00:50:31,930 --> 00:50:34,210 jei mes susieti garsą tai. 1093 00:50:34,210 --> 00:50:36,990 Ir tiesiog for fun, čia Keletas skirtingų algoritmų, 1094 00:50:36,990 --> 00:50:40,950 ir vienas iš jų ypač esate ketina pranešimas vadinamas "sujungti rūšiuoti." 1095 00:50:40,950 --> 00:50:43,250 >> Ji iš tikrųjų yra iš esmės geriau algoritmas, 1096 00:50:43,250 --> 00:50:45,860 toks, kad sujungti rūšiuoti, vienas iš tie ketinate pamatyti, 1097 00:50:45,860 --> 00:50:49,170 nėra tam n kvadratu. 1098 00:50:49,170 --> 00:50:57,280 Tai ant tvarka n kartų žurnalą n, kuris iš tikrųjų yra mažesnis ir tokiu būdu 1099 00:50:57,280 --> 00:50:58,940 greičiau nei tų kitų trijų. 1100 00:50:58,940 --> 00:51:00,670 Ir yra kita pora kvailas tas, kad mes pamatysime. 1101 00:51:00,670 --> 00:51:01,933 >> Taigi čia mes einame su kai garsas. 1102 00:51:01,933 --> 00:51:06,620 1103 00:51:06,620 --> 00:51:10,490 Tai įterpimo rūšiuoti, todėl vėl tai tiesiog bendraujant su elementais 1104 00:51:10,490 --> 00:51:13,420 kaip jie ateina. 1105 00:51:13,420 --> 00:51:17,180 Tai burbulas rūšiuoti, todėl atsižvelgiant jiems porų vienu metu. 1106 00:51:17,180 --> 00:51:22,030 1107 00:51:22,030 --> 00:51:24,490 Ir vėl didžiausi elementai yra burbuliuoja iki viršaus. 1108 00:51:24,490 --> 00:51:38,098 1109 00:51:38,098 --> 00:51:41,710 >> Toliau pasirinkimas rūšiuoti. 1110 00:51:41,710 --> 00:51:45,420 Tai Ben algoritmas, kur vėl jis pasirinkus keletą kartų 1111 00:51:45,420 --> 00:51:46,843 Kitas mažiausias elementas. 1112 00:51:46,843 --> 00:51:49,801 1113 00:51:49,801 --> 00:51:53,900 Ir vėl, dabar galite tikrai išgirsti, kad tai paspartinti, tačiau tik tiek, kiek 1114 00:51:53,900 --> 00:51:58,230 kaip tai daro vis mažiau ir mažiau dirbti ant kiekvieno pakartojimo. 1115 00:51:58,230 --> 00:52:04,170 Tai greičiau vienas, sujungti rūšiuoti, kuri rūšiavimas grupes skaičiais 1116 00:52:04,170 --> 00:52:05,971 kartu ir tada sujungti juos. 1117 00:52:05,971 --> 00:52:07,720 Taigi look-- į kairę pusę jau yra rūšiuojami. 1118 00:52:07,720 --> 00:52:14,165 >> Dabar ji rūšiavimas tinkamą pusę, o dabar jis ketina juos sujungti į vieną. 1119 00:52:14,165 --> 00:52:19,160 Tai yra kažkas, vadinamas "Gnome rūšiuoti." 1120 00:52:19,160 --> 00:52:23,460 Ir jūs galite rūšies matyti, kad tai vyksta ir atgal, 1121 00:52:23,460 --> 00:52:27,950 nustatymo darbus šiek tiek čia ir ten, prieš tai pereina prie naujos darbo. 1122 00:52:27,950 --> 00:52:32,900 1123 00:52:32,900 --> 00:52:33,692 Štai ir viskas. 1124 00:52:33,692 --> 00:52:36,400 Yra dar vienas rūšiuoti, kuris yra tikrai tik akademiniais tikslais 1125 00:52:36,400 --> 00:52:40,980 vadinamas "kvaila rūšiuoti", kuris trunka Jūsų duomenys, rūšiuoja ją atsitiktinai, 1126 00:52:40,980 --> 00:52:43,350 ir tada patikrina, ar jis yra rūšiuojami. 1127 00:52:43,350 --> 00:52:47,880 O jei ne, tai vėl rūšiuoja ją atsitiktinai, patikrina, ar tai rūšiuojamos, 1128 00:52:47,880 --> 00:52:49,440 o jei ne kartoja. 1129 00:52:49,440 --> 00:52:52,660 Ir teoriškai, probabilistically tai bus užbaigti, 1130 00:52:52,660 --> 00:52:54,140 bet po gana šiek tiek laiko. 1131 00:52:54,140 --> 00:52:56,930 Tai nėra pats efektyvus algoritmų. 1132 00:52:56,930 --> 00:53:02,550 Todėl bet klausimus dėl šių konkretūs algoritmai ar kas 1133 00:53:02,550 --> 00:53:04,720 buvo susiję, taip pat? 1134 00:53:04,720 --> 00:53:09,430 >> Na, tegul dabar erzinti išskyrus tai, ką visi Šios linijos yra tai, kad aš piešimo 1135 00:53:09,430 --> 00:53:15,090 ir ką aš darant prielaidą kompiuterį gali padaryti po gaubtu. 1136 00:53:15,090 --> 00:53:18,650 Kłóciłbym, kad visi šie skaičiai Aš nuolat drawing-- jie turi gauti 1137 00:53:18,650 --> 00:53:21,330 kažkur atmintyje. 1138 00:53:21,330 --> 00:53:24,130 Mes atsikratyti šio vaikino dabar taip pat. 1139 00:53:24,130 --> 00:53:30,110 >> Taigi atminties gabalas A computer-- taip RAM DIMM yra 1140 00:53:30,110 --> 00:53:35,480 ką mes ieškoma vakar, dvigubos Inline Memory module-- atrodo taip. 1141 00:53:35,480 --> 00:53:39,370 Ir kiekvienas iš šių mažai juoda lustai yra keletas baitų skaičius, paprastai. 1142 00:53:39,370 --> 00:53:44,380 Ir tada aukso kaiščiai yra kaip ir laidai, kad prijungti jį prie kompiuterio, 1143 00:53:44,380 --> 00:53:47,521 ir žalia silicio lenta yra tik kas išlaiko viską visi kartu. 1144 00:53:47,521 --> 00:53:48,770 Taigi, ką tai iš tikrųjų reiškia? 1145 00:53:48,770 --> 00:53:53,180 Jei I rūšies atkreipti tą patį vaizdą, sakykime paprastumo 1146 00:53:53,180 --> 00:53:55,280 kad tai DIMM, Dual Inline atminties modulis, 1147 00:53:55,280 --> 00:54:00,530 yra vienas gigabaitas RAM, vienas gigabaitas atmintis, kuri yra kiek baitų, kad bendras? 1148 00:54:00,530 --> 00:54:02,100 Vienas gigabaitas yra kiek baitų? 1149 00:54:02,100 --> 00:54:04,860 1150 00:54:04,860 --> 00:54:06,030 Daugiau negu, kad. 1151 00:54:06,030 --> 00:54:09,960 1124 yra kilogramas, 1000. 1152 00:54:09,960 --> 00:54:11,730 Mega yra mln. 1153 00:54:11,730 --> 00:54:14,570 Giga yra mlrd. 1154 00:54:14,570 --> 00:54:15,070 >> Aš gulėti? 1155 00:54:15,070 --> 00:54:16,670 Ar mes net perskaityti etiketę? 1156 00:54:16,670 --> 00:54:19,920 Tai iš tikrųjų 128 GB, todėl daugiau. 1157 00:54:19,920 --> 00:54:22,130 Bet mes apsimesti, tai yra tik vienas gigabaitas. 1158 00:54:22,130 --> 00:54:25,640 Taigi tai reiškia, kad ten milijardų baitų atminties man 1159 00:54:25,640 --> 00:54:29,770 ar 8 mlrd bitai, bet mes ketiname Įsivažiuoja požiūriu baitų dabar 1160 00:54:29,770 --> 00:54:30,750 judeti i prieki. 1161 00:54:30,750 --> 00:54:36,330 >> Taigi, ką tai reiškia, kad tai yra vienas baitas, tai yra dar vienas baitas, 1162 00:54:36,330 --> 00:54:38,680 tai yra dar vienas baitas, ir jei mes tikrai norėjo 1163 00:54:38,680 --> 00:54:43,280 būti konkrečiai mes turėtume atkreipti milijardą mažai kvadratų. 1164 00:54:43,280 --> 00:54:44,320 Bet ką tai reiškia? 1165 00:54:44,320 --> 00:54:46,420 Na, leiskite man tiesiog padidinti į šiame paveikslėlyje. 1166 00:54:46,420 --> 00:54:50,900 Jei aš turiu kažką, kad atrodo kaip tai dabar, tai keturi baitai. 1167 00:54:50,900 --> 00:54:53,710 >> Ir taip galėčiau įdėti keturis numerius čia. 1168 00:54:53,710 --> 00:54:54,990 Vienas du trys keturi. 1169 00:54:54,990 --> 00:55:00,170 Arba galėčiau įdėti keturis raidės ar simboliai. 1170 00:55:00,170 --> 00:55:02,620 "Ei!" gali eiti tiesiai ten, nes kiekvienas iš raidžių, 1171 00:55:02,620 --> 00:55:04,370 aptarėme anksčiau, gali būti atstovaujama 1172 00:55:04,370 --> 00:55:06,650 su aštuoniais bitais arba ASCII ar baitas. 1173 00:55:06,650 --> 00:55:09,370 Taigi, kitaip tariant, jūs galite įdėti 8 mlrd dalykų viduje 1174 00:55:09,370 --> 00:55:11,137 Šio lazdą atminties. 1175 00:55:11,137 --> 00:55:14,345 Dabar ką tai reiškia įdėti daiktus atgal atgal į atsarginę atminties patinka tai? 1176 00:55:14,345 --> 00:55:17,330 Tai ką programuotojas vadinčiau "Matricą". 1177 00:55:17,330 --> 00:55:21,250 Į kompiuterinę programą, jums nereikia galvoti apie pagrindinės įrangos, per se. 1178 00:55:21,250 --> 00:55:24,427 Jūs tik pagalvokite apie save kaip turintys prieigą prie milijardas baitų viso 1179 00:55:24,427 --> 00:55:26,010 ir jūs galite ką nors norite su juo. 1180 00:55:26,010 --> 00:55:27,880 Bet dėl ​​patogumo tai paprastai naudinga 1181 00:55:27,880 --> 00:55:31,202 išlaikyti savo atminties teisę vienas šalia kito, kaip šis. 1182 00:55:31,202 --> 00:55:33,660 Taigi, jei aš priartinkite this-- nes mes tikrai neketiname 1183 00:55:33,660 --> 00:55:39,310 atkreipti milijardą mažai squares-- tarkime, kad ši diskusijų lenta atstovauja 1184 00:55:39,310 --> 00:55:40,610 kad atminties Stick dabar. 1185 00:55:40,610 --> 00:55:43,800 Ir aš tiesiog atkreipti kiek mano žymeklis baigiasi duoti man čia. 1186 00:55:43,800 --> 00:55:46,420 1187 00:55:46,420 --> 00:55:52,300 Taigi dabar mes turime lazdą atminties ant lentos 1188 00:55:52,300 --> 00:55:56,400 kad gavo vieną, du, trys, keturi, penki, šešių, vienas, du, tris, keturis, penkis, šešis, 1189 00:55:56,400 --> 00:56:01,130 seven-- taigi 42 baitų atminties ekrane iš viso. 1190 00:56:01,130 --> 00:56:01,630 Ačiū. 1191 00:56:01,630 --> 00:56:02,838 Taip, tai padarė mano aritmetika teisinga. 1192 00:56:02,838 --> 00:56:05,120 Taigi 42 baitų atminties čia. 1193 00:56:05,120 --> 00:56:06,660 Taigi, ką tai iš tikrųjų reiškia? 1194 00:56:06,660 --> 00:56:09,830 Na, programuotojas iš tikrųjų paprastai 1195 00:56:09,830 --> 00:56:12,450 manote apie šį atmintyje kaip adresavimo. 1196 00:56:12,450 --> 00:56:16,630 Kitaip tariant, kiekvienas vienas iš šių vietos atmintyje, aparatūros, 1197 00:56:16,630 --> 00:56:18,030 turi unikalų adresą. 1198 00:56:18,030 --> 00:56:22,020 >> Tai nėra taip sudėtinga, kaip One BRATTLE Aikštė, Kembridžas, masę., 02138. 1199 00:56:22,020 --> 00:56:23,830 Vietoj to, tai tik skaičius. 1200 00:56:23,830 --> 00:56:27,930 Tai yra baitas skaičius lygus nuliui, tai yra vienas, tai yra du, tai yra trys, 1201 00:56:27,930 --> 00:56:30,327 ir tai yra 41. 1202 00:56:30,327 --> 00:56:30,910 Palauk minutę. 1203 00:56:30,910 --> 00:56:32,510 Maniau sakė 42 metu senumo. 1204 00:56:32,510 --> 00:56:35,050 1205 00:56:35,050 --> 00:56:37,772 Aš pradėjau skaičiuoti nuo nulio, kad iš tikrųjų teisingas. 1206 00:56:37,772 --> 00:56:40,980 Dabar mes neturime, kad iš tikrųjų ją nupieškite kaip tinklelis, ir, jei pavaizduoti ją kaip tinklelį 1207 00:56:40,980 --> 00:56:43,520 Manau, viskas iš tikrųjų gauti šiek tiek klaidinantis. 1208 00:56:43,520 --> 00:56:46,650 Kas programuotojas būtų, jo ar jos pačios nuomone, 1209 00:56:46,650 --> 00:56:50,310 apskritai manau, tai atmintis, yra kaip juosta, 1210 00:56:50,310 --> 00:56:53,340 tarsi maskavimo juosta gabalas kad tik eina ir amžinai 1211 00:56:53,340 --> 00:56:54,980 arba tol, kol jums paleisti iš atminties. 1212 00:56:54,980 --> 00:56:59,200 Taigi dažniau būdas atkreipti ir tiesiog galvoti apie atminties 1213 00:56:59,200 --> 00:57:03,710 būtų, kad tai yra baitas nulis, vienas, dviejų, trijų, tada dot, dot, dot. 1214 00:57:03,710 --> 00:57:07,650 Ir jūs turite 42 tokie baitų iš viso, net nors fiziškai jis iš tiesų gali 1215 00:57:07,650 --> 00:57:09,480 būti kažkas daugiau, kaip šis. 1216 00:57:09,480 --> 00:57:12,850 >> Taigi, jei jūs dabar galvoti apie savo atminties kaip tai, taip pat, kaip juosta, 1217 00:57:12,850 --> 00:57:17,640 Tai yra tai, ką programuotojas vėl būtų skambinti atminties masyvo. 1218 00:57:17,640 --> 00:57:20,660 O jei norite, kad iš tikrųjų laikyti kažkas kompiuterio atmintyje, 1219 00:57:20,660 --> 00:57:23,290 Jūs paprastai padaryti parduotuvių dalykus atsargines-to-back atgal-to-back. 1220 00:57:23,290 --> 00:57:25,010 Taigi, mes jau kalbame apie numerius. 1221 00:57:25,010 --> 00:57:30,880 Ir kai aš norėjau išspręsti problemas kaip keturių, vienas, trys, du, 1222 00:57:30,880 --> 00:57:33,820 nors man buvo tiesiog piešimo tik numeriai keturių, vienas, trys, 1223 00:57:33,820 --> 00:57:39,490 du ant lentos, kompiuteris būtų tikrai turi šią įrangą atmintyje. 1224 00:57:39,490 --> 00:57:43,347 >> Ir kas būtų šalia du kompiuterio atmintyje? 1225 00:57:43,347 --> 00:57:44,680 Na, nėra atsakymas į tai. 1226 00:57:44,680 --> 00:57:45,770 Mes tikrai nežino. 1227 00:57:45,770 --> 00:57:48,200 Ir iki tol, kol kompiuteryje nėra reikia, 1228 00:57:48,200 --> 00:57:51,440 ji neturi rūpintis, kas yra šalia su numeriais ji rūpi. 1229 00:57:51,440 --> 00:57:55,130 Ir kai aš anksčiau sakė, kad kompiuterio gali ieškoti tik vienu adresu vienu metu, 1230 00:57:55,130 --> 00:57:56,170 tai kokios, kodėl. 1231 00:57:56,170 --> 00:57:59,490 >> Ne kitaip įrašo grotuvas ir nuskaitymo galvutė 1232 00:57:59,490 --> 00:58:03,030 tik kad galėtų pažvelgti į tam tikras griovelis fizine senosios mokyklos įrašo 1233 00:58:03,030 --> 00:58:06,500 vienu metu, panašiai gali kompiuteris dėka 1234 00:58:06,500 --> 00:58:09,810 jo procesoriaus ir jos "Intel" instrukcijų rinkinys, 1235 00:58:09,810 --> 00:58:12,480 tarp kurių instrukcijų skaityti iš atminties 1236 00:58:12,480 --> 00:58:15,590 arba įrašyti į memory-- Kompiuteris gali atrodyti tik 1237 00:58:15,590 --> 00:58:19,210 ne vienos kurios nors vietos LAIKĄ_ kartais jų derinys, 1238 00:58:19,210 --> 00:58:21,770 bet tikrai tik vienoje vietoje vienu metu. 1239 00:58:21,770 --> 00:58:24,770 Taigi, kai mes darome šie įvairūs algoritmai, 1240 00:58:24,770 --> 00:58:28,110 Aš ne tik raštu ta vacuum-- keturių, vienas, trys, du. 1241 00:58:28,110 --> 00:58:30,849 Šie skaičiai iš tikrųjų priklauso kažkur fizinės atminties. 1242 00:58:30,849 --> 00:58:32,890 Taigi yra maža maža tranzistoriai ar tam tikros rūšies 1243 00:58:32,890 --> 00:58:35,840 Elektronikos po gaubtas saugoti šias vertybes. 1244 00:58:35,840 --> 00:58:40,460 >> Ir iš viso, kiek bitų yra dalyvauja dabar, tiesiog, kad būtų aišku? 1245 00:58:40,460 --> 00:58:45,580 Taigi tai yra keturių baitų, arba dabar tai 32 bitai iš viso. 1246 00:58:45,580 --> 00:58:49,280 Taigi ten iš tikrųjų yra 32 nuliai ir tie komponavimo šiuos keturis dalykus. 1247 00:58:49,280 --> 00:58:52,070 Yra net daugiau nei čia, bet vėl mes do not care apie tai. 1248 00:58:52,070 --> 00:58:55,120 >> Taigi dabar leiskite paklausti kitą Klausimas naudojant atminties, 1249 00:58:55,120 --> 00:58:57,519 nes kad pabaigoje dienos yra dispersija. 1250 00:58:57,519 --> 00:59:00,310 Nesvarbu, ką mes galime padaryti su kompiuteris, tuo dienos pabaigoje 1251 00:59:00,310 --> 00:59:02,560 įranga yra vis dar pats po gaubtu. 1252 00:59:02,560 --> 00:59:04,670 Kaip man laikyti žodį čia? 1253 00:59:04,670 --> 00:59:09,710 Na, žodis į kompiuterį kaip "Ei!" būtų saugomi kaip tai. 1254 00:59:09,710 --> 00:59:12,300 Ir jei jūs norėjo ilgesnės Žodis, galite tiesiog 1255 00:59:12,300 --> 00:59:19,120 perrašyti, kad ir ką nors pasakyti kaip "labas" ir laikyti, kad čia. 1256 00:59:19,120 --> 00:59:23,930 >> Ir todėl čia taip pat tai contiguousness yra tikrai privalumas, 1257 00:59:23,930 --> 00:59:26,530 nes kompiuteris gali tiesiog skaityti iš dešinės į kairę. 1258 00:59:26,530 --> 00:59:28,680 Bet štai klausimas. 1259 00:59:28,680 --> 00:59:33,480 Šio žodžio kontekste, H-E-L-L-O, šauktukas, 1260 00:59:33,480 --> 00:59:38,740 kaip gali kompiuteris žinoti, kur Žodis prasideda ir kur žodis baigiasi? 1261 00:59:38,740 --> 00:59:41,690 1262 00:59:41,690 --> 00:59:43,800 Numerių kontekste, kaip veikia kompiuteris 1263 00:59:43,800 --> 00:59:48,396 žinoti, kiek laiko sekos numeriai yra arba kai jis pradeda? 1264 00:59:48,396 --> 00:59:50,270 Na, paaiškėja out-- ir mes ne eiti per daug 1265 00:59:50,270 --> 00:59:54,970 į šią detail-- lygio Kompiuteriai perkelti stuff aplink atminties 1266 00:59:54,970 --> 00:59:57,800 pažodžiui būdu šių adresus. 1267 00:59:57,800 --> 01:00:02,080 Taigi kompiuteryje, jei esate rašyti kodą saugoti daiktus 1268 01:00:02,080 --> 01:00:05,800 kaip sakant, kas esate tikrai daro rašo 1269 01:00:05,800 --> 01:00:11,320 išraiškas, kad prisiminti, kur į kompiuterio atminties šie žodžiai. 1270 01:00:11,320 --> 01:00:14,370 Taigi leiskite man padaryti labai, labai paprastas pavyzdys. 1271 01:00:14,370 --> 01:00:18,260 >> Aš ruošiuosi eiti į priekį ir atverti paprastą tekstinį programą, 1272 01:00:18,260 --> 01:00:20,330 ir aš ruošiuosi kurti failas vadinamas hello.c. 1273 01:00:20,330 --> 01:00:22,849 Dauguma šios informacijos mes neisiu į labai išsamiai, 1274 01:00:22,849 --> 01:00:25,140 bet aš ruošiuosi rašyti Programa toje pačioje kalba 1275 01:00:25,140 --> 01:00:31,140 C. Tai labiau bauginanti, Norėčiau teigti, nei nulio, 1276 01:00:31,140 --> 01:00:32,490 bet tai labai panašus į dvasią. 1277 01:00:32,490 --> 01:00:34,364 Iš tiesų, tai garbanotas braces-- galite rūšies 1278 01:00:34,364 --> 01:00:37,820 galvoti apie tai, ką aš tiesiog padarė kaip šis. 1279 01:00:37,820 --> 01:00:39,240 >> Leiskite tai padaryti, iš tikrųjų. 1280 01:00:39,240 --> 01:00:45,100 Kai žalia vėliava paspaudėte, atlikite šiuos veiksmus. 1281 01:00:45,100 --> 01:00:50,210 Noriu atsispausdinti "labas". 1282 01:00:50,210 --> 01:00:51,500 Taigi tai dabar Pseudocode. 1283 01:00:51,500 --> 01:00:53,000 Aš rūšies nyksta linijas. 1284 01:00:53,000 --> 01:00:56,750 C, ši kalba aš kalbu apie, ši eilutė Spausdinti Sveiki 1285 01:00:56,750 --> 01:01:01,940 iš tikrųjų tampa "printf" su kai skliausteliuose ir pusiau dvitaškis. 1286 01:01:01,940 --> 01:01:03,480 >> Bet tai lygiai toks pats idėja. 1287 01:01:03,480 --> 01:01:06,730 Ir tai yra labai patogus "Kai žalia vėliava paspaudėte" tampa 1288 01:01:06,730 --> 01:01:10,182 Daug daugiau Arcane "int main negaliojančiu." 1289 01:01:10,182 --> 01:01:12,890 Ir tai tikrai neturi žemėlapių, todėl aš tik ketina ignoruoti tai. 1290 01:01:12,890 --> 01:01:17,210 Bet garbanotas petnešos yra kaip ir išlenkti įspūdį tai patinka. 1291 01:01:17,210 --> 01:01:18,700 >> Taigi galite rūšies atspėti. 1292 01:01:18,700 --> 01:01:22,357 Net jei jūs niekada užprogramuotas anksčiau, ką ši programa tikriausiai daryti? 1293 01:01:22,357 --> 01:01:25,560 1294 01:01:25,560 --> 01:01:28,000 Tikriausiai spausdina Sveiki su šauktuku. 1295 01:01:28,000 --> 01:01:29,150 >> Taigi pabandykime tai. 1296 01:01:29,150 --> 01:01:30,800 Aš ruošiuosi ją išsaugoti. 1297 01:01:30,800 --> 01:01:34,000 Ir tai yra, vėl, labai senosios mokyklos aplinka. 1298 01:01:34,000 --> 01:01:35,420 Aš negaliu spustelėkite, aš negaliu vilkite. 1299 01:01:35,420 --> 01:01:36,910 Turiu rašyti komandas. 1300 01:01:36,910 --> 01:01:41,320 Taigi noriu paleisti savo programą, todėl Galiu tai padaryti, kaip hello.c. 1301 01:01:41,320 --> 01:01:42,292 Štai failas išbėgau. 1302 01:01:42,292 --> 01:01:43,500 Bet palaukit, aš trūksta žingsnio. 1303 01:01:43,500 --> 01:01:46,470 Ką mes sakome, yra būtina pakopą, kaip C kalba? 1304 01:01:46,470 --> 01:01:49,470 Aš ką tik rašytinis šaltinis kodą, bet ką man reikia? 1305 01:01:49,470 --> 01:01:50,670 Taip, man reikia kompiliatorių. 1306 01:01:50,670 --> 01:01:57,670 Taigi mano Mac čia, aš turiu programa, vadinama GCC, GNU C kompiliatoriaus, 1307 01:01:57,670 --> 01:02:03,990 kuri leidžia man daryti this-- posūkis mano kodo į, mes jį vadiname, 1308 01:02:03,990 --> 01:02:04,930 mašina kodą. 1309 01:02:04,930 --> 01:02:10,180 >> Ir matau, kad vėl, taip, tai 1310 01:02:10,180 --> 01:02:14,090 yra nulių ir aš tiesiog sukurtas iš mano kodo, 1311 01:02:14,090 --> 01:02:15,730 visi nulių ir. 1312 01:02:15,730 --> 01:02:17,770 O jei aš noriu paleisti Mano program-- tai atsitinka 1313 01:02:17,770 --> 01:02:23,010 būti vadinamas a.out už istorinis reasons-- "labas". 1314 01:02:23,010 --> 01:02:24,070 Galiu paleisti jį dar kartą. 1315 01:02:24,070 --> 01:02:25,690 Labas labas labas. 1316 01:02:25,690 --> 01:02:27,430 Ir atrodo, kad reikia dirbti. 1317 01:02:27,430 --> 01:02:31,000 >> Bet tai reiškia, kad kažkur mano Kompiuterio atmintis yra žodžiai 1318 01:02:31,000 --> 01:02:35,279 H-E-L-L-O, šauktukas. 1319 01:02:35,279 --> 01:02:38,070 Ir it turns out, kaip panaikinti, ką kompiuteris būtų paprastai 1320 01:02:38,070 --> 01:02:40,550 padaryti taip, kad jis žino, kur ko pradėti ir end-- tai 1321 01:02:40,550 --> 01:02:42,460 ketina pateikti specialų simbolį čia. 1322 01:02:42,460 --> 01:02:46,064 Ir ši Konvencija įdėti skaičius lygiu nuliui žodžio pabaigos 1323 01:02:46,064 --> 01:02:48,230 taip, kad žinote, kur jis faktiškai baigiasi, todėl, kad jūs 1324 01:02:48,230 --> 01:02:52,750 nelaikome spausdinti vis daugiau ir daugiau simbolių, nei jūs iš tikrųjų ketina. 1325 01:02:52,750 --> 01:02:55,400 >> Bet Takeaway čia net nors tai yra gana neaiškus, 1326 01:02:55,400 --> 01:02:58,140 yra tai, kad galiausiai gana paprasta. 1327 01:02:58,140 --> 01:03:04,550 Jūs buvo suteikta tarsi juosta, tuščias erdvė, kurioje galite rašyti laiškus. 1328 01:03:04,550 --> 01:03:07,150 Jūs tiesiog turite turėti specialus simbolis, kaip ir savavališkai 1329 01:03:07,150 --> 01:03:10,316 skaičius nulis, įdėti pabaigoje tavo žodžiai, kad kompiuteris žino 1330 01:03:10,316 --> 01:03:13,410 oi, man reikia sustabdyti spausdinimą Matau šauktukas. 1331 01:03:13,410 --> 01:03:16,090 Nes kitas dalykas yra yra ASCII reikšmė nulio, 1332 01:03:16,090 --> 01:03:19,125 arba niekinis pobūdis taip kas nors jį vadiname. 1333 01:03:19,125 --> 01:03:21,500 Bet ten tipo problema čia, ir tegul grįžti 1334 01:03:21,500 --> 01:03:23,320 numeriais akimirką. 1335 01:03:23,320 --> 01:03:28,720 Tarkime, kad aš, tiesą sakant, turėti skaičių masyvą, 1336 01:03:28,720 --> 01:03:30,730 ir manau, kad Programa aš rašau yra 1337 01:03:30,730 --> 01:03:34,680 kaip kokybės knygos mokytojui ir mokytojai klasėje. 1338 01:03:34,680 --> 01:03:38,720 Ir ši programa leidžia jį arba ją įveskite savo mokinių balai 1339 01:03:38,720 --> 01:03:39,960 nuo viktorinos. 1340 01:03:39,960 --> 01:03:43,750 Ir manau, kad studentas gauna 100 savo pirmąjį viktorina, gal 1341 01:03:43,750 --> 01:03:49,920 kaip per 80 kito, tada 75, tada 90 ketvirtą testą. 1342 01:03:49,920 --> 01:03:54,150 >> Taigi šiuo metu į istoriją, masyvas yra dydžio keturi. 1343 01:03:54,150 --> 01:03:58,470 Yra visiškai daugiau atminties į kompiuteris, bet masyvas, taip sakant, 1344 01:03:58,470 --> 01:04:00,350 yra dydžio keturi. 1345 01:04:00,350 --> 01:04:06,060 Tarkime dabar, kad mokytojas nori priskirti penktą Viktorina klasėje. 1346 01:04:06,060 --> 01:04:08,510 Na, vienas iš dalykų, jis ar ji ketina daryti 1347 01:04:08,510 --> 01:04:10,650 dabar laikyti papildomą vertę čia. 1348 01:04:10,650 --> 01:04:15,490 Bet jei masyvo mokytojas turi sukurta šioje programoje yra dydžio, 1349 01:04:15,490 --> 01:04:22,440 viena iš problemos, susijusios su masyvo yra tai, kad galite ne tik nuolat pridedant į atmintį. 1350 01:04:22,440 --> 01:04:26,470 Nes kas, jei kitas dalis Programa turi žodį "ei" tiesiai ten? 1351 01:04:26,470 --> 01:04:29,650 >> Kitaip tariant, atmintis gali būti naudojama nieko programą. 1352 01:04:29,650 --> 01:04:33,250 Ir jei iš anksto Aš įvedėte, ei, Noriu įvesti keturių viktorinų balai, 1353 01:04:33,250 --> 01:04:34,784 jie gali eiti čia ir čia. 1354 01:04:34,784 --> 01:04:37,700 Ir jei staiga persigalvoti vėliau ir pasakyti, kad aš noriu penktą viktorina 1355 01:04:37,700 --> 01:04:40,872 rezultatas, jūs galite ne tik įdėti jį ten, kur norite, 1356 01:04:40,872 --> 01:04:42,580 nes kas, jei tai atminties yra naudojamas 1357 01:04:42,580 --> 01:04:45,990 kažko else-- nors kita programa ar kokios nors kitos programos funkcija 1358 01:04:45,990 --> 01:04:46,910 kad jūs dirbate? 1359 01:04:46,910 --> 01:04:50,650 Taigi, jūs turite galvoti iš anksto kaip norite išsaugoti savo duomenis, 1360 01:04:50,650 --> 01:04:54,480 nes dabar jūs dažytos Būk į skaitmeninį kampe. 1361 01:04:54,480 --> 01:04:57,280 >> Taigi mokytojas gali vietoj pasakyti rašant programą 1362 01:04:57,280 --> 01:04:59,360 saugoti jo ar jos rūšių, žinote, ką? 1363 01:04:59,360 --> 01:05:04,180 Aš einu prašyti, rašant mano programa, 1364 01:05:04,180 --> 01:05:12,070 kad noriu nulis, vienas, du, trys, keturi, penki, šeši, aštuoni rūšių iš viso. 1365 01:05:12,070 --> 01:05:15,320 Taip vieną, du, tris, keturis, penki, šeši, septyni, aštuoni. 1366 01:05:15,320 --> 01:05:18,612 Mokytojas gali tiesiog per paskirstyti atminties rašant jo ar jos programą 1367 01:05:18,612 --> 01:05:19,570 ir pasakyti, žinote, ką? 1368 01:05:19,570 --> 01:05:22,236 Aš niekada priskirti daugiau kaip aštuonis viktorinos per semestrą. 1369 01:05:22,236 --> 01:05:23,130 Tai tiesiog iš proto. 1370 01:05:23,130 --> 01:05:24,470 Aš niekada skirti tai. 1371 01:05:24,470 --> 01:05:28,270 Taigi, kad tokiu būdu jis ar ji turi lankstumas parduotuvė studentų balai, 1372 01:05:28,270 --> 01:05:33,010 kaip 75, 90, o gal vieną papildomą kur studentas gavo papildomą kreditą, 105. 1373 01:05:33,010 --> 01:05:36,130 >> Bet jei niekada mokytojas naudoja šias tris erdves, 1374 01:05:36,130 --> 01:05:38,860 ten intuityvus Takeaway čia. 1375 01:05:38,860 --> 01:05:41,410 Jis arba ji yra tik išsekimo erdvę. 1376 01:05:41,410 --> 01:05:44,790 Taigi, kitaip tariant, ten tai bendras kompromisas programavimo 1377 01:05:44,790 --> 01:05:48,241 kur jūs galite skirstyti tiksliai taip, kaip daug atminties, kaip jūs norite, 1378 01:05:48,241 --> 01:05:51,490 kurio dugnu yra, kad jūs esate super efficient-- nesate yra išlaidavimas 1379 01:05:51,490 --> 01:05:54,640 ne all-- bet kuri neigiama yra kas, jei jūs pakeisite savo nuomonę, kai 1380 01:05:54,640 --> 01:05:58,780 naudojant programą, kurią norite išsaugoti daugiau duomenų nei jūs iš pradžių numatyta. 1381 01:05:58,780 --> 01:06:03,030 >> Tokiu būdu galbūt tirpalas yra, tada, rašyti savo programas tokiu būdu 1382 01:06:03,030 --> 01:06:05,605 kad jie naudoja daugiau atminties nei jie iš tikrųjų reikia. 1383 01:06:05,605 --> 01:06:07,730 Tokiu būdu jūs nesiruošia paleisti į šią problemą, 1384 01:06:07,730 --> 01:06:09,730 Bet jūs yra išlaidavimas. 1385 01:06:09,730 --> 01:06:12,960 Ir kuo daugiau atminties jūsų programa naudoja, kaip aptarėme vakar, mažiau 1386 01:06:12,960 --> 01:06:15,410 atmintis, kuri prieinama kitoms programoms, 1387 01:06:15,410 --> 01:06:18,790 tuo greičiau kompiuteris gali sulėtinti žemyn, nes virtualios atminties. 1388 01:06:18,790 --> 01:06:22,670 Ir taip idealus sprendimas gali būti, ką? 1389 01:06:22,670 --> 01:06:24,610 >> Pagal-paskirstant atrodo blogai. 1390 01:06:24,610 --> 01:06:27,030 Per paskirstantis atrodo blogai. 1391 01:06:27,030 --> 01:06:31,120 Taigi, kas gali būti geresnis sprendimas? 1392 01:06:31,120 --> 01:06:32,390 Perskirstyti. 1393 01:06:32,390 --> 01:06:33,590 Būkite labiau dinamiškas. 1394 01:06:33,590 --> 01:06:37,520 Neverskite savęs pasirinkti priori pradžioje, ko norite. 1395 01:06:37,520 --> 01:06:41,370 Ir tikrai ne per paskirstyti, kad nebūtumėte išlaidavimas. 1396 01:06:41,370 --> 01:06:45,770 >> Ir taip pasiekti šį tikslą, mes reikia mesti šį duomenų struktūrą, 1397 01:06:45,770 --> 01:06:48,100 taip sakant, toli. 1398 01:06:48,100 --> 01:06:51,080 Ir taip kas programuotojas paprastai naudoti 1399 01:06:51,080 --> 01:06:55,940 yra kažkas vadinamas ne masyvas, bet susijęs sąrašas. 1400 01:06:55,940 --> 01:07:00,860 Kitaip tariant, jis ar ji bus pradėti galvoti apie savo atmintį 1401 01:07:00,860 --> 01:07:05,280 tiek skiriasi rūšies formos, kad jie galima padaryti tokiu būdu. 1402 01:07:05,280 --> 01:07:08,520 Jei aš noriu laikyti vieną numerį program-- todėl rugsėjo 1403 01:07:08,520 --> 01:07:12,600 Aš daviau savo mokiniams viktoriną; Noriu saugoti mokinių pirmąją viktoriną, 1404 01:07:12,600 --> 01:07:16,220 ir jie gavo 100 nuo it-- I einu paklausti mano kompiuteryje, 1405 01:07:16,220 --> 01:07:19,540 būdu programą aš parašyta, vienas riekė atmintį. 1406 01:07:19,540 --> 01:07:22,570 Ir aš ruošiuosi laikyti skaičius 100 jame, ir viskas. 1407 01:07:22,570 --> 01:07:24,820 >> Tada po kelių savaičių kai aš gausiu antrą testą, 1408 01:07:24,820 --> 01:07:27,890 ir atėjo laikas įvesti tuo, kad 90%, aš einu 1409 01:07:27,890 --> 01:07:32,129 paklausti kompiuterį, ei, kompiuteris, galiu turėti kitą atminties riekė? 1410 01:07:32,129 --> 01:07:34,170 Jis ketina duoti man tai tuščias riekė atmintį. 1411 01:07:34,170 --> 01:07:39,370 Aš ruošiuosi įdėti į numerį 90, bet mano programa vienaip ar other-- 1412 01:07:39,370 --> 01:07:42,100 ir mes ne nerimauti sintaksė už this-- man reikia 1413 01:07:42,100 --> 01:07:44,430 kažkaip grandinės šiuos dalykus kartu. 1414 01:07:44,430 --> 01:07:47,430 Ir aš grandinės juos kartu su kas atrodo rodykle čia. 1415 01:07:47,430 --> 01:07:50,050 >> Trečioji viktorina, kad ateina, Aš ruošiuosi pasakyti, ei, kompiuteris, 1416 01:07:50,050 --> 01:07:51,680 duok man dar vieną atminties riekė. 1417 01:07:51,680 --> 01:07:54,660 Ir aš ruošiuosi pribaigti Koks jis buvo, kaip 75, 1418 01:07:54,660 --> 01:07:56,920 ir aš turiu grandinės šio kartu dabar kažkaip. 1419 01:07:56,920 --> 01:08:00,290 Ketvirta viktorina ateina kartu, o gal tai link semestro pabaigoje. 1420 01:08:00,290 --> 01:08:03,140 Ir šiuo klausimu mano programa gali būti naudojant atminties 1421 01:08:03,140 --> 01:08:05,540 visur, visame fiziškai. 1422 01:08:05,540 --> 01:08:08,170 Ir taip tik prasideda, aš ketina parengti tai pirmyn 1423 01:08:08,170 --> 01:08:11,260 quiz-- aš pamiršti, kas buvo; aš manau gal 80 ar something-- 1424 01:08:11,260 --> 01:08:12,500 būdas čia. 1425 01:08:12,500 --> 01:08:15,920 >> Bet tai gerai, nes su pavaizduotomis piktogramo- Aš ruošiuosi padaryti šią eilutę. 1426 01:08:15,920 --> 01:08:19,063 Kitaip tariant, iš tikrųjų, jūsų kompiuterio aparatinę įrangą, 1427 01:08:19,063 --> 01:08:20,979 pirmas balas gali galų gale čia, nes tai 1428 01:08:20,979 --> 01:08:22,529 į dešinę nuo semestro pradžios. 1429 01:08:22,529 --> 01:08:25,810 Kitą gali baigtis čia nes šiek tiek laiko praėjo 1430 01:08:25,810 --> 01:08:27,210 ir programa išlaiko veikia. 1431 01:08:27,210 --> 01:08:30,060 Kitą rezultatas, kuris buvo 75, gali būti čia. 1432 01:08:30,060 --> 01:08:33,420 Ir paskutinis rezultatas gali būti 80, kuris yra daugiau nei čia. 1433 01:08:33,420 --> 01:08:38,729 >> Taigi iš tikrųjų fiziškai, tai gali būti kas kompiuterio atminties atrodo. 1434 01:08:38,729 --> 01:08:41,569 Bet tai nėra naudinga psichikos paradigma programuotojas. 1435 01:08:41,569 --> 01:08:44,649 Kodėl jums turėtų rūpintis kur gi jūsų duomenys baigiant? 1436 01:08:44,649 --> 01:08:46,200 Jūs tiesiog norite išsaugoti duomenis. 1437 01:08:46,200 --> 01:08:49,390 >> Tai lyg mūsų diskusijų anksčiau piešimo kubą. 1438 01:08:49,390 --> 01:08:52,200 Kodėl jums rūpi tai, ką kampas yra kubo 1439 01:08:52,200 --> 01:08:53,740 ir kaip jūs turite kreiptis į ją atkreipti? 1440 01:08:53,740 --> 01:08:54,950 Jūs tiesiog norite kubą. 1441 01:08:54,950 --> 01:08:57,359 Panašiai čia jums tiesiog norite klasės knygą. 1442 01:08:57,359 --> 01:08:59,559 Jūs tiesiog norite galvoti apie tai kaip numerių sąrašo. 1443 01:08:59,559 --> 01:09:01,350 Who cares, kaip tai įgyvendinamos įrangą? 1444 01:09:01,350 --> 01:09:05,180 >> Taigi abstrakcija dabar yra ši nuotrauka čia. 1445 01:09:05,180 --> 01:09:07,580 Tai yra susiję sąrašą, kaip programuotojas būtų jį pavadinti, 1446 01:09:07,580 --> 01:09:10,640 kiek turite sąrašas, be abejo skaičių. 1447 01:09:10,640 --> 01:09:14,990 Bet tai susiję su pavaizduotomis piktogramo- būdu šių rodyklėmis, 1448 01:09:14,990 --> 01:09:18,510 ir visi šie rodyklės are-- po dangtis, jei esate smalsus, 1449 01:09:18,510 --> 01:09:23,210 Primename, kad mūsų fizinės kompiuterinės įrangos turi adresai nulis, vienas, du, tris, keturis. 1450 01:09:23,210 --> 01:09:28,465 Visos šios strėlės yra tarsi žemėlapyje ar kryptimis, kur, jei 90 is-- dabar 1451 01:09:28,465 --> 01:09:29,090 Aš turiu skaičiuoti. 1452 01:09:29,090 --> 01:09:31,750 >> Nulis, vienas, du, trys, keturi, penki, šeši, septyni. 1453 01:09:31,750 --> 01:09:35,640 Panašu, kad 90 yra atminties adresas skaičius septyni. 1454 01:09:35,640 --> 01:09:38,460 Visos šios strėlės yra kaip mažas laužo popieriaus 1455 01:09:38,460 --> 01:09:42,439 kad manimi duoti nurodymų programa, kuri sako sekti šį žemėlapį 1456 01:09:42,439 --> 01:09:43,880 patekti į vietą septynių. 1457 01:09:43,880 --> 01:09:46,680 Ir ten jūs rasite studento antroji viktorina rezultatas. 1458 01:09:46,680 --> 01:09:52,100 Tuo tarpu, 75-- jei aš ir toliau tai, tai yra septynių, aštuonių, devynių, 10, 11, 12, 1459 01:09:52,100 --> 01:09:54,240 13, 14, 15. 1460 01:09:54,240 --> 01:09:59,080 >> Tai kita rodyklė tiesiog atstovauja žemėlapį į atminties vietą 15. 1461 01:09:59,080 --> 01:10:02,550 Bet vėl, programuotojas paprastai daro nerūpi šio detalumo lygiu. 1462 01:10:02,550 --> 01:10:05,530 Ir daugumoje kiekvieną programavimo kalba šiandien, programuotojas 1463 01:10:05,530 --> 01:10:10,490 bus net nežino, kur į atmintį šie skaičiai iš tikrųjų yra. 1464 01:10:10,490 --> 01:10:14,830 Viską, ką jis ar ji turi rūpintis yra kad jie yra kaip nors susijusi kartu 1465 01:10:14,830 --> 01:10:18,390 į duomenų struktūros, kaip tai. 1466 01:10:18,390 --> 01:10:21,580 >> Tačiau paaiškėja, ne gauti per techninę. 1467 01:10:21,580 --> 01:10:27,430 Bet tik todėl, kad mes galime galbūt sau leisti turėti šią diskusiją čia 1468 01:10:27,430 --> 01:10:33,630 tarkime, kad mes naujo šis klausimas čia masyvo. 1469 01:10:33,630 --> 01:10:35,780 Leiskite pamatyti, jei mes apgailestaujame vyksta čia. 1470 01:10:35,780 --> 01:10:42,950 Tai yra 100, 90, 75, ir 80. 1471 01:10:42,950 --> 01:10:44,980 >> Leiskite trumpai padaryti šį reikalavimą. 1472 01:10:44,980 --> 01:10:48,980 Tai yra matrica, ir dar kartą, Pasisako charakteristika masyvo 1473 01:10:48,980 --> 01:10:52,400 yra tai, kad visi jūsų duomenys yra Grįžti į atgal atgal į memory-- pažodžiui 1474 01:10:52,400 --> 01:10:56,830 vienas baitas arba gal keturi baitai, kai nustatoma baitų skaičius toli. 1475 01:10:56,830 --> 01:11:00,710 Susietoje sąrašo, kuris mes galime padaryti kaip šis, po gaubtu, kuris 1476 01:11:00,710 --> 01:11:02,000 žino, kur, kad medžiaga yra? 1477 01:11:02,000 --> 01:11:03,630 Tai net nereikia tekėti kaip šis. 1478 01:11:03,630 --> 01:11:06,050 Kai kurie duomenys gali būti Atgal į kairę ten. 1479 01:11:06,050 --> 01:11:07,530 Jums net nereikia žinoti. 1480 01:11:07,530 --> 01:11:15,430 >> Ir taip su masyvo, turite funkcija žinomas kaip laisvą prieigą. 1481 01:11:15,430 --> 01:11:20,570 Ir ką laisvosios kreipties būdas yra kad kompiuteris gali pereiti iš karto 1482 01:11:20,570 --> 01:11:22,730 į bet masyvą vietoje. 1483 01:11:22,730 --> 01:11:23,580 Kodėl? 1484 01:11:23,580 --> 01:11:26,000 Kadangi kompiuteris žino kad pirmoji vieta yra 1485 01:11:26,000 --> 01:11:29,540 nulis, vienas, du, trys. 1486 01:11:29,540 --> 01:11:33,890 >> Ir todėl, jei norite pereiti nuo šis elementas į kitą elementą, 1487 01:11:33,890 --> 01:11:36,099 Jūs tiesiogine prasme, į Kompiuterio protas, tiesiog pridėti vieną. 1488 01:11:36,099 --> 01:11:39,140 Jei norite pereiti į trečiąjį elementą, tiesiog pridėkite one-- kito elemento, tiesiog 1489 01:11:39,140 --> 01:11:40,290 pridėti. 1490 01:11:40,290 --> 01:11:42,980 Tačiau, į šią versiją istorijos, tarkime, 1491 01:11:42,980 --> 01:11:46,080 kompiuteris šiuo metu ieško ne ar bendraujant su numeriu 100. 1492 01:11:46,080 --> 01:11:49,770 Kaip jūs gaunate į kitą Įvertinimas į klasės knygą? 1493 01:11:49,770 --> 01:11:52,560 >> Jūs turite imtis septyni žingsnių, kuris yra savavališkas. 1494 01:11:52,560 --> 01:11:58,120 Norėdami gauti į kitą, jūs turite imtis dar aštuoni laiptai patekti į 15. 1495 01:11:58,120 --> 01:12:02,250 Kitaip tariant, tai ne pastovus atotrūkis tarp skaičių, 1496 01:12:02,250 --> 01:12:04,857 ir todėl tereikia kompiuteris daugiau laiko yra taškas. 1497 01:12:04,857 --> 01:12:06,940 Kompiuteris turi ieškoti per atmintį, siekiant 1498 01:12:06,940 --> 01:12:08,990 rasti tai, ko jūs ieškote. 1499 01:12:08,990 --> 01:12:14,260 >> Taigi kadangi masyvo linkęs būti greitas duomenų structure-- nes jūs 1500 01:12:14,260 --> 01:12:17,610 gali tiesiog tiesiog padaryti paprastą aritmetiką ir gauti ten, kur norite, pridedant vieną, 1501 01:12:17,610 --> 01:12:21,300 už instance-- susietą sąrašą Jūs paaukoti šią funkciją. 1502 01:12:21,300 --> 01:12:24,020 Jūs galite ne tik eiti nuo pirmojo prie antro į trečią ketvirtoje. 1503 01:12:24,020 --> 01:12:25,240 Jūs turite sekti žemėlapį. 1504 01:12:25,240 --> 01:12:28,160 Jūs turite imtis daugiau veiksmų patekti į šias vertybes, kurios 1505 01:12:28,160 --> 01:12:30,230 Atrodytų, kad pridedant išlaidas. 1506 01:12:30,230 --> 01:12:35,910 Taigi, mes mokate kainą, bet tai, kas buvo funkcija, kuri Danas siekė čia? 1507 01:12:35,910 --> 01:12:38,110 Ką susietą sąrašą matyt leidžia mums daryti, 1508 01:12:38,110 --> 01:12:40,240 kuris buvo kilmė Tai ypač istorija? 1509 01:12:40,240 --> 01:12:43,250 1510 01:12:43,250 --> 01:12:43,830 >> Tiksliai. 1511 01:12:43,830 --> 01:12:46,220 Dinaminis dydis į jį. 1512 01:12:46,220 --> 01:12:48,040 Galime pridėti prie šio sąrašo. 1513 01:12:48,040 --> 01:12:51,430 Mes netgi gali susitraukti sąrašą, todėl kad mes tik naudojant kiek atminties 1514 01:12:51,430 --> 01:12:55,560 kaip mes iš tikrųjų nori ir tt mes niekada per paskirstyti. 1515 01:12:55,560 --> 01:12:58,470 >> Dabar tiesiog tikrai NIT-smulkmeniškas, ten paslėptas išlaidas. 1516 01:12:58,470 --> 01:13:01,980 Taigi, jūs turėtumėte ne tik leiskite man įtikinti Jums, kad tai yra įtikinamų kompromisas. 1517 01:13:01,980 --> 01:13:04,190 Yra dar vienas paslėptas kaina čia. 1518 01:13:04,190 --> 01:13:06,550 Nauda, ​​kad būtų aišku, yra tai, kad mes gauname dinamiškumą. 1519 01:13:06,550 --> 01:13:10,359 Jei aš noriu dar vieną elementą, galiu tik piešti ir įdėti skaičių ten. 1520 01:13:10,359 --> 01:13:12,150 Ir tada aš galiu susieti jį su nuotrauka čia 1521 01:13:12,150 --> 01:13:14,970 kadangi per čia, vėlgi, jei aš dažytos save į kampą, 1522 01:13:14,970 --> 01:13:19,410 jei kažkas jau naudoja Čia atminties, aš iš laimės. 1523 01:13:19,410 --> 01:13:21,700 Aš dažytos save į kampą. 1524 01:13:21,700 --> 01:13:24,390 >> Bet kas paslėpta kaina šiame paveikslėlyje? 1525 01:13:24,390 --> 01:13:27,690 Tai ne tik suma laiko, kad ji trunka 1526 01:13:27,690 --> 01:13:29,870 eiti iš čia į čia kuris yra septynių žingsnių, tada 1527 01:13:29,870 --> 01:13:32,820 Aštuoni žingsniai, kuri yra daugiau nei vienas. 1528 01:13:32,820 --> 01:13:34,830 Kas kitas paslėptas išlaidas? 1529 01:13:34,830 --> 01:13:35,440 Ne tik laikas. 1530 01:13:35,440 --> 01:13:44,790 1531 01:13:44,790 --> 01:13:49,940 Papildoma informacija būtina norint pasiekti šią nuotrauką. 1532 01:13:49,940 --> 01:13:53,210 >> Taip, tai žemėlapis, tas mažai skiautelių popierius, kaip aš nuolat apibūdinant juos kaip. 1533 01:13:53,210 --> 01:13:55,650 Tai arrows-- tie, kurie nėra nemokama. 1534 01:13:55,650 --> 01:13:57,660 Computer-- žinote ką kompiuteris turi. 1535 01:13:57,660 --> 01:13:58,790 Jis turi nulių ir. 1536 01:13:58,790 --> 01:14:03,170 Jei norite atstovauti rodyklę arba map arba skaičius, jums reikia šiek tiek atminties. 1537 01:14:03,170 --> 01:14:05,950 Taigi kita kaina, kurią mokėti už susietą sąrašą 1538 01:14:05,950 --> 01:14:09,070 bendras kompiuterių mokslas išteklių, taip pat vietos. 1539 01:14:09,070 --> 01:14:11,710 >> Ir iš tiesų taip, taip, paprastai, tarp kompromisų 1540 01:14:11,710 --> 01:14:15,580 projektuojant programinės įrangos inžinerijos sistemos laikas ir space-- 1541 01:14:15,580 --> 01:14:18,596 yra du savo sudedamųjų dalių, du Jūsų brangiausių sudedamųjų dalių. 1542 01:14:18,596 --> 01:14:21,220 Tai kainuoja man daugiau laiko nes turiu sekti šį žemėlapį, 1543 01:14:21,220 --> 01:14:25,730 bet tai taip pat kainuoja man daugiau vietos nes turiu išlaikyti šį žemėlapį aplink. 1544 01:14:25,730 --> 01:14:28,730 Taigi viltis, kaip mes rūšies aptarti per vakar ir šiandien, 1545 01:14:28,730 --> 01:14:31,720 yra tai, kad nauda bus didesnės už išlaidas. 1546 01:14:31,720 --> 01:14:33,870 >> Tačiau nėra akivaizdus sprendimas čia. 1547 01:14:33,870 --> 01:14:35,870 Gal tai better-- la greitas ir purvinas, 1548 01:14:35,870 --> 01:14:38,660 kaip Kareemas pasiūlė earlier-- mesti atmintį problema. 1549 01:14:38,660 --> 01:14:42,520 Tiesiog pirkti daugiau atminties, manau mažiau sunku apie sprendžiant šią problemą, 1550 01:14:42,520 --> 01:14:44,595 ir išspręsti jį paprasčiausias būdas. 1551 01:14:44,595 --> 01:14:46,720 Ir iš tiesų anksčiau, kai mes kalbėjome apie kompromisus, 1552 01:14:46,720 --> 01:14:49,190 tai buvo ne erdvė kompiuteris ir laikas. 1553 01:14:49,190 --> 01:14:51,810 Tai buvo kūrėjas laikas, kuris yra dar vienas šaltinis. 1554 01:14:51,810 --> 01:14:54,829 >> Taigi dar kartą, tai tik balansavimo aktas bando nuspręsti, kuris iš šių dalykų 1555 01:14:54,829 --> 01:14:55,870 tu nori praleisti? 1556 01:14:55,870 --> 01:14:57,380 Kuris yra mažiausiai brangus? 1557 01:14:57,380 --> 01:15:01,040 Kuris duoda geresnius rezultatus? 1558 01:15:01,040 --> 01:15:01,540 Taip? 1559 01:15:01,540 --> 01:15:11,310 1560 01:15:11,310 --> 01:15:12,580 >> Iš tikrųjų. 1561 01:15:12,580 --> 01:15:15,970 Šiuo atveju, jei jūs atstovaujanti numerius maps-- 1562 01:15:15,970 --> 01:15:18,820 jie vadinami įvairiomis kalbomis "patarimų" ar "adresai", - 1563 01:15:18,820 --> 01:15:20,390 tai dvigubas erdvę. 1564 01:15:20,390 --> 01:15:24,390 Tai nebūtinai turi būti taip blogai, kaip dvigubai, jei dabar mes tiesiog laikyti numerius. 1565 01:15:24,390 --> 01:15:27,410 Tarkime, kad mes buvome saugoti pacientų įrašus hospital-- 1566 01:15:27,410 --> 01:15:30,870 taip Pierson vardus, telefono numerius, socialinio draudimo numeriai, gydytojas 1567 01:15:30,870 --> 01:15:31,540 istorija. 1568 01:15:31,540 --> 01:15:34,160 Šis langelis gali būti daug, žymiai didesnis, tokiu atveju 1569 01:15:34,160 --> 01:15:38,000 mažytis mažas žymeklis, kad adresas Kitas element-- tai ne big deal. 1570 01:15:38,000 --> 01:15:40,620 Tai toks kutais kaina nesvarbu. 1571 01:15:40,620 --> 01:15:43,210 Tačiau šiuo atveju, taip, tai padvigubinti. 1572 01:15:43,210 --> 01:15:45,290 Geras klausimas. 1573 01:15:45,290 --> 01:15:47,900 >> Pakalbėkime apie kartą, tiek konkrečiau. 1574 01:15:47,900 --> 01:15:50,380 Koks veikimo laikas ieškoti šį sąrašą? 1575 01:15:50,380 --> 01:15:53,640 Tarkime, aš norėjau ieškoti per visus mokinių klasėse, 1576 01:15:53,640 --> 01:15:55,980 ir ten n klases Šioje duomenų struktūros. 1577 01:15:55,980 --> 01:15:58,830 Čia taip pat galime skolintis iš anksčiau žodyną. 1578 01:15:58,830 --> 01:16:00,890 Tai yra linijinis duomenų struktūra. 1579 01:16:00,890 --> 01:16:04,570 >> Didelės O n yra tai, kas reikalinga gauti su šio duomenų struktūros pabaigoje, 1580 01:16:04,570 --> 01:16:08,410 whereas-- ir mes nematėme tai before-- masyvas suteikia jums 1581 01:16:08,410 --> 01:16:13,555 kas vadinama konstanta laikas, o tai reiškia, vienas žingsnis ar du žingsniai arba 10 steps-- 1582 01:16:13,555 --> 01:16:14,180 nesvarbu. 1583 01:16:14,180 --> 01:16:15,440 Tai fiksuotas skaičius. 1584 01:16:15,440 --> 01:16:17,440 Tai neturi nieko bendra su masyvo dydis. 1585 01:16:17,440 --> 01:16:20,130 Ir dėl šios priežasties, vėl, yra laisvosios kreipties. 1586 01:16:20,130 --> 01:16:23,180 Kompiuteris gali tiesiog iš karto peršokti į kitą vietą, 1587 01:16:23,180 --> 01:16:27,770 nes jie visi vienodi Atstumas nuo visko. 1588 01:16:27,770 --> 01:16:29,112 Nėra mąstymas dalyvauja. 1589 01:16:29,112 --> 01:16:31,900 1590 01:16:31,900 --> 01:16:32,400 Gerai. 1591 01:16:32,400 --> 01:16:39,230 Taigi, jei aš galiu, leiskite man pabandyti dažų dvi paskutines nuotraukas. 1592 01:16:39,230 --> 01:16:42,830 Labai dažnas vienas žinomas kaip maišos lentelė. 1593 01:16:42,830 --> 01:16:51,120 Taigi, norint motyvuoti šią diskusiją, tegul mane galvoti apie tai, kaip tai padaryti. 1594 01:16:51,120 --> 01:16:52,610 >> Taigi, kaip apie tai? 1595 01:16:52,610 --> 01:16:55,160 Tarkime, kad problema norime išspręsti dabar 1596 01:16:55,160 --> 01:16:58,360 įgyvendina į dictionary-- taip visa krūva angliškų žodžių 1597 01:16:58,360 --> 01:16:59,330 ar kas. 1598 01:16:59,330 --> 01:17:02,724 Ir tikslas yra, kad būtų galima atsakyti į klausimai formos tai žodis? 1599 01:17:02,724 --> 01:17:04,640 Taigi jūs norite įgyvendinti rašybos tikrintuvas, tiesiog 1600 01:17:04,640 --> 01:17:07,220 kaip fizinio žodyną kad jūs galite ieškoti dalykų, iki. 1601 01:17:07,220 --> 01:17:10,490 Tarkime, aš būčiau tai padaryti su masyvo. 1602 01:17:10,490 --> 01:17:12,590 Galėčiau tai padaryti. 1603 01:17:12,590 --> 01:17:20,756 >> Ir manau, kad žodžiai yra obuolių ir bananas ir melionas. 1604 01:17:20,756 --> 01:17:23,330 1605 01:17:23,330 --> 01:17:26,465 Ir aš negaliu galvoti apie vaisių kad pradėti su D, todėl mes tiesiog 1606 01:17:26,465 --> 01:17:27,590 teks tris vaisius. 1607 01:17:27,590 --> 01:17:31,510 Taigi tai yra masyvas, ir mes saugoti visi šie žodžiai 1608 01:17:31,510 --> 01:17:34,200 šiame žodyne kaip masyvą. 1609 01:17:34,200 --> 01:17:39,350 Klausimas, tuomet, tai, kaip kitur gal galėtumėte saugoti šią informaciją? 1610 01:17:39,350 --> 01:17:43,160 >> Na, aš rūšies sukčiavimas čia, nes kiekviena iš šių raidėmis žodžio 1611 01:17:43,160 --> 01:17:44,490 yra tikrai individualus baitų. 1612 01:17:44,490 --> 01:17:46,740 Taigi, jei aš tikrai norėjau būti NIT-smulkmeniškas, aš tikrai turėtų 1613 01:17:46,740 --> 01:17:49,600 būti dalijant tai aukštyn į daug mažesnius gabaliukus atminties, 1614 01:17:49,600 --> 01:17:51,289 ir mes galime padaryti būtent tai. 1615 01:17:51,289 --> 01:17:53,580 Tačiau mes ketiname paleisti į ta pati problema kaip ir anksčiau. 1616 01:17:53,580 --> 01:17:56,674 Ką daryti, jei, kaip Merriam Webster ar Oksforde daro kas šarvuotuose jie įtraukti žodžius 1617 01:17:56,674 --> 01:17:59,340 į dictionary-- mes ne visada nori piešti save 1618 01:17:59,340 --> 01:18:00,780 į kampą su masyvo? 1619 01:18:00,780 --> 01:18:05,710 >> Taigi vietoj to, gal protingesni požiūris yra įdėti Apple savo mazge ar dėžėje, 1620 01:18:05,710 --> 01:18:11,190 kaip sakytume, bananų ir tada čia mes turime Kantalupa. 1621 01:18:11,190 --> 01:18:14,990 1622 01:18:14,990 --> 01:18:16,790 Ir mes styginių šie dalykai kartu. 1623 01:18:16,790 --> 01:18:19,980 Todėl tai yra matrica, ir tai yra susiję sąrašas. 1624 01:18:19,980 --> 01:18:23,300 Jei negalite gana pamatyti, jis tiesiog sako: "Masyvas", ir tai sako "sąrašą". 1625 01:18:23,300 --> 01:18:25,780 >> Taigi, mes turime tą patį Tikslios klausimai kaip ir anksčiau, 1626 01:18:25,780 --> 01:18:28,600 kurią mes dabar turime dinamiškumas mūsų susietą sąrašą. 1627 01:18:28,600 --> 01:18:31,090 Bet mes turime gana lėtai žodyną. 1628 01:18:31,090 --> 01:18:32,870 Tarkime, aš noriu ieškoti žodžio. 1629 01:18:32,870 --> 01:18:35,430 Tai gali užtrukti man didelis O n žingsniai, nes žodis galėtų 1630 01:18:35,430 --> 01:18:37,840 būti visą kelią pabaigoje sąrašas, kaip ir Kantalupa. 1631 01:18:37,840 --> 01:18:40,600 Ir paaiškėja, kad programavimo, rūšiuoti 1632 01:18:40,600 --> 01:18:42,700 šventojo Gralio duomenų struktūros, yra kažkas 1633 01:18:42,700 --> 01:18:46,620 kuri suteikia jums nuolat laikas kaip masyvo 1634 01:18:46,620 --> 01:18:50,870 bet vis dar suteikia jums dinamiškumą. 1635 01:18:50,870 --> 01:18:52,940 >> Taigi galime turėti geriausią iš abiejų pasaulių? 1636 01:18:52,940 --> 01:18:55,570 Ir iš tiesų, yra kažkas vadinamas maišos lentelė 1637 01:18:55,570 --> 01:18:59,320 kuri leidžia jums padaryti tiksliai kad, nors apytiksliai. 1638 01:18:59,320 --> 01:19:03,140 Maišos lentelė yra mėgėjas duomenų struktūra, kad mes 1639 01:19:03,140 --> 01:19:06,340 galite galvoti kaip kombinacija yra array-- 1640 01:19:06,340 --> 01:19:12,390 ir aš ruošiuosi jį atkreipti kaip this-- ir tiesinis sąrašas 1641 01:19:12,390 --> 01:19:17,310 kad aš parengia kaip tai čia. 1642 01:19:17,310 --> 01:19:19,760 >> Ir taip šis dalykas darbai yra taip. 1643 01:19:19,760 --> 01:19:23,310 1644 01:19:23,310 --> 01:19:29,540 Jei tai now-- maišos table-- yra mano trečią duomenų struktūra, 1645 01:19:29,540 --> 01:19:32,590 ir aš noriu laikyti žodžiai, aš ne 1646 01:19:32,590 --> 01:19:35,440 nori tiesiog laikyti visas žodžiai atgal atgal atgal į nugarą. 1647 01:19:35,440 --> 01:19:37,430 Noriu sverto kai gabalas informacijos 1648 01:19:37,430 --> 01:19:40,330 apie žodžius, kurie leis man gauti jį ten, kur jis greičiau. 1649 01:19:40,330 --> 01:19:43,666 >> Taigi, atsižvelgiant į žodžių obuolių ir bananas ir melionas, 1650 01:19:43,666 --> 01:19:45,040 Aš sąmoningai pasirinkau tuos žodžius. 1651 01:19:45,040 --> 01:19:45,340 Kodėl? 1652 01:19:45,340 --> 01:19:47,631 Ką tarsi iš esmės skiriasi apie tris? 1653 01:19:47,631 --> 01:19:49,950 1654 01:19:49,950 --> 01:19:51,484 Kas yra akivaizdu? 1655 01:19:51,484 --> 01:19:52,900 Jie pradeda su skirtingomis raidėmis. 1656 01:19:52,900 --> 01:19:53,900 >> Taigi jūs žinote, ką? 1657 01:19:53,900 --> 01:19:57,120 Užuot įdėti visus mano žodžius tas pats kibiras, taip sakant, 1658 01:19:57,120 --> 01:20:00,390 kaip vienas didelis sąrašą, kodėl gi ne Aš bent pabandyti optimizaciją 1659 01:20:00,390 --> 01:20:04,180 ir kad mano sąrašai 1/26 tol. 1660 01:20:04,180 --> 01:20:07,440 Įtikinamų optimizavimas gali būti kodėl gi ne 1661 01:20:07,440 --> 01:20:10,650 I-- įdėjus žodį į šią duomenų struktūros, 1662 01:20:10,650 --> 01:20:14,300 į kompiuterio atmintį, kodėl ne aš įdėti visas "A" žodžius čia 1663 01:20:14,300 --> 01:20:17,270 visi "b" žodžiai čia, ir visi "C" žodžiai čia? 1664 01:20:17,270 --> 01:20:24,610 Taigi tai baigiasi išleisti obuolį čia bananų čia Kantalupa čia 1665 01:20:24,610 --> 01:20:25,730 ir taip toliau. 1666 01:20:25,730 --> 01:20:31,700 >> Ir jei turiu papildomai Žodis like-- kas kita? 1667 01:20:31,700 --> 01:20:36,640 "Apple", bananai, kriaušės. 1668 01:20:36,640 --> 01:20:39,370 Kiekvienas galvoja apie vaisių , kuris prasideda su a, b, arba c? 1669 01:20:39,370 --> 01:20:40,570 Blueberry-- tobula. 1670 01:20:40,570 --> 01:20:43,990 Kad ketina baigti čia. 1671 01:20:43,990 --> 01:20:47,530 Ir taip mes, atrodo, turime nežymiai geresnis sprendimas, 1672 01:20:47,530 --> 01:20:50,820 nes dabar jei noriu ieškoti obuolių, aš 1673 01:20:50,820 --> 01:20:53,200 first-- aš ne tik neria į mano duomenų struktūros. 1674 01:20:53,200 --> 01:20:54,850 Nemanau, pasinerti į savo kompiuterį atmintyje. 1675 01:20:54,850 --> 01:20:56,530 Aš pirmą kartą pažvelgti į pirmąją raidę. 1676 01:20:56,530 --> 01:20:58,610 >> Ir tai yra tai, ką kompiuterio mokslininkas pasakytų. 1677 01:20:58,610 --> 01:21:00,760 Jūs maišos į savo duomenų struktūrą. 1678 01:21:00,760 --> 01:21:04,100 Jūs imtis savo indėlį, kuris šiuo atveju yra kaip obuolys žodis. 1679 01:21:04,100 --> 01:21:07,150 Jūs ją analizuoti, žiūri pirmoji raidė šiuo atveju, 1680 01:21:07,150 --> 01:21:08,340 taip maišos ją. 1681 01:21:08,340 --> 01:21:10,950 Maišos yra bendras terminas, kuriuo išgėrėte kažką kaip pirkimo 1682 01:21:10,950 --> 01:21:12,116 ir jūs gaminti tam tikrą produkciją. 1683 01:21:12,116 --> 01:21:15,090 Ir tuo, kad produkcija atveju yra vieta 1684 01:21:15,090 --> 01:21:18,150 norite ieškoti, pirmasis vieta, antra vieta, trečia. 1685 01:21:18,150 --> 01:21:22,160 Taigi indėlis yra obuolių, produkcija yra pirmas. 1686 01:21:22,160 --> 01:21:25,054 Įvesties yra bananų, The produkcija turėtų būti antras. 1687 01:21:25,054 --> 01:21:27,220 Įvesties yra Kantalupa, išėjimo turėtų būti trečdaliu. 1688 01:21:27,220 --> 01:21:30,320 Įvesties yra mėlynių, The produkcija turėtų vėl būti antra. 1689 01:21:30,320 --> 01:21:34,010 Ir tai, kas padeda jums imtis nuorodos per savo atmintį 1690 01:21:34,010 --> 01:21:39,050 siekiant gauti žodžių arba duomenų efektyviau. 1691 01:21:39,050 --> 01:21:43,330 >> Dabar tai mažina mūsų laikas potencialiai iki kiek vienas iš 26, 1692 01:21:43,330 --> 01:21:45,850 nes jei manyti, kad jūs turėti daug "A" žodžių, kaip "z" 1693 01:21:45,850 --> 01:21:48,080 žodžiai kaip "Q" žodžiai, kuriuos yra tikrai ne realistic-- 1694 01:21:48,080 --> 01:21:50,830 jūs ketinate turėti nerijos visoje kai kurios alphabet-- raidės 1695 01:21:50,830 --> 01:21:53,204 bet tai būtų pavienis požiūris, kad neleidžia 1696 01:21:53,204 --> 01:21:55,930 jums daug greičiau patekti į žodžių. 1697 01:21:55,930 --> 01:21:59,660 Ir iš tikrųjų, sudėtinga programa, pasaulio akiniai, 1698 01:21:59,660 --> 01:22:02,180 Naudotis world-- Facebooks jie naudoja maišos lentelę 1699 01:22:02,180 --> 01:22:03,740 dėl skirtingų tikslais daug. 1700 01:22:03,740 --> 01:22:06,590 Bet jie nebūtų tokie naivūs kaip tiesiog pažvelgti į pirmąją raidę 1701 01:22:06,590 --> 01:22:09,700 obuolių ar bananų arba kriaušių arba Kantalupa, 1702 01:22:09,700 --> 01:22:13,420 nes, kaip jūs galite pamatyti, tai sąrašus dar gali gauti ilgai. 1703 01:22:13,420 --> 01:22:17,130 >> Ir taip tai vis dar galėtų būti tarsi iš linear-- taip tarsi lėtas, 1704 01:22:17,130 --> 01:22:19,980 kaip su dideliu O n kad aptarėme anksčiau. 1705 01:22:19,980 --> 01:22:25,290 Taigi, kas yra tikrai geras maišos lentelė bus do-- jis turės daug didesnę masyvo. 1706 01:22:25,290 --> 01:22:28,574 Ir ji naudosis daug daugiau sudėtingas maišos funkcija, 1707 01:22:28,574 --> 01:22:30,240 taip, kad ji ne tik pažvelgti į "a." 1708 01:22:30,240 --> 01:22:35,480 Gal tai žiūri "A-P-P-L-e", ir kažkaip paverčia tuos penkis laiškus 1709 01:22:35,480 --> 01:22:38,400 į vietą, kur "Apple" turėtų būti saugomi. 1710 01:22:38,400 --> 01:22:42,660 Mes tiesiog naiviai naudojant raide "A" vienas, nes tai malonu ir paprasta. 1711 01:22:42,660 --> 01:22:44,600 >> Bet maišos lentelė, į pabaiga, jūs galite galvoti 1712 01:22:44,600 --> 01:22:47,270 iš kaip kartu masyvo, iš kurių kiekvienas 1713 01:22:47,270 --> 01:22:51,700 turi susietą sąrašą, idealiai turėtų būti kiek įmanoma trumpesnis. 1714 01:22:51,700 --> 01:22:54,364 Ir tai nėra akivaizdu, tirpalas. 1715 01:22:54,364 --> 01:22:57,280 Iš tikrųjų, daug tiksliai reguliuojant kad eina po kapotu kada 1716 01:22:57,280 --> 01:22:59,654 įgyvendinant šias rūšių sudėtingos duomenų struktūros 1717 01:22:59,654 --> 01:23:01,640 kas yra teisė ilgis masyvo? 1718 01:23:01,640 --> 01:23:03,250 Kas yra teisė maišos funkcija? 1719 01:23:03,250 --> 01:23:04,830 Kaip jums laikyti dalykų atmintyje? 1720 01:23:04,830 --> 01:23:07,249 >> Bet suprasti, kaip greitai Tai tarsi diskusijos 1721 01:23:07,249 --> 01:23:10,540 pratęstus, arba taip toli, kad tai tipo iš virš galvos šiuo metu, kuris 1722 01:23:10,540 --> 01:23:11,360 yra gerai. 1723 01:23:11,360 --> 01:23:18,820 Bet mes pradėjome, prisiminti, su tikrai kažkas žemo lygio ir elektroninės. 1724 01:23:18,820 --> 01:23:20,819 Ir todėl tai vėl tai tema abstrakcija, 1725 01:23:20,819 --> 01:23:23,610 kur kadaise pradėdami vartoti už suteikta, gerai, aš turiu it-- ten 1726 01:23:23,610 --> 01:23:26,680 fizinės atminties, Gerai, supratau, kas fizinė vieta turi adresą, 1727 01:23:26,680 --> 01:23:29,910 Gerai, aš jį galiu atstovauti tie adresus arrows-- 1728 01:23:29,910 --> 01:23:34,650 galite labai greitai pradeda turėti sudėtingesnių pokalbiai kad 1729 01:23:34,650 --> 01:23:38,360 pabaigoje, atrodo, leidžia mums spręsti problemas, kaip ieškoti 1730 01:23:38,360 --> 01:23:41,620 ir efektyviau rūšiavimas. 1731 01:23:41,620 --> 01:23:44,190 Ir būkite tikri, too-- nes manau, kad tai 1732 01:23:44,190 --> 01:23:48,700 yra giliausias mes nuėjo į kai Šių CS pranešimus proper-- dažnai naudoja 1733 01:23:48,700 --> 01:23:51,880 padaryta per dieną ir per pusę į tai atkreipti ką gali paprastai padaryti per 1734 01:23:51,880 --> 01:23:55,520 aštuonių savaičių kursas semestrą. 1735 01:23:55,520 --> 01:23:59,670 >> Turite klausimų apie tai? 1736 01:23:59,670 --> 01:24:01,100 Ar ne? 1737 01:24:01,100 --> 01:24:01,940 Gerai. 1738 01:24:01,940 --> 01:24:05,610 Na, kodėl ne mes pristabdyti ten, pradėti pietūs keletą minučių per anksti, 1739 01:24:05,610 --> 01:24:07,052 atnaujinti tik apie valandą? 1740 01:24:07,052 --> 01:24:08,760 Ir aš svyruos šiek tiek su klausimais. 1741 01:24:08,760 --> 01:24:11,343 Tada aš ruošiuosi eiti užtrukti keletą skambučių, jei tai Gerai. 1742 01:24:11,343 --> 01:24:15,000 Aš įjungti šiek tiek muzikos tuo tarpu, bet pietūs turėtų būti už kampo. 1743 01:24:15,000 --> 01:24:17,862