1 00:00:00,000 --> 00:00:00,030 2 00:00:00,030 --> 00:00:00,460 >> DAVID Malan: Labi. 3 00:00:00,460 --> 00:00:01,094 Mēs esam atpakaļ. 4 00:00:01,094 --> 00:00:04,260 Tātad šajā segmentā par programmu, kas Es domāju, mēs gribētu darīt, ir sajaukums lietas. 5 00:00:04,260 --> 00:00:06,340 Viens, darīt mazliet kaut hands-on, 6 00:00:06,340 --> 00:00:08,690 lai gan, izmantojot vairāk rotaļīgu programmēšana environment-- 7 00:00:08,690 --> 00:00:11,620 viens, kas ir uzskatāms par tieši veidiems ideju 8 00:00:11,620 --> 00:00:14,220 mēs esam runājuši par, bet nedaudz vairāk formāli. 9 00:00:14,220 --> 00:00:18,200 Divi, apskatīt dažus no jo vairāk tehniskie veidi 10 00:00:18,200 --> 00:00:21,520 ka programmētājs faktiski atrisināt problēmas, piemēram, meklētājas problēmu 11 00:00:21,520 --> 00:00:24,530 ka mēs paskatījās pirms un arī plašākā skatījumā 12 00:00:24,530 --> 00:00:26,020 interesanta problēma šķirošanu. 13 00:00:26,020 --> 00:00:28,840 >> Mēs tikko pieņemts no get iet ka tālruņu grāmata tika sakārtoti, 14 00:00:28,840 --> 00:00:31,980 bet tas vien ir faktiski sava veida grūti problēma ar daudz dažādos veidos 15 00:00:31,980 --> 00:00:32,479 atrisināt to. 16 00:00:32,479 --> 00:00:34,366 Tāpēc mēs izmantot tos kā klases problēmas 17 00:00:34,366 --> 00:00:36,740 pārstāvis lietām, kas varētu atrisināt vispār. 18 00:00:36,740 --> 00:00:38,980 Un tad mēs runājam par samērā detalizēti, ko 19 00:00:38,980 --> 00:00:42,360 sauc datu structures-- mīļotājs veidos, piemēram, saistītas saraksti 20 00:00:42,360 --> 00:00:46,290 un jaucējtabula un koki, kas programmētājs faktiski 21 00:00:46,290 --> 00:00:48,890 izmantot un parasti izmanto uz tāfeles gleznot 22 00:00:48,890 --> 00:00:51,840 priekšstatu par to, ko viņš vai viņa iedomājas īstenošanas 23 00:00:51,840 --> 00:00:52,980 daži gabals programmatūru. 24 00:00:52,980 --> 00:00:55,130 >> Tātad, pieņemsim do roku-on daļu pirmās. 25 00:00:55,130 --> 00:01:00,090 Tik vienkārši saņemt rokas netīras ar vide sauc scratch.mit.edu. 26 00:01:00,090 --> 00:01:02,636 Tas ir instruments, kas mēs izmantojam mūsu bakalaura klasē. 27 00:01:02,636 --> 00:01:04,510 Pat ja tas ir paredzēts par vecumu 12 un uz augšu, 28 00:01:04,510 --> 00:01:07,570 mēs to izmantot, lai uz augšu daļa no šīs diezgan daudz 29 00:01:07,570 --> 00:01:10,020 jo tas ir jauki, jautri grafiskā veidā mācīšanās 30 00:01:10,020 --> 00:01:12,160 nedaudz kaut ko par programmēšanu. 31 00:01:12,160 --> 00:01:17,600 Tāpēc dodies uz šo URL, kur jums vajadzētu redzēt lapu gluži kā šis, 32 00:01:17,600 --> 00:01:23,330 un iet uz priekšu un noklikšķiniet Pievienojies Scratch pie augšējā labajā stūrī 33 00:01:23,330 --> 00:01:28,300 un izvēlēties lietotājvārdu un parole un galu galā iegūt sev 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 Es domāju, es gribētu izmantot šo kā iespēja pirmo reizi parādīt to. 37 00:01:34,665 --> 00:01:39,120 Jautājums nāca klajā pārtraukumā par to, ko kods tiešām izskatās. 38 00:01:39,120 --> 00:01:41,315 Un mēs runājām Pārtraukumā par C laikā, 39 00:01:41,315 --> 00:01:45,060 in particular-- īpaši zemāks līmenis vecāku valodā. 40 00:01:45,060 --> 00:01:47,750 Un es tikko bija ātri Google meklēšanu, lai atrastu C kodu 41 00:01:47,750 --> 00:01:51,574 bināro meklēšanu, algoritmu, kas mums izmanto, lai meklētu šo telefona grāmatu agrāk. 42 00:01:51,574 --> 00:01:54,240 Šis konkrētais piemērs, protams, nav meklēt tālruņa grāmatu. 43 00:01:54,240 --> 00:01:57,840 Tas tikai meklē visu ķekars numurus datora atmiņā. 44 00:01:57,840 --> 00:02:01,000 Bet, ja vēlaties, lai tikai iegūt vizuāli sajūtu, ko faktisko plānošanu 45 00:02:01,000 --> 00:02:05,370 valoda izskatās, tas izskatās mazliet kaut kas līdzīgs šim. 46 00:02:05,370 --> 00:02:09,759 Tātad, tas ir par 20-plus, 30 vai tik koda rindiņas, 47 00:02:09,759 --> 00:02:12,640 bet saruna mums bija, kam pāri pārtraukuma 48 00:02:12,640 --> 00:02:16,000 bija par to, kā tas patiesībā izpaužas morphed nullēm un uzņēmumiem 49 00:02:16,000 --> 00:02:19,200 un, ja jūs varat ne tikai atgriezties ka apstrādāt un aiziet no nullēm un uzņēmumiem 50 00:02:19,200 --> 00:02:20,210 atpakaļ uz kodu. 51 00:02:20,210 --> 00:02:22,620 >> Diemžēl šis process ir tik pārveidojoša 52 00:02:22,620 --> 00:02:24,890 ka tas ir daudz vieglāk pateikt, nekā izdarīt. 53 00:02:24,890 --> 00:02:29,400 Es devos uz priekšu un faktiski pagriezās ka programma, Binary Search, 54 00:02:29,400 --> 00:02:32,700 uz nullēm un tiem Izdarot programmu, ko sauc kompilators, ka es 55 00:02:32,700 --> 00:02:34,400 gadīties, ka šeit tieši par manu Mac. 56 00:02:34,400 --> 00:02:37,850 Un, ja paskatās uz ekrāna šeit, jo īpaši koncentrējoties 57 00:02:37,850 --> 00:02:43,520 uz šīm vidējām sešām kolonnām tikai, jūs redzēsiet tikai nullēm un uzņēmumiem. 58 00:02:43,520 --> 00:02:48,290 Un tie ir nullēm un tiem, kas sacerēt tieši ka meklēšana programmu. 59 00:02:48,290 --> 00:02:53,720 >> Un tā katru rieciens pieciem biti, katrs baits nullēm un tiem šeit, 60 00:02:53,720 --> 00:02:57,310 pārstāv kādu instrukcija parasti iekšpusē no datora. 61 00:02:57,310 --> 00:03:00,730 Un patiesībā, ja jūs esat dzirdējis mārketinga sauklis "Intel inside" - tas, 62 00:03:00,730 --> 00:03:04,610 protams, tikai nozīmē, jums ir Intel CPU vai smadzeņu iekšā datoru. 63 00:03:04,610 --> 00:03:08,000 Un ko tas nozīmē būt par CPU ir ka jums ir instrukciju kopums, 64 00:03:08,000 --> 00:03:08,840 tā sakot. 65 00:03:08,840 --> 00:03:11,620 >> Katram CPU pasaulē, daudzi no tos, ko Intel šajās dienās, 66 00:03:11,620 --> 00:03:13,690 saprot ierobežots skaits norādījumiem. 67 00:03:13,690 --> 00:03:18,690 Un šie norādījumi ir tik zems līmenis kā pievienot šos divus skaitļus kopā, 68 00:03:18,690 --> 00:03:22,560 pavairot šos divus skaitļus kopā, pārvietot šo gabals datus no šejienes 69 00:03:22,560 --> 00:03:27,340 šeit atmiņā, saglabājiet šo Informācija no šeit, lai šeit atmiņā, 70 00:03:27,340 --> 00:03:32,200 un tā forth-- tik ļoti, ļoti zema līmeņa, gandrīz elektroniskās detaļas. 71 00:03:32,200 --> 00:03:34,780 Bet ar tiem, matemātiskās operācijas kopā 72 00:03:34,780 --> 00:03:37,410 ar to, ko mēs runājām iepriekš, attēlojumu datu 73 00:03:37,410 --> 00:03:40,450 kā nullēm un uzņēmumiem, var jums veidot visu 74 00:03:40,450 --> 00:03:44,180 ka dators var darīt šodien, vai tas ir teksta, grafiskā, mūzikas, 75 00:03:44,180 --> 00:03:45,580 vai citādi. 76 00:03:45,580 --> 00:03:49,450 >> Tātad tas ir ļoti viegli nokļūt zaudētas nezālēm ir ātri. 77 00:03:49,450 --> 00:03:52,150 Un tur ir daudz sintaktiskās izaicinājumi 78 00:03:52,150 --> 00:03:56,630 saskaņā ar kuru, ja jūs veicat vienkāršākais, stupidest no drukas kļūdām neviens no programmas 79 00:03:56,630 --> 00:03:57,860 darbosies whatsoever. 80 00:03:57,860 --> 00:04:00,366 Un tā vietā, izmantojot valoda, piemēram, C šorīt, 81 00:04:00,366 --> 00:04:02,240 Es domāju, ka būtu vairāk jautrības, lai faktiski darīt 82 00:04:02,240 --> 00:04:04,840 kaut kas vairāk vizuāli, kas savukārt paredzētas bērniem 83 00:04:04,840 --> 00:04:08,079 ir faktiski ideāls izpausme Ar faktisko plānošanu 84 00:04:08,079 --> 00:04:10,370 language-- vienkārši notiek, izmantot attēlus, nevis teksta 85 00:04:10,370 --> 00:04:11,710 pārstāvēt šo ideju. 86 00:04:11,710 --> 00:04:15,470 >> Tātad, kad jūs patiešām ir konts scratch.mit.edu, 87 00:04:15,470 --> 00:04:21,070 noklikšķiniet uz pogas Izveidot augšā pa kreisi no vietas. 88 00:04:21,070 --> 00:04:24,620 Un jums vajadzētu redzēt vidi, piemēram, viens es esmu par to, lai redzētu uz mana ekrāna 89 00:04:24,620 --> 00:04:26,310 šeit. 90 00:04:26,310 --> 00:04:29,350 Un mēs tērēt tikai nedaudz mazliet laika spēlējot šeit. 91 00:04:29,350 --> 00:04:34,080 Let 's redzēt, ja mēs nevaram visu atrisināt dažas problēmas kopā šādā veidā. 92 00:04:34,080 --> 00:04:39,420 >> Tātad, ko jūs redzēsiet laikā šis environment-- un faktiski tikai ļaujiet 93 00:04:39,420 --> 00:04:40,050 man pauze. 94 00:04:40,050 --> 00:04:42,680 Vai kāds nav šeit? 95 00:04:42,680 --> 00:04:45,070 Ne šeit? 96 00:04:45,070 --> 00:04:45,800 LABI. 97 00:04:45,800 --> 00:04:49,030 Tāpēc ļaujiet man norādīt dažus raksturojums šajā vidē. 98 00:04:49,030 --> 00:04:55,024 >> Tāpēc augšējā kreisajā stūrī, mēs ir Scratch stadiju, lai runāt. 99 00:04:55,024 --> 00:04:57,440 Scratch ir ne tikai nosaukums Šī programmēšanas valodas; 100 00:04:57,440 --> 00:05:00,356 tas ir arī nosaukums, kaķi, kas redzat pēc noklusējuma tur oranžā krāsā. 101 00:05:00,356 --> 00:05:02,160 Viņš ir uz skatuves, tāpēc daudz, piemēram, es aprakstīju 102 00:05:02,160 --> 00:05:05,770 bruņurupucis agrāk kā atrašanos taisnstūra baltā tāfele vide. 103 00:05:05,770 --> 00:05:09,800 Šī kaķa pasaule ir tikai pilnībā ar šo taisnstūra up top tur. 104 00:05:09,800 --> 00:05:12,210 >> Tajā pašā laikā, pa labi labajā pusē šeit, tas ir 105 00:05:12,210 --> 00:05:15,610 tikai skripti zona, tukša šīfera ja Jums gribas. 106 00:05:15,610 --> 00:05:18,590 Tas ir, ja mēs ejam, lai rakstītu Mūsu programmas tikai brīdi. 107 00:05:18,590 --> 00:05:22,935 Un celtniecības bloki, ka mēs izmantot, lai rakstītu šo program-- puzzle 108 00:05:22,935 --> 00:05:25,310 gabali, ja jums will-- ir tiem, tepat pa vidu, 109 00:05:25,310 --> 00:05:27,500 un viņi kategorijās ar funkcionalitāti. 110 00:05:27,500 --> 00:05:31,000 Tā, piemēram, es esmu gatavojas iet uz priekšu un apliecina vismaz vienu no šiem. 111 00:05:31,000 --> 00:05:33,690 Es iešu uz priekšu un noklikšķiniet Kontroles kategorija augšu augšas. 112 00:05:33,690 --> 00:05:35,720 >> Tātad tie ir kategorijas, līdz top. 113 00:05:35,720 --> 00:05:39,410 Es esmu gatavojas noklikšķiniet uz Control kategoriju. 114 00:05:39,410 --> 00:05:44,020 Drīzāk, es esmu gatavojas noklikšķiniet uz Notikumi kategorija, pats pirmais vadībā top. 115 00:05:44,020 --> 00:05:47,790 Un, ja jūs vēlaties, lai sekot līdzi pat kā mēs to izdarītu, jūs esat diezgan laipni aicināti. 116 00:05:47,790 --> 00:05:52,180 Es esmu gatavojas noklikšķiniet un velciet to Pirmais, "zaļus karogs uzklikšķināt." 117 00:05:52,180 --> 00:05:58,410 Un tad es esmu gatavojas piliens to tikai aptuveni augšpusē manu tukšo šīferis. 118 00:05:58,410 --> 00:06:01,450 >> Un, kas ir jauka par nulles ir tas, ka šī puzzle gabals, kad 119 00:06:01,450 --> 00:06:04,560 savstarpēji saistīti ar citām puzzle gabalus, gatavojas darīt burtiski 120 00:06:04,560 --> 00:06:06,460 kādi ir šie puzzle gabalus saku darīt. 121 00:06:06,460 --> 00:06:09,710 Tā, piemēram, Scratch ir taisnība tagad vidū viņa pasaulē. 122 00:06:09,710 --> 00:06:14,660 Es iešu uz priekšu un izvēlēties Tagad, teiksim, Motion kategorija, 123 00:06:14,660 --> 00:06:18,000 ja vēlaties darīt same-- Motion kategoriju. 124 00:06:18,000 --> 00:06:20,430 Un tagad paziņojums man ir viss ķekars puzzle gabalus šeit 125 00:06:20,430 --> 00:06:23,370 ka, atkal, veida darīt to, ko viņi saka. 126 00:06:23,370 --> 00:06:28,110 Un es iešu uz priekšu un velciet un piliens Pārvietot bloku tiesības pār šeit. 127 00:06:28,110 --> 00:06:31,860 >> Un paziņo, ka, tiklīdz jūs saņemsiet tuvu apakšā "zaļo karogu 128 00:06:31,860 --> 00:06:34,580 uzklikšķināt "pogu, paziņojums kā parādīts baltās līnijas, 129 00:06:34,580 --> 00:06:36,950 it kā tas ir gandrīz magnētiskā, tā vēlas iet uz turieni. 130 00:06:36,950 --> 00:06:43,070 Just let iet, un tas būs snap kopā un formas tiks atrasti. 131 00:06:43,070 --> 00:06:46,620 Un tagad jūs varat varbūt gandrīz uzminēt, kur mēs ejam ar to. 132 00:06:46,620 --> 00:06:51,570 >> Ja paskatās Scratch posmā nekā šeit un skatīties uz augšu no tā, 133 00:06:51,570 --> 00:06:55,142 jūs redzēsiet sarkanu gaismu A stop zīmi un zaļo karogu. 134 00:06:55,142 --> 00:06:57,100 Un es iešu uz priekšu un skatīties manu screen-- 135 00:06:57,100 --> 00:06:58,460 tikai brīdi, ja jūs varētu. 136 00:06:58,460 --> 00:07:01,960 Es esmu gatavojas noklikšķiniet uz zaļā karoga tieši tagad, 137 00:07:01,960 --> 00:07:07,850 un viņš pārcēlās ko, šķiet, ir 10 soļi vai 10 pikseļi, 10 punkti, uz ekrāna. 138 00:07:07,850 --> 00:07:13,390 >> Un tā nav, ka aizraujoši, bet ļaujiet man ieteikt 139 00:07:13,390 --> 00:07:17,440 pat bez mācīšanas, vienkārši izmantojot pašu savu intuition-- pieņemsim 140 00:07:17,440 --> 00:07:22,560 es iesaku jums saprast, kā padarīt Scratch pastaigāties pa labi pie skatuves. 141 00:07:22,560 --> 00:07:28,700 Vai viņam veikt ceļu labajā pusē ekrāns, visu ceļu pa labi. 142 00:07:28,700 --> 00:07:32,200 Ļaujiet man sniegt jums brīdi vai arī tā cīnīties ar to. 143 00:07:32,200 --> 00:07:37,681 Jūs varētu vēlēties, lai apskatīt citās kategorijās blokiem. 144 00:07:37,681 --> 00:07:38,180 Viss kārtībā. 145 00:07:38,180 --> 00:07:41,290 Tik vienkārši, lai Atgādinājums, kad mums ir zaļais karogs uzklikšķināt šeit 146 00:07:41,290 --> 00:07:44,850 un pārvietot 10 soļi ir tikai norādījums, katru reizi, kad es 147 00:07:44,850 --> 00:07:46,720 noklikšķiniet uz zaļo karogu, kas notiek? 148 00:07:46,720 --> 00:07:50,070 Nu, kas ir darbojas savu programmu. 149 00:07:50,070 --> 00:07:52,450 Lai es varētu darīt varbūt 10 reizes manuāli, 150 00:07:52,450 --> 00:07:55,130 bet tas jūtas mazliet bit hackish, tā sakot, 151 00:07:55,130 --> 00:07:57,480 kuru es neesmu īsti problēmu risināšanā. 152 00:07:57,480 --> 00:08:00,530 Es esmu tikai mēģina atkal un atkal un atkal un atkal 153 00:08:00,530 --> 00:08:03,180 kamēr es veida nejauši sasniegt direktīvu 154 00:08:03,180 --> 00:08:05,560 ka es noteikti, lai sasniegtu iepriekš. 155 00:08:05,560 --> 00:08:08,200 >> Bet mēs zinām no mūsu pseudocode agrāk, ka tur ir 156 00:08:08,200 --> 00:08:11,870 šis jēdziens plānošanas looping, darot kaut ko atkal un atkal. 157 00:08:11,870 --> 00:08:14,888 Un tā es redzēju, ka ķekars jums sasniegts ko puzzles gabalu? 158 00:08:14,888 --> 00:08:17,870 159 00:08:17,870 --> 00:08:18,730 Atkārtojiet, līdz. 160 00:08:18,730 --> 00:08:21,400 Lai mēs varētu kaut ko darīt tāpat atkārto, līdz. 161 00:08:21,400 --> 00:08:23,760 Un ko tu atkārto, līdz tieši? 162 00:08:23,760 --> 00:08:27,720 163 00:08:27,720 --> 00:08:28,540 >> LABI. 164 00:08:28,540 --> 00:08:31,974 Un ļaujiet man iet ar vienu, kas ir nedaudz vienkāršāku tikai brīdi. 165 00:08:31,974 --> 00:08:33,140 Ļaujiet man iet uz priekšu un darīt to. 166 00:08:33,140 --> 00:08:35,559 Ievērojiet, ka, jo Jums var būt atklāja zem Control, 167 00:08:35,559 --> 00:08:38,409 ir šī atkārtojums bloks, kas neizskatās kā tas ir, ka liels. 168 00:08:38,409 --> 00:08:41,039 Tur nav daudz istabu starp šīm divām dzeltenām līnijām. 169 00:08:41,039 --> 00:08:43,539 Bet, tā kā daži no jums varētu būt pamanīju, ja jums vilkt un nomest, 170 00:08:43,539 --> 00:08:45,150 paziņojums, kā tas aug, lai aizpildītu formu. 171 00:08:45,150 --> 00:08:46,274 >> Un jūs pat varat piestūķēt vairāk. 172 00:08:46,274 --> 00:08:48,670 Tas būs tikai turpinās pieaugt, ja velkat un lidināties pār to. 173 00:08:48,670 --> 00:08:51,110 Un es nezinu, kas ir labākais šeit, tāpēc ļaujiet 174 00:08:51,110 --> 00:08:54,760 man vismaz atkārtot piecas reizes, lai instance, un tad doties atpakaļ uz skatuves 175 00:08:54,760 --> 00:08:56,720 un noklikšķiniet uz zaļo karogu. 176 00:08:56,720 --> 00:08:59,110 Un tagad paziņojums tas nav gluži tur. 177 00:08:59,110 --> 00:09:02,400 >> Tagad daži no jums ierosināja, kā Victoria vienkārši nav, atkārto 10 reizes. 178 00:09:02,400 --> 00:09:05,140 Un tas parasti dara saņemt viņam visu ceļu, 179 00:09:05,140 --> 00:09:10,510 bet nebūtu tur būt straujāka veids, kā patvaļīgi norādītas 180 00:09:10,510 --> 00:09:12,640 cik daudz kustas padarīt? 181 00:09:12,640 --> 00:09:17,680 Kas varētu būt labāks bloks nekā atkārtot 10 reizes būt? 182 00:09:17,680 --> 00:09:20,380 >> Jā, tad kāpēc ne darīt kaut ko uz visiem laikiem? 183 00:09:20,380 --> 00:09:24,390 Un tagad ļaujiet man pāriet šo puzzle gabals iekšā tur un atbrīvoties no šo vienu. 184 00:09:24,390 --> 00:09:28,300 Tagad paziņojums vienalga, kur Scratch sākas, viņš dodas pie malas. 185 00:09:28,300 --> 00:09:30,700 Un par laimi MIT, kurš Scratch, tikko 186 00:09:30,700 --> 00:09:33,190 pārliecinās, ka viņš nekad pilnībā izzūd. 187 00:09:33,190 --> 00:09:35,360 Jūs vienmēr varat paķert savu asti. 188 00:09:35,360 --> 00:09:37,680 >> Un tikai intuitīvi, kāpēc viņš saglabāt pārvietojas? 189 00:09:37,680 --> 00:09:38,892 Kas šeit notiek? 190 00:09:38,892 --> 00:09:41,440 191 00:09:41,440 --> 00:09:43,824 Viņš, šķiet, ir pārtraukta, bet tad ja es uzņemt un velciet 192 00:09:43,824 --> 00:09:45,240 viņš tur vēlas doties tur. 193 00:09:45,240 --> 00:09:46,123 Kāpēc ir tā, ka? 194 00:09:46,123 --> 00:09:51,610 195 00:09:51,610 --> 00:09:54,360 Patiesi, dators ir burtiski gatavojas darīt to, kas jums pateikt to darīt. 196 00:09:54,360 --> 00:09:58,380 Tātad, ja jūs teicis to agrāk darīt pēc lieta uz visiem laikiem, pārvietot 10 soļi, 197 00:09:58,380 --> 00:10:01,860 tas notiek, lai saglabātu turpinās un iet kamēr es hit sarkano stop zīmi 198 00:10:01,860 --> 00:10:04,620 un vispār pārtrauktu programmu. 199 00:10:04,620 --> 00:10:06,610 >> Tātad, pat ja Jums nav izdarīt, kā es varēju 200 00:10:06,610 --> 00:10:09,510 padarīt Scratch pārvietot ātrāk pa ekrānu? 201 00:10:09,510 --> 00:10:12,060 202 00:10:12,060 --> 00:10:13,280 Vairāk soļi, labi? 203 00:10:13,280 --> 00:10:15,710 Tā vietā, lai dara 10 laikā, kāpēc ne mēs 204 00:10:15,710 --> 00:10:20,100 iet uz priekšu un mainīt kuri paredzēti, ko tu propose-- 50? 205 00:10:20,100 --> 00:10:24,410 Tāpēc tagad es esmu gatavojas noklikšķiniet uz zaļo karogu, un, protams, viņš iet ļoti ātri. 206 00:10:24,410 --> 00:10:27,180 >> Un tas, protams, ir tikai izpausme animāciju. 207 00:10:27,180 --> 00:10:28,060 Kas ir animācija? 208 00:10:28,060 --> 00:10:33,090 Tas tikai parāda jums cilvēka A viss ķekars Fotogrāfiju tiešām, 209 00:10:33,090 --> 00:10:34,160 ļoti, ļoti ātri. 210 00:10:34,160 --> 00:10:36,500 Un tāpēc, ja mēs esam tikai spēcīgi viņam pārcelties papildu pasākumus, 211 00:10:36,500 --> 00:10:39,750 mēs esam tikai kam efekts būt izmaiņas, kur viņš ir uz ekrāna 212 00:10:39,750 --> 00:10:42,900 vēl straujāk laika vienībā. 213 00:10:42,900 --> 00:10:46,454 >> Tagad nākamais izaicinājums, es ierosināju bija, ir viņam piepeši pie malas. 214 00:10:46,454 --> 00:10:49,120 Un nezinot, kas puzzle gabali exist-- jo tas ir naudas sods 215 00:10:49,120 --> 00:10:53,030 ja Jums nav iegūt ar posms challenge-- ko 216 00:10:53,030 --> 00:10:54,280 jūs vēlaties darīt intuitīvi? 217 00:10:54,280 --> 00:10:58,030 Kā mums ir viņam piepeši atpakaļ un tālāk, starp kreisi un pa labi? 218 00:10:58,030 --> 00:11:02,630 219 00:11:02,630 --> 00:11:03,810 >> Jā. 220 00:11:03,810 --> 00:11:05,680 Tāpēc mums ir zināma veida no stāvokļa, un mēs 221 00:11:05,680 --> 00:11:09,710 šķiet, ir conditionals, tāpēc, lai runā, zem Control kategorijā. 222 00:11:09,710 --> 00:11:14,110 Kurš no šiem blokiem mēs, iespējams, vēlas? 223 00:11:14,110 --> 00:11:15,200 Jā, varbūt, "ja, tad." 224 00:11:15,200 --> 00:11:18,780 Tāpēc paziņojums, ka starp dzeltenajiem blokiem Mēs esam šeit, ir šis "ja" 225 00:11:18,780 --> 00:11:23,920 vai šis "ja, cits" bloks, kas būs ļauj mums pieņemt lēmumu, lai to paveiktu 226 00:11:23,920 --> 00:11:25,000 vai to darīt. 227 00:11:25,000 --> 00:11:27,380 Un jūs pat varat nest tos darīt vairākas lietas. 228 00:11:27,380 --> 00:11:34,910 Vai, ja jūs esat nav šeit aizgājuši vēl, iet uz priekšu uz uztveres kategoriju 229 00:11:34,910 --> 00:11:39,612 and-- pieņemsim redzēt, ja tas ir šeit. 230 00:11:39,612 --> 00:11:43,050 231 00:11:43,050 --> 00:11:52,050 >> Tātad, ko bloks varētu būt noderīga lai noteiktu, vai viņš ir pie skatuves? 232 00:11:52,050 --> 00:11:56,740 Jā, ievērosiet, ka daži no šiem blokiem var parametrized, lai runāt. 233 00:11:56,740 --> 00:12:00,706 Tās var kārtot pielāgot, ne atšķirībā no HTML vakar ar atribūtiem, 234 00:12:00,706 --> 00:12:03,330 ja šie atribūti veida pielāgot uzvedību tag. 235 00:12:03,330 --> 00:12:08,880 Tāpat šeit, es varu paķert šo pieskaroties bloku un pārmaiņas un uzdot jautājumu, 236 00:12:08,880 --> 00:12:11,500 Jūs pieskaras peles rādītāju, piemēram, kursora 237 00:12:11,500 --> 00:12:13,250 vai jūs pieskaras malai? 238 00:12:13,250 --> 00:12:15,210 >> Tāpēc ļaujiet man iet un darīt. 239 00:12:15,210 --> 00:12:18,130 Es esmu gatavojas tālinātu uz brīdi. 240 00:12:18,130 --> 00:12:21,320 Ļaujiet man paķert šo puzzle gabals šeit, tas puzzle gabals tas, 241 00:12:21,320 --> 00:12:24,570 un es esmu gatavojas sajukt tos tikai brīdi. 242 00:12:24,570 --> 00:12:27,620 Es esmu gatavojas pārvietot to, mainīt uz aizkustinošs malai, 243 00:12:27,620 --> 00:12:38,590 un es esmu gatavojas kustības izdarīt. 244 00:12:38,590 --> 00:12:40,490 Tātad, šeit ir dažas sastāvdaļas. 245 00:12:40,490 --> 00:12:42,570 Es domāju, ka es esam ieguvuši visu, ko es gribu. 246 00:12:42,570 --> 00:12:47,710 >> Vai kāds gribētu ierosināt, kā es var savienot šos varbūt augšas uz leju 247 00:12:47,710 --> 00:12:52,020 Lai atrisinātu problēmu, kam Scratch pārvietoties pa labi pa kreisi, pa labi, lai 248 00:12:52,020 --> 00:12:57,020 kreisās uz labās uz kreiso, katrs laiku tikai veselīgs pie sienas? 249 00:12:57,020 --> 00:12:58,050 Ko es gribu darīt? 250 00:12:58,050 --> 00:13:01,097 Kuru bloķēt man vajadzētu savienot ar "Zaļus karogs uzklikšķināt pirmais"? 251 00:13:01,097 --> 00:13:04,060 252 00:13:04,060 --> 00:13:06,200 >> Labi, tāpēc sāksim ar "uz visiem laikiem." 253 00:13:06,200 --> 00:13:07,170 Kas iet iekšā nākamais? 254 00:13:07,170 --> 00:13:10,290 Kāds cits. 255 00:13:10,290 --> 00:13:11,850 OK, pārvietot darbības. 256 00:13:11,850 --> 00:13:12,350 Viss kārtībā. 257 00:13:12,350 --> 00:13:14,470 Tad kas? 258 00:13:14,470 --> 00:13:15,120 Tātad tad, ja. 259 00:13:15,120 --> 00:13:17,720 Un paziņojums, lai gan tas izskatās iestiprināta kopā cieši, 260 00:13:17,720 --> 00:13:19,500 tas būs tikai pieaugs aizpildīt. 261 00:13:19,500 --> 00:13:21,500 Tas būs tikai ielēkt kur es gribu to. 262 00:13:21,500 --> 00:13:25,920 >> Un ko es varu ievietot starp IF un tad? 263 00:13:25,920 --> 00:13:27,180 Iespējams, "ja pieskaras malai." 264 00:13:27,180 --> 00:13:31,800 Un paziņojums, atkal, tas ir pārāk liels par to, bet tas pieaugs aizpildīt. 265 00:13:31,800 --> 00:13:35,002 Un tad savukārt 15 grādiem? 266 00:13:35,002 --> 00:13:35,710 Cik grādiem? 267 00:13:35,710 --> 00:13:38,800 268 00:13:38,800 --> 00:13:41,196 Jā, tāpēc 180 būs spin mani visu ceļu apkārt. 269 00:13:41,196 --> 00:13:42,570 Tātad, pieņemsim redzēt, ja es saņēmu šīs tiesības. 270 00:13:42,570 --> 00:13:43,930 Ļaujiet man attālinātu. 271 00:13:43,930 --> 00:13:45,130 >> Ļaujiet man velciet Scratch augšu. 272 00:13:45,130 --> 00:13:50,030 Tāpēc viņš ir nedaudz izkropļota tagad, bet tas ir jauki. 273 00:13:50,030 --> 00:13:52,231 Kā es varu reset viņu viegli? 274 00:13:52,231 --> 00:13:59,879 275 00:13:59,879 --> 00:14:01,045 Es esmu gatavojas nedaudz apkrāptu. 276 00:14:01,045 --> 00:14:04,074 277 00:14:04,074 --> 00:14:05,990 Tāpēc es esmu pievienojot vēl bloks, tikai, lai būtu skaidrs. 278 00:14:05,990 --> 00:14:08,424 Es gribu, lai viņš norāda 90 grādiem pa labi pēc noklusējuma, 279 00:14:08,424 --> 00:14:10,840 tāpēc es esmu tikai gatavojas pateikt viņam to darīt programmiski. 280 00:14:10,840 --> 00:14:11,632 Un šeit mēs ejam. 281 00:14:11,632 --> 00:14:14,740 282 00:14:14,740 --> 00:14:15,740 Mēs, šķiet, esam darījuši. 283 00:14:15,740 --> 00:14:19,980 Tas ir nedaudz dīvaini, jo viņš pastaigājas otrādi. 284 00:14:19,980 --> 00:14:21,250 Sauksim ka bug. 285 00:14:21,250 --> 00:14:22,120 Tas ir kļūda. 286 00:14:22,120 --> 00:14:27,320 Bug ir kļūda kādā programmai, loģiska kļūda, ka es, cilvēka, kas izgatavoti. 287 00:14:27,320 --> 00:14:28,985 Kāpēc viņš iet kājām gaisā? 288 00:14:28,985 --> 00:14:33,560 289 00:14:33,560 --> 00:14:35,250 Vai MIT skrūvējamu augšu vai bija man? 290 00:14:35,250 --> 00:14:38,840 291 00:14:38,840 --> 00:14:42,550 >> Jā, es domāju, tas nav MIT s vaina. Viņi man iedeva puzzles gabaliņam 292 00:14:42,550 --> 00:14:44,970 ka saka savukārt dažas grādiem. 293 00:14:44,970 --> 00:14:47,672 Un Viktorijas ierosinājumu, Es esmu pagrieziena 180 grādiem, 294 00:14:47,672 --> 00:14:48,880 kas ir pareizais intuīcija. 295 00:14:48,880 --> 00:14:53,700 Bet pagriežot par 180 grādiem burtiski nozīmē pagrieziena 180 grādiem, 296 00:14:53,700 --> 00:14:55,860 un tas nav īsti ko es gribu, acīmredzot. 297 00:14:55,860 --> 00:14:58,026 Tāpēc, ka vismaz viņš ir Šī divdimensiju pasaulē, 298 00:14:58,026 --> 00:15:00,740 tāpēc pagrieziena īsti notiek uzsist viņam otrādi. 299 00:15:00,740 --> 00:15:04,030 >> Es, iespējams, vēlas izmantot to, ko bloķēt vietā, pamatojoties uz to, ko jūs redzat šeit? 300 00:15:04,030 --> 00:15:11,890 301 00:15:11,890 --> 00:15:14,790 Kā mēs varētu noteikt šo? 302 00:15:14,790 --> 00:15:18,380 Jā, lai mēs varētu norādīt pretējā virzienā. 303 00:15:18,380 --> 00:15:22,300 Un patiesībā pat tas nebūs pietiekami, 304 00:15:22,300 --> 00:15:26,410 tāpēc, ka mēs varam tikai grūti kods līdz norādot pa kreisi vai pa labi. 305 00:15:26,410 --> 00:15:27,920 >> Jūs zināt, ko mēs varētu darīt? 306 00:15:27,920 --> 00:15:30,160 Izskatās, mums ir ērtības bloks šeit. 307 00:15:30,160 --> 00:15:32,987 Ja es tuvinātu, skatiet kaut kas mums patīk šeit? 308 00:15:32,987 --> 00:15:36,120 309 00:15:36,120 --> 00:15:40,020 Tā izskatās MIT ir abstrakcija uzcelta šeit. 310 00:15:40,020 --> 00:15:45,440 Šis bloks, šķiet, ir līdzvērtīga uz kuru citi bloki, daudzskaitlis? 311 00:15:45,440 --> 00:15:49,510 >> Tas viens bloks, šķiet, ir līdzvērtīga uz šo visu trio blokiem 312 00:15:49,510 --> 00:15:50,880 ka mēs esam šeit. 313 00:15:50,880 --> 00:15:54,670 Tātad izrādās, es varētu vienkāršot manu programma, atbrīvojoties no visa, kas 314 00:15:54,670 --> 00:15:58,270 un vienkārši ielieciet to šeit. 315 00:15:58,270 --> 00:16:01,620 Un tagad viņš ir vēl mazliet buggy, un tas ir labi tagad. 316 00:16:01,620 --> 00:16:03,370 Mēs ņemšu atvaļinājumu, ka būs. 317 00:16:03,370 --> 00:16:06,000 Bet mana programma ir pat vienkāršāk, un arī tas, 318 00:16:06,000 --> 00:16:09,060 būtu reprezentatīvi no mērķis programming-- 319 00:16:09,060 --> 00:16:13,430 ir ideāli padarīt savu kodu, kā vienkārši, kā kompakts vien iespējams, 320 00:16:13,430 --> 00:16:15,650 kamēr vēl ir kā lasāma kā iespējams. 321 00:16:15,650 --> 00:16:20,310 Jūs nevēlaties, lai padarītu to tik kodolīga ka tas ir grūti saprast. 322 00:16:20,310 --> 00:16:22,826 >> Bet paziņojums es esmu aizstāj trīs bloki ar vienu, 323 00:16:22,826 --> 00:16:24,200 un tas varbūt ir laba lieta. 324 00:16:24,200 --> 00:16:27,280 Esmu nošķirts prom jēdzienu pārbaudīt, vai jūs esat 325 00:16:27,280 --> 00:16:29,120 no malas ar tikai vienu bloku. 326 00:16:29,120 --> 00:16:31,520 Tagad mēs varam būt jautri ar šo, patiesībā. 327 00:16:31,520 --> 00:16:35,790 Tas nav pievienot tik daudz intelektuālā vērtība, bet jautrs vērtība. 328 00:16:35,790 --> 00:16:39,730 Es iešu uz priekšu un paķert šo skaņu šeit. 329 00:16:39,730 --> 00:16:42,900 330 00:16:42,900 --> 00:16:46,420 Tāpēc ļaujiet man iet uz priekšu, un ļaujiet man apturēt programmu uz brīdi. 331 00:16:46,420 --> 00:16:52,070 Es esmu gatavojas ierakstīt šādu, ļauj piekļūt manam mikrofonam. 332 00:16:52,070 --> 00:16:53,181 >> Te nu mēs esam. 333 00:16:53,181 --> 00:16:53,680 Sakta. 334 00:16:53,680 --> 00:16:58,710 335 00:16:58,710 --> 00:17:01,140 Mēģināsim to atkal. 336 00:17:01,140 --> 00:17:02,279 Te nu mēs esam. 337 00:17:02,279 --> 00:17:03,570 Labi, es ierakstīts nepareizi lieta. 338 00:17:03,570 --> 00:17:04,580 Te nu mēs esam. 339 00:17:04,580 --> 00:17:05,080 Sakta. 340 00:17:05,080 --> 00:17:07,910 341 00:17:07,910 --> 00:17:08,800 Sakta. 342 00:17:08,800 --> 00:17:09,300 Viss kārtībā. 343 00:17:09,300 --> 00:17:10,791 Tagad man ir nepieciešams, lai atbrīvotos no tā. 344 00:17:10,791 --> 00:17:11,290 Viss kārtībā. 345 00:17:11,290 --> 00:17:13,950 >> Tāpēc tagad man ir ierakstīšana tikai "Sakta". 346 00:17:13,950 --> 00:17:18,040 Tāpēc tagad es iešu priekšu un saucam "sakta". 347 00:17:18,040 --> 00:17:20,270 Es esmu gatavojas doties atpakaļ uz manu skriptu, un tagad 348 00:17:20,270 --> 00:17:25,460 paziņojums tur ir šis bloks, kas sauc atskaņot skaņu "Ņau" vai atskaņot skaņu "sakta". 349 00:17:25,460 --> 00:17:28,920 Es esmu gatavojas vilkt to, un, ja Es būtu jāliek šis komiski efektu? 350 00:17:28,920 --> 00:17:31,740 351 00:17:31,740 --> 00:17:37,860 Jā, tāpēc tagad tas ir sava veida buggy, jo tagad tas block-- 352 00:17:37,860 --> 00:17:42,050 paziņo, cik šis "ja uz malu, Bounce "ir sava veida pašpietiekams. 353 00:17:42,050 --> 00:17:43,704 Tāpēc man ir nepieciešams noteikt šo. 354 00:17:43,704 --> 00:17:44,870 Ļaujiet man iet uz priekšu un darīt to. 355 00:17:44,870 --> 00:17:48,630 Ļaujiet man atbrīvoties no šo un doties atpakaļ mūsu oriģinālam, vairāk apzināta 356 00:17:48,630 --> 00:17:49,870 funkcionalitāti. 357 00:17:49,870 --> 00:18:01,080 So ", ja pieskaras malai, tad" es gribu griezties, kā ierosināts Victoria, 358 00:18:01,080 --> 00:18:02,480 180 grādi. 359 00:18:02,480 --> 00:18:05,497 Un vēlos spēlēt skaņa "sakta" tur? 360 00:18:05,497 --> 00:18:11,800 361 00:18:11,800 --> 00:18:15,580 >> Jā, pamanāt, ka tas ir ārpus ka dzeltenā bloks. 362 00:18:15,580 --> 00:18:17,680 Tātad tas arī būtu bug, bet es esmu ievērojis to. 363 00:18:17,680 --> 00:18:21,290 Tāpēc es esmu gatavojas velciet to šeit, un paziņojums tagad tas ir iekšā ", ja." 364 00:18:21,290 --> 00:18:24,250 Tātad ", ja" tas ir sava veida Līdzīga rokas līdzīgi Blot 365 00:18:24,250 --> 00:18:26,260 kas ir tikai gatavojas darīt to, kas ir iekšpusē no tā. 366 00:18:26,260 --> 00:18:30,216 Tāpēc tagad, ja es attālinātu at risks annoying-- 367 00:18:30,216 --> 00:18:32,860 368 00:18:32,860 --> 00:18:36,470 >> Dators: Sakta, sakta, sakta. 369 00:18:36,470 --> 00:18:39,910 >> DAVID Malan: Un tas būs tikai iet uz visiem laikiem. 370 00:18:39,910 --> 00:18:44,160 Tagad tikai, lai paātrinātu lietas šeit, ļaujiet man iet uz priekšu un atvērt, 371 00:18:44,160 --> 00:18:50,460 pieņemsim say-- ļaujiet man iet uz kādu manas sīkumi no klases. 372 00:18:50,460 --> 00:18:53,000 373 00:18:53,000 --> 00:19:00,220 Un ļaujiet man atvērt, teiksim, šis viens, viens no mūsu mācību stipendiātiem 374 00:19:00,220 --> 00:19:01,500 pāris gadus atpakaļ. 375 00:19:01,500 --> 00:19:04,732 Tāpēc daži no jums varētu atgādināt šī spēle no vakardienas, 376 00:19:04,732 --> 00:19:05,940 un tas ir tiešām ievērojams. 377 00:19:05,940 --> 00:19:08,190 Pat ja mēs esam darīts Vienkāršākais programmu tieši tagad, 378 00:19:08,190 --> 00:19:09,980 pieņemsim apsvērt, ko tas tiešām izskatās. 379 00:19:09,980 --> 00:19:10,650 Ļaujiet man hit spēli. 380 00:19:10,650 --> 00:19:14,210 381 00:19:14,210 --> 00:19:18,980 >> Tātad šajā spēlē, mums ir varde, un izmantojot bultiņas keys-- 382 00:19:18,980 --> 00:19:23,340 viņš ņem lielākus pasākumus, nekā es remember-- Man ir kontrole pār šo varde. 383 00:19:23,340 --> 00:19:29,630 Un mērķis ir iegūt pāri aizņemts ceļš bez nokļūšanu automašīnām. 384 00:19:29,630 --> 00:19:34,735 Un pieņemsim see-- ja es iet uz augšu šeit, es jāgaida log lai ritinātu līdz. 385 00:19:34,735 --> 00:19:38,130 386 00:19:38,130 --> 00:19:39,274 Tas jūtas kā bug. 387 00:19:39,274 --> 00:19:42,240 388 00:19:42,240 --> 00:19:43,495 Tas ir sava veida bug. 389 00:19:43,495 --> 00:19:45,980 390 00:19:45,980 --> 00:19:46,480 Viss kārtībā. 391 00:19:46,480 --> 00:19:51,550 Es esmu par to šeit, tur, un tad jūs turēt 392 00:19:51,550 --> 00:19:54,100 iet, kamēr jums visiem vardes uz lilija spilventiņi. 393 00:19:54,100 --> 00:19:55,920 Tagad tas varētu izskatīties vēl sarežģītāka, 394 00:19:55,920 --> 00:19:57,840 bet pieņemsim mēģināt lauzt Tas noteikti garīgi 395 00:19:57,840 --> 00:20:00,040 un mutiski uz tās sastāvdaļu blokiem. 396 00:20:00,040 --> 00:20:03,910 Tātad ir iespējams, puzzle gabals, kas mēs neesam redzējuši vēl 397 00:20:03,910 --> 00:20:07,440 bet tas ir reaģēt uz keystrokes, uz lietām, ko es hit uz klaviatūras. 398 00:20:07,440 --> 00:20:11,660 >> Tātad tur ir iespējams, sava veida bloks, kas saka, ja atslēga vienāds augšu, 399 00:20:11,660 --> 00:20:15,965 tad kaut ko darīt ar Scratch-- varbūt pārvietot to 10 soļus šajā virzienā. 400 00:20:15,965 --> 00:20:20,240 Ja uz leju taustiņš ir nospiests, pārvietot 10 soļi šādā veidā, vai kreiso taustiņu, pārvietojiet 10 soļi 401 00:20:20,240 --> 00:20:21,710 šādā veidā, 10 soļus, kas. 402 00:20:21,710 --> 00:20:23,644 Es esmu skaidri pagriezās kaķi par varde. 403 00:20:23,644 --> 00:20:26,060 Tātad tas ir tikai tad, ja kostīms, kā Scratch zvani it-- mēs 404 00:20:26,060 --> 00:20:28,440 tikai imports priekšstatu par varde. 405 00:20:28,440 --> 00:20:29,570 >> Bet ko vēl notiek? 406 00:20:29,570 --> 00:20:32,794 Kādi citi koda rindiņas, ko citi puzzle gabalus 407 00:20:32,794 --> 00:20:35,460 darīja Blake, mūsu mācību kolēģi, izmanto šajā programmā, acīmredzot? 408 00:20:35,460 --> 00:20:38,320 409 00:20:38,320 --> 00:20:42,730 Kas padara visu move-- kāda programmēšanas būvēt? 410 00:20:42,730 --> 00:20:44,950 >> Kustības, sure-- tāpēc pārvietot bloku, for sure. 411 00:20:44,950 --> 00:20:49,330 Un, kas ir tas gājiens bloks iekšpusē, visticamāk? 412 00:20:49,330 --> 00:20:52,850 Jā, sava veida cilpas, varbūt mūžīgi bloķēt, varbūt atkārtot block-- 413 00:20:52,850 --> 00:20:54,070 atkārto, līdz bloku. 414 00:20:54,070 --> 00:20:57,330 Un tas, ko ir padarot žurnālus un lilija spilventiņi un viss pārējais pārvietot 415 00:20:57,330 --> 00:20:57,990 uz priekšu un atpakaļ. 416 00:20:57,990 --> 00:21:00,270 Tas ir vienkārši notiek bezgalīgi. 417 00:21:00,270 --> 00:21:03,180 >> Kāpēc daži no automašīnām pārvietojas ātrāk nekā citi? 418 00:21:03,180 --> 00:21:06,607 Kas ir atšķirīgs par šo programmu? 419 00:21:06,607 --> 00:21:09,690 Jā, iespējams, daži no tiem ir veikt vairāk soļi uzreiz un daži no tiem 420 00:21:09,690 --> 00:21:10,690 mazāk soļi uzreiz. 421 00:21:10,690 --> 00:21:14,670 Un vizuālo efektu ir ātra pret lēns. 422 00:21:14,670 --> 00:21:16,030 >> Ko jūs domājat noticis? 423 00:21:16,030 --> 00:21:19,700 Kad es saņēmu savu varde visu ceļu pāri ielai un upi 424 00:21:19,700 --> 00:21:23,560 uz lilija pad, kaut ievērības cienīgs noticis. 425 00:21:23,560 --> 00:21:26,540 Kas notika, tiklīdz es to izdarīju? 426 00:21:26,540 --> 00:21:27,210 Tas apstājās. 427 00:21:27,210 --> 00:21:29,680 Ka varde apstājās, un Man otro varde. 428 00:21:29,680 --> 00:21:33,155 Tātad, ko būvēt, jābūt izmantoti tur, kāda funkcija? 429 00:21:33,155 --> 00:21:36,020 430 00:21:36,020 --> 00:21:38,660 >> Jā, tāpēc tur ir sava veida "Ja" stāvoklī tur, too. 431 00:21:38,660 --> 00:21:41,909 Un izrādās out-- mēs neredzēju this-- bet tur ir citi bloki tur, ka 432 00:21:41,909 --> 00:21:45,300 var teikt, ja jums ir aizkustinošs cita lieta, uz ekrāna, 433 00:21:45,300 --> 00:21:47,720 ja jūs pieskaras lilija spilventiņu ", tad." 434 00:21:47,720 --> 00:21:50,810 Un tad tas ir tad, kad mēs padarīt otrais varde parādās. 435 00:21:50,810 --> 00:21:54,969 Tātad, pat ja šī spēle ir noteikti ļoti datēta, lai gan pēc pirmā acu uzmetiena 436 00:21:54,969 --> 00:21:58,010 tur ir tik daudz kas notiek on-- un Blake nebija pātagu šo augšu divās minūtēs, 437 00:21:58,010 --> 00:22:00,390 tas, iespējams, veica viņam vairākas stundas, lai radītu šo spēli 438 00:22:00,390 --> 00:22:03,850 pamatojoties uz viņa atmiņā vai video vakardienas versiju par to. 439 00:22:03,850 --> 00:22:07,940 Bet visiem šiem sīkumiem notiek uz ekrāna izolēti 440 00:22:07,940 --> 00:22:11,550 vārīties uz leju, lai tie ļoti vienkārši constructs-- kustības vai paziņojumi 441 00:22:11,550 --> 00:22:15,519 kā mēs esam apspriests, cilpas un nosacījumi, un tas ir par to. 442 00:22:15,519 --> 00:22:17,060 Ir daži citi mīļotājs iezīmes. 443 00:22:17,060 --> 00:22:19,130 Dažas no tām ir tīri estētiska vai akustisko, 444 00:22:19,130 --> 00:22:20,964 tāpat skaņām es tikko spēlēja ar. 445 00:22:20,964 --> 00:22:23,380 Bet lielākā daļa, jūs ir šajā valodu, nulles, 446 00:22:23,380 --> 00:22:25,350 visas pamata celtniecības bloki, kas jums 447 00:22:25,350 --> 00:22:29,280 ir C, Java, JavaScript, PHP, Ruby, Python, 448 00:22:29,280 --> 00:22:32,960 un jebkādu skaitu citās valodās. 449 00:22:32,960 --> 00:22:36,720 Visus jautājumus par nulles? 450 00:22:36,720 --> 00:22:37,220 Viss kārtībā. 451 00:22:37,220 --> 00:22:40,303 Tāpēc mēs ne dziļāk nirt līdz nulles, ja jūs esat laipni šīs nedēļas nogalē, 452 00:22:40,303 --> 00:22:42,860 it īpaši, ja jums ir bērni vai nieces un brāļa un tādi, 453 00:22:42,860 --> 00:22:44,220 iepazīstināt viņus ar nulles. 454 00:22:44,220 --> 00:22:47,960 Tas ir tiešām lieliski jautrs vide ar, jo tā autori saka, 455 00:22:47,960 --> 00:22:49,120 ļoti augstie griesti. 456 00:22:49,120 --> 00:22:51,670 Pat ja mēs sākām ar ļoti zema līmeņa detaļas, 457 00:22:51,670 --> 00:22:54,890 jūs tiešām var izdarīt diezgan daudz ar to, un tas, iespējams, 458 00:22:54,890 --> 00:22:57,360 demonstrēšana tieši tā. 459 00:22:57,360 --> 00:23:02,920 >> Bet pieņemsim tagad pāriet uz kādu vairāk sarežģītas problēmas, ja jūs, 460 00:23:02,920 --> 00:23:05,870 pazīstams kā "meklēšana" un "Šķirošanas," kopumā. 461 00:23:05,870 --> 00:23:09,500 Mums bija šis tālrunis grāmata earlier-- šeit vēl viena tikai discussion-- 462 00:23:09,500 --> 00:23:13,460 ka mēs varējām meklēt efektīvāk, jo 463 00:23:13,460 --> 00:23:15,270 par būtisku pieņēmumu. 464 00:23:15,270 --> 00:23:17,655 Un tikai, lai būtu skaidrs, ko pieņēmums bija I padarot 465 00:23:17,655 --> 00:23:19,280 ja meklē, izmantojot šo tālruņa grāmatu? 466 00:23:19,280 --> 00:23:23,342 467 00:23:23,342 --> 00:23:25,300 Tas Mike Smith bija tālrunis grāmatu, lai gan I 468 00:23:25,300 --> 00:23:27,410 varētu rīkoties scenārijs bez viņa 469 00:23:27,410 --> 00:23:30,720 tur, ja es vienkārši apstājās priekšlaicīgi. 470 00:23:30,720 --> 00:23:31,806 Grāmata ir alfabēta. 471 00:23:31,806 --> 00:23:33,930 Un tas ir ļoti dāsna pieņēmums, jo tas 472 00:23:33,930 --> 00:23:36,580 nozīmē someone-- es esmu veida griešanas stūri, 473 00:23:36,580 --> 00:23:40,580 piemēram, es esmu ātrāk, jo kādam cits darīja daudz smaga darba par mani. 474 00:23:40,580 --> 00:23:43,120 >> Bet ko tad, ja tālrunis Grāmata tika Nesašķirotas? 475 00:23:43,120 --> 00:23:47,050 Varbūt Verizon got slinks, vienkārši izmeta ikviena vārdi un numuri, kas tur 476 00:23:47,050 --> 00:23:50,120 varbūt tādā secībā, kādā tie pierakstījies tālruņa pakalpojums. 477 00:23:50,120 --> 00:23:54,570 Un cik daudz laika tas mani atrast kādu, piemēram, Mike Smith? 478 00:23:54,570 --> 00:23:58,160 1,000 lapa tālrunis book-- cik lapas man ir skatīties cauri? 479 00:23:58,160 --> 00:23:58,905 >> Visus. 480 00:23:58,905 --> 00:24:00,030 Jūs esat veida no luck. 481 00:24:00,030 --> 00:24:03,420 Jūs burtiski ir jāskatās uz katru lapa, ja tālrunis grāmata ir tikai 482 00:24:03,420 --> 00:24:04,450 nejauši sakārtoti. 483 00:24:04,450 --> 00:24:06,910 Jūs varētu saņemt laimīgs un atrast Mike par pašu pirmo lapu, jo viņš 484 00:24:06,910 --> 00:24:08,826 bija pirmais klients pasūtīt tālruņa pakalpojums. 485 00:24:08,826 --> 00:24:10,760 Bet viņš varētu būt pēdējais, too. 486 00:24:10,760 --> 00:24:12,500 >> Tātad izlases rīkojums nav labs. 487 00:24:12,500 --> 00:24:16,750 Tātad pieņemsim, ka mums ir sakārtot tālruņu grāmatu vai vispār kārtošanas datiem 488 00:24:16,750 --> 00:24:18,520 ka mēs esam dota. 489 00:24:18,520 --> 00:24:19,440 Kā mēs varam darīt? 490 00:24:19,440 --> 00:24:21,360 >> Nu, ļaujiet man tikai mēģināt vienkāršs piemērs šeit. 491 00:24:21,360 --> 00:24:24,290 Ļaujiet man iet uz priekšu un mētāt daži skaitļi uz kuģa. 492 00:24:24,290 --> 00:24:35,480 Pieņemsim, ciparus mums ir, ir, teiksim, četri, divi, viens, un trīs. 493 00:24:35,480 --> 00:24:38,390 Un, Ben, kārtot šos skaitļus par mums. 494 00:24:38,390 --> 00:24:39,017 >> Labi. 495 00:24:39,017 --> 00:24:39,850 Kā tu to izdarīji? 496 00:24:39,850 --> 00:24:42,731 497 00:24:42,731 --> 00:24:43,230 Viss kārtībā. 498 00:24:43,230 --> 00:24:44,710 Tātad, sākt ar mazāko vērtība un augstākais, 499 00:24:44,710 --> 00:24:46,084 un tas ir patiešām labs intuīcija. 500 00:24:46,084 --> 00:24:48,080 Un saprast, ka mēs cilvēki ir faktiski diezgan 501 00:24:48,080 --> 00:24:49,913 labi problēmu risināšana piemēram, tas, vismaz 502 00:24:49,913 --> 00:24:51,810 kad dati ir salīdzinoši neliels. 503 00:24:51,810 --> 00:24:54,860 Tiklīdz jūs sākat ir simtiem skaitļu, tūkstošiem numuru, 504 00:24:54,860 --> 00:24:58,440 miljoniem numuru, Ben iespējams nevar darīt to gluži tik ātri, 505 00:24:58,440 --> 00:25:00,620 pieņemot, ka tur bija nepilnības numuriem. 506 00:25:00,620 --> 00:25:03,450 Diezgan viegli saskaitīt uz miljonu pretējā gadījumā, tikai laikietilpīga. 507 00:25:03,450 --> 00:25:07,150 >> Tātad algoritms izklausās tāpat Ben izmanto tikai tagad 508 00:25:07,150 --> 00:25:08,930 bija meklēt mazāko numuru. 509 00:25:08,930 --> 00:25:12,900 Tātad, pat ja mēs cilvēkiem varam veikt ir daudz informācijas vizuāli, 510 00:25:12,900 --> 00:25:14,830 dators ir faktiski nedaudz vairāk ierobežota. 511 00:25:14,830 --> 00:25:17,560 Dators var tikai apskatīt vienu baits laikā 512 00:25:17,560 --> 00:25:20,770 vai varbūt četri baiti at a LAIKU_ šajās dienās varbūt 8 baiti at a LAIKU_ 513 00:25:20,770 --> 00:25:24,450 bet ļoti neliels skaits baitu noteiktā laikā. 514 00:25:24,450 --> 00:25:28,480 >> Tāpēc, ka mums tiešām ir četras atsevišķas vērtības here-- 515 00:25:28,480 --> 00:25:32,440 un jūs varat iedomāties Ben kā ar acu aizsegi uz ja viņš būtu dators, piemēram 516 00:25:32,440 --> 00:25:36,450 ka viņš nevar redzēt neko citu nekā vienu numuru pie LAIKU_ 517 00:25:36,450 --> 00:25:39,720 tāpēc mēs parasti pieņemam, tāpat kā Angļu, mēs lasīt no labās uz kreiso. 518 00:25:39,720 --> 00:25:42,870 Tātad pirmais numurs Ben iespējams izskatījās at bija četri, un tad ļoti ātri 519 00:25:42,870 --> 00:25:44,770 sapratu, ka ir diezgan liels number-- ļaujiet man glabāt meklējat. 520 00:25:44,770 --> 00:25:45,357 >> Tur ir divi. 521 00:25:45,357 --> 00:25:45,940 Uzgaidi minūti. 522 00:25:45,940 --> 00:25:47,070 Divi ir mazāks nekā četri. 523 00:25:47,070 --> 00:25:47,986 Es esmu gatavojas atcerēties. 524 00:25:47,986 --> 00:25:49,070 Divi šobrīd ir mazākais. 525 00:25:49,070 --> 00:25:50,417 Tagad one-- tas ir pat labāk. 526 00:25:50,417 --> 00:25:51,250 Tas ir vēl mazāka. 527 00:25:51,250 --> 00:25:54,000 Es esmu gatavojas aizmirst par divām un tikai atcerieties vienu tagad. 528 00:25:54,000 --> 00:25:56,550 >> Un viņš varēja apstāties meklē? 529 00:25:56,550 --> 00:25:58,360 Nu, viņš varēja balstīta uz šo informāciju, 530 00:25:58,360 --> 00:26:00,477 bet viņš labāk meklēšanu pārējā saraksta. 531 00:26:00,477 --> 00:26:02,060 Jo ko tad, ja nulles bija sarakstā? 532 00:26:02,060 --> 00:26:03,643 Ko darīt, ja negatīvs viens bija sarakstā? 533 00:26:03,643 --> 00:26:07,720 Viņš tikai zina, ka viņa atbildi ir pareiza, ja viņš ir izsmeļoši 534 00:26:07,720 --> 00:26:08,729 pārbauda visu sarakstu. 535 00:26:08,729 --> 00:26:10,020 Tātad mēs skatāmies uz pārējo šo. 536 00:26:10,020 --> 00:26:11,394 Three-- tas bija laika izšķiešana. 537 00:26:11,394 --> 00:26:13,540 Got nelaimīgs, bet es biju vēl pareizi to darīt. 538 00:26:13,540 --> 00:26:17,857 Un tāpēc tagad viņš, iespējams, izvēlēts mazākais skaits 539 00:26:17,857 --> 00:26:20,440 un vienkārši ielieciet to sākumā no saraksta, jo es darīšu šeit. 540 00:26:20,440 --> 00:26:23,480 Tagad to, ko jūs darīt tālāk, lai gan Jums nav jādomā par to gandrīz 541 00:26:23,480 --> 00:26:25,962 tādā mērā? 542 00:26:25,962 --> 00:26:27,670 Atkārtojiet šo procesu, tāpēc daži veida cilpu. 543 00:26:27,670 --> 00:26:28,920 Tur ir pazīstams ideja. 544 00:26:28,920 --> 00:26:30,860 Tātad, šeit ir četri. 545 00:26:30,860 --> 00:26:32,110 Pašlaik tas ir mazākais. 546 00:26:32,110 --> 00:26:33,220 Tas ir kandidāts. 547 00:26:33,220 --> 00:26:33,900 Vairs nē. 548 00:26:33,900 --> 00:26:34,770 Tagad es esmu redzējis divus. 549 00:26:34,770 --> 00:26:36,630 Tas ir nākamais mazākais elements. 550 00:26:36,630 --> 00:26:40,800 Three-- tas nav mazāks, tāpēc Tagad Ben var raut ārā divas. 551 00:26:40,800 --> 00:26:44,510 >> Un tagad mēs atkārtojiet procesu, un protams trīs izpaužas izvilka nākamo. 552 00:26:44,510 --> 00:26:45,420 Atkārtojiet procesu. 553 00:26:45,420 --> 00:26:46,990 Četri izpaužas velk ārā. 554 00:26:46,990 --> 00:26:50,140 Un tagad mēs esam ārā no skaitļiem, tādēļ saraksts ir sakārtots. 555 00:26:50,140 --> 00:26:51,960 >> Un tiešām, tas ir formāls algoritms. 556 00:26:51,960 --> 00:26:56,610 Dators zinātnieks būtu aicinu šo "atlases veida," 557 00:26:56,610 --> 00:27:00,880 ideja ir sava uzskaitīt iteratively-- atkal 558 00:27:00,880 --> 00:27:03,807 un atkal un atkal izvēloties mazākais skaits. 559 00:27:03,807 --> 00:27:06,140 Un, kas ir jauki, par to ir tas ir tikai tik darn intuitīvs. 560 00:27:06,140 --> 00:27:07,470 Tas ir tik vienkārši. 561 00:27:07,470 --> 00:27:11,100 Un jūs varat atkārtot to pašu darbība atkal un atkal. 562 00:27:11,100 --> 00:27:12,150 Tas ir vienkārši. 563 00:27:12,150 --> 00:27:17,170 >> Šajā gadījumā tā bija ātri, bet cik ilgi tas tiešām ņemt? 564 00:27:17,170 --> 00:27:19,880 Padarīsim to, šķiet, un justies mazliet vairāk garlaicīgs. 565 00:27:19,880 --> 00:27:24,150 Tātad, viens, divi, trīs, četri, pieci seši, septiņi, astoņi, deviņi, 10, 11, 12, 13, 14, 566 00:27:24,150 --> 00:27:26,160 15, 16-- jebkuram skaitam. 567 00:27:26,160 --> 00:27:28,780 Es tikai gribēju vēl šo laiks nekā tikai četri. 568 00:27:28,780 --> 00:27:30,780 Tātad, ja es esam ieguvuši visu ķekars numuriem now-- to 569 00:27:30,780 --> 00:27:32,420 nav pat svarīgi ko viņi are-- pieņemsim 570 00:27:32,420 --> 00:27:34,380 domāju par to, ko tas algoritms tiešām ir līdzīgi. 571 00:27:34,380 --> 00:27:35,857 >> Pieņemsim, ka skaitļi tur. 572 00:27:35,857 --> 00:27:38,190 Atkal, nav svarīgi, ko viņi ir, bet viņi nejauši. 573 00:27:38,190 --> 00:27:39,679 Es esmu piemērojot Ben algoritmu. 574 00:27:39,679 --> 00:27:41,220 Man vajag, lai izvēlētos mazāko numuru. 575 00:27:41,220 --> 00:27:41,761 Ko man darīt? 576 00:27:41,761 --> 00:27:44,240 Un es esmu gatavojas fiziski darīt to šoreiz rīkoties to ārā. 577 00:27:44,240 --> 00:27:46,099 Looking, looking, looking, looking, looking. 578 00:27:46,099 --> 00:27:48,140 Tikai ar laiku es nokļūt beigām, sarakstu var 579 00:27:48,140 --> 00:27:51,230 Es saprotu, mazākais skaits bija divi šoreiz. 580 00:27:51,230 --> 00:27:52,720 Viens nav sarakstā. 581 00:27:52,720 --> 00:27:54,400 Tāpēc es nolikt divi. 582 00:27:54,400 --> 00:27:55,590 >> Ko man darīt tālāk? 583 00:27:55,590 --> 00:27:58,600 Looking, looking, looking, looking. 584 00:27:58,600 --> 00:28:02,250 Tagad es atradu numurs septiņi, jo tur ir nepilnības šajās numbers-- 585 00:28:02,250 --> 00:28:03,300 bet tikai patvaļīgi. 586 00:28:03,300 --> 00:28:03,800 Viss kārtībā. 587 00:28:03,800 --> 00:28:06,030 Tāpēc tagad es varu nolikt septiņi. 588 00:28:06,030 --> 00:28:08,860 Raugoties meklē, meklē. 589 00:28:08,860 --> 00:28:11,030 >> Tagad es esmu pieņemot, no Protams, ka Ben nav 590 00:28:11,030 --> 00:28:14,780 ir papildus RAM, extra atmiņa, jo, protams, 591 00:28:14,780 --> 00:28:16,080 Es skatos uz to pašu numuru. 592 00:28:16,080 --> 00:28:18,246 Protams, es varētu būt atcerējos visiem šiem numuriem, 593 00:28:18,246 --> 00:28:19,930 un tas ir absolūti patiess. 594 00:28:19,930 --> 00:28:22,610 Bet, ja Ben atceras visu no numuriem, viņš ir redzējis, 595 00:28:22,610 --> 00:28:24,430 viņš nav īsti veikts būtisks progress 596 00:28:24,430 --> 00:28:26,170 jo viņš jau ir spēja, lai meklētu 597 00:28:26,170 --> 00:28:27,540 cauri numuriem uz kuģa. 598 00:28:27,540 --> 00:28:29,373 Atceroties visi numuri nepalīdz, 599 00:28:29,373 --> 00:28:32,490 jo viņš vēl var kā dators tikai apskatīt, mēs esam teica, viens numurs 600 00:28:32,490 --> 00:28:33,080 laikā. 601 00:28:33,080 --> 00:28:35,760 Tāpēc nav sava veida apkrāptu tur, ka jūs varat sviras. 602 00:28:35,760 --> 00:28:39,170 >> Tātad patiesībā, jo es turpināt meklēšanu sarakstu, 603 00:28:39,170 --> 00:28:44,200 Es burtiski ir tikai glabāt iet un atpakaļ caur to, noplūkšanas out 604 00:28:44,200 --> 00:28:45,710 nākamais mazākais skaits. 605 00:28:45,710 --> 00:28:48,810 Un, kā jūs varat veida secināt no manas dumjš kustības, 606 00:28:48,810 --> 00:28:50,860 tas tikai kļūst ļoti garlaicīgs ļoti ātri, 607 00:28:50,860 --> 00:28:54,850 un man šķiet, iet atpakaļ un tālāk, un atpakaļ pavisam nedaudz. 608 00:28:54,850 --> 00:29:03,220 Tagad, lai būtu godīgi, man nav jāiet gluži kā, labi, pieņemsim see-- tā būtu godīga, 609 00:29:03,220 --> 00:29:06,310 Man nav staigāt diezgan jo daudzi soļi katru reizi. 610 00:29:06,310 --> 00:29:09,200 Jo, protams, kā es izvēlēties numurus no saraksta, 611 00:29:09,200 --> 00:29:11,860 atlikušais saraksts kļūst īsāks. 612 00:29:11,860 --> 00:29:14,240 >> Un tāpēc pieņemsim domāt par cik soļus es esmu patiešām 613 00:29:14,240 --> 00:29:16,010 traipsing caur katru reizi. 614 00:29:16,010 --> 00:29:18,950 Pašā pirmajā situācijā mums bija 16 numuri, 615 00:29:18,950 --> 00:29:22,210 un tā maximally-- pieņemsim tikai izdarīt par discussion-- 616 00:29:22,210 --> 00:29:25,640 Man nācās meklēt caur 16 numurus, lai atrastu vismazāko. 617 00:29:25,640 --> 00:29:28,420 Bet tad, kad es noplūktas out mazākais skaits, kā 618 00:29:28,420 --> 00:29:30,590 sen bija atlikušo sarakstu, protams? 619 00:29:30,590 --> 00:29:31,420 Tikai 15. 620 00:29:31,420 --> 00:29:34,670 Tik, cik skaitļu darīja Ben vai man ir meklēt, izmantojot otro reizi apkārt? 621 00:29:34,670 --> 00:29:36,832 15, vienkārši iet un atrast mazāko. 622 00:29:36,832 --> 00:29:39,540 Bet tagad, protams, saraksts, Arī, mazāks nekā tas bija agrāk. 623 00:29:39,540 --> 00:29:42,540 Tik cik soļus darīja I ir jāņem nākamreiz? 624 00:29:42,540 --> 00:29:49,970 14 un pēc tam 13 un pēc tam 12, plus dot, dot, dot, kamēr es esmu palicis tikai ar vienu. 625 00:29:49,970 --> 00:29:53,146 Tāpēc tagad dators zinātnieks būtu jautāt, labi, ko dara, ka visi vienlīdzīgi? 626 00:29:53,146 --> 00:29:55,770 Tas faktiski ir vienāds ar kādu konkrētu numurs, kas mēs varētu noteikti 627 00:29:55,770 --> 00:30:00,490 do aritmētiski, bet mēs gribam runāt par efektivitāti algoritmu 628 00:30:00,490 --> 00:30:04,940 vairāk formulaically maz, neatkarīgi no cik ilgi saraksts ir. 629 00:30:04,940 --> 00:30:06,240 >> Un, lai jūs zināt, ko? 630 00:30:06,240 --> 00:30:09,860 Tas ir 16, bet, piemēram, es teicu iepriekš, pieņemsim tikai zvanīt izmēru problēmas 631 00:30:09,860 --> 00:30:10,970 n, kur n ir daži numurs. 632 00:30:10,970 --> 00:30:13,220 Varbūt tas ir 16, varbūt tā ir trīs, varbūt tas ir miljons. 633 00:30:13,220 --> 00:30:13,761 Es nezinu. 634 00:30:13,761 --> 00:30:14,390 Man vienalga. 635 00:30:14,390 --> 00:30:16,520 Ko es tiešām gribu ir formula, kas es varu 636 00:30:16,520 --> 00:30:19,420 izmantot, lai salīdzinātu šo algoritmu pret citiem algoritmiem 637 00:30:19,420 --> 00:30:22,350 ka kāds varētu apgalvot ir labāk vai sliktāk. 638 00:30:22,350 --> 00:30:25,430 >> Tātad izrādās, un tikai es zinām no pakāpē skolā, 639 00:30:25,430 --> 00:30:34,790 ka tas faktiski darbojas, lai pats lieta kā n pār n plus viens pa diviem. 640 00:30:34,790 --> 00:30:40,020 Un tas notiek ar vienāds, no Protams, n brusas plus n pa diviem. 641 00:30:40,020 --> 00:30:43,250 Tātad, ja es gribēju formulu uz cik soļiem 642 00:30:43,250 --> 00:30:46,330 tika iesaistīti meklē vispār no šiem numuriem atkal un atkal 643 00:30:46,330 --> 00:30:52,681 un atkal un atkal, es teiktu tas n brusas plus n pa diviem. 644 00:30:52,681 --> 00:30:53,430 Bet jūs zināt, ko? 645 00:30:53,430 --> 00:30:54,500 Tas tikai izskatās netīrs. 646 00:30:54,500 --> 00:30:56,470 Es tikai tiešām gribu vispārējā sajūta lietām. 647 00:30:56,470 --> 00:30:58,810 Un jūs varētu atgādināt no vidusskola, ka 648 00:30:58,810 --> 00:31:00,660 ir jēdziens augstāko pasūtījuma termiņā. 649 00:31:00,660 --> 00:31:05,300 Kurš no šiem noteikumiem, tad n brusas, N, vai pusi, 650 00:31:05,300 --> 00:31:07,550 ir vislielākā ietekme laika gaitā? 651 00:31:07,550 --> 00:31:11,920 Jo lielāks n izpaužas, kas no šiem jautājumiem visvairāk? 652 00:31:11,920 --> 00:31:15,560 >> Citiem vārdiem sakot, ja es plug no miljona, n kvadrātā 653 00:31:15,560 --> 00:31:17,900 būs, visticamāk, dominējošais faktors, 654 00:31:17,900 --> 00:31:21,670 jo miljons reižu pati par sevi ir daudz lielāks 655 00:31:21,670 --> 00:31:23,682 nekā plus vienu papildu miljoni. 656 00:31:23,682 --> 00:31:24,390 Tātad, jūs zināt, ko? 657 00:31:24,390 --> 00:31:27,305 Tas ir tik darn liels numurs, ja jūs kvadrātveida numuru. 658 00:31:27,305 --> 00:31:28,430 Tas nav īsti jautājums. 659 00:31:28,430 --> 00:31:30,596 Mēs esam tikai gatavojas šķērsot ārā un aizmirst par to. 660 00:31:30,596 --> 00:31:34,250 Un tā dators zinātnieks teiktu ka efektivitāte šajā algoritma 661 00:31:34,250 --> 00:31:37,850 ir par kārtību n squared-- Es domāju patiesi tuvināšanu. 662 00:31:37,850 --> 00:31:40,810 Tā ir sava veida rupji n brusas. 663 00:31:40,810 --> 00:31:44,130 Laika gaitā, jo lielāka un lielāka n izpaužas, šis 664 00:31:44,130 --> 00:31:47,610 ir labs novērtējums par to, ko efektivitāte vai trūkums efektivitātes 665 00:31:47,610 --> 00:31:49,400 Šī algoritma patiesībā ir. 666 00:31:49,400 --> 00:31:52,040 Un es iegūtu, ka, protams, no faktiski dara math. 667 00:31:52,040 --> 00:31:54,040 Bet tagad es esmu tikai vicināšanu manas rokas, jo es tikko 668 00:31:54,040 --> 00:31:55,790 vēlas vispārēju sajūtu šo algoritmu. 669 00:31:55,790 --> 00:31:58,850 >> Tātad, izmantojot to pašu loģiku, tikmēr, pieņemsim apsvērt citu algoritmu 670 00:31:58,850 --> 00:32:01,162 mēs jau izskatījās at-- lineāru meklēšanu. 671 00:32:01,162 --> 00:32:02,870 Kad man bija meklējot par tālruni book-- 672 00:32:02,870 --> 00:32:05,980 ne šķirošanu to, meklējot pa tālruni book-- 673 00:32:05,980 --> 00:32:09,197 mēs tur saka, ka tas bija 1000 pakāpieni, vai 500 pakāpieni. 674 00:32:09,197 --> 00:32:10,280 Bet pieņemsim vispārināt to. 675 00:32:10,280 --> 00:32:12,860 Ja tur ir n lapas tālrunis grāmatu, kas ir 676 00:32:12,860 --> 00:32:17,250 darbības laiks vai efektivitāte lineāro meklēt? 677 00:32:17,250 --> 00:32:19,750 Tas ir par kārtību cik soļus, lai atrastu 678 00:32:19,750 --> 00:32:24,210 Mike Smith izmantojot lineāro meklēšanu, tad Pirmais algoritms, vai pat otrais? 679 00:32:24,210 --> 00:32:27,240 680 00:32:27,240 --> 00:32:31,710 >> Sliktākajā gadījumā, Mike ir beigās grāmatas. 681 00:32:31,710 --> 00:32:35,590 Tātad, ja tālrunis grāmata ir 1000 lappuses, mēs teicām pēdējo reizi, sliktākajā gadījumā, 682 00:32:35,590 --> 00:32:38,380 tas var aizņemt aptuveni cik daudzas lapas, lai atrastu Mike? 683 00:32:38,380 --> 00:32:38,990 Tāpat 1000. 684 00:32:38,990 --> 00:32:39,830 Tas augšējo robežu. 685 00:32:39,830 --> 00:32:41,790 Tas ir iespējams, vissliktākā situācija. 686 00:32:41,790 --> 00:32:44,410 Bet atkal, mēs esam pārvietojas prom no skaitļiem, piemēram, 1000 tagad. 687 00:32:44,410 --> 00:32:45,730 Tas ir tikai n. 688 00:32:45,730 --> 00:32:47,470 >> Tātad, kas ir loģisks secinājums? 689 00:32:47,470 --> 00:32:50,210 Meklējot Mike ar tālruni Grāmata, kas ir n lapas 690 00:32:50,210 --> 00:32:55,280 varētu veikt, jo ļoti sliktākajā gadījumā, cik soļus par kārtību n? 691 00:32:55,280 --> 00:32:58,110 Un tiešām dators zinātnieks teiktu 692 00:32:58,110 --> 00:33:02,340 ka braukšanas laikā, vai sniegumu vai efektivitāte 693 00:33:02,340 --> 00:33:07,470 vai neefektivitāti, par algoritmu, piemēram, lineāra meklēšanu ir kārtībā no n. 694 00:33:07,470 --> 00:33:10,010 Un mēs varam piemērot vienādi loģika šķērsojot kaut ko 695 00:33:10,010 --> 00:33:13,170 kā es tikko darīju uz otro algoritms mums bija ar tālruņa grāmatu, 696 00:33:13,170 --> 00:33:16,040 kur mēs devāmies divas lapas vienlaikus. 697 00:33:16,040 --> 00:33:20,120 >> Tātad 1000 lapa tālruņu grāmata varētu mūs 500 lapa pagriezienus, plus viens 698 00:33:20,120 --> 00:33:21,910 ja mēs dubultā atpakaļ mazliet. 699 00:33:21,910 --> 00:33:26,590 Tātad, ja tālrunis grāmata ir n lapas, bet mēs darām divas lapas vienlaicīgi, 700 00:33:26,590 --> 00:33:28,900 tas ir aptuveni, ko? 701 00:33:28,900 --> 00:33:33,190 N virs diviem, tā ka ir kā n pār diviem. 702 00:33:33,190 --> 00:33:38,490 Bet es sniedza pieprasīt pirms brīža ka n pār two-- 703 00:33:38,490 --> 00:33:41,060 tas ir sava veida tāds pats kā tikai n. 704 00:33:41,060 --> 00:33:44,050 Tas ir tikai nemainīgs faktors, datorzinātnieku teiktu. 705 00:33:44,050 --> 00:33:45,970 Pieņemsim tikai koncentrēties uz mainīgie lielumi, really-- 706 00:33:45,970 --> 00:33:47,780 lielākais mainīgie vienādojumu. 707 00:33:47,780 --> 00:33:52,530 >> Tātad lineārā meklēt, vai izdarīt vienu lapu laikā, vai divas lappuses tādā laikā, 708 00:33:52,530 --> 00:33:54,810 ir sava veida būtībā ir tas pats. 709 00:33:54,810 --> 00:33:56,880 Tas joprojām ir par kārtību n. 710 00:33:56,880 --> 00:34:01,930 Bet es pieprasīja ar manu attēlu agrāk ka trešais algoritms nebija 711 00:34:01,930 --> 00:34:02,480 lineārs. 712 00:34:02,480 --> 00:34:03,605 Tas nebija taisna līnija. 713 00:34:03,605 --> 00:34:08,659 Tas bija, ka izliekta līnija, kā arī algebriskā formula tur bija tas, ko? 714 00:34:08,659 --> 00:34:11,812 Log N- tā log n bāzi divi. 715 00:34:11,812 --> 00:34:14,520 Un mums nav iedziļināties pārāk daudz sīkāk par logaritmu šodien, 716 00:34:14,520 --> 00:34:17,394 bet lielākā daļa datoru zinātnieki nebūtu pat pateikt, kāda bāze ir. 717 00:34:17,394 --> 00:34:20,639 Jo tas viss ir tikai konstante faktori, tā sakot, 718 00:34:20,639 --> 00:34:22,659 tikai nelielas ciparu atšķirības. 719 00:34:22,659 --> 00:34:31,179 Un tā tas būtu ļoti bieži veids, īpaši formālās datoru 720 00:34:31,179 --> 00:34:33,949 zinātnieki kuģa vai programmētāji pie baltā tāfele 721 00:34:33,949 --> 00:34:36,889 faktiski apgalvojot kas algoritms viņi varētu izmantot 722 00:34:36,889 --> 00:34:39,500 vai kāds efektivitāte par to algoritms ir. 723 00:34:39,500 --> 00:34:42,960 >> Un tas ne vienmēr ir kaut kas jūs apspriest jebkurā detalizēti, 724 00:34:42,960 --> 00:34:47,889 bet labs programmētājs ir kāds, kas ir ciets, oficiālu fona. 725 00:34:47,889 --> 00:34:50,120 Viņš ir spējīgs runāt Jums šāda veida veidā 726 00:34:50,120 --> 00:34:53,350 un faktiski padara kvalitatīvi argumenti par 727 00:34:53,350 --> 00:34:56,870 kāpēc viens algoritms vai viens gabals programmatūru 728 00:34:56,870 --> 00:35:00,165 ir pārāka kaut kādā veidā uz citu. 729 00:35:00,165 --> 00:35:02,540 Tāpēc, ka jūs varētu noteikti ieskriet viena cilvēka programmu 730 00:35:02,540 --> 00:35:04,980 un saskaitīt sekundes kas nepieciešams, lai kārtotu dažus numurus, 731 00:35:04,980 --> 00:35:06,710 un jūs varat palaist kādu otras personas programma 732 00:35:06,710 --> 00:35:08,418 un saskaitīt Sekunžu tas aizņem. 733 00:35:08,418 --> 00:35:12,840 Bet tas ir vispārīgāks tā, ka Jūs varat izmantot, lai analizētu algoritmus, 734 00:35:12,840 --> 00:35:15,520 ja jūs, vienkārši uz papīra vai tikai mutiski. 735 00:35:15,520 --> 00:35:18,430 Bez pat rādīt to, bez pat mēģina izlases ieejas, 736 00:35:18,430 --> 00:35:20,180 Jūs varat vienkārši iemesls caur to. 737 00:35:20,180 --> 00:35:24,670 Un tā ar nomu attīstītājs vai ja kam viņam vai viņai veida apgalvo, lai jums 738 00:35:24,670 --> 00:35:28,460 kāpēc to algoritmu, viņu noslēpums mērce meklēšanai miljardiem 739 00:35:28,460 --> 00:35:30,580 web lapas savam Uzņēmums ir labāk, šie 740 00:35:30,580 --> 00:35:33,302 ir par argumentu veidus tie ideāli būtu iespēja izdarīt. 741 00:35:33,302 --> 00:35:35,010 Vai vismaz tie ir veidu lietas 742 00:35:35,010 --> 00:35:40,211 kas nāks klajā diskusijā, at Vismaz ļoti formālu diskusiju. 743 00:35:40,211 --> 00:35:40,710 Viss kārtībā. 744 00:35:40,710 --> 00:35:44,400 Tātad Ben ierosināja kaut ko sauc izvēle kārtošanas. 745 00:35:44,400 --> 00:35:48,200 Bet es esmu gatavojas ierosināt, ka tur ir citi veidi, kā to izdarīt, too. 746 00:35:48,200 --> 00:35:50,400 Ko man nav tiešām patīk par Bena algoritmu 747 00:35:50,400 --> 00:35:54,400 ir tas, ka viņš tur kājām, vai kam man iet, un atpakaļ 748 00:35:54,400 --> 00:35:56,930 un uz priekšu un atpakaļ un uz priekšu un atpakaļ. 749 00:35:56,930 --> 00:36:04,130 Ko darīt, ja tā vietā, es būtu darīt kaut kas līdzīgs šiem skaitļiem šeit 750 00:36:04,130 --> 00:36:08,200 un man bija tikai nodarbojas ar katru skaits, savukārt, kā es esmu izdarījusi? 751 00:36:08,200 --> 00:36:10,780 >> Citiem vārdiem sakot, šeit ir mans saraksts numuru. 752 00:36:10,780 --> 00:36:12,944 Četri, viens, trīs, divi. 753 00:36:12,944 --> 00:36:14,360 Un es esmu gatavojas darīt turpmāk. 754 00:36:14,360 --> 00:36:17,230 Es esmu gatavojas ievietot numurus kur tie pieder drīzāk 755 00:36:17,230 --> 00:36:18,980 nekā izvēloties tos pa vienam. 756 00:36:18,980 --> 00:36:20,820 Citiem vārdiem sakot, šeit ir numurs četri. 757 00:36:20,820 --> 00:36:22,430 >> Te ir mana sākotnējā sarakstā. 758 00:36:22,430 --> 00:36:25,290 Un es esmu gatavojas, lai saglabātu būtībā jaunu sarakstu šeit. 759 00:36:25,290 --> 00:36:26,710 Tātad tas ir vecais saraksts. 760 00:36:26,710 --> 00:36:28,560 Tas ir jauns saraksts. 761 00:36:28,560 --> 00:36:30,220 Es redzu skaits četri pirmās. 762 00:36:30,220 --> 00:36:34,500 Mans jaunais saraksts ir sākotnēji tukšs, tāpēc tas ir trivially gadījums 763 00:36:34,500 --> 00:36:36,410 ka četri tagad asorti sarakstu. 764 00:36:36,410 --> 00:36:39,560 Es esmu tikai ņemot skaitu es esmu dota, un es varēšu to manā jaunajā sarakstā. 765 00:36:39,560 --> 00:36:41,460 >> Vai šis jaunais saraksts sakārtots? 766 00:36:41,460 --> 00:36:41,990 Jā. 767 00:36:41,990 --> 00:36:45,090 Tas ir muļķīgi, jo tur ir tikai viens elements, bet tas ir absolūti sakārtoti. 768 00:36:45,090 --> 00:36:46,390 Nav nekas nevietā. 769 00:36:46,390 --> 00:36:49,290 Tas ir daudz interesantāk, šis algoritms, kad es pāriet uz nākamo soli. 770 00:36:49,290 --> 00:36:50,550 >> Tagad man ir viens. 771 00:36:50,550 --> 00:36:55,430 Tātad viena, protams, pieder pie sākumā vai beigās šī jaunā saraksta? 772 00:36:55,430 --> 00:36:56,360 Sākums. 773 00:36:56,360 --> 00:36:58,530 Tāpēc man ir darīt kādu darbu tagad. 774 00:36:58,530 --> 00:37:01,410 Esmu bijis ņemot daži brīvību ar manu marķieri 775 00:37:01,410 --> 00:37:03,120 , tikai zīmēšanas lietas kur es gribu viņus, 776 00:37:03,120 --> 00:37:05,320 bet tas nav īsti precīzs datorā. 777 00:37:05,320 --> 00:37:08,530 Dators, kā mēs zinām, ir RAM vai Random Access Memory, 778 00:37:08,530 --> 00:37:12,411 un tas ir viens baits un citu baitu un citu baitu. 779 00:37:12,411 --> 00:37:14,910 Un, ja jums ir gigabaita RAM, jums ir miljards baitu, 780 00:37:14,910 --> 00:37:16,680 bet viņi fiziski vienā vietā. 781 00:37:16,680 --> 00:37:19,540 Jūs varat ne tikai pārvietot sīkumi apkārt vēršot to uz kuģa 782 00:37:19,540 --> 00:37:20,750 kur vien tu vēlies. 783 00:37:20,750 --> 00:37:24,090 Tātad, ja mans jaunais saraksts ir četras vietas atmiņā, 784 00:37:24,090 --> 00:37:27,480 diemžēl četri ir jau nepareizā vietā. 785 00:37:27,480 --> 00:37:30,410 >> Tātad, lai ievietotu numuru viens Es nevaru vienkārši izdarīt to šeit. 786 00:37:30,410 --> 00:37:31,901 Šī vieta atmiņā neeksistē. 787 00:37:31,901 --> 00:37:35,150 Tas būtu krāpšanos, un man ir bijis krāpšanos gleznieciski uz dažām minūtēm 788 00:37:35,150 --> 00:37:35,800 šeit. 789 00:37:35,800 --> 00:37:40,950 Tik tiešām, ja es gribu, lai vienu šeit, Man ir uz laiku kopēt četri 790 00:37:40,950 --> 00:37:43,030 un tad ielieciet vienu tur. 791 00:37:43,030 --> 00:37:45,500 >> Tas ir jauki, ka ir pareizi, tas ir tehniski iespējams, 792 00:37:45,500 --> 00:37:48,410 bet saprotu, ka ir papildu darbs. 793 00:37:48,410 --> 00:37:50,460 Es neesmu vienkārši ielieciet numuru vietā. 794 00:37:50,460 --> 00:37:53,026 Es pirmo reizi nācās pārcelties numurs, tad ielieciet to vietā, 795 00:37:53,026 --> 00:37:54,650 tāpēc es veida dubultojies manu darba apjomu. 796 00:37:54,650 --> 00:37:55,660 Lai saglabātu, ka prātā. 797 00:37:55,660 --> 00:37:57,120 >> Bet es esmu tagad darīts ar šo elementu. 798 00:37:57,120 --> 00:37:59,056 Tagad es gribu, lai greifers numuru trīs. 799 00:37:59,056 --> 00:38:00,430 Kur, protams, tas pieder? 800 00:38:00,430 --> 00:38:01,480 Starp. 801 00:38:01,480 --> 00:38:03,650 Es nevaru pievilt vairs un vienkārši ielieciet to tur, 802 00:38:03,650 --> 00:38:06,770 jo, atkal, šī atmiņa ir fiziskās atrašanās vietas. 803 00:38:06,770 --> 00:38:10,900 Tāpēc man ir kopēt četriem un nodot trīs vairāk nekā šeit. 804 00:38:10,900 --> 00:38:11,550 Nav liels darījumu. 805 00:38:11,550 --> 00:38:14,610 Tas ir tikai viens papildu solis again-- jūtas ļoti lēti. 806 00:38:14,610 --> 00:38:16,445 >> Bet tagad es pāriet uz diviem. 807 00:38:16,445 --> 00:38:17,820 Abi, protams, pieder šeit. 808 00:38:17,820 --> 00:38:20,990 Tagad jūs sākat redzēt, kā darbu var uzkrāt. 809 00:38:20,990 --> 00:38:23,520 Tagad to, kas man ir jādara? 810 00:38:23,520 --> 00:38:28,570 Jā, man ir, lai pārvietotu četri, Man tad ir kopēt trīs, 811 00:38:28,570 --> 00:38:31,200 un tagad es varu ievietot divas. 812 00:38:31,200 --> 00:38:34,460 Un loms ar šo algoritms, interesanti ir tas, 813 00:38:34,460 --> 00:38:41,050 ir tas, ka pieņemsim, mums ir vairāk ekstrēms gadījums, kad tas ir teiksim astoņi, septiņi, 814 00:38:41,050 --> 00:38:45,150 seši, pieci, četri, trīs, divi, viens. 815 00:38:45,150 --> 00:38:49,450 Tas ir, daudzos kontekstos, sliktākajā gadījumā, 816 00:38:49,450 --> 00:38:51,570 jo darn lieta ir burtiski atpakaļ. 817 00:38:51,570 --> 00:38:53,670 >> Tas nav īsti ietekmēt Ben algoritmu, 818 00:38:53,670 --> 00:38:55,940 jo Bena atlasē Kārtot viņš gatavojas glabāt 819 00:38:55,940 --> 00:38:58,359 iet uz priekšu un atpakaļ pa sarakstu. 820 00:38:58,359 --> 00:39:01,150 Un tāpēc, ka viņš vienmēr meklē cauri visai atlikušo sarakstā, 821 00:39:01,150 --> 00:39:02,858 tas nav svarīgi kur elementi ir. 822 00:39:02,858 --> 00:39:05,630 Bet šajā gadījumā ar manu ievietojot approach-- pamēģināsim šo. 823 00:39:05,630 --> 00:39:08,616 >> Tātad, viens, divi, trīs, četri, pieci, seši, septiņi, astoņi. 824 00:39:08,616 --> 00:39:11,630 Viens divi trīs četri, pieci, seši, septiņi, astoņi. 825 00:39:11,630 --> 00:39:14,320 Es esmu gatavojas pieņemt astoņiem, un kur es varu likt to? 826 00:39:14,320 --> 00:39:17,260 Nu, sākumā manu sarakstu, jo šis jaunais saraksts ir sakārtots. 827 00:39:17,260 --> 00:39:18,760 Un es šķērsot to ārā. 828 00:39:18,760 --> 00:39:20,551 >> Kur es varu nodot septiņi? 829 00:39:20,551 --> 00:39:21,050 Darn to. 830 00:39:21,050 --> 00:39:23,174 Tas nepieciešams, lai iet tur, tāpēc Man ir darīt kādu kopēšanu. 831 00:39:23,174 --> 00:39:26,820 832 00:39:26,820 --> 00:39:28,480 Un tagad septiņi iet šeit. 833 00:39:28,480 --> 00:39:29,860 Tagad es pāriet uz sešiem. 834 00:39:29,860 --> 00:39:30,980 Tagad tas ir vēl vairāk darba. 835 00:39:30,980 --> 00:39:32,570 >> Astoņi ir iet šeit. 836 00:39:32,570 --> 00:39:33,920 Seven ir iet šeit. 837 00:39:33,920 --> 00:39:35,450 Tagad seši varētu iet šeit. 838 00:39:35,450 --> 00:39:37,950 Tagad es greifers pieci. 839 00:39:37,950 --> 00:39:40,560 Tagad astoņi ir jāiet šeit, septiņi ir iet šeit, 840 00:39:40,560 --> 00:39:43,650 seši ir iet šeit, un tagad pieci un atkārtot. 841 00:39:43,650 --> 00:39:46,610 Un es esmu diezgan daudz pārvietojot to pastāvīgi. 842 00:39:46,610 --> 00:39:52,950 >> Tātad beigās, šis algorithm-- mēs ņemšu sauc to ievietošanas sort-- faktiski 843 00:39:52,950 --> 00:39:55,020 ir daudz darba, too. 844 00:39:55,020 --> 00:39:56,970 Tas ir tikai atšķirīgs veida darbu nekā Ben s. 845 00:39:56,970 --> 00:40:00,090 Bena darbs bija man iet uz priekšu un atpakaļ visu laiku, 846 00:40:00,090 --> 00:40:03,510 Izvēloties nākamais mazākais elements atkal un atkal. 847 00:40:03,510 --> 00:40:06,660 Tātad tas bija šī ļoti vizuāla veida darbu. 848 00:40:06,660 --> 00:40:10,600 >> Šī otra algoritmu, kas ir joprojām correct-- tas iegūs darbu done-- 849 00:40:10,600 --> 00:40:12,800 vienkārši maina darba apjomu. 850 00:40:12,800 --> 00:40:15,420 Izskatās, sākotnēji tu esi ietaupot, jo tu esi tikai 851 00:40:15,420 --> 00:40:19,190 nodarbojas ar katra elementa uzreiz bez kājām visu 852 00:40:19,190 --> 00:40:20,930 ceļu cauri sarakstam kā Ben bija. 853 00:40:20,930 --> 00:40:25,300 Bet problēma ir, it īpaši tās traki gadījumi, kad tas viss ir atpakaļ, 854 00:40:25,300 --> 00:40:27,830 Jūs esat tikko veida atliekot smago darbu 855 00:40:27,830 --> 00:40:30,360 kamēr jums ir noteikt savas kļūdas. 856 00:40:30,360 --> 00:40:33,919 >> Un tāpēc, ja jūs varat iedomāties šo astoņi un septiņi un seši un pieci 857 00:40:33,919 --> 00:40:36,710 un vēlāk četras un trīs un divi pārvietojas savu ceļu cauri sarakstam, 858 00:40:36,710 --> 00:40:39,060 mēs esam tikai mainījusies darba veids mēs darām. 859 00:40:39,060 --> 00:40:42,340 Tā vietā, darot to pie sākumā mana atkārtojuma, 860 00:40:42,340 --> 00:40:45,250 Es esmu tikai darot to pie beigām katra atkārtojuma. 861 00:40:45,250 --> 00:40:50,550 Tātad izrādās, ka šo algoritmu, Arī parasti sauc ievietošanas kārtošanas, 862 00:40:50,550 --> 00:40:52,190 ir arī par kārtību n brusas. 863 00:40:52,190 --> 00:40:56,480 Tas tiešām nav labāka, nav labāka vispār. 864 00:40:56,480 --> 00:41:00,810 >> Tomēr, tur ir trešā pieeja Es aicinu mūs apsvērt, 865 00:41:00,810 --> 00:41:02,970 kas ir šī. 866 00:41:02,970 --> 00:41:07,850 Tātad pieņemsim, ka manu sarakstu, vienkāršības labad atkal, ir četri, viens, trīs, 867 00:41:07,850 --> 00:41:11,080 two-- tikai četri numuri. 868 00:41:11,080 --> 00:41:13,300 Ben bija laba intuīcija, labs cilvēks intuīcija 869 00:41:13,300 --> 00:41:16,340 pirms, ar kuru mēs fiksētu visa uzskaitīt eventually-- ievietošanas veida. 870 00:41:16,340 --> 00:41:18,020 Es coaxed mums līdzi. 871 00:41:18,020 --> 00:41:22,530 Bet pieņemsim apsvērt Vienkāršākais veids, kā noteikt šo sarakstu. 872 00:41:22,530 --> 00:41:24,110 >> Šis saraksts nav sakārtots. 873 00:41:24,110 --> 00:41:26,130 Kāpēc? 874 00:41:26,130 --> 00:41:31,920 Angļu, paskaidrojiet, kāpēc tas nav reāli sakārtoti. 875 00:41:31,920 --> 00:41:33,400 Ko nozīmē nav sakārtoti? 876 00:41:33,400 --> 00:41:34,220 >> STUDENT: Tas nav secīgi. 877 00:41:34,220 --> 00:41:34,990 >> DAVID Malan: Nav secīgi. 878 00:41:34,990 --> 00:41:35,822 Dodiet man piemēru. 879 00:41:35,822 --> 00:41:37,180 >> STUDENT: Put tos kārtībā. 880 00:41:37,180 --> 00:41:37,440 >> DAVID Malan: OK. 881 00:41:37,440 --> 00:41:38,790 Dodiet man vairāk konkrētu piemēru. 882 00:41:38,790 --> 00:41:39,832 >> STUDENT: augošā secībā. 883 00:41:39,832 --> 00:41:41,206 DAVID Malan: Nav augošā secībā. 884 00:41:41,206 --> 00:41:42,100 Precīzāk. 885 00:41:42,100 --> 00:41:45,190 Es nezinu, ko tu domā ar augošā. 886 00:41:45,190 --> 00:41:47,150 Kas noticis? 887 00:41:47,150 --> 00:41:49,930 >> STUDENT: mazākais no skaitļi ir ne pirmajā telpā. 888 00:41:49,930 --> 00:41:51,140 >> DAVID Malan: Vismazāk s ne pirmajā telpā. 889 00:41:51,140 --> 00:41:52,120 Būt konkrētāks. 890 00:41:52,120 --> 00:41:55,000 Es esmu sāk aizķert. 891 00:41:55,000 --> 00:41:59,470 Mēs paļaujamies, bet kāda ir no rīkojuma šeit? 892 00:41:59,470 --> 00:42:00,707 >> STUDENT: ciparu secību. 893 00:42:00,707 --> 00:42:02,040 DAVID Malan: ciparu secību. 894 00:42:02,040 --> 00:42:04,248 Ikviena veida turēšanai tas here-- ļoti augstā līmenī. 895 00:42:04,248 --> 00:42:07,450 Vienkārši burtiski man pateikt, kas ir nepareizi, piemēram, piecus gadus vecs varenību. 896 00:42:07,450 --> 00:42:08,310 >> STUDENT: Plus viens. 897 00:42:08,310 --> 00:42:08,750 >> DAVID Malan: Kas tas ir? 898 00:42:08,750 --> 00:42:09,610 >> STUDENT: Plus viens. 899 00:42:09,610 --> 00:42:11,235 >> DAVID Malan: Ko tu ar to domā plus viens? 900 00:42:11,235 --> 00:42:12,754 901 00:42:12,754 --> 00:42:14,170 Dodiet man cits piecus gadus vecs. 902 00:42:14,170 --> 00:42:16,840 903 00:42:16,840 --> 00:42:18,330 Kas ir nepareizi, mamma? 904 00:42:18,330 --> 00:42:19,940 Kas ir nepareizi, tētis? 905 00:42:19,940 --> 00:42:22,808 Ko nozīmē tas nav sakārtots? 906 00:42:22,808 --> 00:42:24,370 >> STUDENT: Tā nav īstā vieta. 907 00:42:24,370 --> 00:42:25,580 >> DAVID Malan: Kas nav īstajā vietā? 908 00:42:25,580 --> 00:42:26,174 >> STUDENT: Four. 909 00:42:26,174 --> 00:42:27,090 DAVID Malan: Labi, labi. 910 00:42:27,090 --> 00:42:29,110 Tātad četri nav kur tam vajadzētu būt. 911 00:42:29,110 --> 00:42:30,590 Jo īpaši, tas ir labi? 912 00:42:30,590 --> 00:42:33,000 Četri un viens, pirmais divi skaitļi I See. 913 00:42:33,000 --> 00:42:34,930 Vai tas ir labi? 914 00:42:34,930 --> 00:42:36,427 Nē, viņi no rīkojuma, vai ne? 915 00:42:36,427 --> 00:42:38,135 Patiesībā, domāju, ka tagad par datoru, too. 916 00:42:38,135 --> 00:42:40,824 To var apskatīt varbūt tikai vienā, varbūt divas lietas once-- 917 00:42:40,824 --> 00:42:43,240 un patiesībā ir tikai viena lieta laikā, bet tas var vismaz 918 00:42:43,240 --> 00:42:45,790 apskatīt viena lieta, tad Nākamā lieta, blakus tai. 919 00:42:45,790 --> 00:42:47,380 >> Tātad tie ir kārtībā? 920 00:42:47,380 --> 00:42:48,032 Protams ka nē. 921 00:42:48,032 --> 00:42:48,740 Tātad, jūs zināt, ko? 922 00:42:48,740 --> 00:42:51,020 Kāpēc mēs mazuli soļi noteikt šo problēmu 923 00:42:51,020 --> 00:42:53,410 nevis uz šiem iedomātā algoritmi, piemēram, Ben, kur 924 00:42:53,410 --> 00:42:56,440 viņš veida nosaka to, looping cauri sarakstam 925 00:42:56,440 --> 00:42:59,670 tā vietā, lai darīt to, ko es darīju, kur Es tikko veida noteikti to, kā mēs ejam? 926 00:42:59,670 --> 00:43:03,650 Pieņemsim tikai burtiski nojauktu jēdziens order-- skaitliskā secībā, 927 00:43:03,650 --> 00:43:06,990 sauc to ko jūs want-- šajās pairwise salīdzinājumus. 928 00:43:06,990 --> 00:43:07,590 >> Četri un viens. 929 00:43:07,590 --> 00:43:09,970 Vai šis ir pareizais pasūtījumu? 930 00:43:09,970 --> 00:43:11,310 Tātad, pieņemsim noteikt, ka. 931 00:43:11,310 --> 00:43:14,700 Viens un četri, un pēc tam mēs vienkārši kopēt to. 932 00:43:14,700 --> 00:43:15,560 Labi, labi. 933 00:43:15,560 --> 00:43:17,022 Es noteikti viens un četri. 934 00:43:17,022 --> 00:43:18,320 Trīs un divi? 935 00:43:18,320 --> 00:43:18,820 Nē. 936 00:43:18,820 --> 00:43:21,690 Ļaujiet mani vārdi atbilstu manu pirkstiem. 937 00:43:21,690 --> 00:43:23,695 Četri un trīs? 938 00:43:23,695 --> 00:43:27,930 >> Tas nav kārtībā, tāpēc es esmu gatavojas darīt vienu, trīs, četri, divi. 939 00:43:27,930 --> 00:43:28,680 Labi. 940 00:43:28,680 --> 00:43:32,310 Tagad četri un divi? 941 00:43:32,310 --> 00:43:33,370 Mums ir nepieciešams, lai to labotu, too. 942 00:43:33,370 --> 00:43:36,700 Tātad, viens, trīs, divi, četri. 943 00:43:36,700 --> 00:43:39,820 Tātad tas ir sakārtoti? 944 00:43:39,820 --> 00:43:43,170 Nē, bet tas ir tuvāk sakārtoti? 945 00:43:43,170 --> 00:43:48,930 >> Tas ir, jo mēs fiksēts šis kļūda, mēs fiksēto šo kļūdu, 946 00:43:48,930 --> 00:43:50,370 un mēs fiksēto šo kļūdu. 947 00:43:50,370 --> 00:43:52,420 Tāpēc mēs fiksēto trīs kļūdas apstrīdami. 948 00:43:52,420 --> 00:43:58,100 Joprojām nav īsti izskatās sakārtots, bet tas ir objektīvi tuvāk sakārtoti 949 00:43:58,100 --> 00:44:00,080 jo mēs fiksēto daži no šīm kļūdām. 950 00:44:00,080 --> 00:44:02,047 >> Tagad to, ko man darīt tālāk? 951 00:44:02,047 --> 00:44:03,630 Es veida sasnieguši sarakstā. 952 00:44:03,630 --> 00:44:05,680 Man šķiet, ir noteikta visas kļūdas, bet ne. 953 00:44:05,680 --> 00:44:08,510 Jo šajā gadījumā, daži skaitļi varētu būt burbuļojot up tuvāk 954 00:44:08,510 --> 00:44:10,410 uz citiem numuriem, joprojām ir bojātas. 955 00:44:10,410 --> 00:44:12,951 Tātad, pieņemsim to darīt atkal, un es ņemšu vienkārši darīt to vietā šoreiz. 956 00:44:12,951 --> 00:44:14,170 Viena un trīs? 957 00:44:14,170 --> 00:44:14,720 Ir labi. 958 00:44:14,720 --> 00:44:16,070 Trīs un divi? 959 00:44:16,070 --> 00:44:17,560 Protams nē, tāpēc pieņemsim mainīt. 960 00:44:17,560 --> 00:44:19,160 Tātad divi, trīs. 961 00:44:19,160 --> 00:44:21,340 Trīs un četru? 962 00:44:21,340 --> 00:44:24,370 Un tagad pieņemsim tikai būt īpaši pedantiska šeit. 963 00:44:24,370 --> 00:44:26,350 Vai tas ir sakārtoti? 964 00:44:26,350 --> 00:44:29,280 Jūs cilvēki zina, tas ir sakārtoti. 965 00:44:29,280 --> 00:44:30,400 >> Man vajadzētu mēģināt vēlreiz. 966 00:44:30,400 --> 00:44:31,900 Tātad Olivia ierosina es mēģinātu vēlreiz. 967 00:44:31,900 --> 00:44:32,530 Kāpēc? 968 00:44:32,530 --> 00:44:35,810 Jo dators nav luksusa mūsu cilvēka acīm 969 00:44:35,810 --> 00:44:38,080 no tikai glancing back-- Labi, es esmu darīts. 970 00:44:38,080 --> 00:44:41,610 Kā dators noteikt ka saraksts tagad sakārtoti? 971 00:44:41,610 --> 00:44:44,590 Mehāniski. 972 00:44:44,590 --> 00:44:47,650 >> Man vajadzētu iet cauri vēlreiz, un tikai tad, ja es 973 00:44:47,650 --> 00:44:51,190 nepadara / atrast nekādas kļūdas es varu tad secināt kā datoru, yep, 974 00:44:51,190 --> 00:44:51,980 mēs esam labi iet. 975 00:44:51,980 --> 00:44:54,850 Tik viens un divi, divi un trīs, trīs un četri. 976 00:44:54,850 --> 00:44:58,030 Tagad es varu pilnīgi teikt, tas ir sakārtoti, jo es nekādas izmaiņas. 977 00:44:58,030 --> 00:45:01,940 Tagad tas būtu kļūda, un tikai muļķīgi, ja es, dators, 978 00:45:01,940 --> 00:45:05,640 lūdza šos pašus jautājumus atkal gaida dažādas atbildes. 979 00:45:05,640 --> 00:45:07,110 Nedrīkst notikt. 980 00:45:07,110 --> 00:45:08,600 >> Un tāpēc tagad saraksts ir sakārtots. 981 00:45:08,600 --> 00:45:12,630 Diemžēl, darba laiks šis algoritms ir arī n brusas. 982 00:45:12,630 --> 00:45:13,130 Kāpēc? 983 00:45:13,130 --> 00:45:19,520 Tāpēc, ka jums ir n skaitļi, un tad, sliktākajā gadījumā jums ir pārvietot n numuriem 984 00:45:19,520 --> 00:45:23,637 n reizes, jo jums ir, lai saglabātu turpinās atpakaļ, lai pārbaudītu un potenciāli noteikt 985 00:45:23,637 --> 00:45:24,220 šie skaitļi. 986 00:45:24,220 --> 00:45:26,280 Un mēs varam darīt vairāk formāla analīze, too. 987 00:45:26,280 --> 00:45:29,530 >> Tātad tas ir viss, ko teikt, mēs esam veikuši trīs dažādas pieejas, kas ir viens 988 00:45:29,530 --> 00:45:32,210 no viņiem uzreiz intuitīvi pie sikspārņu no Ben 989 00:45:32,210 --> 00:45:35,170 uz manu ierosinājumu iekļaut Kārtot uz šo vienu 990 00:45:35,170 --> 00:45:38,540 kur jūs veida aizmirst meža par kokiem sākotnēji. 991 00:45:38,540 --> 00:45:41,760 Bet tad, ja jūs veikt soli atpakaļ, voila, mēs esam noteica šķirošanas jēdzienu. 992 00:45:41,760 --> 00:45:43,824 Tātad tas ir, uzdrošinās teikt, zemāks līmenis varbūt 993 00:45:43,824 --> 00:45:45,740 kā daži no tiem citu algoritmi, bet pieņemsim 994 00:45:45,740 --> 00:45:48,550 redzēt, ja mēs nevaram iztēloties šie veidā šo. 995 00:45:48,550 --> 00:45:51,450 >> Tātad šis ir daži jauki programmatūra, ka kāds 996 00:45:51,450 --> 00:45:56,110 rakstīja izmantojot krāsains bāri, kas ir gatavojas darīt šādi mums. 997 00:45:56,110 --> 00:45:57,736 Katrs no šiem bāriem apzīmē skaitli. 998 00:45:57,736 --> 00:46:00,026 Taller stabiņš, jo lielāks skaits, mazāks ir bārs, 999 00:46:00,026 --> 00:46:00,990 jo mazāks skaits. 1000 00:46:00,990 --> 00:46:05,880 Tik ideāli mēs gribam skaistu piramīdu kur tā sākas mazs un kļūst liels, 1001 00:46:05,880 --> 00:46:08,330 un tas nozīmētu, ka šie stieņi ir sakārtoti. 1002 00:46:08,330 --> 00:46:11,200 Tāpēc es esmu gatavojas iet uz priekšu un izvēlēties, piemēram, Bena algoritms 1003 00:46:11,200 --> 00:46:13,990 first-- izvēle kārtošanas. 1004 00:46:13,990 --> 00:46:16,220 >> Un paziņojums, ko tas dara. 1005 00:46:16,220 --> 00:46:18,670 Veids, kā tie esam izvēlējušies iztēloties šo algoritmu 1006 00:46:18,670 --> 00:46:22,090 ir tas, ka, tāpat kā es biju ejot caur manu sarakstu, 1007 00:46:22,090 --> 00:46:24,710 šī programma ir iešana izmantojot savu numuru sarakstā, 1008 00:46:24,710 --> 00:46:28,160 uzsverot rozā katrā numurs, kas tas meklē. 1009 00:46:28,160 --> 00:46:32,360 Un, kas ir aptuveni notikt tieši tagad? 1010 00:46:32,360 --> 00:46:35,154 >> Mazākais skaits, kas I vai Ben atklāju pēkšņi 1011 00:46:35,154 --> 00:46:36,820 izpaužas pārvietots uz saraksta sākumā. 1012 00:46:36,820 --> 00:46:40,037 Un paziņojums viņi darīja izlikt numuru, kas bija tur, 1013 00:46:40,037 --> 00:46:41,120 un tas ir perfekti labi. 1014 00:46:41,120 --> 00:46:42,600 Man nav iekļuvuši šajā detalizācijas pakāpi. 1015 00:46:42,600 --> 00:46:44,308 Bet mums ir nepieciešams, lai ka numurs kaut kur, 1016 00:46:44,308 --> 00:46:47,775 tāpēc mēs vienkārši pārcēla to uz open vietas, kas tika izveidots. 1017 00:46:47,775 --> 00:46:49,900 Tāpēc es esmu gatavojas, lai paātrinātu šo augšu, jo pretējā gadījumā tas 1018 00:46:49,900 --> 00:46:51,871 kļūst ļoti garlaicīgs ātri. 1019 00:46:51,871 --> 00:46:55,800 1020 00:46:55,800 --> 00:46:58,600 Animācija speed-- tur mēs ejam. 1021 00:46:58,600 --> 00:47:01,850 Tāpēc tagad pats princips Man bija piemērojot, bet tu 1022 00:47:01,850 --> 00:47:06,540 var sākt justies algoritmu, ja jūs būs, vai redzēt to mazliet skaidrāk. 1023 00:47:06,540 --> 00:47:13,190 Un šis algoritms ir sekas Izvēloties nākamo mazāko elementu, 1024 00:47:13,190 --> 00:47:16,422 tāpēc jūs gatavojas sākt redzēt to rampas līdz kreisajā pusē. 1025 00:47:16,422 --> 00:47:19,130 Un katrā atkārtojumā, kā es ierosināja, tas nedaudz mazāk darba. 1026 00:47:19,130 --> 00:47:21,921 Tas nav iet visu ceļu atpakaļ uz kreiso saraksta beigām, 1027 00:47:21,921 --> 00:47:23,900 jo tas jau zina, tie ir sakārtoti. 1028 00:47:23,900 --> 00:47:28,129 Tātad tas veids uzskata, tāpat kā tas ir paātrinot, kaut arī katrs solis ir 1029 00:47:28,129 --> 00:47:29,420 ņemot tādu pašu laiku. 1030 00:47:29,420 --> 00:47:31,600 Tur atlikušie tikai mazāk soļus. 1031 00:47:31,600 --> 00:47:35,240 Un tagad jūs varat veida sajust algoritms tīrīšanas galu uz augšu tā, 1032 00:47:35,240 --> 00:47:37,040 un tiešām tagad tas ir sakārtoti. 1033 00:47:37,040 --> 00:47:41,620 >> Tātad ievietošanas kārtošanas ir viss darīts. 1034 00:47:41,620 --> 00:47:43,600 Man nepieciešams atkārtoti randomize masīvs. 1035 00:47:43,600 --> 00:47:45,940 Un paziņojums Es varu tikai paturēt randomizing to, 1036 00:47:45,940 --> 00:47:50,630 un mēs saņemsiet tuvināšanu Tāda pati pieeja, ievietošanas kārtošanas. 1037 00:47:50,630 --> 00:47:55,050 Ļaujiet man lēni to šeit. 1038 00:47:55,050 --> 00:47:56,915 Sāksim, ka vairāk nekā. 1039 00:47:56,915 --> 00:47:57,414 Apstāties. 1040 00:47:57,414 --> 00:48:00,662 1041 00:48:00,662 --> 00:48:02,410 >> Pieņemsim izlaist četri. 1042 00:48:02,410 --> 00:48:03,200 Tur mēs ejam. 1043 00:48:03,200 --> 00:48:04,190 Randomize tie masīvs. 1044 00:48:04,190 --> 00:48:05,555 Un šeit mēs go-- ievietošanas veida. 1045 00:48:05,555 --> 00:48:10,260 1046 00:48:10,260 --> 00:48:12,800 Play. 1047 00:48:12,800 --> 00:48:17,280 Ievērojiet, ka tas nodarbojas ar katru elements tai rodas uzreiz, 1048 00:48:17,280 --> 00:48:20,282 bet, ja tas pieder nepareizā vietā paziņojums 1049 00:48:20,282 --> 00:48:21,740 visu darbu, kas ir noticis. 1050 00:48:21,740 --> 00:48:24,700 Mums ir saglabāt novirzot vairāk un vairāki elementi, lai padarītu telpu 1051 00:48:24,700 --> 00:48:27,340 par kādu mēs vēlamies ieviest. 1052 00:48:27,340 --> 00:48:30,740 >> Tātad mēs esam koncentrējoties uz atstāja beigas tikai saraksta. 1053 00:48:30,740 --> 00:48:34,460 Paziņojums mēs neesam pat izskatījās at-- mēs nav iezīmēts rozā neko 1054 00:48:34,460 --> 00:48:35,610 pa labi. 1055 00:48:35,610 --> 00:48:38,180 Mēs esam tikai nodarbojas ar problēmas, kā mums iet, 1056 00:48:38,180 --> 00:48:40,430 bet mēs esam radot daudz strādāt par sevi vēl. 1057 00:48:40,430 --> 00:48:44,410 Un tāpēc, ja mēs paātrinātu šo augšu tagad iet līdz galam, 1058 00:48:44,410 --> 00:48:46,210 tas ir atšķirīgs justies uz to patiešām. 1059 00:48:46,210 --> 00:48:50,150 Tas ir tikai koncentrēties uz kreisās beigām, bet darot nedaudz vairāk darba kā needed-- 1060 00:48:50,150 --> 00:48:53,230 veida nogludināšanas lietām vairāk, nosakot lietas, 1061 00:48:53,230 --> 00:48:58,350 bet nodarbojas galu galā ar katrs elements vienam 1062 00:48:58,350 --> 00:49:07,740 kamēr mēs nokļūt the-- labi, mēs visi zinām, cik tas beigsies, 1063 00:49:07,740 --> 00:49:09,700 tāpēc tas ir mazliet underwhelming varbūt. 1064 00:49:09,700 --> 00:49:12,830 >> Bet saraksts end-- spoiler-- tiks sakārtoti. 1065 00:49:12,830 --> 00:49:15,300 Tātad aplūkosim vienu pēdējais. 1066 00:49:15,300 --> 00:49:16,840 Mēs nevaram vienkārši izlaist. 1067 00:49:16,840 --> 00:49:18,000 Mēs esam gandrīz tur. 1068 00:49:18,000 --> 00:49:19,980 Divi iet, viens iet. 1069 00:49:19,980 --> 00:49:22,680 Un voila. 1070 00:49:22,680 --> 00:49:23,450 Excellent. 1071 00:49:23,450 --> 00:49:27,220 >> Tāpēc tagad pieņemsim darīt vienu pēdējais, atkārtoti randomizing ar burbulis šķirot. 1072 00:49:27,220 --> 00:49:31,690 Un paziņojums šeit, it īpaši, ja es lēni to uz leju, tas saglabā swooping cauri. 1073 00:49:31,690 --> 00:49:36,830 Bet paziņojums tas tikai padara pairwise comparisons-- veida vietējiem risinājumiem. 1074 00:49:36,830 --> 00:49:39,050 Bet, tiklīdz mēs nokļūt beigām saraksta rozā, 1075 00:49:39,050 --> 00:49:40,690 kas notiek, lai būtu neatkārtotos? 1076 00:49:40,690 --> 00:49:44,539 1077 00:49:44,539 --> 00:49:46,830 Jā, tas nāksies sākt no jauna, jo tas tikai 1078 00:49:46,830 --> 00:49:49,870 nefiksētu pairwise kļūdas. 1079 00:49:49,870 --> 00:49:53,120 Un kas varētu būt atklāts vēl citus. 1080 00:49:53,120 --> 00:49:58,950 Un tādēļ, ja jums paātrināt šo augšu, jūs redzēt, ka, tāpat kā norāda nosaukums, 1081 00:49:58,950 --> 00:50:01,870 mazāks elements-- vai drīzāk, lielākās elements-- sāk 1082 00:50:01,870 --> 00:50:03,740 burbulis augšu uz augšu, ja jūs. 1083 00:50:03,740 --> 00:50:07,380 Un mazāki elementi ir sāk burbulis uz leju pa kreisi. 1084 00:50:07,380 --> 00:50:10,780 Un tiešām, tas ir sava veida vizuālo efektu, kā arī. 1085 00:50:10,780 --> 00:50:17,150 Un tā tas galu galā apdares ļoti līdzīgā veidā, too. 1086 00:50:17,150 --> 00:50:19,160 >> Mums nav kavēties par šo konkrēto vienu. 1087 00:50:19,160 --> 00:50:21,010 Ļaujiet man atvērt šo tagad, too. 1088 00:50:21,010 --> 00:50:24,040 Ir dažas citas šķirošanas algoritmi visā pasaulē, no kuriem daži 1089 00:50:24,040 --> 00:50:25,580 tiek notverti šeit. 1090 00:50:25,580 --> 00:50:29,960 Un jo īpaši izglītojamajiem, kuri nav obligāti vizuālā vai matemātiskā, 1091 00:50:29,960 --> 00:50:31,930 kā mēs to darījām iepriekš, mēs varam arī izdarīt audially 1092 00:50:31,930 --> 00:50:34,210 ja mēs saistīt skaņu ar šo. 1093 00:50:34,210 --> 00:50:36,990 Un tikai par jautru, šeit ir daži atšķirīgi algoritmi, 1094 00:50:36,990 --> 00:50:40,950 un viens no tiem, jo ​​īpaši jūs esat gatavojas paziņojums sauc par "apvienot kārtošanas." 1095 00:50:40,950 --> 00:50:43,250 >> Tas ir tiešām fundamentāli labāks algoritms, 1096 00:50:43,250 --> 00:50:45,860 tāds, kas apvienojas veida, kas ir viens no tie, jūs gatavojaties redzēt, 1097 00:50:45,860 --> 00:50:49,170 nav kārtībā n brusas. 1098 00:50:49,170 --> 00:50:57,280 Tas ir par kārtību n reizes žurnālu n, kas ir pat nedaudz mazāks, un tādējādi 1099 00:50:57,280 --> 00:50:58,940 ātrāk nekā šajās citās trim. 1100 00:50:58,940 --> 00:51:00,670 Un tur ir pāris citu dumjš tie, kas mēs redzēsim. 1101 00:51:00,670 --> 00:51:01,933 >> Tātad, šeit mēs iet ar kādu skaņu. 1102 00:51:01,933 --> 00:51:06,620 1103 00:51:06,620 --> 00:51:10,490 Tas ir ievietošanas kārtot, lai atkal tas ir tikai nodarbojas ar elementiem 1104 00:51:10,490 --> 00:51:13,420 kā viņi nāk. 1105 00:51:13,420 --> 00:51:17,180 Tas ir burbulis kārtot, tāpēc tas ir uzskatot tos pārus vienlaikus. 1106 00:51:17,180 --> 00:51:22,030 1107 00:51:22,030 --> 00:51:24,490 Un atkal, lielākais elementi tiek burbuļošana uz augšu uz augšu. 1108 00:51:24,490 --> 00:51:38,098 1109 00:51:38,098 --> 00:51:41,710 >> Nākamā atlase kārtošanas. 1110 00:51:41,710 --> 00:51:45,420 Tas ir Bena algoritms, kur atkal viņš izvēloties iteratīvi 1111 00:51:45,420 --> 00:51:46,843 nākamais mazākais elements. 1112 00:51:46,843 --> 00:51:49,801 1113 00:51:49,801 --> 00:51:53,900 Un atkal, tagad jūs tiešām var dzirdēt, ka tas ir paātrināt, bet tikai tad, ja 1114 00:51:53,900 --> 00:51:58,230 jo tas dara mazāk un mazāk strādāt par katru atkārtojuma. 1115 00:51:58,230 --> 00:52:04,170 Šis ir viens ātrāk, apvienot kārtot, kas šķirošanas kopas numuru 1116 00:52:04,170 --> 00:52:05,971 kopā un tad apvienojot tos. 1117 00:52:05,971 --> 00:52:07,720 Tātad look-- kreiso puse jau ir sakārtoti. 1118 00:52:07,720 --> 00:52:14,165 >> Tagad tas ir šķirošana pareizo pusi, un tagad tas notiek, lai tos apvienot vienā. 1119 00:52:14,165 --> 00:52:19,160 Tas ir kaut kas ko sauc par "Rūķītis kārtošanas." 1120 00:52:19,160 --> 00:52:23,460 Un jūs varat veida redzēt, ka tas notiek uz priekšu un atpakaļ, 1121 00:52:23,460 --> 00:52:27,950 Nosakot darbu mazliet šeit un tur pirms tā ieņēmumus, lai jaunu darbu. 1122 00:52:27,950 --> 00:52:32,900 1123 00:52:32,900 --> 00:52:33,692 Un tas arī viss. 1124 00:52:33,692 --> 00:52:36,400 Tur ir cita veida, kas ir tiešām tikai akadēmiskiem mērķiem, 1125 00:52:36,400 --> 00:52:40,980 sauc par "stulba veida", kas notiek jūsu dati, sakārto to nejauši, 1126 00:52:40,980 --> 00:52:43,350 un pēc tam pārbauda, ​​vai tā ir sakārtots. 1127 00:52:43,350 --> 00:52:47,880 Un, ja tas tā nav, tas atkal sakārto to nejauši, pārbauda, ​​vai tas ir sakārtoti, 1128 00:52:47,880 --> 00:52:49,440 un, ja nav atkārto. 1129 00:52:49,440 --> 00:52:52,660 Un teorētiski, probabilistically tas tiks pabeigta, 1130 00:52:52,660 --> 00:52:54,140 bet pēc diezgan daudz laika. 1131 00:52:54,140 --> 00:52:56,930 Tas nav pats efektīvu algoritmu. 1132 00:52:56,930 --> 00:53:02,550 Tātad kādi jautājumi par tiem īpaši algoritmus vai neko 1133 00:53:02,550 --> 00:53:04,720 tur saistīti, too? 1134 00:53:04,720 --> 00:53:09,430 >> Nu, pieņemsim tagad kaitināt intervālu, ko visi šīs līnijas ir, ka es esmu zīmēšanas 1135 00:53:09,430 --> 00:53:15,090 un to, ko es esmu pieņemot datoru var darīt zem motora pārsega. 1136 00:53:15,090 --> 00:53:18,650 Es gribētu apgalvot, ka visi no šiem numuriem Es turpinu drawing-- viņiem ir nepieciešams, lai saņemtu 1137 00:53:18,650 --> 00:53:21,330 glabāti kaut kur atmiņā. 1138 00:53:21,330 --> 00:53:24,130 Mēs atbrīvoties no šīs puisis tagad, too. 1139 00:53:24,130 --> 00:53:30,110 >> Tātad gabals atmiņas A computer-- tāpēc RAM DIMM ir 1140 00:53:30,110 --> 00:53:35,480 ko mēs meklēja vakar, dual inline atmiņas module-- izskatās šādi. 1141 00:53:35,480 --> 00:53:39,370 Un katrs no šiem maz melnā mikroshēmas ir daži baitu skaitu, parasti. 1142 00:53:39,370 --> 00:53:44,380 Un tad zelta tapas ir tāpat kā vadi, kas savieno to ar datoru, 1143 00:53:44,380 --> 00:53:47,521 un zaļš silīcija padome ir tikai ko tur viss kopā. 1144 00:53:47,521 --> 00:53:48,770 Tātad, ko tas īsti nozīmē? 1145 00:53:48,770 --> 00:53:53,180 Ja es veida izdarīt šo pašu attēlu, pieņemsim vienkāršību 1146 00:53:53,180 --> 00:53:55,280 ka šis DIMM, dual inline atmiņas modulis, 1147 00:53:55,280 --> 00:54:00,530 ir viena gigabaita RAM, viena gigabaita atmiņa, kas ir, cik daudz baitu kopējais? 1148 00:54:00,530 --> 00:54:02,100 Viens gigabaitu ir, cik daudz baiti? 1149 00:54:02,100 --> 00:54:04,860 1150 00:54:04,860 --> 00:54:06,030 Vairāk nekā tas. 1151 00:54:06,030 --> 00:54:09,960 1124 ir kilo, 1000. 1152 00:54:09,960 --> 00:54:11,730 Mega ir miljoni. 1153 00:54:11,730 --> 00:54:14,570 Giga ir miljards. 1154 00:54:14,570 --> 00:54:15,070 >> Es guļus? 1155 00:54:15,070 --> 00:54:16,670 Vai mēs varam pat lasīt etiķeti? 1156 00:54:16,670 --> 00:54:19,920 Tas ir tiešām 128 gigabaitiem, tāpēc tas ir vairāk. 1157 00:54:19,920 --> 00:54:22,130 Bet mēs izlikties šis ir tikai viena gigabaita. 1158 00:54:22,130 --> 00:54:25,640 Tātad tas nozīmē, ka ir miljards baiti atmiņas pieejami mani 1159 00:54:25,640 --> 00:54:29,770 vai 8 miljardi biti, bet mēs ejam runāt ziņā baitu tagad, 1160 00:54:29,770 --> 00:54:30,750 kustēties uz priekšu. 1161 00:54:30,750 --> 00:54:36,330 >> Tātad, ko tas nozīmē, tas ir viens baits, tas ir vēl viens baits, 1162 00:54:36,330 --> 00:54:38,680 Tas ir vēl viens baits, un, ja mēs patiešām vēlējās 1163 00:54:38,680 --> 00:54:43,280 par īpašu mums būtu izdarīt miljardu maz kvadrātu. 1164 00:54:43,280 --> 00:54:44,320 Bet ko tas nozīmē? 1165 00:54:44,320 --> 00:54:46,420 Nu, ļaujiet man tikai tuvinātu kas par šo attēlu. 1166 00:54:46,420 --> 00:54:50,900 Ja man kaut ko, kas izskatās piemēram, tas tagad, tas ir četri baiti. 1167 00:54:50,900 --> 00:54:53,710 >> Un tā es varētu likt četrus ciparus šeit. 1168 00:54:53,710 --> 00:54:54,990 Viens divi trīs četri. 1169 00:54:54,990 --> 00:55:00,170 Vai es varētu likt četri burti vai simboli. 1170 00:55:00,170 --> 00:55:02,620 "Hei!" varētu iet labi tur, jo katrs no burtiem, 1171 00:55:02,620 --> 00:55:04,370 mēs runājām iepriekš, varētu pārstāvēt 1172 00:55:04,370 --> 00:55:06,650 ar astoņiem bitiem vai ASCII vai baitu. 1173 00:55:06,650 --> 00:55:09,370 Tātad citiem vārdiem sakot, jūs varat likts 8 miljardi lietas iekšā 1174 00:55:09,370 --> 00:55:11,137 Šī viena stick atmiņas. 1175 00:55:11,137 --> 00:55:14,345 Tagad ko tas nozīmē nodot lietas atpakaļ atpakaļ atpakaļ atmiņā kā šī? 1176 00:55:14,345 --> 00:55:17,330 Tas ir tas, ko programmētājs sauktu par "masīvs." 1177 00:55:17,330 --> 00:55:21,250 In datorprogrammu, jūs nedomāju par pamatā esošo aparatūru, per se. 1178 00:55:21,250 --> 00:55:24,427 Tu tikai domā par sevi kā ar piekļuve miljards baitu kopā, 1179 00:55:24,427 --> 00:55:26,010 un jūs varat kaut ko vēlaties ar to. 1180 00:55:26,010 --> 00:55:27,880 Bet ērtības labad tas parasti noderīgi 1181 00:55:27,880 --> 00:55:31,202 lai saglabātu atmiņas tiesības blakus viens otram, piemēram, šis. 1182 00:55:31,202 --> 00:55:33,660 Tātad, ja es tuvinātu this-- jo mēs noteikti nebrauksim 1183 00:55:33,660 --> 00:55:39,310 izdarīt miljardu maz squares-- pieņemsim, ka šī padome ir 1184 00:55:39,310 --> 00:55:40,610 ka stick atmiņas tagad. 1185 00:55:40,610 --> 00:55:43,800 Un es ņemšu tikai izdarīt tik daudz, cik mans marķieris nonāks sniedzot mani šeit. 1186 00:55:43,800 --> 00:55:46,420 1187 00:55:46,420 --> 00:55:52,300 Tāpēc tagad mums ir stick atmiņas uz kuģa 1188 00:55:52,300 --> 00:55:56,400 kas ieguva vienu, divas, trīs, četri, pieci, seši, viens, divi, trīs, četri, pieciem, sešiem, 1189 00:55:56,400 --> 00:56:01,130 seven-- tik 42 baiti atmiņas uz ekrāna kopā. 1190 00:56:01,130 --> 00:56:01,630 Paldies. 1191 00:56:01,630 --> 00:56:02,838 Jā, bija mans aritmētika labi. 1192 00:56:02,838 --> 00:56:05,120 Tātad 42 baiti atmiņas šeit. 1193 00:56:05,120 --> 00:56:06,660 Tātad, ko tas patiesībā nozīmē? 1194 00:56:06,660 --> 00:56:09,830 Nu, dators programmētājs tiešām parasti 1195 00:56:09,830 --> 00:56:12,450 domā par šo atmiņā kā Adrešu. 1196 00:56:12,450 --> 00:56:16,630 Citiem vārdiem sakot, katrs no šiem vietas atmiņā, aparatūras, 1197 00:56:16,630 --> 00:56:18,030 ir unikāla adrese. 1198 00:56:18,030 --> 00:56:22,020 >> Tas nav tik sarežģīti kā One BRATTLE Square, Cambridge, Mass., 02138. 1199 00:56:22,020 --> 00:56:23,830 Tā vietā, tas ir tikai skaitlis. 1200 00:56:23,830 --> 00:56:27,930 Tas ir baitu skaitlis nulle, tas ir viens, tas ir divi, tas ir trīs, 1201 00:56:27,930 --> 00:56:30,327 un tas ir 41. 1202 00:56:30,327 --> 00:56:30,910 Uzgaidi minūti. 1203 00:56:30,910 --> 00:56:32,510 Es domāju, ka es pirms brīža teica 42. 1204 00:56:32,510 --> 00:56:35,050 1205 00:56:35,050 --> 00:56:37,772 Es sāku skaitīšanas nulles līmenī, tā ka ir faktiski pareiza. 1206 00:56:37,772 --> 00:56:40,980 Tagad mums nav reāli izdarīt to kā režģi, un, ja jūs izdarīt to kā režģi 1207 00:56:40,980 --> 00:56:43,520 Es domāju, ka lietas tiešām iegūt mazliet maldinošs. 1208 00:56:43,520 --> 00:56:46,650 Kāds programmētājs būtu, viņa vai viņas prātā, 1209 00:56:46,650 --> 00:56:50,310 parasti domā par šo atmiņa kā ir tāpat kā lentes, 1210 00:56:50,310 --> 00:56:53,340 kā gabals maskēšanas lentu ka tikai tālāk un tālāk uz visiem laikiem 1211 00:56:53,340 --> 00:56:54,980 vai līdz brīdim, kad jūs darbināt no atmiņas. 1212 00:56:54,980 --> 00:56:59,200 Tātad biežāk veids, kā pievērst un tikai domā par atmiņu 1213 00:56:59,200 --> 00:57:03,710 varētu būt, ka tas ir baits nulle, viens, divi, trīs, un tad dot, dot, dot. 1214 00:57:03,710 --> 00:57:07,650 Un jums ir 42 šādas baiti Kopumā pat gan fiziski tas varētu reāli 1215 00:57:07,650 --> 00:57:09,480 būt kaut kas vairāk, kā šis. 1216 00:57:09,480 --> 00:57:12,850 >> Tātad, ja jūs tagad domājat par jūsu atmiņa, jo tas, tāpat kā lentes, 1217 00:57:12,850 --> 00:57:17,640 tas ir tas, ko programmētājs atkal sauktu masīvu atmiņas. 1218 00:57:17,640 --> 00:57:20,660 Un, ja jūs vēlaties, lai faktiski uzglabāt kaut kas datora atmiņā, 1219 00:57:20,660 --> 00:57:23,290 jūs parasti darīt veikalu lietas back-to-back to back-to-back. 1220 00:57:23,290 --> 00:57:25,010 Tāpēc mēs esam runājuši par skaitļiem. 1221 00:57:25,010 --> 00:57:30,880 Un, kad es gribēju, lai atrisinātu problēmas piemēram, četri, viens, trīs, divi, 1222 00:57:30,880 --> 00:57:33,820 kaut gan man bija tikai zīmēšanas tikai skaitļi četri, viens, trīs, 1223 00:57:33,820 --> 00:57:39,490 divi uz klāja, dators būtu tiešām ir šo iestatījumu atmiņā. 1224 00:57:39,490 --> 00:57:43,347 >> Un kāds būtu blakus divi datora atmiņā? 1225 00:57:43,347 --> 00:57:44,680 Nu, tur ir ar to nav atbildes. 1226 00:57:44,680 --> 00:57:45,770 Mēs īsti nezinām. 1227 00:57:45,770 --> 00:57:48,200 Un tik ilgi, kamēr dators nav nepieciešams to, 1228 00:57:48,200 --> 00:57:51,440 tas nav vienalga, kas ir nākamais ar skaitļiem tas rūp. 1229 00:57:51,440 --> 00:57:55,130 Un, kad es teicu iepriekš, ka ar datoru var tikai aplūkot vienā adresē vienlaicīgi, 1230 00:57:55,130 --> 00:57:56,170 Tas ir sava veida kāpēc. 1231 00:57:56,170 --> 00:57:59,490 >> Nav atšķirībā ieraksts atskaņotājs un lasīšanas galvu 1232 00:57:59,490 --> 00:58:03,030 tikai to var apskatīt noteiktu groove tādā fiziskā vecās skolas ierakstu 1233 00:58:03,030 --> 00:58:06,500 laikā, līdzīgi var dators pateicība 1234 00:58:06,500 --> 00:58:09,810 tās CPU un tās Intel instrukciju komplekts, 1235 00:58:09,810 --> 00:58:12,480 starp kuras instrukciju nolasa no atmiņas 1236 00:58:12,480 --> 00:58:15,590 vai saglabāt memory-- dators var tikai apskatīt 1237 00:58:15,590 --> 00:58:19,210 vienā vietā pie LAIKU_ dažreiz kombinācija no tiem, 1238 00:58:19,210 --> 00:58:21,770 bet tiešām tikai viena vieta laikā. 1239 00:58:21,770 --> 00:58:24,770 Tātad, kad mēs darām šie dažādie algoritmi, 1240 00:58:24,770 --> 00:58:28,110 Es esmu ne tikai rakstiskā formā vacuum-- četri, viens, trīs, divi. 1241 00:58:28,110 --> 00:58:30,849 Šie skaitļi faktiski pieder kaut kur fiziskā atmiņā. 1242 00:58:30,849 --> 00:58:32,890 Tātad ir niecīga maz tranzistori vai kāda veida 1243 00:58:32,890 --> 00:58:35,840 elektronikas zem pārsegs uzglabāšanai šīs vērtības. 1244 00:58:35,840 --> 00:58:40,460 >> Un kopumā, cik bitus iesaistīts tieši tagad, tikai, lai būtu skaidrs? 1245 00:58:40,460 --> 00:58:45,580 Tātad šis ir četri baiti, vai tagad tas ir 32 bitu kopā. 1246 00:58:45,580 --> 00:58:49,280 Tātad faktiski ir 32 nullēm un tie, kas veido šīs četras lietas. 1247 00:58:49,280 --> 00:58:52,070 Tur pat vēl vairāk nekā šeit, bet atkal mēs vienalga par to. 1248 00:58:52,070 --> 00:58:55,120 >> Tāpēc tagad pieņemsim lūgt citu Jautājums, izmantojot atmiņu, 1249 00:58:55,120 --> 00:58:57,519 jo ka beigās Dienas ir pretrunā. 1250 00:58:57,519 --> 00:59:00,310 Nav svarīgi, ko mēs varētu darīt ar dators, beigās, dienā 1251 00:59:00,310 --> 00:59:02,560 aparatūras joprojām pats zem motora pārsega. 1252 00:59:02,560 --> 00:59:04,670 Kā es uzglabāt vārdu šeit? 1253 00:59:04,670 --> 00:59:09,710 Nu, vārdu datorā, piemēram, "Hey!" būtu jāglabā tāpat kā šo. 1254 00:59:09,710 --> 00:59:12,300 Un, ja jūs vēlētos ilgāku vārds, jūs varat vienkārši 1255 00:59:12,300 --> 00:59:19,120 pārrakstīt kas un teikt kaut ko piemēram, "hello" un veikals, kas šeit. 1256 00:59:19,120 --> 00:59:23,930 >> Un tā arī šeit, šajā contiguousness faktiski priekšrocība, 1257 00:59:23,930 --> 00:59:26,530 jo dators var vienkārši lasa no labās uz kreiso. 1258 00:59:26,530 --> 00:59:28,680 Bet šeit ir jautājums. 1259 00:59:28,680 --> 00:59:33,480 Saistībā ar šo vārdu, h-e-l-l-o, izsaukuma zīme, 1260 00:59:33,480 --> 00:59:38,740 kā varētu dators zina, kur vārds sākas un kur vārds beidzas? 1261 00:59:38,740 --> 00:59:41,690 1262 00:59:41,690 --> 00:59:43,800 Saistībā ar skaitļiem, kā tas dators 1263 00:59:43,800 --> 00:59:48,396 zināt, cik ilgi secība numuri ir vai ja tas sākas? 1264 00:59:48,396 --> 00:59:50,270 Nu, izrādās out-- un mēs neko pārāk daudz 1265 00:59:50,270 --> 00:59:54,970 šajā līmenī detail-- datori pārvietoties sīkumi apkārt atmiņā 1266 00:59:54,970 --> 00:59:57,800 burtiski veidā šīm adresēm. 1267 00:59:57,800 --> 01:00:02,080 Tātad datoru, ja jūs esat rakstot kodu, lai uzglabātu lietas 1268 01:00:02,080 --> 01:00:05,800 piemēram, vārdiem, ko tu esi patiešām dara, ir rakstīt 1269 01:00:05,800 --> 01:00:11,320 izteicienus, ka atcerēties, kur atrodas datora atmiņa šie vārdi ir. 1270 01:00:11,320 --> 01:00:14,370 Tāpēc ļaujiet man darīt ļoti, ļoti vienkāršs piemērs. 1271 01:00:14,370 --> 01:00:18,260 >> Es iešu uz priekšu un atvērt vienkāršu teksta programmu, 1272 01:00:18,260 --> 01:00:20,330 un es esmu gatavojas, lai radītu fails sauc hello.c. 1273 01:00:20,330 --> 01:00:22,849 Lielākā daļa no šīs informācijas mēs neiešu ļoti detalizēti, 1274 01:00:22,849 --> 01:00:25,140 bet es esmu gatavojas rakstīt programma tajā pašā valodā, 1275 01:00:25,140 --> 01:00:31,140 C. Tas ir daudz biedējoša, Es teiktu, nekā nulles, 1276 01:00:31,140 --> 01:00:32,490 bet tas ir ļoti līdzīgs garā. 1277 01:00:32,490 --> 01:00:34,364 Patiesībā, šie cirtaini braces-- varat veida 1278 01:00:34,364 --> 01:00:37,820 domā par to, ko es tikko darīju, jo tas. 1279 01:00:37,820 --> 01:00:39,240 >> Darīsim to, faktiski. 1280 01:00:39,240 --> 01:00:45,100 Kad zaļais karogs uzklikšķināt, rīkoties šādi. 1281 01:00:45,100 --> 01:00:50,210 Es gribu izdrukāt "sveiki". 1282 01:00:50,210 --> 01:00:51,500 Tāpēc tagad tas ir pseudocode. 1283 01:00:51,500 --> 01:00:53,000 Es esmu veida nojauc līnijas. 1284 01:00:53,000 --> 01:00:56,750 C, šī valoda es runāju par, šī līnija print sveiki 1285 01:00:56,750 --> 01:01:01,940 faktiski kļūst "printf" ar dažas iekavas un semikolu. 1286 01:01:01,940 --> 01:01:03,480 >> Bet tas ir tieši tā pati ideja. 1287 01:01:03,480 --> 01:01:06,730 Un šis draudzīga ļoti "Zaļus karogs uzklikšķināt" kļūst 1288 01:01:06,730 --> 01:01:10,182 tik ļoti vairāk arcane "int galvenais spēkā neesošu." 1289 01:01:10,182 --> 01:01:12,890 Un tas tiešām nav kartēšanu, tāpēc es esmu tikai gatavojas ignorēt to. 1290 01:01:12,890 --> 01:01:17,210 Bet cirtaini bikšturi ir tāpat kā izliektās puzzle gabalus, kā šis. 1291 01:01:17,210 --> 01:01:18,700 >> Tātad jūs varat veida uzminēt. 1292 01:01:18,700 --> 01:01:22,357 Pat ja jūs nekad neesmu ieprogrammēts agrāk, Kāda šī programma iespējams darīt? 1293 01:01:22,357 --> 01:01:25,560 1294 01:01:25,560 --> 01:01:28,000 Iespējams drukā sveiki ar izsaukuma zīmi. 1295 01:01:28,000 --> 01:01:29,150 >> Tātad, pieņemsim mēģināt to. 1296 01:01:29,150 --> 01:01:30,800 Es esmu gatavojas, lai saglabātu to. 1297 01:01:30,800 --> 01:01:34,000 Un tas ir, atkal, ļoti vecās skolas vide. 1298 01:01:34,000 --> 01:01:35,420 Es nevaru klikšķi, es nevaru vilkt. 1299 01:01:35,420 --> 01:01:36,910 Man ir rakstīt komandas. 1300 01:01:36,910 --> 01:01:41,320 Tāpēc es gribu palaist savu programmu, lai Es varētu darīt, piemēram hello.c. 1301 01:01:41,320 --> 01:01:42,292 Tas ir fails I ilga. 1302 01:01:42,292 --> 01:01:43,500 Bet pagaidiet, es esmu trūkst soli. 1303 01:01:43,500 --> 01:01:46,470 Ko mēs sakām, ir nepieciešams solis uz valodu, piemēram, C? 1304 01:01:46,470 --> 01:01:49,470 Esmu tikko uzrakstījis avotu kods, bet ko man vajag? 1305 01:01:49,470 --> 01:01:50,670 Jā, man ir nepieciešams kompilatoru. 1306 01:01:50,670 --> 01:01:57,670 Tātad par manu Mac šeit, man ir programmu, ko sauc GCC, GNU C kompilatoru, 1307 01:01:57,670 --> 01:02:03,990 kas ļauj man darīt this-- pagriezienu mans source kodu, mēs to saucam, 1308 01:02:03,990 --> 01:02:04,930 mašīnu kodu. 1309 01:02:04,930 --> 01:02:10,180 >> Un es redzu, ka, atkal, jo šādi, tie 1310 01:02:10,180 --> 01:02:14,090 ir nullēm un tie, es tikko izveidots no mana pirmkodu, 1311 01:02:14,090 --> 01:02:15,730 visi nullēm un uzņēmumiem. 1312 01:02:15,730 --> 01:02:17,770 Un, ja es gribu palaist mans program-- tas notiek 1313 01:02:17,770 --> 01:02:23,010 saukt a.out par vēsturiskā reasons-- "sveiki". 1314 01:02:23,010 --> 01:02:24,070 Es varu palaist vēlreiz. 1315 01:02:24,070 --> 01:02:25,690 Sveiks, sveiks, sveiks. 1316 01:02:25,690 --> 01:02:27,430 Un tas, šķiet, darbojas. 1317 01:02:27,430 --> 01:02:31,000 >> Bet tas nozīmē, ka kaut kur manā Datora atmiņa ir vārdi 1318 01:02:31,000 --> 01:02:35,279 h-e-l-l-o, izsaukuma zīme. 1319 01:02:35,279 --> 01:02:38,070 Un izrādās, tāpat kā malā, ko dators būtu tipiski 1320 01:02:38,070 --> 01:02:40,550 darīt, ka tā zina, kur lietas sāk un end-- tas ir 1321 01:02:40,550 --> 01:02:42,460 gatavojas likt īpašu simbolu šeit. 1322 01:02:42,460 --> 01:02:46,064 Un konvencija ir likt skaitlis nulle beigās vārda 1323 01:02:46,064 --> 01:02:48,230 lai jūs zināt, kur tas faktiski beidzas, lai jūs 1324 01:02:48,230 --> 01:02:52,750 neturiet izdrukāšanu vairāk un vairāk zīmes, nekā jūs faktiski paredzējis. 1325 01:02:52,750 --> 01:02:55,400 >> Bet takeaway šeit, pat lai gan tas ir diezgan mistiskā, 1326 01:02:55,400 --> 01:02:58,140 ir tas, ka tas galu galā samērā vienkāršs. 1327 01:02:58,140 --> 01:03:04,550 Jums tika dota veida lentes, tukšu telpa, kurā jūs varat rakstīt vēstules. 1328 01:03:04,550 --> 01:03:07,150 Jums vienkārši ir, lai būtu īpašs simbols, piemēram, patvaļīgi 1329 01:03:07,150 --> 01:03:10,316 skaits nulle, lai beigās jūsu vārdi lai dators zina, 1330 01:03:10,316 --> 01:03:13,410 oh, man vajadzētu pārtraukt drukāšanu pēc Es redzu izsaukuma zīmi. 1331 01:03:13,410 --> 01:03:16,090 Jo nākamais lieta tur ir ASCII vērtība ir nulle, 1332 01:03:16,090 --> 01:03:19,125 vai null raksturs kā kāds varētu to sauc. 1333 01:03:19,125 --> 01:03:21,500 Bet tur ir sava veida problēmu šeit, un pieņemsim atgriezties 1334 01:03:21,500 --> 01:03:23,320 uz numuriem brīdi. 1335 01:03:23,320 --> 01:03:28,720 Pieņemsim, ka man, patiesībā, ir masīvs numuru, 1336 01:03:28,720 --> 01:03:30,730 un pieņemsim, ka Programma es esmu rakstiski ir 1337 01:03:30,730 --> 01:03:34,680 kā grade grāmata par skolotāju un skolotāji klasē. 1338 01:03:34,680 --> 01:03:38,720 Un šī programma ļauj viņam vai viņai rakstīt savu skolēnu rezultātus 1339 01:03:38,720 --> 01:03:39,960 uz viktorīnas. 1340 01:03:39,960 --> 01:03:43,750 Un pieņemsim, ka students saņem 100 par savu pirmo viktorīnu, varbūt 1341 01:03:43,750 --> 01:03:49,920 piemēram, 80 uz nākamo, tad 75, tad 90 uz ceturto viktorīnā. 1342 01:03:49,920 --> 01:03:54,150 >> Tātad šajā brīdī stāsts, masīvs ir izmēru četri. 1343 01:03:54,150 --> 01:03:58,470 Ir absolūti vairāk atmiņu dators, bet masīvs, tā sakot, 1344 01:03:58,470 --> 01:04:00,350 ir izmēra četri. 1345 01:04:00,350 --> 01:04:06,060 Pieņemsim tagad, ka skolotājs vēlas piešķirt piekto viktorīna uz klasi. 1346 01:04:06,060 --> 01:04:08,510 Nu, viena no lietām, ko viņš vai viņai nāksies darīt 1347 01:04:08,510 --> 01:04:10,650 tagad uzglabāt papildu vērtību šeit. 1348 01:04:10,650 --> 01:04:15,490 Bet, ja masīva skolotājs ir izveidots šajā programmā ir izmērs, 1349 01:04:15,490 --> 01:04:22,440 viens no problēmas ar masīva, ka Jūs varat ne tikai saglabāt pievienojot atmiņā. 1350 01:04:22,440 --> 01:04:26,470 Jo ko tad, ja otra daļa no Programma ir vārds "hey" labi tur? 1351 01:04:26,470 --> 01:04:29,650 >> Citiem vārdiem sakot, mana atmiņa var būt izmantot kaut kādā programmā. 1352 01:04:29,650 --> 01:04:33,250 Un, ja iepriekš es drukāti, hey, Es gribu ievadi četriem viktorīnu rādītājus, 1353 01:04:33,250 --> 01:04:34,784 viņi varētu iet šeit un šeit. 1354 01:04:34,784 --> 01:04:37,700 Un, ja jūs pēkšņi mainīt savas domas vēlāk, un teikt, es gribu piekto viktorīna 1355 01:04:37,700 --> 01:04:40,872 rezultāts, jūs varat ne tikai ielieciet to, kur jūs vēlaties, 1356 01:04:40,872 --> 01:04:42,580 jo ko tad, ja tas atmiņa tiek izmantota 1357 01:04:42,580 --> 01:04:45,990 kaut else-- kādu citu programmu vai kāda cita iezīme programmas 1358 01:04:45,990 --> 01:04:46,910 ka jūs strādājat? 1359 01:04:46,910 --> 01:04:50,650 Tātad jums ir jādomā iepriekš kā jūs vēlaties, lai saglabātu savus datus, 1360 01:04:50,650 --> 01:04:54,480 jo tagad jūs esat krāsotas sevi par digitālo stūrī. 1361 01:04:54,480 --> 01:04:57,280 >> Tātad skolotājs varētu vietā teikt, rakstot programmu 1362 01:04:57,280 --> 01:04:59,360 uzglabāt viņa vai viņas pakāpes, jūs zināt, ko? 1363 01:04:59,360 --> 01:05:04,180 Es esmu gatavojas lūgt, rakstot savu programmu, 1364 01:05:04,180 --> 01:05:12,070 ka es gribu nulle, viens, divi, trīs, četri, pieci, seši, astoņi pakāpes kopā. 1365 01:05:12,070 --> 01:05:15,320 Tātad, viens, divi, trīs, četri, pieci, seši, septiņi, astoņi. 1366 01:05:15,320 --> 01:05:18,612 Skolotājs var tikai nedaudz vairāk, piešķirt atmiņas, rakstot savu programmu 1367 01:05:18,612 --> 01:05:19,570 un teikt, jūs zināt, ko? 1368 01:05:19,570 --> 01:05:22,236 Es nekad gatavojas piešķirt vairāk kā astoņus viktorīnas šajā semestrī. 1369 01:05:22,236 --> 01:05:23,130 Tas ir vienkārši traks. 1370 01:05:23,130 --> 01:05:24,470 Es nekad piešķirt to. 1371 01:05:24,470 --> 01:05:28,270 Tā, ka šādā veidā viņš vai viņa ir tāda elastība, lai uzglabātu studentu rādītājus, 1372 01:05:28,270 --> 01:05:33,010 piemēram, 75, 90, un varbūt kādu papildu kur students ieguva papildu kredītu, 105. 1373 01:05:33,010 --> 01:05:36,130 >> Bet, ja skolotājs nekad izmanto šos trīs telpas, 1374 01:05:36,130 --> 01:05:38,860 tur ir intuitīvs takeaway šeit. 1375 01:05:38,860 --> 01:05:41,410 Viņš vai viņa ir tikai izšķērdēt vietu. 1376 01:05:41,410 --> 01:05:44,790 Tātad citiem vārdiem sakot, tur ir šis bieži tradeoff programmēšanā 1377 01:05:44,790 --> 01:05:48,241 kur var vai nu piešķirt tieši tā, kā daudz atmiņas, kā jūs vēlaties, 1378 01:05:48,241 --> 01:05:51,490 otrādi, kura ir tā, ka tu esi super efficient-- jūs neesat to izšķērdīgs 1379 01:05:51,490 --> 01:05:54,640 at all-- bet negatīvie kuru ir tas, kas, ja jūs maināt jūsu prātā, kad 1380 01:05:54,640 --> 01:05:58,780 izmantojot programmu, kuru vēlaties saglabāt vairāk datu, nekā jūs sākotnēji paredzēts. 1381 01:05:58,780 --> 01:06:03,030 >> Tātad, varbūt risinājums ir, tad, rakstīt savu programmu tādā veidā, 1382 01:06:03,030 --> 01:06:05,605 ka viņi izmanto vairāk atmiņas nekā viņi tiešām ir nepieciešams. 1383 01:06:05,605 --> 01:06:07,730 Tādā veidā jūs nebrauksim uzskriet šo problēmu, 1384 01:06:07,730 --> 01:06:09,730 bet jūs ir izšķērdīgs. 1385 01:06:09,730 --> 01:06:12,960 Un jo vairāk atmiņas jūsu programma izmanto, kā mēs apspriedām vakar, jo mazāk 1386 01:06:12,960 --> 01:06:15,410 atmiņu, kas ir pieejams uz citām programmām, 1387 01:06:15,410 --> 01:06:18,790 jo ātrāk jūsu dators varētu palēnināt uz leju, jo virtuālo atmiņu. 1388 01:06:18,790 --> 01:06:22,670 Un tā ideāls risinājums varētu būt tas, ko? 1389 01:06:22,670 --> 01:06:24,610 >> Nepietiekami izlietošanai šķiet slikti. 1390 01:06:24,610 --> 01:06:27,030 Over-piešķirot šķiet slikti. 1391 01:06:27,030 --> 01:06:31,120 Tātad, kādi varētu būt labāks risinājums? 1392 01:06:31,120 --> 01:06:32,390 Pārdalīt. 1393 01:06:32,390 --> 01:06:33,590 Esiet dinamiskāku. 1394 01:06:33,590 --> 01:06:37,520 Nespiediet sevi izvēlēties priori, sākumā, ko jūs vēlaties. 1395 01:06:37,520 --> 01:06:41,370 Un, protams, nav pārāk piešķirt, lai jums būtu izšķērdīgs. 1396 01:06:41,370 --> 01:06:45,770 >> Un tā, lai sasniegtu šo mērķi, mēs nepieciešams, lai mest šo datu struktūru, 1397 01:06:45,770 --> 01:06:48,100 tā sakot, prom. 1398 01:06:48,100 --> 01:06:51,080 Un tā, ko programmētājs parasti izmanto 1399 01:06:51,080 --> 01:06:55,940 ir kaut kas sauc nav masīvs bet saistīts saraksts. 1400 01:06:55,940 --> 01:07:00,860 Citiem vārdiem sakot, viņš vai viņa būs sāk domāt par savu atmiņu 1401 01:07:00,860 --> 01:07:05,280 jo pagaidām veida formas, ka viņi var izdarīt šādā veidā. 1402 01:07:05,280 --> 01:07:08,520 Ja es gribu, lai saglabātu vienu numuru program-- tāpēc tas ir septembrī 1403 01:07:08,520 --> 01:07:12,600 Es esmu devis mani skolēni viktorīna; Es gribu uzglabāt studentu pirmo testu, 1404 01:07:12,600 --> 01:07:16,220 un viņi ieguva 100 par it-- I esmu gatavojas lūgt manu datoru, 1405 01:07:16,220 --> 01:07:19,540 veidā programmas es esmu rakstīts, vienam rieciens atmiņas. 1406 01:07:19,540 --> 01:07:22,570 Un es esmu gatavojas glabāt numurs 100 tajā, un tas arī viss. 1407 01:07:22,570 --> 01:07:24,820 >> Tad dažas nedēļas vēlāk kad es varu saņemt savu otro testu, 1408 01:07:24,820 --> 01:07:27,890 un ir pienācis laiks, lai rakstītu šajā 90%, es dodos 1409 01:07:27,890 --> 01:07:32,129 lūgt datoru, hey, dators, es varu būt vēl rieciens atmiņas? 1410 01:07:32,129 --> 01:07:34,170 Tas notiek, lai dotu man šo tukšs rieciens atmiņas. 1411 01:07:34,170 --> 01:07:39,370 Es esmu gatavojas īstenot numuru 90, bet manā programmā kaut vai other-- 1412 01:07:39,370 --> 01:07:42,100 un mums nebūs jāuztraucas par sintakse par this-- man vajag 1413 01:07:42,100 --> 01:07:44,430 kaut kā ķēde šīs lietas kopā. 1414 01:07:44,430 --> 01:07:47,430 Un es ķēdi kopā ar kas izskatās kā bulta šeit. 1415 01:07:47,430 --> 01:07:50,050 >> Trešā spēle kas nāk uz augšu, Es esmu gatavojas teikt, hey, dators, 1416 01:07:50,050 --> 01:07:51,680 dod man vēl vienu gabalu no atmiņas. 1417 01:07:51,680 --> 01:07:54,660 Un es esmu gatavojas, lai apspiestu kāds tas bija, piemēram, 75, 1418 01:07:54,660 --> 01:07:56,920 un man ir ķēdes šim kopā tagad kaut kā. 1419 01:07:56,920 --> 01:08:00,290 Ceturtkārt viktorīna nāk kopā, un varbūt kas ir pret semestra noslēgumā. 1420 01:08:00,290 --> 01:08:03,140 Un šajā brīdī mana programma varētu būt, izmantojot atmiņu 1421 01:08:03,140 --> 01:08:05,540 visas vietas, visā fiziski. 1422 01:08:05,540 --> 01:08:08,170 Un tā tikai sākas, es esmu gatavojas izdarīt šo tālāk 1423 01:08:08,170 --> 01:08:11,260 quiz-- es aizmirst to, ko tā bija; es domāju, ka varbūt 80 vai something-- 1424 01:08:11,260 --> 01:08:12,500 kā nekā šeit. 1425 01:08:12,500 --> 01:08:15,920 >> Bet tas ir labi, jo gleznieciski Es esmu gatavojas izdarīt šo līniju. 1426 01:08:15,920 --> 01:08:19,063 Citiem vārdiem sakot, patiesībā, jūsu datora aparatūru, 1427 01:08:19,063 --> 01:08:20,979 pirmais rezultāts varētu galu galā šeit, jo tas ir 1428 01:08:20,979 --> 01:08:22,529 labi sākumā semestra. 1429 01:08:22,529 --> 01:08:25,810 Nākamais varētu nonākt šeit jo mazliet laika ir pagājis 1430 01:08:25,810 --> 01:08:27,210 un programma turpina darboties. 1431 01:08:27,210 --> 01:08:30,060 Nākamais rezultāts, kas bija 75, varētu būt vairāk nekā šeit. 1432 01:08:30,060 --> 01:08:33,420 Un pēdējais rezultāts varētu būt 80, kas ir vairāk nekā šeit. 1433 01:08:33,420 --> 01:08:38,729 >> Tātad patiesībā, fiziski, tas varētu būt kāda datora atmiņā izskatās. 1434 01:08:38,729 --> 01:08:41,569 Bet tas nav noderīgs garīgās paradigmu datoru programmētājs. 1435 01:08:41,569 --> 01:08:44,649 Kāpēc jums vajadzētu aprūpi, kur heck jūsu dati ir beidzot? 1436 01:08:44,649 --> 01:08:46,200 Jūs vienkārši vēlaties, lai uzglabātu datus. 1437 01:08:46,200 --> 01:08:49,390 >> Tas ir veida, piemēram, mūsu diskusijas agrāk zīmēšanas kubu. 1438 01:08:49,390 --> 01:08:52,200 Kāpēc tu vienalga, ko leņķis ir no kuba 1439 01:08:52,200 --> 01:08:53,740 un kā jums ir pārvērst to izdarīt to? 1440 01:08:53,740 --> 01:08:54,950 Jūs vienkārši vēlaties kubu. 1441 01:08:54,950 --> 01:08:57,359 Tāpat šeit, jums vienkārši vēlaties pakāpē grāmatu. 1442 01:08:57,359 --> 01:08:59,559 Jūs vienkārši vēlaties, lai padomātu par to kā numuru sarakstā. 1443 01:08:59,559 --> 01:09:01,350 Who cares, kā tas ir īstenoti aparatūru? 1444 01:09:01,350 --> 01:09:05,180 >> Tātad abstrakcija tagad ir šo attēlu šeit. 1445 01:09:05,180 --> 01:09:07,580 Tas ir saistīts sarakstu, kā programmētājs to sauktu, 1446 01:09:07,580 --> 01:09:10,640 ciktāl jums ir sarakstu, protams skaitļu. 1447 01:09:10,640 --> 01:09:14,990 Bet tas ir saistīts gleznieciski Ņemot vērā šos bultas, 1448 01:09:14,990 --> 01:09:18,510 un visas šīs bultas are-- zem kapuci, ja jūs esat ieinteresēti, 1449 01:09:18,510 --> 01:09:23,210 atgādināt, ka mūsu fiziskā aparatūras ir adreses nulle, viens, divi, trīs, četri. 1450 01:09:23,210 --> 01:09:28,465 Visas šīs bultas ir ir kā karti vai norādes, kur, ja 90 is-- tagad 1451 01:09:28,465 --> 01:09:29,090 Man skaitīt. 1452 01:09:29,090 --> 01:09:31,750 >> Nulle, viens, divi, trīs, četriem, pieciem, sešiem, septiņiem. 1453 01:09:31,750 --> 01:09:35,640 Izskatās, ka 90 ir atmiņas adrese numurs septiņi. 1454 01:09:35,640 --> 01:09:38,460 Visas šīs bultas ir ir kā maza lūžņi papīra 1455 01:09:38,460 --> 01:09:42,439 ka dodot rīkojumus programma, kas saka sekot šo karti 1456 01:09:42,439 --> 01:09:43,880 nokļūt uz vietu septiņi. 1457 01:09:43,880 --> 01:09:46,680 Un tur jūs atradīsiet studenta otrais viktorīna rezultāts. 1458 01:09:46,680 --> 01:09:52,100 Tikmēr 75-- ja es turpinu to, tas ir septiņi, astoņi, deviņi, 10, 11, 12, 1459 01:09:52,100 --> 01:09:54,240 13, 14, 15. 1460 01:09:54,240 --> 01:09:59,080 >> Tas cita arrow tikai atspoguļo karti, lai atmiņas vietā 15. 1461 01:09:59,080 --> 01:10:02,550 Bet atkal, programmētājs parasti dara vienalga par šo detalizācijas pakāpi. 1462 01:10:02,550 --> 01:10:05,530 Un vairumā katrā programmēšanas valoda šodien, programmētājs 1463 01:10:05,530 --> 01:10:10,490 nav pat zināt, kur atmiņā šie skaitļi patiesībā ir. 1464 01:10:10,490 --> 01:10:14,830 Viss, ko viņš vai viņa ir rūpēties par ir ka tie ir kaut kas saistīti kopā 1465 01:10:14,830 --> 01:10:18,390 tādā datu struktūra, kā šis. 1466 01:10:18,390 --> 01:10:21,580 >> Bet izrādās, nav iegūt pārāk tehnisks. 1467 01:10:21,580 --> 01:10:27,430 Bet tikai tāpēc, ka mēs varam, iespējams, atļauties šo diskusiju šeit, 1468 01:10:27,430 --> 01:10:33,630 pieņemsim, ka mēs vēlreiz šis jautājums šeit no masīva. 1469 01:10:33,630 --> 01:10:35,780 Let 's redzēt, ja mēs nožēlojam iet šeit. 1470 01:10:35,780 --> 01:10:42,950 Tas ir 100, 90, 75, un 80. 1471 01:10:42,950 --> 01:10:44,980 >> Ļaujiet man īsi padara šo apgalvojumu. 1472 01:10:44,980 --> 01:10:48,980 Tas ir masīvs, un atkal, spilgta raksturīga masīva 1473 01:10:48,980 --> 01:10:52,400 ir tas, ka visas jūsu datu atpakaļ atpakaļ atpakaļ in memory-- burtiski 1474 01:10:52,400 --> 01:10:56,830 vienu baitu vai varbūt četri baiti, daži noteikts skaits baitu prom. 1475 01:10:56,830 --> 01:11:00,710 In saistīta sarakstā, ko mēs varētu izdarīt kā šis, zem motora pārsega, kas 1476 01:11:00,710 --> 01:11:02,000 zina, kur tas sīkumi ir? 1477 01:11:02,000 --> 01:11:03,630 Tas nav pat nepieciešams, lai plūst kā šis. 1478 01:11:03,630 --> 01:11:06,050 Daži dati var būt atpakaļ pa kreisi tur. 1479 01:11:06,050 --> 01:11:07,530 Jums nav pat zināt. 1480 01:11:07,530 --> 01:11:15,430 >> Un tā ar masīvu, jums ir iezīme pazīstams kā izlases piekļuvi. 1481 01:11:15,430 --> 01:11:20,570 Un ko brīvpiekļuves līdzekļi ir ka dators var lēkt uzreiz 1482 01:11:20,570 --> 01:11:22,730 uz jebkuru vietu masīvā. 1483 01:11:22,730 --> 01:11:23,580 Kāpēc? 1484 01:11:23,580 --> 01:11:26,000 Jo dators zina ka pirmā vieta ir 1485 01:11:26,000 --> 01:11:29,540 nulle, viens, divi, un trīs. 1486 01:11:29,540 --> 01:11:33,890 >> Un tādēļ, ja jūs vēlaties, lai iet no šis elements uz nākamo elementu, 1487 01:11:33,890 --> 01:11:36,099 Jūs burtiski, jo datora prāts, vienkārši pievienot vienu. 1488 01:11:36,099 --> 01:11:39,140 Ja jūs vēlaties doties uz trešo elementu, vienkārši pievienojiet one-- nākamo elementu, tikko 1489 01:11:39,140 --> 01:11:40,290 pievienot vienu. 1490 01:11:40,290 --> 01:11:42,980 Tomēr, šajā versijā stāsts, pieņemsim 1491 01:11:42,980 --> 01:11:46,080 dators pašlaik meklē at vai nodarbojas ar numuru 100. 1492 01:11:46,080 --> 01:11:49,770 Kā jūs nokļūt uz nākamo pakāpē pakāpei grāmatā? 1493 01:11:49,770 --> 01:11:52,560 >> Jums ir jāņem septiņi pakāpieni, kas ir patvaļīga. 1494 01:11:52,560 --> 01:11:58,120 Lai nokļūtu uz nākamo, jums ir veikt vēl astoņi soļi, lai saņemtu 15. 1495 01:11:58,120 --> 01:12:02,250 Citiem vārdiem sakot, tas nav pastāvīga plaisa starp skaitļiem, 1496 01:12:02,250 --> 01:12:04,857 un tāpēc tas tikai ņem dators vairāk laika ir punkts. 1497 01:12:04,857 --> 01:12:06,940 Dators ir meklēt caur atmiņu, lai 1498 01:12:06,940 --> 01:12:08,990 atrast to, ko jūs meklējat. 1499 01:12:08,990 --> 01:12:14,260 >> Tātad, tā kā masīvs mēdz būt ātru datu structure-- jo jums 1500 01:12:14,260 --> 01:12:17,610 var burtiski vienkārši darīt vienkāršu aritmētisko un saņemtu, kur jūs vēlaties, pievienojot vienu, 1501 01:12:17,610 --> 01:12:21,300 par instance-- saistītu sarakstu, jūs upurēt šo funkciju. 1502 01:12:21,300 --> 01:12:24,020 Jūs varat ne tikai iet no pirmā uz otro trešo uz ceturto. 1503 01:12:24,020 --> 01:12:25,240 Jums ir jāievēro karti. 1504 01:12:25,240 --> 01:12:28,160 Jums ir veikt papildu pasākumus, nokļūt uz tām vērtībām, kas 1505 01:12:28,160 --> 01:12:30,230 Šķiet, ka pievienojot izmaksas. 1506 01:12:30,230 --> 01:12:35,910 Tātad mēs esam maksājot cenu, bet to, kas bija līdzeklis, kas Dan tika meklē šeit? 1507 01:12:35,910 --> 01:12:38,110 Kāda saistītu sarakstu acīmredzot ļauj mums darīt, 1508 01:12:38,110 --> 01:12:40,240 kas bija izcelsmes šis konkrētais stāsts? 1509 01:12:40,240 --> 01:12:43,250 1510 01:12:43,250 --> 01:12:43,830 >> Tieši tā. 1511 01:12:43,830 --> 01:12:46,220 Dinamiska lielums uz to. 1512 01:12:46,220 --> 01:12:48,040 Mēs varam pievienot šim sarakstam. 1513 01:12:48,040 --> 01:12:51,430 Mēs pat varam sarukt sarakstu, lai ka mēs esam tikai izmantojot tik daudz atmiņu 1514 01:12:51,430 --> 01:12:55,560 kā mēs tiešām gribam, un tā mēs nekad pārāk izlietošanai. 1515 01:12:55,560 --> 01:12:58,470 >> Tagad tikai, lai būtu patiesi gnīda-picky, tur ir slēptās izmaksas. 1516 01:12:58,470 --> 01:13:01,980 Tātad jums vajadzētu ne tikai let me pārliecināt Jums, ka tas ir pārliecinošs tradeoff. 1517 01:13:01,980 --> 01:13:04,190 Ir vēl viens slēptās izmaksas šeit. 1518 01:13:04,190 --> 01:13:06,550 Pabalsts, lai būtu skaidrs, ir tas, ka mēs dinamismu. 1519 01:13:06,550 --> 01:13:10,359 Ja es gribu vēl vienu elementu, es varu tikai izdarīt to un nodot numuru tur. 1520 01:13:10,359 --> 01:13:12,150 Un tad es varu saistīt ar attēlu šeit, 1521 01:13:12,150 --> 01:13:14,970 tā kā vairāk nekā šeit, atkal, ja es esmu krāsotas sevi kaktā, 1522 01:13:14,970 --> 01:13:19,410 ja kaut kas cits jau izmanto atmiņas šeit, es esmu no luck. 1523 01:13:19,410 --> 01:13:21,700 Esmu gleznojis sevi stūrī. 1524 01:13:21,700 --> 01:13:24,390 >> Bet kas ir slēptā izmaksāt šo attēlu? 1525 01:13:24,390 --> 01:13:27,690 Tas ir ne tikai daudzums laiks, kas nepieciešams, 1526 01:13:27,690 --> 01:13:29,870 aiziet no šejienes uz šeit, kas ir septiņi soļi, tad 1527 01:13:29,870 --> 01:13:32,820 astoņi posmi, kas ir vairāk nekā viens. 1528 01:13:32,820 --> 01:13:34,830 Kas ir vēl viens slēptās izmaksas? 1529 01:13:34,830 --> 01:13:35,440 Ne tikai laiks. 1530 01:13:35,440 --> 01:13:44,790 1531 01:13:44,790 --> 01:13:49,940 Papildu informācija vajadzīgi, lai sasniegtu šo attēlu. 1532 01:13:49,940 --> 01:13:53,210 >> Yeah, ka karte, šie maz lūžņi papīrs, kā es glabāt apraksta tos kā. 1533 01:13:53,210 --> 01:13:55,650 Tie arrows-- tie nav bezmaksas. 1534 01:13:55,650 --> 01:13:57,660 Computer-- jūs zināt ko dators ir. 1535 01:13:57,660 --> 01:13:58,790 Tā ir nullēm un uzņēmumiem. 1536 01:13:58,790 --> 01:14:03,170 Ja jūs vēlaties, lai pārstāvētu bultu vai saistīto karti vai vairāki, jums ir nepieciešams dažas atmiņas. 1537 01:14:03,170 --> 01:14:05,950 Tātad otrā cenu, jūs maksāt par saistītā sarakstā 1538 01:14:05,950 --> 01:14:09,070 kopīga datorzinātnes resurss, ir arī telpa. 1539 01:14:09,070 --> 01:14:11,710 >> Un tiešām tā, tik bieži, starp kompromisus 1540 01:14:11,710 --> 01:14:15,580 projektēšanas programmatūras inženierijas sistēmas ir laiks un space-- 1541 01:14:15,580 --> 01:14:18,596 ir divi no jūsu sastāvdaļām, divi Sava visdārgākajām sastāvdaļām. 1542 01:14:18,596 --> 01:14:21,220 Tas maksā man vairāk laika jo man ir sekot šo karti, 1543 01:14:21,220 --> 01:14:25,730 bet tas arī maksā man vairāk vietas jo man ir, lai saglabātu šo karti apkārt. 1544 01:14:25,730 --> 01:14:28,730 Tātad cerība, jo mēs esam sava veida apsprieda vairāk nekā vakar un šodien, 1545 01:14:28,730 --> 01:14:31,720 ir tas, ka ieguvumi atsvērs izmaksas. 1546 01:14:31,720 --> 01:14:33,870 >> Bet tur nav acīmredzams risinājums šeit. 1547 01:14:33,870 --> 01:14:35,870 Varbūt tas ir better-- a la ātri un netīrs, 1548 01:14:35,870 --> 01:14:38,660 kā Kareem ierosināts earlier-- mest atmiņu problēmu. 1549 01:14:38,660 --> 01:14:42,520 Vienkārši nopirkt vairāk atmiņas, domāju mazāk grūti par atrisinātu problēmu, 1550 01:14:42,520 --> 01:14:44,595 un atrisināt to vieglāk veidā. 1551 01:14:44,595 --> 01:14:46,720 Un tiešām agrāk, kad mēs runājām par kompromisus, 1552 01:14:46,720 --> 01:14:49,190 tas nebija telpu dators un laiks. 1553 01:14:49,190 --> 01:14:51,810 Tas bija attīstītājs laiks, kas ir vēl viens resurss. 1554 01:14:51,810 --> 01:14:54,829 >> Tātad vēlreiz, tas ir šis balansēšanas akts cenšoties izlemt, kuru no šīm lietām 1555 01:14:54,829 --> 01:14:55,870 jūs esat gatavi tērēt? 1556 01:14:55,870 --> 01:14:57,380 Kurš ir vislētākais? 1557 01:14:57,380 --> 01:15:01,040 Kas dod labākus rezultātus? 1558 01:15:01,040 --> 01:15:01,540 Yeah? 1559 01:15:01,540 --> 01:15:11,310 1560 01:15:11,310 --> 01:15:12,580 >> Patiešām. 1561 01:15:12,580 --> 01:15:15,970 Tādā gadījumā, ja Jūs esat pārstāvot numurus ar maps-- 1562 01:15:15,970 --> 01:15:18,820 tos sauc daudzās valodās "norādes" vai "adreses" - 1563 01:15:18,820 --> 01:15:20,390 tas ir divreiz telpu. 1564 01:15:20,390 --> 01:15:24,390 Tas nav jābūt tik slikti, kā dubultā, ja tagad mēs esam tikai glabāšanai numurus. 1565 01:15:24,390 --> 01:15:27,410 Pieņemsim, ka mums bija glabāšanai pacientu ierakstus hospital-- 1566 01:15:27,410 --> 01:15:30,870 tāpēc Pierson s vārdus, tālruņu numurus, sociālās apdrošināšanas numuri, ārsts 1567 01:15:30,870 --> 01:15:31,540 vēsture. 1568 01:15:31,540 --> 01:15:34,160 Šajā ailē var būt daudz, daudz lielāka, un tādā gadījumā 1569 01:15:34,160 --> 01:15:38,000 niecīga maz rādītājs, adrese nākamais element-- tas nav liels darījumu. 1570 01:15:38,000 --> 01:15:40,620 Tas ir tik bārkstis maksā tas nav svarīgi. 1571 01:15:40,620 --> 01:15:43,210 Bet šajā gadījumā, jā, tas ir divkāršojies. 1572 01:15:43,210 --> 01:15:45,290 Labs jautājums. 1573 01:15:45,290 --> 01:15:47,900 >> Parunāsim par reize mazliet konkrētāk. 1574 01:15:47,900 --> 01:15:50,380 Kas ir darba laiks meklējot šo sarakstu? 1575 01:15:50,380 --> 01:15:53,640 Pieņemsim, ka es gribēju, lai meklētu cauri visiem studentu pakāpes, 1576 01:15:53,640 --> 01:15:55,980 un tur ir n atzīmes Šajā datu struktūra. 1577 01:15:55,980 --> 01:15:58,830 Arī šeit mēs varam aizņemties vārdu krājums no agrāk. 1578 01:15:58,830 --> 01:16:00,890 Tas ir lineāra datu struktūra. 1579 01:16:00,890 --> 01:16:04,570 >> Big O n ir to, kas nepieciešams, lai saņemtu līdz beigām šo datu struktūra, 1580 01:16:04,570 --> 01:16:08,410 whereas-- un mēs neesam redzējuši Tas before-- masīvs dod jums 1581 01:16:08,410 --> 01:16:13,555 ko sauc nemainīgs laiks, kas nozīmē, vienu soli vai divus soļus vai 10 steps-- 1582 01:16:13,555 --> 01:16:14,180 nav nozīmes. 1583 01:16:14,180 --> 01:16:15,440 Tas ir fiksēts skaitlis. 1584 01:16:15,440 --> 01:16:17,440 Tam nav nekāda sakara ar lielums masīva. 1585 01:16:17,440 --> 01:16:20,130 Un iemesls tam, atkal, ir brīvpiekļuves. 1586 01:16:20,130 --> 01:16:23,180 Dators var vienkārši uzreiz pārietu uz citu vietu, 1587 01:16:23,180 --> 01:16:27,770 jo viņi visi vienādi attālums no viss pārējais. 1588 01:16:27,770 --> 01:16:29,112 Nav domāšana iesaistīti. 1589 01:16:29,112 --> 01:16:31,900 1590 01:16:31,900 --> 01:16:32,400 Viss kārtībā. 1591 01:16:32,400 --> 01:16:39,230 Tātad, ja es varētu, ļaujiet man mēģināt gleznot pēdējie divi attēli. 1592 01:16:39,230 --> 01:16:42,830 Ļoti bieži viens pazīstams kā hash tabulu. 1593 01:16:42,830 --> 01:16:51,120 Tātad, lai motivētu šo diskusiju, ļaujiet man domāt par to, kā to izdarīt. 1594 01:16:51,120 --> 01:16:52,610 >> Tā kā par šo? 1595 01:16:52,610 --> 01:16:55,160 Pieņemsim, ka problēma mēs vēlamies atrisināt tagad 1596 01:16:55,160 --> 01:16:58,360 īsteno ar dictionary-- tāpēc viss ķekars angļu vārdiem 1597 01:16:58,360 --> 01:16:59,330 vai neatkarīgi. 1598 01:16:59,330 --> 01:17:02,724 Un mērķis ir, lai varētu atbildēt jautājumi veidlapas ir tas vārds? 1599 01:17:02,724 --> 01:17:04,640 Tātad jūs vēlaties, lai īstenotu pareizrakstības pārbaudītājs, tikko 1600 01:17:04,640 --> 01:17:07,220 kā fiziska vārdnīcu ka jūs varat meklēt lietas pat. 1601 01:17:07,220 --> 01:17:10,490 Pieņemsim, ka es būtu to darīt ar masīvu. 1602 01:17:10,490 --> 01:17:12,590 Es varētu darīt. 1603 01:17:12,590 --> 01:17:20,756 >> Un domāju, ka vārdi ir ābolu un banānu un cantaloupe. 1604 01:17:20,756 --> 01:17:23,330 1605 01:17:23,330 --> 01:17:26,465 Un es nevaru iedomāties augļiem kas sākas ar D, tāpēc mēs esam tikai 1606 01:17:26,465 --> 01:17:27,590 nāksies trīs augļus. 1607 01:17:27,590 --> 01:17:31,510 Tātad šī ir masīvs, un mēs esam uzglabātu visus šos vārdus 1608 01:17:31,510 --> 01:17:34,200 šajā vārdnīcā kā masīva. 1609 01:17:34,200 --> 01:17:39,350 Jautājums, tad ir, kā cits jūs varētu uzglabāt šo informāciju? 1610 01:17:39,350 --> 01:17:43,160 >> Nu, es esmu veida krāpšanos šeit, jo katrs no šiem burtiem vārdu 1611 01:17:43,160 --> 01:17:44,490 ir patiešām individuāls baitu. 1612 01:17:44,490 --> 01:17:46,740 Tātad, ja es patiešām gribēju būt gnīda-picky, es tiešām 1613 01:17:46,740 --> 01:17:49,600 būt sadalot to augšup daudz mazākos gabalos atmiņas, 1614 01:17:49,600 --> 01:17:51,289 un mēs varētu darīt tieši tā. 1615 01:17:51,289 --> 01:17:53,580 Bet mēs ejam uzskriet pati problēma kā iepriekš. 1616 01:17:53,580 --> 01:17:56,674 Ko darīt, ja, kā Merriam Webster vai Oxford Vai katrs year-- viņi pievienot vārdus 1617 01:17:56,674 --> 01:17:59,340 uz dictionary-- mums nav vienmēr vēlas gleznot sevi 1618 01:17:59,340 --> 01:18:00,780 kaktā ar masīvu? 1619 01:18:00,780 --> 01:18:05,710 >> Tā vietā, varbūt gudrāki pieeja ir likt ābolu savā mezglā vai kastē, 1620 01:18:05,710 --> 01:18:11,190 kā mēs teiktu, banānu, un tad šeit mums ir kantalupe. 1621 01:18:11,190 --> 01:18:14,990 1622 01:18:14,990 --> 01:18:16,790 Un mēs string šīs lietas kopā. 1623 01:18:16,790 --> 01:18:19,980 Tātad tas ir masīvs, un tas ir saistīts saraksts. 1624 01:18:19,980 --> 01:18:23,300 Ja jūs nevar gluži redzēt, tas tikai saka "masīvs", un tas saka "sarakstu." 1625 01:18:23,300 --> 01:18:25,780 >> Tāpēc mums ir tāds pats Precīzi jautājumi kā agrāk, 1626 01:18:25,780 --> 01:18:28,600 ar ko mums tagad ir dinamika mūsu saistīta sarakstā. 1627 01:18:28,600 --> 01:18:31,090 Bet mums ir diezgan lēns vārdnīcu. 1628 01:18:31,090 --> 01:18:32,870 Pieņemsim, ka es gribu, lai sameklētu vārdu. 1629 01:18:32,870 --> 01:18:35,430 Tas var aizņemt man Big O n soļi, jo vārds varētu 1630 01:18:35,430 --> 01:18:37,840 būt visu ceļu beigās saraksts, piemēram, melones. 1631 01:18:37,840 --> 01:18:40,600 Un izrādās, ka plānošanā, kārtot 1632 01:18:40,600 --> 01:18:42,700 no Svētais Grāls datu struktūras, ir kaut kas 1633 01:18:42,700 --> 01:18:46,620 kas dod jums konstante laiks, piemēram, masīvs 1634 01:18:46,620 --> 01:18:50,870 bet kas joprojām sniedz jums dinamismu. 1635 01:18:50,870 --> 01:18:52,940 >> Lai mēs varētu būt labākais no abām pasaulēm? 1636 01:18:52,940 --> 01:18:55,570 Un tiešām, tur ir kaut kas sauc hash tabulu 1637 01:18:55,570 --> 01:18:59,320 kas ļauj jums darīt tieši ka, lai gan apmēram. 1638 01:18:59,320 --> 01:19:03,140 Hash tabula ir mīļotājs datu struktūra, kas mums 1639 01:19:03,140 --> 01:19:06,340 var iedomāties kā kombinācija no array-- 1640 01:19:06,340 --> 01:19:12,390 un es esmu gatavojas izdarīt to tāpat this-- un saistīti saraksti 1641 01:19:12,390 --> 01:19:17,310 ka es izdarīt kā šis vairāk nekā šeit. 1642 01:19:17,310 --> 01:19:19,760 >> Un kā šī lieta darbi ir šāds. 1643 01:19:19,760 --> 01:19:23,310 1644 01:19:23,310 --> 01:19:29,540 Ja šis now-- hash table-- ir mans trešais datu struktūra, 1645 01:19:29,540 --> 01:19:32,590 un es gribu, lai saglabātu vārdi tas, man nav 1646 01:19:32,590 --> 01:19:35,440 vēlēties, lai tikai saglabātu visu iepriekš vārdus atpakaļ atpakaļ atpakaļ atpakaļ. 1647 01:19:35,440 --> 01:19:37,430 Es gribu, lai piesaistītu kādu informācijas vienību 1648 01:19:37,430 --> 01:19:40,330 par vārdiem, kas ļaus me get to, ja tas ir ātrāk. 1649 01:19:40,330 --> 01:19:43,666 >> Tātad, ņemot vērā vārdus ābolu un banānu un cantaloupe, 1650 01:19:43,666 --> 01:19:45,040 Es apzināti izvēlējos šos vārdus. 1651 01:19:45,040 --> 01:19:45,340 Kāpēc? 1652 01:19:45,340 --> 01:19:47,631 Kas veida fundamentāli atšķirīgs par trīs? 1653 01:19:47,631 --> 01:19:49,950 1654 01:19:49,950 --> 01:19:51,484 Kas ir skaidrs? 1655 01:19:51,484 --> 01:19:52,900 Viņi sāk ar dažādiem burtiem. 1656 01:19:52,900 --> 01:19:53,900 >> Tātad, jūs zināt, ko? 1657 01:19:53,900 --> 01:19:57,120 Nevis likt visus Savus vārdus pats spainis, tā sakot, 1658 01:19:57,120 --> 01:20:00,390 tāpat vienā lielā sarakstā, kāpēc ne Es vismaz mēģināt optimizāciju 1659 01:20:00,390 --> 01:20:04,180 un lai manas saraksti 26/01 tik ilgi. 1660 01:20:04,180 --> 01:20:07,440 Pārliecinoši optimizācija varētu būt, kāpēc nav 1661 01:20:07,440 --> 01:20:10,650 I-- Ievietojot vārdu šajā datu struktūru, 1662 01:20:10,650 --> 01:20:14,300 uz datora atmiņā, kāpēc nav man visu "A" vārdus šeit, 1663 01:20:14,300 --> 01:20:17,270 visi "b" vārdi šeit, un visi "c" vārdi šeit? 1664 01:20:17,270 --> 01:20:24,610 Tātad tas beidzas līdz liekot ābolu šeit, banānu šeit, kantalupe šeit, 1665 01:20:24,610 --> 01:20:25,730 un tā tālāk. 1666 01:20:25,730 --> 01:20:31,700 >> Un, ja man ir papildu Vārds like-- kas ir vēl viens? 1667 01:20:31,700 --> 01:20:36,640 Apple, banānu, bumbieru. 1668 01:20:36,640 --> 01:20:39,370 Ikviens domā par augļu kas sākas ar A, B, vai C? 1669 01:20:39,370 --> 01:20:40,570 Blueberry-- perfekta. 1670 01:20:40,570 --> 01:20:43,990 Kas notiek, lai galu galā šeit. 1671 01:20:43,990 --> 01:20:47,530 Un tā mēs, šķiet, ir nedaudz labāks risinājums, 1672 01:20:47,530 --> 01:20:50,820 jo tagad, ja es gribu meklēt ābolu, es 1673 01:20:50,820 --> 01:20:53,200 first-- man nav tikai nirt manā datu struktūras. 1674 01:20:53,200 --> 01:20:54,850 Man nav nodoties sava datora atmiņā. 1675 01:20:54,850 --> 01:20:56,530 Es vispirms apskatīt pirmo burtu. 1676 01:20:56,530 --> 01:20:58,610 >> Un tas ir tas, ko dators zinātnieks teiktu. 1677 01:20:58,610 --> 01:21:00,760 Jūs hash jūsu datu struktūras. 1678 01:21:00,760 --> 01:21:04,100 Jūs veikt savu ieguldījumu, kas šī lieta ir vārds, piemēram, ābolu. 1679 01:21:04,100 --> 01:21:07,150 Analizēt to, aplūkojot pirmais burts šajā gadījumā, 1680 01:21:07,150 --> 01:21:08,340 tādējādi sajaukšanai to. 1681 01:21:08,340 --> 01:21:10,950 Sajaukšanai ir vispārējs termins, ar kuru Jūs lietojat kaut kā priekšnodokli 1682 01:21:10,950 --> 01:21:12,116 un jūs ražot kādu produkciju. 1683 01:21:12,116 --> 01:21:15,090 Un izejas, jo lieta ir vieta 1684 01:21:15,090 --> 01:21:18,150 jūs vēlaties meklēt, pirmais vietu, otrais vietu, trešais. 1685 01:21:18,150 --> 01:21:22,160 Tātad ieguldījums ir ābolu, produkcija ir pirmais. 1686 01:21:22,160 --> 01:21:25,054 Ieguldījums ir banānu, tad produkcija būtu otrais. 1687 01:21:25,054 --> 01:21:27,220 Ieguldījums ir cantaloupe, produkcija būtu trešais. 1688 01:21:27,220 --> 01:21:30,320 Ieguldījums ir melleņu, tad produkcija būtu atkal būs otrais. 1689 01:21:30,320 --> 01:21:34,010 Un tas ir tas, kas palīdz jums veikt īsceļus caur savu atmiņu 1690 01:21:34,010 --> 01:21:39,050 Lai saņemtu vārdiem vai datu efektīvāk. 1691 01:21:39,050 --> 01:21:43,330 >> Tagad tas saīsina savu laiku potenciāli ar tik daudz kā viens no 26, 1692 01:21:43,330 --> 01:21:45,850 jo, ja jūs pieņemt, ka jums ir tik daudz "A" vārdus kā "z" 1693 01:21:45,850 --> 01:21:48,080 vārdi kā "Q" vārdus, kas nav īsti realistic-- 1694 01:21:48,080 --> 01:21:50,830 Jums nāksies šķībs pāri daži burti alphabet-- 1695 01:21:50,830 --> 01:21:53,204 bet tas būtu papildu pieeja tas ļauj 1696 01:21:53,204 --> 01:21:55,930 jums nokļūt vārdiem daudz ātrāk. 1697 01:21:55,930 --> 01:21:59,660 Un patiesībā, sarežģītu programmu, Googles no pasaules, 1698 01:21:59,660 --> 01:22:02,180 Facebooks no world-- viņi varētu izmantot hash tabulu 1699 01:22:02,180 --> 01:22:03,740 par daudz dažādiem mērķiem. 1700 01:22:03,740 --> 01:22:06,590 Bet tie nebūtu tik naivi, tikai apskatīt pirmo burtu 1701 01:22:06,590 --> 01:22:09,700 ābolu vai banānu vai bumbieru vai cantaloupe, 1702 01:22:09,700 --> 01:22:13,420 jo, kā jūs varat redzēt šos sarakstus joprojām varētu saņemt ilgi. 1703 01:22:13,420 --> 01:22:17,130 >> Un tā tas tomēr varētu būt sava veida no linear-- tik veida lēns, 1704 01:22:17,130 --> 01:22:19,980 kā ar lielo O n ka mēs apspriests agrāk. 1705 01:22:19,980 --> 01:22:25,290 Tātad, ko reālu labs hash tabulu būs do-- tas būs daudz lielāks masīvs. 1706 01:22:25,290 --> 01:22:28,574 Un tā izmantos daudz vairāk sarežģīta sajaukšanai funkcija, 1707 01:22:28,574 --> 01:22:30,240 tāpēc, ka tas nav tikai apskatīt "a." 1708 01:22:30,240 --> 01:22:35,480 Varbūt tas aplūko "a-p-p-l-e" un kaut kā pārvērš šīs piecas vēstules 1709 01:22:35,480 --> 01:22:38,400 uz vietu, kur ābolu jāuzglabā. 1710 01:22:38,400 --> 01:22:42,660 Mēs vienkārši naivi, izmantojot burtu "a" viens pats, jo tas ir jauki un vienkārši. 1711 01:22:42,660 --> 01:22:44,600 >> Bet hash tabulu, kas beigām, jūs varat domāt 1712 01:22:44,600 --> 01:22:47,270 no kā kombinācija masīvs, katrs no kuriem 1713 01:22:47,270 --> 01:22:51,700 ir saistīts saraksts, kas ideāli jābūt pēc iespējas īsākam. 1714 01:22:51,700 --> 01:22:54,364 Un tas nav acīmredzams risinājums. 1715 01:22:54,364 --> 01:22:57,280 Patiesībā, daudz smalkas tuning kas iet uz zem motora pārsega, kad 1716 01:22:57,280 --> 01:22:59,654 Īstenojot šos veidus sarežģītas datu struktūras 1717 01:22:59,654 --> 01:23:01,640 ir tas, kas ir pareizā garums masīva? 1718 01:23:01,640 --> 01:23:03,250 Kāda ir pareizā hash funkcija? 1719 01:23:03,250 --> 01:23:04,830 Kā jūs uzglabāt lietas atmiņā? 1720 01:23:04,830 --> 01:23:07,249 >> Bet saproti, cik ātri šāda veida diskusijas 1721 01:23:07,249 --> 01:23:10,540 saasinājās, nu tik tālu, ka tas ir sava veida no virs galvas šajā brīdī, kas 1722 01:23:10,540 --> 01:23:11,360 ir labi. 1723 01:23:11,360 --> 01:23:18,820 Bet mēs sākām, atgādināt, ar patiesi kaut zema līmeņa un elektroniski. 1724 01:23:18,820 --> 01:23:20,819 Un tā tas atkal ir šis tēma abstrakcijas, 1725 01:23:20,819 --> 01:23:23,610 kur reiz sākat lietot, lai piešķirts, OK, es esam ieguvuši it-- tur 1726 01:23:23,610 --> 01:23:26,680 fiziskā atmiņa, Labi, sapratu, ik fiziskā atrašanās vieta ir piegādes adrese, 1727 01:23:26,680 --> 01:23:29,910 Labi, es saņēmu to, es varu pārstāvēt šie adreses kā arrows-- 1728 01:23:29,910 --> 01:23:34,650 Jūs varat ļoti ātri sākt būt sarežģītākus sarunas, kas 1729 01:23:34,650 --> 01:23:38,360 beigās, šķiet, ir ļaut mums lai risinātu problēmas, piemēram, meklējot 1730 01:23:38,360 --> 01:23:41,620 un šķirošanas efektīvāk. 1731 01:23:41,620 --> 01:23:44,190 Un esiet droši, too-- jo es domāju, ka tas 1732 01:23:44,190 --> 01:23:48,700 ir dziļākais mēs esam aizgājuši par dažām Šo CS tēmām proper--, esam 1733 01:23:48,700 --> 01:23:51,880 darīts dienā un pusi pie šī norādīt, ko jūs varētu parasti darīt pāri 1734 01:23:51,880 --> 01:23:55,520 kurss astoņas nedēļas semestrī. 1735 01:23:55,520 --> 01:23:59,670 >> Visus jautājumus par šo? 1736 01:23:59,670 --> 01:24:01,100 Nē? 1737 01:24:01,100 --> 01:24:01,940 Viss kārtībā. 1738 01:24:01,940 --> 01:24:05,610 Nu, kāpēc nav mēs pauze tur, sākt pusdienas dažas minūtes sākumā, 1739 01:24:05,610 --> 01:24:07,052 atsākt tikai par stundu? 1740 01:24:07,052 --> 01:24:08,760 Un es kavēties mazliet ar jautājumiem. 1741 01:24:08,760 --> 01:24:11,343 Tad es esmu nāksies iet veikt pāris zvanus, ja tas ir OK. 1742 01:24:11,343 --> 01:24:15,000 Es ieslēgt kādu mūziku pa to laiku, bet pusdienas būtu ap stūri. 1743 01:24:15,000 --> 01:24:17,862