1 00:00:00,000 --> 00:00:10,982 2 00:00:10,982 --> 00:00:11,940 DAVID Humala: Olgu. 3 00:00:11,940 --> 00:00:16,470 Seega see on CS50, ja see on nüüd algust nädalal kolm. 4 00:00:16,470 --> 00:00:19,960 >> Nii et seni, me Enda kirjutatud programme C 5 00:00:19,960 --> 00:00:23,210 et vaadata veidi midagi sellist siin. 6 00:00:23,210 --> 00:00:25,470 Nii et meil on paar teravad sisaldab ülaosas. 7 00:00:25,470 --> 00:00:28,490 Meil on int, peamine, tühine ja siis midagi teha keskel, 8 00:00:28,490 --> 00:00:30,590 mõned natuke koodi sees selle funktsiooni. 9 00:00:30,590 --> 00:00:34,170 Aga võti on asjaolu, et oleme rääkinud void siin. 10 00:00:34,170 --> 00:00:39,320 Nii tühine, kõik see aeg, täpsustab et see programm, kui joosta, 11 00:00:39,320 --> 00:00:41,300 saab avada ainult läbi oma nimi. 12 00:00:41,300 --> 00:00:46,330 Sa ei saa tüüp muid sõnu või numbrite pärast programmi nime, kui 13 00:00:46,330 --> 00:00:46,830 töötab ta. 14 00:00:46,830 --> 00:00:51,200 Nii näiteks, kui olid programmi kompileeritud fail nimega hello, 15 00:00:51,200 --> 00:00:53,480 sa võiksid teha ./hello, kuid see on see. 16 00:00:53,480 --> 00:00:56,750 >> Ainus võimalus, et sa võiksid anda oma panus selle programmi 17 00:00:56,750 --> 00:00:57,960 on helistades funktsioon. 18 00:00:57,960 --> 00:00:59,790 Näiteks milline funktsioon oleme kasutanud seni 19 00:00:59,790 --> 00:01:00,950 saada sisend kasutaja? 20 00:01:00,950 --> 00:01:02,117 >> Sihtrühm: Hangi string. 21 00:01:02,117 --> 00:01:04,700 DAVID Humala: Et saada string või saada int või olete näinud teised, 22 00:01:04,700 --> 00:01:07,630 isegi kui te pole neid veel, nagu saada pikad, pikad ja sarnased. 23 00:01:07,630 --> 00:01:09,380 Aga oletame, et me tegelikult soovite alustada 24 00:01:09,380 --> 00:01:12,760 kirjutamise programmid, mis on veidi rohkem mitmekülgne ja ausalt öeldes veidi rohkem 25 00:01:12,760 --> 00:01:15,090 nagu käsud, et olete olnud saada loodetavasti 26 00:01:15,090 --> 00:01:16,550 veidi harjunud. 27 00:01:16,550 --> 00:01:18,560 Nagu cd ruumi Dropbox. 28 00:01:18,560 --> 00:01:20,800 See loomulikult muutusi oma kataloogi, eeldades 29 00:01:20,800 --> 00:01:23,590 sa oled John Harvard koju kataloog, oma Dropbox kausta. 30 00:01:23,590 --> 00:01:27,380 Vahepeal näiteks järgmine käsk luuakse uus kataloog nimega pset2, 31 00:01:27,380 --> 00:01:30,290 nagu te võib-olla juba või varsti probleemide seatud kaks. 32 00:01:30,290 --> 00:01:33,970 Tee Tere, muidugi on käsk mis ehitab programmi nimega hello 33 00:01:33,970 --> 00:01:35,770 alates faili nimega hello dot c. 34 00:01:35,770 --> 00:01:39,140 Ja igas nimetatud juhtudel, nüüd, et meil oli 35 00:01:39,140 --> 00:01:43,620 pakkuda argument nn käsurida, vilgub kiiresti, 36 00:01:43,620 --> 00:01:48,540 nii et make teab, mida ehitada, ja nii et mkdir teab, mida kausta luua, 37 00:01:48,540 --> 00:01:51,110 ja et cd teab kus sa tahad minna. 38 00:01:51,110 --> 00:01:54,720 Aga seni, me hoiame öelda mis peamine, vaikimisi funktsiooni, 39 00:01:54,720 --> 00:01:58,500 on tühine väljendus sees need sulgudesse, 40 00:01:58,500 --> 00:02:01,250 mis tähendab, et see ei võta mingeid argumente. 41 00:02:01,250 --> 00:02:03,240 >> Nii algab täna Mida me teeme 42 00:02:03,240 --> 00:02:06,270 on, me ei kavatse hakata toetades selliseid asju isegi. 43 00:02:06,270 --> 00:02:08,990 Tegelikult, antud juhul, mida tavaliselt ei trükkima, 44 00:02:08,990 --> 00:02:11,130 Tee on seda teinud Meie jaoks ei ole 45 00:02:11,130 --> 00:02:15,840 üks, vaid üks, kaks, kolm täiendavat stringid pärast programmi nimega 46 00:02:15,840 --> 00:02:16,850 rõkkama. 47 00:02:16,850 --> 00:02:18,240 Niisiis, kuidas me seda saavutada? 48 00:02:18,240 --> 00:02:20,260 >> Noh, mis algab täna kui me tahame 49 00:02:20,260 --> 00:02:22,855 anda panus kaudu nn käsurealt 50 00:02:22,855 --> 00:02:24,980 me ei kavatse alustada lisades siin, mis on kollases 51 00:02:24,980 --> 00:02:30,520 asendades tühine int argc komaga string argv sulg sulg. 52 00:02:30,520 --> 00:02:32,520 Nüüd see on huvitav paar põhjustel. 53 00:02:32,520 --> 00:02:35,690 Üks, see läheb meile kirjutada programme, mis on veidi rohkem dünaamiline. 54 00:02:35,690 --> 00:02:37,570 Aga rohkem compellingly, see saab avada 55 00:02:37,570 --> 00:02:40,340 nüüd vestluses, et mida massiive võib tõesti 56 00:02:40,340 --> 00:02:43,300 kasutada, mida string tegelikult on all kapuuts, 57 00:02:43,300 --> 00:02:47,320 alles järgmisel nädalal, kui me hakkame sukeldumine veelgi sügavamale, kuidas masin 58 00:02:47,320 --> 00:02:48,590 et kõik see kraam tööd. 59 00:02:48,590 --> 00:02:51,920 Aga nüüd, joonistame, ehk pilt. 60 00:02:51,920 --> 00:02:54,950 >> Kui Sa kirjutad programmi peamiste deklareeritud 61 00:02:54,950 --> 00:02:58,810 Sel viisil, nii et peamine Kasutada saab kaht argumenti, int 62 00:02:58,810 --> 00:03:03,233 ja-- mida andmetüüp on teine ​​argument? 63 00:03:03,233 --> 00:03:04,529 >> Sihtrühm: Array. 64 00:03:04,529 --> 00:03:05,320 DAVID Humala: Array. 65 00:03:05,320 --> 00:03:09,170 Seega tundub esmapilgul, nagu see on string, kuid teate nurksulgudes. 66 00:03:09,170 --> 00:03:12,760 Meenuta viimast korda võtsime kasutusele mõiste massiivi. 67 00:03:12,760 --> 00:03:16,210 Ja massiive kasutada nurksulgudes paari kontekstides. 68 00:03:16,210 --> 00:03:19,160 Sa võid kasutada ruudu sulgudes minna massiivi 69 00:03:19,160 --> 00:03:22,710 ja saada konkreetne element, nagu sulg 0 või sulg 1 või sulg 2. 70 00:03:22,710 --> 00:03:25,500 Kuid me nägime, kui lühidalt, eelmisel nädalal, et sa ka 71 00:03:25,500 --> 00:03:28,790 kasutada neid nurksulgudes kuni tunnistada suurus massiiv, 72 00:03:28,790 --> 00:03:31,790 kui sa tead ette, kui palju ints või kui palju stringe või mida iganes sa 73 00:03:31,790 --> 00:03:32,630 tegelikult tahavad. 74 00:03:32,630 --> 00:03:34,790 Nii selgub seal on kolmanda kontekstis siin 75 00:03:34,790 --> 00:03:37,890 millel puudub numbri sees on nurksulgudes. 76 00:03:37,890 --> 00:03:41,920 Kui määrate, nagu ma olen siin, nimi midagi argv, 77 00:03:41,920 --> 00:03:44,550 mis on lihtsalt fancy viis öeldes argumentvektor, mis 78 00:03:44,550 --> 00:03:47,750 on veel üks fancy viis öeldes hulga argumente, 79 00:03:47,750 --> 00:03:50,870 sulg sulg lihtsalt tähendab, et sa ei pruugi 80 00:03:50,870 --> 00:03:52,960 ette teada, kui suur massiivi saab olema, 81 00:03:52,960 --> 00:03:55,070 aga sa tead, et see saab olema massiiv. 82 00:03:55,070 --> 00:03:57,320 Nii et kui te ei tea, number ei pane see sinna, 83 00:03:57,320 --> 00:04:01,160 avatud sulg sulg tähendab, et argv ei ole string, 84 00:04:01,160 --> 00:04:03,124 kuid massiivi stringe. 85 00:04:03,124 --> 00:04:05,040 Nii süntaktiliselt, kui te tagasi mõelda möödunud nädalal 86 00:04:05,040 --> 00:04:09,460 see on väga sarnane öeldes midagi int vanuses sulg, 87 00:04:09,460 --> 00:04:10,984 ja siis midagi järel. 88 00:04:10,984 --> 00:04:12,150 Mida see välja näeb? 89 00:04:12,150 --> 00:04:13,399 Olgem tegelikult joonista pilt. 90 00:04:13,399 --> 00:04:18,756 Nii et kui sa jooksed selle programmi Main olles kaks argumenti määratletud sees 91 00:04:18,756 --> 00:04:21,339 need sulgudesse, siis sisuliselt on vähemalt kaks tükkideks 92 00:04:21,339 --> 00:04:23,560 mälu andis teile all kapuuts. 93 00:04:23,560 --> 00:04:26,550 Üks, kui panen viiki, sest see ristkülik, läheb nn argc. 94 00:04:26,550 --> 00:04:30,645 Ja just nii kiire sulgege, Milline on andmete tüüpi argc? 95 00:04:30,645 --> 00:04:31,270 Nii et see on int. 96 00:04:31,270 --> 00:04:33,480 Nii number läheb minna argc-- pöördeid 97 00:04:33,480 --> 00:04:35,660 tähelepanu asjaolule, et seisab argument arvu. 98 00:04:35,660 --> 00:04:38,887 Vahepeal olen juhtinud argv massiiv. 99 00:04:38,887 --> 00:04:40,970 Ja ma tõesti ei tea, kui kaua see saab olema, 100 00:04:40,970 --> 00:04:42,470 nii tänase eesmärkidel dot dot dot. 101 00:04:42,470 --> 00:04:43,636 See võib saada mõne pikkus. 102 00:04:43,636 --> 00:04:45,640 Aga ma olen pildil vähemalt neli ristkülikut. 103 00:04:45,640 --> 00:04:50,970 Nii argv patakas mälu, mis salvestab string string string dot dot dot, 104 00:04:50,970 --> 00:04:53,950 ja argc on vaid üks patakas mälu täisarv. 105 00:04:53,950 --> 00:04:55,710 >> Nüüd, olgem veidi täpsem. 106 00:04:55,710 --> 00:04:59,200 Sel juhul, kui mul on stringid Selles massiivi nimega 107 00:04:59,200 --> 00:05:03,290 argv, ma tahan neid individuaalselt, nagu eelmisel nädalal, 108 00:05:03,290 --> 00:05:05,670 me ei kavatse kasutada märke nagu argv sulg 0 109 00:05:05,670 --> 00:05:07,650 saada esimene asi massiivi. 110 00:05:07,650 --> 00:05:10,440 Argv sulg 1 saada Teine asi, ja nii edasi. 111 00:05:10,440 --> 00:05:14,597 Võti on siin olles oleme ikka 0 indexed-- me ikka loodame 0. 112 00:05:14,597 --> 00:05:16,430 Vaatame nüüd tegelikult panna midagi selles. 113 00:05:16,430 --> 00:05:21,670 Kui ma oleksin kompileerida programmi nimega tere fail nimega hello dot c, 114 00:05:21,670 --> 00:05:24,340 ja siis ma saan selle programmi dot kaldkriips hello, 115 00:05:24,340 --> 00:05:28,380 mida see minu arvuti, minu arvuti, näeb all kapuuts 116 00:05:28,380 --> 00:05:31,300 Praegu ma saan dot kaldkriips tere ja vajuta Enter? 117 00:05:31,300 --> 00:05:33,500 Noh, see on võib-olla mida me võiksime kirjeldada 118 00:05:33,500 --> 00:05:37,010 kui sisu arvuti mällu või RAM-- muutmälu. 119 00:05:37,010 --> 00:05:40,330 Teisisõnu arvutis kuidagi sulle võluväel, 120 00:05:40,330 --> 00:05:45,360 paneb number 1 argc, AKA argcount, ja see paneb sõna otseses mõttes string 121 00:05:45,360 --> 00:05:48,200 ./hello sisse argv sulg 0. 122 00:05:48,200 --> 00:05:51,750 Mul pole aimugi, ausalt öeldes, mis on aastal argv sulg 1 või 2 või 3, 123 00:05:51,750 --> 00:05:55,550 sest kui kasutaja ei ole tipitud midagi peale ./hello, 124 00:05:55,550 --> 00:05:58,550 me eeldame, et need kõige tõenäolisemalt prügi väärtused 125 00:05:58,550 --> 00:05:59,700 nii rääkida. 126 00:05:59,700 --> 00:06:02,650 Need tükkideks mälu olemas, kuid see pole meie teha 127 00:06:02,650 --> 00:06:05,710 vaatama neid, sest argcount on ainult üks. 128 00:06:05,710 --> 00:06:07,870 >> Nüüd, vahepeal, kui ma kirjuta joosta teise programmi, 129 00:06:07,870 --> 00:06:12,250 CD, mis on enam korralikult käsk, Teie vilgub prompt-- cd ruumi 130 00:06:12,250 --> 00:06:17,200 Dropbox-- kui ma saan, et tõhusalt, kui cd programm käivitatakse, argc, 131 00:06:17,200 --> 00:06:22,270 sees minu arvuti mällu, on Kõige briefest teine ​​number 2. 132 00:06:22,270 --> 00:06:25,936 Ja siis argv sulg o on cd, argv sulg 1 on Dropbox, 133 00:06:25,936 --> 00:06:28,560 ja siis loomulikult käsklus lõpule jõudnud, nii et kõik see mälu 134 00:06:28,560 --> 00:06:30,420 sisuliselt kaob ja kasutatakse midagi muud. 135 00:06:30,420 --> 00:06:32,270 Ja sellepärast ma ütlen vaid sekundi murdosa. 136 00:06:32,270 --> 00:06:35,720 >> Vahepeal, kui me teeme mkdir pset2, pildil näeb peaaegu sama, 137 00:06:35,720 --> 00:06:37,900 kuid erineva stringid sees argv. 138 00:06:37,900 --> 00:06:42,570 Kui ma rõkkama kriips hello tere dot c, sama mõte. 139 00:06:42,570 --> 00:06:47,060 Veel kraami täidetakse argv ja argc muidugi on 4. 140 00:06:47,060 --> 00:06:49,150 Nii teisisõnu kuigi seda massiivi 141 00:06:49,150 --> 00:06:52,950 võiks dot dot dot, mõnede muutuva pikkusega, nii et rääkida, 142 00:06:52,950 --> 00:06:56,720 tead alati, kus lõpuks see on, sest argc ei ütle teile 143 00:06:56,720 --> 00:07:00,120 millisel hetkel sa pead lõpetama Vaadates elemente argv. 144 00:07:00,120 --> 00:07:03,660 Võite vaadata ainult neli kokku sel juhul. 145 00:07:03,660 --> 00:07:06,600 >> Nii et olgem nüüd vaatleme, ehk lihtne programm. 146 00:07:06,600 --> 00:07:09,070 Üks, mis lihtsalt ütleb tere keegi nagu Zamyla. 147 00:07:09,070 --> 00:07:12,620 Nii et ma väita, ma lähen kirjutada programm vaid hetk, mille kaudu ma võiks teha 148 00:07:12,620 --> 00:07:16,670 ./hello ruumi Zamyla, ja siis ma tahan minu programm välja printida midagi 149 00:07:16,670 --> 00:07:18,520 super-lihtne, nagu "tere, Zamyla." 150 00:07:18,520 --> 00:07:20,100 Nüüd minevikus oleme kasutatakse getString. 151 00:07:20,100 --> 00:07:22,850 Nii minevikus, isegi kui sa oled uus programmeerimine, 152 00:07:22,850 --> 00:07:27,180 koefitsiendid võid klopsima programmi, mis kasutab getString 153 00:07:27,180 --> 00:07:29,390 ja siis kasutab printf tere öelda Zamyla. 154 00:07:29,390 --> 00:07:31,290 Aga ärgem kasutada getString seekord. 155 00:07:31,290 --> 00:07:37,510 Lubage mul selle asemel minna Appliant ja ärge hulka standard O dot h. 156 00:07:37,510 --> 00:07:41,160 Lubage mul ka CS50 dot h. 157 00:07:41,160 --> 00:07:44,730 Nüüd int main ja nüüd olen ei tee void täna. 158 00:07:44,730 --> 00:07:51,200 Selle asemel, ma teen int argc string argv sulg sulg, 159 00:07:51,200 --> 00:07:52,640 pole täpsustatud number. 160 00:07:52,640 --> 00:07:54,644 Ja nüüd siin on mu niinimetatud teha. 161 00:07:54,644 --> 00:07:57,560 Mida ma teen nüüd, ma olen teeme natuke liigaasta usu, 162 00:07:57,560 --> 00:08:00,560 Ma eeldan, et kasutaja kavatse kasutada seda programmi õigesti, 163 00:08:00,560 --> 00:08:04,980 ja ma olen lihtsalt kavatse teha printf tere% sn. 164 00:08:04,980 --> 00:08:06,630 Nii et midagi uut. 165 00:08:06,630 --> 00:08:11,470 Aga ma tahan nüüd panna mis iganes sõna kasutaja tipib pärast programmi nimi. 166 00:08:11,470 --> 00:08:16,970 Nii et kui ma teen ./hello ruumi Zamyla, I taha kuidagi programmiliselt juurdepääs 167 00:08:16,970 --> 00:08:20,870 Tsiteerin lõppeb "Zamyla." nii et ma ei lähe minu argument vektor, 168 00:08:20,870 --> 00:08:25,980 minu massiivi stringe, ja kui käsk, jälle oli ./hello ruumi Zamyla, 169 00:08:25,980 --> 00:08:29,340 Mis number ma tahan panna argv siin? 170 00:08:29,340 --> 00:08:29,840 Sihtrühm: 1. 171 00:08:29,840 --> 00:08:32,355 DAVID Humala: 1, sest sulg 0 Selgub 172 00:08:32,355 --> 00:08:34,230 saab olema Programmi nimi, nagu me nägime. 173 00:08:34,230 --> 00:08:37,789 Nii sulg 1 on esimene sõna et mina, kasutaja on kirjutatud. 174 00:08:37,789 --> 00:08:39,559 Ma lähen edasi minna ja salvestada see. 175 00:08:39,559 --> 00:08:42,830 Ma lähen minema minu kausta kus ma olen paigutatud seda pilti. 176 00:08:42,830 --> 00:08:44,920 Ma ei tee hello 3. 177 00:08:44,920 --> 00:08:46,230 Comp IO on OK. 178 00:08:46,230 --> 00:08:51,380 ./hello Zamyla Enter. 179 00:08:51,380 --> 00:08:54,480 Mis ma valesti tegin? 180 00:08:54,480 --> 00:08:57,270 Olin üllatusena mina hetkeks seal. 181 00:08:57,270 --> 00:08:58,230 Mis ma valesti tegin? 182 00:08:58,230 --> 00:08:59,220 >> Sihtrühm: nimi. 183 00:08:59,220 --> 00:09:01,767 >> DAVID Humala: faili tegelikult nn hello3.c. 184 00:09:01,767 --> 00:09:03,850 Ja ma tegin seda lihtsalt järjepidevus, sest me oleme 185 00:09:03,850 --> 00:09:06,550 oli hello.c on sisse Viimase online kood. 186 00:09:06,550 --> 00:09:11,550 Nii et olgem määrata see ./hello sulg kriips 3 Zamyla. 187 00:09:11,550 --> 00:09:12,370 Sisesta. 188 00:09:12,370 --> 00:09:14,030 Ja nüüd on meil hello, Zamyla. 189 00:09:14,030 --> 00:09:17,650 Samas, ma ei saa seda muuta on Rob või tõesti mõni muu sõna. 190 00:09:17,650 --> 00:09:19,230 >> Kuid olgem kaaluma nurga puhul. 191 00:09:19,230 --> 00:09:24,360 Mis võiks ootate juhtub siis, kui Ma ei kirjuta kellegi nimi üldse? 192 00:09:24,360 --> 00:09:25,270 >> Sihtrühm: Error. 193 00:09:25,270 --> 00:09:27,300 >> DAVID Humala: viga mingisugune võib-olla. 194 00:09:27,300 --> 00:09:28,200 Vaatame. 195 00:09:28,200 --> 00:09:29,440 Sisesta. 196 00:09:29,440 --> 00:09:30,210 Null. 197 00:09:30,210 --> 00:09:33,870 Nii printf tegelikult on vähe kaitsev meist 198 00:09:33,870 --> 00:09:38,131 siin, ja sõna otseses mõttes printimiseks avatud paren null, kuid veel hullem asju võib juhtuda. 199 00:09:38,131 --> 00:09:40,130 Ja lihtsalt näidata midagi, mida sa absoluutselt 200 00:09:40,130 --> 00:09:42,800 ei tohiks teha, lähme sisse siin ja alustada poking ümber. 201 00:09:42,800 --> 00:09:43,300 Eks ole? 202 00:09:43,300 --> 00:09:46,410 Kui ma tean, et pilt mälu on sisuliselt see, 203 00:09:46,410 --> 00:09:52,660 argv sulg 1 on Zamyla, argv sulg 0 on ./hello või ./hello-3. 204 00:09:52,660 --> 00:09:55,400 Mis on sulg 2? 205 00:09:55,400 --> 00:09:58,210 Nii et ma võin vastata, et küsitleda ise, eks? 206 00:09:58,210 --> 00:10:00,460 Ma ei lihtsalt muuta 1 kuni 2. 207 00:10:00,460 --> 00:10:07,270 Nüüd saan kompileerida hello 3, ./hello3 Olgem suurendada ja vajuta Enter. 208 00:10:07,270 --> 00:10:08,270 Ups. 209 00:10:08,270 --> 00:10:10,660 No quote märk. 210 00:10:10,660 --> 00:10:12,540 Huvitav. 211 00:10:12,540 --> 00:10:15,530 Nii et see on omamoodi lahe näha, mida muidu on siin. 212 00:10:15,530 --> 00:10:17,130 >> Mis siis veel sees minu sülearvuti? 213 00:10:17,130 --> 00:10:20,390 Hoiame seda sulg 3. 214 00:10:20,390 --> 00:10:25,190 Tee hello3, ./hello-3. 215 00:10:25,190 --> 00:10:26,500 Uudishimulik. 216 00:10:26,500 --> 00:10:30,560 Ja nüüd lähme tõesti bold-- 50. 217 00:10:30,560 --> 00:10:34,340 Nii et see on tõesti sukeldumise sügav minu arvuti mällu. 218 00:10:34,340 --> 00:10:35,930 50 indeksid. 219 00:10:35,930 --> 00:10:41,950 Nii et tere 3 ./hello-3. 220 00:10:41,950 --> 00:10:42,680 Uudishimulik. 221 00:10:42,680 --> 00:10:44,660 Olgu, nüüd ma olen lihtsalt hakka hoolimatu. 222 00:10:44,660 --> 00:10:47,331 Lähme 5000. 223 00:10:47,331 --> 00:10:47,830 Olgu. 224 00:10:47,830 --> 00:10:49,520 Nii et lubage mul kompileerida. 225 00:10:49,520 --> 00:10:51,460 Tee hello3, ./hello-3. 226 00:10:51,460 --> 00:10:55,780 227 00:10:55,780 --> 00:10:56,460 OK. 228 00:10:56,460 --> 00:10:59,250 Nüüd mõned teist, siis võib olema lambipirn läheb maha. 229 00:10:59,250 --> 00:11:01,900 Kui paljud teist on näinud seda enne sõnumi? 230 00:11:01,900 --> 00:11:03,440 OK. 231 00:11:03,440 --> 00:11:04,420 Niisiis, miks? 232 00:11:04,420 --> 00:11:07,250 >> Ennustus oled-- ja seal on erinevad asjad, mis võib põhjustada seda, 233 00:11:07,250 --> 00:11:09,730 ja siis sa oled hea firmale-- meil selgelt 234 00:11:09,730 --> 00:11:11,900 põhjustatud mida nimetatakse killustatust süü. 235 00:11:11,900 --> 00:11:15,890 Ja pikk jutt lühikeseks, täna, ma on puudutanud segment mälu 236 00:11:15,890 --> 00:11:17,060 et ma ei peaks olema. 237 00:11:17,060 --> 00:11:19,970 Kui segment tähendab lihtsalt patakas mälu, et ma ei peaks olema. 238 00:11:19,970 --> 00:11:25,530 Nüüd arvuti tagab, et kui ma joosta ./helloZamyla et ma ei puutu argv 239 00:11:25,530 --> 00:11:27,760 olema sulg 0 ja argv sulg 1. 240 00:11:27,760 --> 00:11:32,730 Aga argc on väärtus 2, mis tähendab, et ma olen ainult allowed-- see on omamoodi au 241 00:11:32,730 --> 00:11:35,180 system-- puudutada sulg 0 ja sulg 1. 242 00:11:35,180 --> 00:11:37,990 Kui ma minna kaugemale, seal absoluutselt kavatse olla mälu olemas. 243 00:11:37,990 --> 00:11:40,660 Minu RAM olemas füüsiliselt aastal arvutisse. 244 00:11:40,660 --> 00:11:42,080 Aga kes teab, mis seal on? 245 00:11:42,080 --> 00:11:44,450 Tõepoolest, ma olen töötab mitu programmid korraga. 246 00:11:44,450 --> 00:11:46,910 Ma võib-olla seen-- kui ma ei tehes seda Appliant 247 00:11:46,910 --> 00:11:49,937 kuid minu Mac või PC-- ma võib-olla näinud sisu email. 248 00:11:49,937 --> 00:11:52,270 Ma oleks võinud näha instant sõnum, mida ma olen viimasel ajal saadetud. 249 00:11:52,270 --> 00:11:55,390 Midagi, mis võiks olla ikka ringi mälu 250 00:11:55,390 --> 00:11:59,180 oleks külastatud teel see suvalise nurksulg märke. 251 00:11:59,180 --> 00:12:02,850 Või veel hullem, võib teil olla leidis üks mu paroolid 252 00:12:02,850 --> 00:12:05,859 et ma hiljuti kirjutasid, et programm oli mällu salvestatud nii 253 00:12:05,859 --> 00:12:07,900 autentida mind, ja siis lihtsalt selline jättis 254 00:12:07,900 --> 00:12:09,910 RAM kuni ma lõpetan selle programmi. 255 00:12:09,910 --> 00:12:12,860 >> Ja tõepoolest, see on üks oht ja üks volitusi 256 00:12:12,860 --> 00:12:15,980 kasutades keeles nagu C. Sul on piiramatu juurdepääs 257 00:12:15,980 --> 00:12:18,860 kogu sisu kohta programmi mällu 258 00:12:18,860 --> 00:12:21,340 ja mida pahad saavad isegi teha need cases-- 259 00:12:21,340 --> 00:12:23,807 eriti siis, kui me saada veebi programmeerimine 260 00:12:23,807 --> 00:12:26,890 poole semestri lõpuks, paneme vaadata seda topic-- on tuhnima, 261 00:12:26,890 --> 00:12:31,660 potentsiaalselt kellegi arvuti mälu ja leida selline uudishimulik asjad 262 00:12:31,660 --> 00:12:32,570 nagu me nägime seal. 263 00:12:32,570 --> 00:12:36,900 Või veel hullem veel, paroolid, et ta või ta saab seejärel kasutada, et teha halbu asju. 264 00:12:36,900 --> 00:12:40,240 >> Nii selgelt ma ei oleks seda teinud, sest imelik asjad hakkavad juhtuma. 265 00:12:40,240 --> 00:12:42,310 Tõepoolest, see on programm, krahh. 266 00:12:42,310 --> 00:12:44,580 See oleks samaväärne Mac OS või Windows 267 00:12:44,580 --> 00:12:46,770 programmi aken lihtsalt kaovad. 268 00:12:46,770 --> 00:12:48,300 Ootamatu tõrge. 269 00:12:48,300 --> 00:12:50,840 In käsurea keskkond näeme midagi sellist. 270 00:12:50,840 --> 00:12:54,480 Aga sellepärast, ei ma lihtsalt puudutades mälu, mis ei kuulu mulle. 271 00:12:54,480 --> 00:12:57,090 >> Nii et olgem kaitsta vastu natukene teistmoodi 272 00:12:57,090 --> 00:12:59,010 vaadates seda programmi siin. 273 00:12:59,010 --> 00:13:01,000 Nii et jällegi, skelett et me nägime earlier-- 274 00:13:01,000 --> 00:13:02,480 ja ma olen rõhutanud seekord int. 275 00:13:02,480 --> 00:13:05,900 Ja kogu selle aja peamine on tõepoolest tagastatakse raha. 276 00:13:05,900 --> 00:13:09,120 Kuigi enamik meie loengu näiteid pole me kunagi kasutatud 277 00:13:09,120 --> 00:13:10,990 tagasi midagi peamine. 278 00:13:10,990 --> 00:13:13,710 Me lihtsalt kirjutada printf lähedal lokkis traksidega ja ongi kõik. 279 00:13:13,710 --> 00:13:16,500 Aga tasuta, mida koostaja on teinud teile, 280 00:13:16,500 --> 00:13:19,510 tõhusalt, on tagasi 0 teile. 281 00:13:19,510 --> 00:13:22,950 Lülitab minemas-- ja see on natuke counterintuitive-- et 0 on hea. 282 00:13:22,950 --> 00:13:24,690 See ei tähenda, vale per se. 283 00:13:24,690 --> 00:13:29,080 0 on hea ja mis tahes muude 0 väärtus, maailm on otsustanud, 284 00:13:29,080 --> 00:13:30,619 võib tähendada viga. 285 00:13:30,619 --> 00:13:32,910 Nii et kui sa oled kunagi segi midagi püsti oma arvutis, 286 00:13:32,910 --> 00:13:36,600 või programm on lihtsalt suri sinu ja olete saanud mõned ekslikud aknas 287 00:13:36,600 --> 00:13:40,360 ekraanile, öeldes viga negatiivne 49 või viga 23-- 288 00:13:40,360 --> 00:13:44,170 näiliselt suvalise value-- see sest programmeerija on kodeeritud 289 00:13:44,170 --> 00:13:49,370 väärtus nagu negatiivne 49 või positiivne 23 esindada iga number, julgen öelda, 290 00:13:49,370 --> 00:13:53,340 4 miljardit võimalik asju mis võiks valesti minna programmi. 291 00:13:53,340 --> 00:13:55,700 >> Niisiis, kuidas võiks võtan ära seda ise? 292 00:13:55,700 --> 00:13:58,970 Noh, lubage mul avada programm et ma kirjutasin ette, 293 00:13:58,970 --> 00:14:01,450 ja tuhnima Internetis nimega hello 4. 294 00:14:01,450 --> 00:14:05,650 Ja see on peaaegu identsed, välja arvatud see, selle sain natuke viga kontrollimiseks. 295 00:14:05,650 --> 00:14:09,660 Sellisel juhul, ma olen jälle deklareeritud Peamised kui võtta kaks argumenti, 296 00:14:09,660 --> 00:14:13,180 kuid seekord on line 17, teade Ma teen natuke meelerahu kontrolli. 297 00:14:13,180 --> 00:14:17,100 Ma teen kindlaks, et argc võrdub võrdub 2. 298 00:14:17,100 --> 00:14:18,960 Sest kui see on, et tähendab, et ma ei saa ohutult 299 00:14:18,960 --> 00:14:21,420 puudutada mitte ainult sulg 0, kuid sulg 1. 300 00:14:21,420 --> 00:14:24,330 Ja ma minna ja välja printida, sel juhul Zamyla või Rob 301 00:14:24,330 --> 00:14:26,020 või mis iganes sõna ma kirjutada välja. 302 00:14:26,020 --> 00:14:28,020 Ja nüüd lihtsalt saada veidi õige, 303 00:14:28,020 --> 00:14:31,910 Ma lähen selgesõnaliselt tagasi 0 tähendama, et kõik on hästi. 304 00:14:31,910 --> 00:14:33,300 Midagi halba ei juhtunud. 305 00:14:33,300 --> 00:14:38,590 >> Aga tavapäraselt, ma lähen tagasi 1 või ausalt väline 0 väärtus, 306 00:14:38,590 --> 00:14:40,160 kui midagi läks valesti. 307 00:14:40,160 --> 00:14:43,270 Nüüd kasutaja ei kavatse tõesti märgata, mis toimub. 308 00:14:43,270 --> 00:14:50,410 Tõepoolest, kui ma lähen sellesse kataloogi me suurendada ja ei tee hello 4, 309 00:14:50,410 --> 00:14:54,210 ./hello-4 Zamyla käitub nagu ma eeldan. 310 00:14:54,210 --> 00:14:58,570 Aga kui ma selle asemel ei kirjuta midagi, midagi tundub juhtuda, 311 00:14:58,570 --> 00:14:59,680 kuid see ei ole viga. 312 00:14:59,680 --> 00:15:04,660 Ja kui ma selle asemel tee midagi nagu Rob on Proctor 313 00:15:04,660 --> 00:15:07,550 aastal Thayer-- jagamine suvalise info. 314 00:15:07,550 --> 00:15:13,680 Aga teate, argv 1, 2, 3, 4 ja 5 peaks nüüd olemas mälu. 315 00:15:13,680 --> 00:15:16,540 Ka see pole see, mida minu programm eeldab, 316 00:15:16,540 --> 00:15:20,300 sest ma olen kontrollinud, kas argc võrdub võrdub 2 või mitte. 317 00:15:20,300 --> 00:15:22,140 Nii et ma olen nüüd kaitsta selle vastu. 318 00:15:22,140 --> 00:15:25,290 >> Nüüd, kui kõrvale jätta, siis me programmer-- õigemini me users-- 319 00:15:25,290 --> 00:15:29,670 kunagi näha, et 0 või 1, kuid kasutades tööriista nimega siluri, või muid vahendeid, 320 00:15:29,670 --> 00:15:32,250 nagu me näeme enne pikk, siis programmeerija 321 00:15:32,250 --> 00:15:36,590 võib tegelikult näha, milline võiks olla valesti sees oma programmi. 322 00:15:36,590 --> 00:15:39,170 >> Niisiis, ükskõik küsimustele argc? 323 00:15:39,170 --> 00:15:40,873 Jah. 324 00:15:40,873 --> 00:15:45,292 >> Sihtrühm: Ma olen näinud, kus nad ei ole olnud iseloomu, [kuuldamatu] 325 00:15:45,292 --> 00:15:49,669 lihtsalt ütles string star d, nagu iseloomu tärn koma. 326 00:15:49,669 --> 00:15:50,710 Kas nad on samaväärsed siin? 327 00:15:50,710 --> 00:15:51,626 >> DAVID Humala: Need on. 328 00:15:51,626 --> 00:15:55,080 Seega on küsimus selles, pead aeg-ajalt näinud programmid 329 00:15:55,080 --> 00:15:57,270 nagu see, et ei ole öelda string argv sulg 330 00:15:57,270 --> 00:16:01,015 kuid selle asemel midagi öelda nagu char star argv sulg. 331 00:16:01,015 --> 00:16:03,140 Ja seal on isegi teiste variante, mida võiks näha. 332 00:16:03,140 --> 00:16:04,264 Nad on tõepoolest samaväärsed. 333 00:16:04,264 --> 00:16:06,240 Sest nüüd on meil neid omamoodi Apupyörät 334 00:16:06,240 --> 00:16:09,737 in kujul stringi CS50 raamatukogu, vaid veidi üle nädala 335 00:16:09,737 --> 00:16:12,570 või nii me eemaldame selle obstruktsioon kokku ja tegelikult 336 00:16:12,570 --> 00:16:16,820 pilk char ja täht on ja kuidas need puudutavad mälu 337 00:16:16,820 --> 00:16:18,140 esindamine üldisemalt. 338 00:16:18,140 --> 00:16:19,540 Nii et me tuleme tagasi selle. 339 00:16:19,540 --> 00:16:21,540 >> Muud küsimused meie argv või argc? 340 00:16:21,540 --> 00:16:22,397 Jah. 341 00:16:22,397 --> 00:16:24,438 Sihtrühm: Miks ta tagasi viga [kuuldamatu]? 342 00:16:24,438 --> 00:16:27,147 343 00:16:27,147 --> 00:16:29,230 DAVID Humala: miks see tagasi viga ainus-- oh! 344 00:16:29,230 --> 00:16:31,813 Eelmisel juhul, kui me olid futzing ümber mäluga, 345 00:16:31,813 --> 00:16:35,110 Miks ta ainult tagasi viga kui ma tegelikult kirjutada suur number? 346 00:16:35,110 --> 00:16:36,620 Lühike vastus on, et me lihtsalt vedas. 347 00:16:36,620 --> 00:16:39,240 Üldiselt arvuti eraldab mälu tükkideks, 348 00:16:39,240 --> 00:16:42,900 ja ta andis mulle piisavalt suur patakas, et Sain ära, ilma et märkaksid, 349 00:16:42,900 --> 00:16:46,280 liigutav sulg 2, sulg 3, sulg 50, kuid niipea, kui ma tõugatav 350 00:16:46,280 --> 00:16:49,080 minu õnn, ma läksin üle piirid patakas mälu 351 00:16:49,080 --> 00:16:50,520 operatsioonisüsteem oli mulle andnud. 352 00:16:50,520 --> 00:16:52,720 Ja siis see külge maha ja ütles, no. 353 00:16:52,720 --> 00:16:54,580 Segmenteerimine viga. 354 00:16:54,580 --> 00:16:55,692 Jah. 355 00:16:55,692 --> 00:16:58,890 >> Sihtrühm: Kuidas arvuti teavad väärtus argc? 356 00:16:58,890 --> 00:17:02,390 >> DAVID Humala: Kuidas arvuti teavad väärtus argc? 357 00:17:02,390 --> 00:17:07,920 Kui sa jooksed programmi, et programmi iseloomust vilgub kiiresti, 358 00:17:07,920 --> 00:17:11,359 antakse massiivi sõnu, mis olid kirjutatud 359 00:17:11,359 --> 00:17:13,300 käsureale, mis oli trükitud käsureale. 360 00:17:13,300 --> 00:17:16,569 Ja nii see on teie operatsioonisüsteemi süsteemi, mis sisuliselt 361 00:17:16,569 --> 00:17:20,329 populates peamised argumendid teile. 362 00:17:20,329 --> 00:17:22,829 Nii et see on üks teenuseid et sa saad, omamoodi salaja 363 00:17:22,829 --> 00:17:24,869 all kapuuts operatsioonisüsteemi. 364 00:17:24,869 --> 00:17:27,118 Muud küsimused? 365 00:17:27,118 --> 00:17:27,618 Jah. 366 00:17:27,618 --> 00:17:29,787 >> Sihtrühm: Mis core dump tähendab? 367 00:17:29,787 --> 00:17:31,370 DAVID Humala: Mis core dump tähendab? 368 00:17:31,370 --> 00:17:32,950 Nii et see on hea küsimus. 369 00:17:32,950 --> 00:17:35,312 Ja lubage mul minna tagasi Selle kataloogi siin. 370 00:17:35,312 --> 00:17:37,270 Ja märkad, et Mul on uus fail olemas. 371 00:17:37,270 --> 00:17:41,670 See on tõesti nn tuum ja see on tegelikult tavaliselt korraliku suurusega faili. 372 00:17:41,670 --> 00:17:45,300 See on sisuliselt läbilõige sisu mu programmi mällu 373 00:17:45,300 --> 00:17:46,902 või RAM kui see alla kukkus. 374 00:17:46,902 --> 00:17:49,110 Ja see on kasulik, potentsiaalselt diagnoosimisel, 375 00:17:49,110 --> 00:17:52,850 kui me rääkima tulevikus loeng ja lõik umbes silumine, 376 00:17:52,850 --> 00:17:55,730 sest tegelikult võite seda teha samaväärne digitaalse lahkamise 377 00:17:55,730 --> 00:18:00,300 toimiku kohta, mis aitavad aru saada, mida sa valesti tegid oma programmi. 378 00:18:00,300 --> 00:18:01,220 Jah. 379 00:18:01,220 --> 00:18:04,450 >> Sihtrühm: Kas argc käsk ise, või saate nimi see midagi? 380 00:18:04,450 --> 00:18:05,575 >> DAVID Humala: Hea küsimus. 381 00:18:05,575 --> 00:18:08,040 Kas argc käsk ise, või saate nimi see midagi? 382 00:18:08,040 --> 00:18:09,290 See ei ole kindlasti käsk. 383 00:18:09,290 --> 00:18:13,500 See on lihtsalt muutuja Nimi või argument nimi, 384 00:18:13,500 --> 00:18:15,481 ja nii absoluutselt me seda nimetada suva, 385 00:18:15,481 --> 00:18:18,480 Võiksime seda riba, mis kipuvad olla go-to sõnad, et arvuti 386 00:18:18,480 --> 00:18:19,860 teadlane läheb. 387 00:18:19,860 --> 00:18:22,820 Aga Tavapäraselt me ​​kasutame argc ja argv. 388 00:18:22,820 --> 00:18:25,360 Aga see on lihtsalt inimese printsiibist, ei midagi enamat. 389 00:18:25,360 --> 00:18:25,860 Olgu. 390 00:18:25,860 --> 00:18:28,140 Nii selgub, olen olnud räägib natuke valge lie-- 391 00:18:28,140 --> 00:18:31,264 ja ausalt öeldes ka tulevikus, näete oleme rääkinud teiste süütute valedega. 392 00:18:31,264 --> 00:18:33,510 Aga nüüd, me ei kavatse koorida tagasi üks neist. 393 00:18:33,510 --> 00:18:37,310 Sel juhul, kui ma varem jooksis programm nagu ./hello või ./hello-3 394 00:18:37,310 --> 00:18:42,780 Zamyla pidime sisu minu arvuti mällu otsin umbes nagu 395 00:18:42,780 --> 00:18:43,280 see. 396 00:18:43,280 --> 00:18:45,070 Aga mäletate, mida string on. 397 00:18:45,070 --> 00:18:49,279 Mida me ütleme, nädal tagasi, mida string tegelikult on all kapuuts? 398 00:18:49,279 --> 00:18:50,320 Sihtrühm: Array tähemärki. 399 00:18:50,320 --> 00:18:52,111 DAVID Humala: See on array tähemärki, eks? 400 00:18:52,111 --> 00:18:55,760 Nii et me võiksime olla massiivi stringid, vaid omakorda jada 401 00:18:55,760 --> 00:18:57,150 on array tähemärki. 402 00:18:57,150 --> 00:19:00,010 Nii et kui ma tõesti tahan olla anal kui ma joonistan seda pilti, 403 00:19:00,010 --> 00:19:03,290 Ma peaks tõesti joonistus see natuke meeldib see, 404 00:19:03,290 --> 00:19:08,000 kusjuures kõigis nendes indeksid minu argv massiiv, 405 00:19:08,000 --> 00:19:11,432 on iseenesest terve string mis ise on massiiv. 406 00:19:11,432 --> 00:19:13,140 Ja nüüd hädavale Me ütleme täna 407 00:19:13,140 --> 00:19:15,181 on see, et pilt ei vaata päris niimoodi. 408 00:19:15,181 --> 00:19:19,110 Tegelikult natuke ruudud on tavaliselt väljaspool suuri ristkülikuid 409 00:19:19,110 --> 00:19:19,610 seal. 410 00:19:19,610 --> 00:19:21,280 Aga me tuleme tagasi, et enne pikk. 411 00:19:21,280 --> 00:19:25,440 Aga see on ./hello längkriipsu 0, mis on eriline märk, mis 412 00:19:25,440 --> 00:19:28,310 piiritleb lõpuks string, ja meil on veel üks pärast 413 00:19:28,310 --> 00:19:29,360 Zamyla nimi. 414 00:19:29,360 --> 00:19:30,900 Mida see tähendab? 415 00:19:30,900 --> 00:19:33,410 >> Noh, lubage mul minna ja avada veel kaks näidet 416 00:19:33,410 --> 00:19:35,220 mis on kättesaadavad Internetis. 417 00:19:35,220 --> 00:19:40,590 Üks on nn argv1.c ja teine ​​on argv2. 418 00:19:40,590 --> 00:19:44,260 See on super-lihtne programm, mis erineb eelmiste programmide 419 00:19:44,260 --> 00:19:47,260 et nüüd ma kasutan argc ja argv siin. 420 00:19:47,260 --> 00:19:54,300 Ja nüüd ma lõimub silmus vastavalt 18, alates i = 0 on kuni Argc. 421 00:19:54,300 --> 00:19:56,850 Ja mida ma nüüd tegema Selle koodirida siin? 422 00:19:56,850 --> 00:19:58,270 Inglise keeles. 423 00:19:58,270 --> 00:20:00,510 See muidugi näitab kasutada argc. 424 00:20:00,510 --> 00:20:03,670 Aga inglise keeles, mis ei see teha, kui ma saan selle programmi? 425 00:20:03,670 --> 00:20:04,366 Jah? 426 00:20:04,366 --> 00:20:07,386 >> Sihtrühm: See saab printida ekraan nii mitu korda kui soovid. 427 00:20:07,386 --> 00:20:08,260 DAVID Humala: Täpselt. 428 00:20:08,260 --> 00:20:10,480 Nii et mis iganes sõnu ma kirjuta käsureale, see on 429 00:20:10,480 --> 00:20:13,120 läheb oksendama neid mulle üks rea kohta. 430 00:20:13,120 --> 00:20:14,370 Nii et olgem minna ja seda teha. 431 00:20:14,370 --> 00:20:17,862 Lubage mul minna oma kataloogi ja ei tee argv1 ./argv1. 432 00:20:17,862 --> 00:20:20,521 433 00:20:20,521 --> 00:20:21,770 Ja nüüd, olgem hoida lihtsa. 434 00:20:21,770 --> 00:20:23,834 Teeme midagi alguses. 435 00:20:23,834 --> 00:20:26,750 Ta tegi välja trükkida üks asi, ja see on tõesti programmi nime, 436 00:20:26,750 --> 00:20:28,240 sest see on sulg 0. 437 00:20:28,240 --> 00:20:33,290 Kui ma nüüd öelda, suva, et see saab teha need kaks, ja kui ma ütlen foo bar, 438 00:20:33,290 --> 00:20:35,580 see läheb ütlema, et need kolm asja. 439 00:20:35,580 --> 00:20:37,740 Nüüd ongi mõnevõrra huvitav, võibolla. 440 00:20:37,740 --> 00:20:41,450 Aga meenutan, et argv on massiivi stringe, 441 00:20:41,450 --> 00:20:45,960 kuid string on massiiv tähemärki, et saaksime asju pügala 442 00:20:45,960 --> 00:20:48,560 ja taotleda, et põhilised loogika ja muuta koodi, et 443 00:20:48,560 --> 00:20:51,160 tundub veidi segasena küll. 444 00:20:51,160 --> 00:20:53,540 Kuid võttes pesastatud loop, mis sarnaneb 445 00:20:53,540 --> 00:20:57,030 mida sa võiks meenutada, Mario, Näiteks, kui sa tegid seda nii. 446 00:20:57,030 --> 00:21:00,380 >> Nüüd teate real 19, ma olen jälle iterating üle minu argumente, 447 00:21:00,380 --> 00:21:02,410 0 on kuni Argc. 448 00:21:02,410 --> 00:21:05,510 Ja nüüd kooskõlas 21-- ma olen laenates trikk eelmisel week-- 449 00:21:05,510 --> 00:21:11,090 Olen kontrollimiseks, mis on pikkus argv sulg i. 450 00:21:11,090 --> 00:21:12,920 Ma ladustamiseks et vastus n. 451 00:21:12,920 --> 00:21:18,230 Ja siis ma integreerida alates j kohta kuni n, kus j on vormindatud 0. 452 00:21:18,230 --> 00:21:19,460 Niisiis, konventsioon lugedes. 453 00:21:19,460 --> 00:21:22,335 Kui olete kasutanud i, kui teil on nested loop, siis te ei saa ma jälle 454 00:21:22,335 --> 00:21:25,770 muidu pead Tellida potentsiaalselt väärtust väljaspool sisemist silmus. 455 00:21:25,770 --> 00:21:27,200 Nii et ma kasutan j kokkuleppeliselt. 456 00:21:27,200 --> 00:21:28,020 Me võime kasutada k. 457 00:21:28,020 --> 00:21:31,080 Kui sul on rohkem kui k, siis ilmselt on liiga palju pesitsevate, tavaliselt. 458 00:21:31,080 --> 00:21:33,800 Aga nüüd, märkate mu printf line on veidi erinev. 459 00:21:33,800 --> 00:21:37,520 Ma ei prindi% s, ma olen trükkimiseks% c, mis loomulikult 460 00:21:37,520 --> 00:21:39,460 on kohatäide char. 461 00:21:39,460 --> 00:21:40,770 >> Ja nüüd teate seda süntaksit. 462 00:21:40,770 --> 00:21:41,270 Uus. 463 00:21:41,270 --> 00:21:42,630 Me ei ole näinud seda enne. 464 00:21:42,630 --> 00:21:47,290 Aga loogiliselt, see tähendab lihtsalt saada nda stringi argv 465 00:21:47,290 --> 00:21:50,067 ja saada JTH mida? 466 00:21:50,067 --> 00:21:50,900 Sihtrühm: Iseloom. 467 00:21:50,900 --> 00:21:52,800 DAVID Humala: märk, et string. 468 00:21:52,800 --> 00:21:57,100 Niisiis, kasutades nurksulgudes järgneb nurksulgudesse 469 00:21:57,100 --> 00:22:00,390 see on sukeldumine esimene arvesse argv on stringid, 470 00:22:00,390 --> 00:22:02,225 ja siis teine Nurksulgudes koos j 471 00:22:02,225 --> 00:22:06,580 on sukeldudes tähemärki et eriti stringi argv. 472 00:22:06,580 --> 00:22:09,562 Ja siis, just hea meede, Ma printimise uue rea siin. 473 00:22:09,562 --> 00:22:12,020 Nüüd lubage mul minna ja avada kuni veidi suurem aken 474 00:22:12,020 --> 00:22:13,600 nii näeme selles tegevuses. 475 00:22:13,600 --> 00:22:15,700 Lubage mul minna samasse kausta. 476 00:22:15,700 --> 00:22:22,550 Ja nüüd ei tee argv-2-- ups teha argv-2, ./argv 2. 477 00:22:22,550 --> 00:22:23,110 Sisesta. 478 00:22:23,110 --> 00:22:24,860 Ja see on natuke raske lugeda vertikaalselt, 479 00:22:24,860 --> 00:22:27,920 kuid see on tõepoolest nimi Programm, millele järgneb tühi rida. 480 00:22:27,920 --> 00:22:30,210 Nüüd lubage mul minna ja teha suva. 481 00:22:30,210 --> 00:22:33,210 Samamoodi on raske lugeda, kuid see on tõepoolest printimise üks märk rea kohta. 482 00:22:33,210 --> 00:22:36,780 Ja kui ma ei bar, see on nüüd trükkimine need rida-realt. 483 00:22:36,780 --> 00:22:40,140 Nii Buffee siin ei ole nii palju et wow, vaata seda kena uus trikk 484 00:22:40,140 --> 00:22:44,750 kus saad at sisu massiivi erimärke, 485 00:22:44,750 --> 00:22:48,380 vaid selles, kuidas me võtame neid põhilisi ideid, nagu indekseerimine massiivi, 486 00:22:48,380 --> 00:22:51,620 ja siis indekseerimise sisse massiiv, mis oli selles massiiv, 487 00:22:51,620 --> 00:22:56,180 ja lihtsalt kohaldades samu ideid veidi keerukamaid näiteid. 488 00:22:56,180 --> 00:22:59,560 Aga põhitõdesid tõesti ei muutunud, isegi pärast viimase nädala jooksul. 489 00:22:59,560 --> 00:23:02,350 >> Nüüd on see omamoodi õigeaegne, aastal, et tuletada meelde, et nädal null 490 00:23:02,350 --> 00:23:04,110 Mängisime telefoniraamat niimoodi. 491 00:23:04,110 --> 00:23:06,670 Ja kuigi see on ilmselt füüsilise paberitükke, 492 00:23:06,670 --> 00:23:09,150 saab omamoodi mõelda telefoniraamat massiiv. 493 00:23:09,150 --> 00:23:12,770 Kindlasti, kui sa olid implementeerid Selle tükki neid paberitükke 494 00:23:12,770 --> 00:23:15,260 aastal arvuti, arvatavasti sa kasutad midagi 495 00:23:15,260 --> 00:23:20,270 nagu massiivi salvestada kõik need Nimede ja numbrite kõik viis 496 00:23:20,270 --> 00:23:23,800 läbi Z. Nii et see on tore, sest see võimaldab meil võimalus, 497 00:23:23,800 --> 00:23:28,310 võib-olla, et mõelda, kuidas te võite tegelikult ellu midagi sellist. 498 00:23:28,310 --> 00:23:31,250 Nagu seeria uksed siin. 499 00:23:31,250 --> 00:23:36,380 Nii et kui ma kas-- vajame üks vabatahtlikuna tule üles. 500 00:23:36,380 --> 00:23:36,980 Vaatame. 501 00:23:36,980 --> 00:23:40,650 Võõras nägu ehk võõras nägu ehk. 502 00:23:40,650 --> 00:23:42,090 Kuidas oranžilt? 503 00:23:42,090 --> 00:23:42,680 Siin. 504 00:23:42,680 --> 00:23:45,870 Orange särk, tule üles. 505 00:23:45,870 --> 00:23:52,230 >> Lähme edasi nüüd ja liikuda Nende uste üle külje, 506 00:23:52,230 --> 00:23:54,020 liiguta neid välja viis hetkeks. 507 00:23:54,020 --> 00:23:56,600 508 00:23:56,600 --> 00:23:57,760 Mis su nimi on? 509 00:23:57,760 --> 00:23:58,580 >> Ajay: 510 00:23:58,580 --> 00:23:58,655 >> DAVID Humala: Ajay. 511 00:23:58,655 --> 00:23:58,680 David. 512 00:23:58,680 --> 00:23:59,451 Meeldiv kohtuda. 513 00:23:59,451 --> 00:23:59,950 Olgu. 514 00:23:59,950 --> 00:24:04,500 Nii et meil on taga need kuus uksed digitaalselt screen-- 515 00:24:04,500 --> 00:24:07,810 või pigem seitsme uksed screen-- terve hunnik numbreid. 516 00:24:07,810 --> 00:24:10,099 Ja ma olen sulle midagi aastal advance-- kokku? 517 00:24:10,099 --> 00:24:11,140 Ajay: Midagi ette. 518 00:24:11,140 --> 00:24:14,730 DAVID Humala: Kõik, mida ma tahan, et sa nüüd on leida minu jaoks, ja meie, 519 00:24:14,730 --> 00:24:20,920 tõesti, nr 50, üks samm korraga. 520 00:24:20,920 --> 00:24:21,830 >> Ajay: Number 50? 521 00:24:21,830 --> 00:24:22,580 >> DAVID Humala: number 50. 522 00:24:22,580 --> 00:24:24,746 Ja te võite paljastada, mis on taga kõik need uksed 523 00:24:24,746 --> 00:24:27,930 lihtsalt puudutades sõrmega. 524 00:24:27,930 --> 00:24:31,364 Kurat. [Naer] 525 00:24:31,364 --> 00:24:34,560 >> [APPLAUSE] 526 00:24:34,560 --> 00:24:39,540 >> Väga hästi tehtud. 527 00:24:39,540 --> 00:24:40,400 OK. 528 00:24:40,400 --> 00:24:44,090 Meil on armas kingitus auhind teid siin. 529 00:24:44,090 --> 00:24:46,520 Teie valik filme me arutas eelmisel nädalal. 530 00:24:46,520 --> 00:24:47,362 >> Ajay: Oh, mees. 531 00:24:47,362 --> 00:24:49,050 Oh, ma pole kunagi näinud Spaceballs. 532 00:24:49,050 --> 00:24:49,520 >> DAVID Humala: Spaceballs. 533 00:24:49,520 --> 00:24:50,140 Olgu. 534 00:24:50,140 --> 00:24:53,790 Nii et hoidke lihtsalt üks hetk. 535 00:24:53,790 --> 00:24:57,430 Kuidas-- teeme seda sõnavõtlik moment-- 536 00:24:57,430 --> 00:25:00,412 kuidas sa minema umbes leida number 50? 537 00:25:00,412 --> 00:25:01,370 Ajay: valisin juhuslikult. 538 00:25:01,370 --> 00:25:03,420 DAVID Humala: Nii valisid juhuslikult ja vedas. 539 00:25:03,420 --> 00:25:03,790 Ajay: Jah. 540 00:25:03,790 --> 00:25:04,456 DAVID Humala: OK. 541 00:25:04,456 --> 00:25:05,050 Suurepärane. 542 00:25:05,050 --> 00:25:08,470 Nüüd, kui te poleks saanud õnnelik, mida veel 543 00:25:08,470 --> 00:25:10,210 oleks võinud juhtuda, taga uksed? 544 00:25:10,210 --> 00:25:12,930 Nii et kui ma edasi minna ja näitavad need arvud siin, 545 00:25:12,930 --> 00:25:15,180 nad tegelikult on juhuslikus järjekorras. 546 00:25:15,180 --> 00:25:17,750 Ja parim, mida võis teha, ausalt öeldes on poolt lõpuks 547 00:25:17,750 --> 00:25:19,410 halvimal juhul kontrollida neid kõiki. 548 00:25:19,410 --> 00:25:23,000 Nii et sul on super-õnnelik, mis ei ole see, mida me tahaks helistada algoritm. 549 00:25:23,000 --> 00:25:24,730 Jah Õnnitlused. 550 00:25:24,730 --> 00:25:27,010 Aga nüüd let's-- mu tuju, kui sa saaksid. 551 00:25:27,010 --> 00:25:28,310 Lähme seda vahekaarti siin. 552 00:25:28,310 --> 00:25:31,460 Ja siin on numbrid selgelt mis tundub olevat juhuslikus järjekorras 553 00:25:31,460 --> 00:25:32,280 ja nad olid. 554 00:25:32,280 --> 00:25:35,160 Aga nüüd, kui ma selle asemel nõue et taga need uksed 555 00:25:35,160 --> 00:25:39,070 on numbrid, mis on järjestatud. 556 00:25:39,070 --> 00:25:41,780 Eesmärk on nüüd ka meid leida number 50. 557 00:25:41,780 --> 00:25:45,910 Aga tee seda algoritmiliselt ja ütle meile, kuidas sa tahad seda. 558 00:25:45,910 --> 00:25:48,020 Ja kui sa leiad ta, hoia filmi. 559 00:25:48,020 --> 00:25:49,520 Sa ei leia seda, siis anna see tagasi. 560 00:25:49,520 --> 00:25:52,720 561 00:25:52,720 --> 00:25:58,112 Ajay: Ma lähen, et kontrollida otsad Esiteks, et teha kindlaks, kas siin on-- 562 00:25:58,112 --> 00:26:02,048 [Naer APPLAUSE] 563 00:26:02,048 --> 00:26:04,451 564 00:26:04,451 --> 00:26:05,492 DAVID Humala: lahke. 565 00:26:05,492 --> 00:26:17,080 566 00:26:17,080 --> 00:26:21,700 Võtame pilk üks ning Ajay eelkäijate, 567 00:26:21,700 --> 00:26:25,450 Sean, kes ei olnud päris nii õnnelik. 568 00:26:25,450 --> 00:26:28,670 OK, nii et teie ülesanne siin, Sean, on järgmine. 569 00:26:28,670 --> 00:26:32,970 Olen peidus need uste arv seitse, 570 00:26:32,970 --> 00:26:37,200 aga peitunud mõned neist uksed samuti on muud negatiivsed arvud. 571 00:26:37,200 --> 00:26:40,730 Ja teie eesmärk on mõelda selle esirea numbreid lihtsalt massiivi. 572 00:26:40,730 --> 00:26:43,590 Oleme vaid jada tükki paberi numbritega nende taga. 573 00:26:43,590 --> 00:26:47,640 Ja teie eesmärk on ainult kasutades top massiivi siin, mind leida number seitse. 574 00:26:47,640 --> 00:26:51,200 Ja me siis läheb kriitika kuidas sa minema umbes teeb seda. 575 00:26:51,200 --> 00:26:52,920 Leia meid number seitse, palun. 576 00:26:52,920 --> 00:27:02,570 577 00:27:02,570 --> 00:27:03,070 Ei 578 00:27:03,070 --> 00:27:06,760 579 00:27:06,760 --> 00:27:08,179 5, 19, 13. 580 00:27:08,179 --> 00:27:16,752 581 00:27:16,752 --> 00:27:17,835 See ei ole trikiga küsimus. 582 00:27:17,835 --> 00:27:21,420 583 00:27:21,420 --> 00:27:21,920 1. 584 00:27:21,920 --> 00:27:26,715 585 00:27:26,715 --> 00:27:29,840 Sel hetkel teie skoor ei ole väga hea, et sa võiksid samuti edasi. 586 00:27:29,840 --> 00:27:32,870 587 00:27:32,870 --> 00:27:33,370 3. 588 00:27:33,370 --> 00:27:38,570 589 00:27:38,570 --> 00:27:39,802 Mine. 590 00:27:39,802 --> 00:27:42,510 Ausalt, ma ei saa aidata, kuid ei tea, mida sa isegi mõelda. 591 00:27:42,510 --> 00:27:44,990 >> Sean: ma ei kesta ainult ülemises reas. 592 00:27:44,990 --> 00:27:46,240 DAVID Humala: Ainult ülemises reas. 593 00:27:46,240 --> 00:27:47,281 Nii et sul on kolm vasakule. 594 00:27:47,281 --> 00:27:48,310 Nii et mind leida 7. 595 00:27:48,310 --> 00:27:54,758 596 00:27:54,758 --> 00:27:59,141 >> [Sihtgrupp hüüab ETTEPANEKUD] 597 00:27:59,141 --> 00:28:22,210 598 00:28:22,210 --> 00:28:26,130 Nii et need mõlemad olid hämmastav väga erinevatel põhjustel. 599 00:28:26,130 --> 00:28:29,150 Nii et see on koht, kus me jäi hetk tagasi 600 00:28:29,150 --> 00:28:32,530 ja Võtmeküsimuseks siin oli need uksed olid numbrid 601 00:28:32,530 --> 00:28:37,390 nende taga, mis on sorteeritud, ideaalne Buffee puhul, mis on, et sa võiksid teha 602 00:28:37,390 --> 00:28:39,670 fundamentaalselt parem Teise example-- 603 00:28:39,670 --> 00:28:42,380 ja tõepoolest, see oli Seani Esimene katse juhuslikult numbrid 604 00:28:42,380 --> 00:28:45,460 niisama varemgi- kuid niipea kui need numbrid on järjestatud, 605 00:28:45,460 --> 00:28:47,980 palju nagu telefoniraamat, Mida saate ilmselt teha? 606 00:28:47,980 --> 00:28:50,090 Või kuidas saab võimendada, et teadmisi? 607 00:28:50,090 --> 00:28:51,530 Jah. 608 00:28:51,530 --> 00:28:54,910 >> Sihtrühm: Lähed pooleldi [kuuldamatu]. 609 00:28:54,910 --> 00:28:55,660 DAVID Humala: Jah. 610 00:28:55,660 --> 00:28:56,160 Täpselt. 611 00:28:56,160 --> 00:28:59,680 Nii Ajay esialgne instinkt oli kontrollida otsad, kui ma mäletan, 612 00:28:59,680 --> 00:29:02,320 ja siis me justkui valmis Näiteks kiiresti. 613 00:29:02,320 --> 00:29:05,220 Aga kui me hakkasime seda rohkem metoodiliselt selles suunas, 614 00:29:05,220 --> 00:29:07,860 aga alustades ehk keskel, sest nad sorteeritud, 615 00:29:07,860 --> 00:29:10,900 niipea kui ilmneb number 16, me seetõttu tea-- 616 00:29:10,900 --> 00:29:14,850 ja teeme täpselt et-- me Seetõttu tean, et 50, tänapäeva juhul 617 00:29:14,850 --> 00:29:16,080 on saanud olla paremale. 618 00:29:16,080 --> 00:29:18,735 Nii nagu ka nädal nulli me rebis telefoniraamatust poole 619 00:29:18,735 --> 00:29:21,490 ja viskas poole probleem ära, sama mõte siin. 620 00:29:21,490 --> 00:29:23,680 Me ei viska seda pool Probleemi kaugusel. 621 00:29:23,680 --> 00:29:25,730 Ja ilmselt, mida te võiks teha algoritmiliselt, 622 00:29:25,730 --> 00:29:28,710 kui sa tead, et 50 peab olema paremale, kui see on kõikjal, 623 00:29:28,710 --> 00:29:31,390 on püüda seal, keset Ülejäänud uksi. 624 00:29:31,390 --> 00:29:33,450 Muidugi 50 on kõrgem kui 42, nii et me saame 625 00:29:33,450 --> 00:29:36,060 viska see ülejäänud kvartalis probleemi ära, 626 00:29:36,060 --> 00:29:38,510 ja lõpuks, kindlaks midagi 50. 627 00:29:38,510 --> 00:29:41,050 Aga just nagu telefoniraamat, need numbrid 628 00:29:41,050 --> 00:29:44,560 anti meile juba sorteeritud järjekorras, mis jätab meid 629 00:29:44,560 --> 00:29:47,450 küsimusega, kuidas te saada asjad sorteeritud järjekorras? 630 00:29:47,450 --> 00:29:49,640 Ja ausalt öeldes, millise hinnaga? 631 00:29:49,640 --> 00:29:51,390 See on üks asi olla meheks telefoniraamat 632 00:29:51,390 --> 00:29:54,810 ja siis muljet sõpradega leides telefoninumber tõesti kiiresti, eks? 633 00:29:54,810 --> 00:29:58,520 Rebimine 32 lehekülge, et leida isik välja 4 miljardit lehekülge, 634 00:29:58,520 --> 00:30:00,470 me ütlesime oli üks äärmuslik näide. 635 00:30:00,470 --> 00:30:03,320 Aga kui palju aega kulus Verizon sorteerida, et telefoniraamatust? 636 00:30:03,320 --> 00:30:06,170 Kui palju aega kulus meil sorteerida need seitse numbrid? 637 00:30:06,170 --> 00:30:10,110 See on küsimus, mida me oleme seni täiesti tähelepanuta. 638 00:30:10,110 --> 00:30:12,330 >> Nii et olgem sellele küsimusele vastata nüüd. 639 00:30:12,330 --> 00:30:15,920 Ja me kõik oleme välja filme nüüd, kuid meil on mõned stress pallid. 640 00:30:15,920 --> 00:30:19,480 Kui, ütleme, kaheksa vabatahtlikku ei pahanda meiega siin? 641 00:30:19,480 --> 00:30:24,100 Lähme edasi ja seda, kuidas te neli, kolm teist siin? 642 00:30:24,100 --> 00:30:25,290 Get mõned uued näod. 643 00:30:25,290 --> 00:30:27,220 Ja neli sa seal? 644 00:30:27,220 --> 00:30:30,760 Ja nüüd-- ärme diagonaal siin-- ja number kaheksa siia otsa. 645 00:30:30,760 --> 00:30:32,060 Tule. 646 00:30:32,060 --> 00:30:32,560 Olgu. 647 00:30:32,560 --> 00:30:37,480 Niisiis, mida me oleme siin igaüks teist on number. 648 00:30:37,480 --> 00:30:40,055 Kui soovid minna edasi, seda arvu. 649 00:30:40,055 --> 00:30:40,763 Mis su nimi on? 650 00:30:40,763 --> 00:30:41,950 >> Artie: Artie. 651 00:30:41,950 --> 00:30:43,100 >> DAVID Humala: Artie, eks. 652 00:30:43,100 --> 00:30:44,297 Sa oled number 1. 653 00:30:44,297 --> 00:30:45,310 >> AMIN: Amin. 654 00:30:45,310 --> 00:30:46,060 DAVID Humala: Amin. 655 00:30:46,060 --> 00:30:46,820 David. 656 00:30:46,820 --> 00:30:47,530 Sa oled number 2. 657 00:30:47,530 --> 00:30:49,100 Ja edasi minna, kui ma käsi sa paberilehte, 658 00:30:49,100 --> 00:30:52,130 liinile endid ees muusika seisab samas järjekorras nagu seal. 659 00:30:52,130 --> 00:30:52,660 >> ANDY: Tere, Andy. 660 00:30:52,660 --> 00:30:53,970 >> DAVID Humala: Andy, see on tore näha. 661 00:30:53,970 --> 00:30:54,520 Number 3. 662 00:30:54,520 --> 00:30:55,310 >> JACOB: Jacob. 663 00:30:55,310 --> 00:30:56,760 >> DAVID Humala: Jacob, number 4. 664 00:30:56,760 --> 00:30:57,549 Tere tulemast pardale. 665 00:30:57,549 --> 00:30:58,090 GRANT: Grant. 666 00:30:58,090 --> 00:30:58,881 DAVID Humala: Grant. 667 00:30:58,881 --> 00:31:00,348 Number 5. 668 00:31:00,348 --> 00:31:01,200 >> Alanna: Alanna. 669 00:31:01,200 --> 00:31:02,766 >> DAVID Humala: Alanna, number 6. 670 00:31:02,766 --> 00:31:03,589 >> FRANCES: Frances. 671 00:31:03,589 --> 00:31:04,880 DAVID Humala: Frances, number 7. 672 00:31:04,880 --> 00:31:05,200 Ja siis? 673 00:31:05,200 --> 00:31:05,830 >> Raaheli Rachel. 674 00:31:05,830 --> 00:31:06,815 >> DAVID Humala: Rachel, number 8. 675 00:31:06,815 --> 00:31:07,100 Olgu. 676 00:31:07,100 --> 00:31:08,766 Lase käia ja end selles järjekorras. 677 00:31:08,766 --> 00:31:11,440 Lubage mul esitada üks ülejäänud muusika seista paigal. 678 00:31:11,440 --> 00:31:13,670 Kui teil on vaja seista? 679 00:31:13,670 --> 00:31:14,170 OK. 680 00:31:14,170 --> 00:31:18,710 Lase käia ja lihtsalt pane numbrid kus publik saab neid näha, 681 00:31:18,710 --> 00:31:20,340 muusika seisma jääks väljapoole. 682 00:31:20,340 --> 00:31:27,240 Ja loodetavasti meie esimene meelerahu kontrolli siin-- 4, 2, 6. 683 00:31:27,240 --> 00:31:27,890 Oh-oh. 684 00:31:27,890 --> 00:31:29,070 Oota nüüd. 685 00:31:29,070 --> 00:31:31,140 Meil ei ole 8. 686 00:31:31,140 --> 00:31:35,180 Ma pean tõstma teid Näiteks kuidagi. 687 00:31:35,180 --> 00:31:35,680 Ei 688 00:31:35,680 --> 00:31:36,940 Ei, see on OK. 689 00:31:36,940 --> 00:31:37,890 Vaatame. 690 00:31:37,890 --> 00:31:38,880 Me ei saa seda teha. 691 00:31:38,880 --> 00:31:39,440 Olge valmis. 692 00:31:39,440 --> 00:31:43,970 693 00:31:43,970 --> 00:31:45,740 Vot nii. 694 00:31:45,740 --> 00:31:46,800 Õige. 695 00:31:46,800 --> 00:31:47,360 Olgu. 696 00:31:47,360 --> 00:31:50,260 Nii, nüüd on meil 8, 1, 3 7 5. 697 00:31:50,260 --> 00:31:50,760 OK. 698 00:31:50,760 --> 00:31:51,360 Suurepärane. 699 00:31:51,360 --> 00:31:54,400 >> Seega on küsimus käepärast on, kell millise hinnaga, ja milliste meetodit, 700 00:31:54,400 --> 00:31:58,580 me saame tegelikult sorteeri need numbrid siia et saaksime sellist tööd tagasi, 701 00:31:58,580 --> 00:32:02,759 lõpuks ja decide-- on see tõesti muljetavaldav, see on tõesti tõhus, 702 00:32:02,759 --> 00:32:04,550 et võin jagada ja vallutada telefoniraamatust? 703 00:32:04,550 --> 00:32:06,716 Kas see on tõesti tõhus, et Ma ei jaga ja valitse 704 00:32:06,716 --> 00:32:08,600 need digitaalne tükki paberi lauale, 705 00:32:08,600 --> 00:32:14,500 äkki see läheb meile maksma varanduse aega või energiat või protsessori 706 00:32:14,500 --> 00:32:17,340 tegelikult saada meie andmed mõnda sorteeritud järjekorras? 707 00:32:17,340 --> 00:32:18,930 Nii et olgem küsida seda küsimust. 708 00:32:18,930 --> 00:32:22,077 >> Nii et esimene välja, need numbrid on päris palju juhuslikus järjekorras 709 00:32:22,077 --> 00:32:24,160 ja ma lähen ettepaneku üks algoritmi või protsessi 710 00:32:24,160 --> 00:32:25,970 mille abil saame sorteeri need inimesed. 711 00:32:25,970 --> 00:32:28,100 Ma lähenema see ilus naiivselt. 712 00:32:28,100 --> 00:32:30,730 Ja ma lähen ära tunda et see on selline palju minu jaoks 713 00:32:30,730 --> 00:32:32,890 wrap minu arvates ümber Kogu andmestik korraga. 714 00:32:32,890 --> 00:32:33,640 Aga tead mis? 715 00:32:33,640 --> 00:32:37,450 Ma teen mõned väga lihtne marginaalne parandusi. 716 00:32:37,450 --> 00:32:41,152 4 ja 2 on rikkis, kui Eesmärgiks on minna alates 1 kuni 8. 717 00:32:41,152 --> 00:32:41,860 Nii et sa tead, mida? 718 00:32:41,860 --> 00:32:43,776 Ma lähen, et olete poisid vahetada, kui lülitate 719 00:32:43,776 --> 00:32:46,380 füüsiliselt seisukohti ja oma paberitükke. 720 00:32:46,380 --> 00:32:47,894 Nüüd 4 ja 6, on need järjekorras. 721 00:32:47,894 --> 00:32:49,060 Ma jätan need olla. 722 00:32:49,060 --> 00:32:50,227 6 ja 8, need on korras. 723 00:32:50,227 --> 00:32:51,185 Jäta neid olema. 724 00:32:51,185 --> 00:32:52,170 8 AND1, rikkis. 725 00:32:52,170 --> 00:32:54,790 Kui te kaks ei oleks midagi vahetada. 726 00:32:54,790 --> 00:32:57,300 Nüüd 8 ja 3, kui te võiks vahetada. 727 00:32:57,300 --> 00:32:59,320 8 ja 7, kui te võiks vahetada. 728 00:32:59,320 --> 00:33:01,790 Ja 8 ja 5, kui te võiks vahetada. 729 00:33:01,790 --> 00:33:03,980 >> Nüüd olen ma teinud olen? 730 00:33:03,980 --> 00:33:05,200 Ei, loomulikult mitte. 731 00:33:05,200 --> 00:33:07,880 Aga ma olen teinud olukord parem, eks? 732 00:33:07,880 --> 00:33:09,430 Mis su nimi oligi, number 8? 733 00:33:09,430 --> 00:33:10,055 >> Raaheli Rachel. 734 00:33:10,055 --> 00:33:12,850 DAVID Humala: Nii Rachel on tõhusalt mullidena üles päris palju, 735 00:33:12,850 --> 00:33:15,660 kõik viis lõpuks minu massiivi numbrid siin. 736 00:33:15,660 --> 00:33:17,310 Ja nii, et probleem on omamoodi lahendatud. 737 00:33:17,310 --> 00:33:21,670 Nüüd on selge, 2 vajab veel liikuda veidi, ja 4 ja 6 ja 1. 738 00:33:21,670 --> 00:33:24,420 Aga ma tundub, et on saanud lähemale lahendus. 739 00:33:24,420 --> 00:33:26,790 Nii et olgem kohaldatakse sama naiivne heuristiline uuesti. 740 00:33:26,790 --> 00:33:27,690 2 ja 4, OK. 741 00:33:27,690 --> 00:33:28,810 4 ja 6, OK. 742 00:33:28,810 --> 00:33:29,930 6 ja 1 mm-mm. 743 00:33:29,930 --> 00:33:32,230 Olgem swap. 744 00:33:32,230 --> 00:33:33,200 6 ja 3 mm-mm. 745 00:33:33,200 --> 00:33:34,420 Olgem swap. 746 00:33:34,420 --> 00:33:35,580 6 ja 7 on OK. 747 00:33:35,580 --> 00:33:36,590 7 ja 5, nope. 748 00:33:36,590 --> 00:33:37,790 Olgem swap. 749 00:33:37,790 --> 00:33:38,470 Ja nüüd 7 ja 8 alusel. 750 00:33:38,470 --> 00:33:39,862 Ja mis su nimi oligi? 751 00:33:39,862 --> 00:33:40,570 FRANCES: Frances. 752 00:33:40,570 --> 00:33:41,445 DAVID Humala: Frances. 753 00:33:41,445 --> 00:33:44,230 Nüüd Frances on isegi parem asendis, sest nüüd 7 ja 8 754 00:33:44,230 --> 00:33:46,440 õigesti mullidena üles tippu. 755 00:33:46,440 --> 00:33:47,510 Nii et 2 ja 4, OK. 756 00:33:47,510 --> 00:33:48,720 4 ja 1, olgem swap. 757 00:33:48,720 --> 00:33:50,410 4 ja 3, olgem swap. 758 00:33:50,410 --> 00:33:51,550 4 ja 6, et sa oled OK. 759 00:33:51,550 --> 00:33:53,340 6 ja 5, olgem swap. 760 00:33:53,340 --> 00:33:54,590 Ja nüüd need mehed on head. 761 00:33:54,590 --> 00:33:55,780 Me oleme peaaegu kohal. 762 00:33:55,780 --> 00:33:57,706 2 ja 1, rikkis, nii vahetada. 763 00:33:57,706 --> 00:33:59,080 Ja nüüd las ma teen terve mõistuse kontrolli. 764 00:33:59,080 --> 00:34:03,080 2 ja 3, 3 ja 4, 4 ja 5, 5 ja 6, 6 ja 7, 8. 765 00:34:03,080 --> 00:34:05,060 OK, nii et me oleme valmis. 766 00:34:05,060 --> 00:34:09,310 >> Aga millise hinnaga ma tegin sorteeri need numbrid siia? 767 00:34:09,310 --> 00:34:13,960 Noh, mitu sammu tegin ma potentsiaalselt võtta kui sorteeritakse need inimesed? 768 00:34:13,960 --> 00:34:15,710 Noh, me tuleme tagasi selle küsimuse. 769 00:34:15,710 --> 00:34:18,030 Aga ausalt öeldes, kui sul natuke igav, see on 770 00:34:18,030 --> 00:34:22,270 liiki paljastavad, et see ei olnud võibolla kõige tõhusam algoritm. 771 00:34:22,270 --> 00:34:25,230 Ja tõesti, ausalt, ma higistamine enam jalgsi edasi-tagasi. 772 00:34:25,230 --> 00:34:26,639 See ei tundunud eriti tõhus. 773 00:34:26,639 --> 00:34:27,805 Nii et proovime midagi muud. 774 00:34:27,805 --> 00:34:31,870 Kui te võiks nullida endid nende kaheksa väärtused. 775 00:34:31,870 --> 00:34:32,969 Hea töö. 776 00:34:32,969 --> 00:34:36,570 >> Võtame pilk digitaalselt, vaid hetk enne kui me midagi muud proovida, 777 00:34:36,570 --> 00:34:38,179 juures, mis just juhtus. 778 00:34:38,179 --> 00:34:41,330 Siin, sa oled umbes, et näha, visualiseerimine nende kaheksa inimese 779 00:34:41,330 --> 00:34:44,719 kusjuures sinine ja punane tulbad numbrid. 780 00:34:44,719 --> 00:34:46,670 Pikem on riba, suurem number. 781 00:34:46,670 --> 00:34:48,510 Mida lühem on baar, väiksema arvu. 782 00:34:48,510 --> 00:34:51,560 Ja mida sa lähed, et näha, on juhuslikus järjekorras üle kaheksa neist. 783 00:34:51,560 --> 00:34:55,830 Sa lähed, et need baarid saada sorteeritud sama algoritmi, 784 00:34:55,830 --> 00:34:59,890 või juhistega, mis me kutsume nüüdsest mull omamoodi. 785 00:34:59,890 --> 00:35:04,000 Nii teate, iga sekund või nii, kaks baarid süttib punaselt, 786 00:35:04,000 --> 00:35:05,590 võrreldud arvuti. 787 00:35:05,590 --> 00:35:08,630 Ja siis kui suur baar ja väike baar on rikkis, 788 00:35:08,630 --> 00:35:11,220 neid vahetasid minu jaoks. 789 00:35:11,220 --> 00:35:15,120 >> Nüüd see on uskumatult tüütu vaadata seda, kindlasti, 790 00:35:15,120 --> 00:35:18,630 väga kaua, kuid teade takeaway-- suur baarid liikuda paremale, 791 00:35:18,630 --> 00:35:20,460 vähe baarid liikudes vasakult. 792 00:35:20,460 --> 00:35:23,380 Olgem katkestada see protsess ja seda kiirendada 793 00:35:23,380 --> 00:35:27,330 olla palju kiirem, et saaksime saada kõrgetasemelist tunnet, mida, 794 00:35:27,330 --> 00:35:29,970 Tõepoolest, mull omamoodi teeb. 795 00:35:29,970 --> 00:35:33,150 Tõepoolest, see vahustamine kuni paremal pool nimekirja 796 00:35:33,150 --> 00:35:35,260 või massiiv, suurem baarides. 797 00:35:35,260 --> 00:35:40,020 Ja vastupidi, vähe baarid vahustamine oma teed alla vasakule, 798 00:35:40,020 --> 00:35:42,950 kuigi kiiremini kui me varem tegime. 799 00:35:42,950 --> 00:35:45,850 Niisiis, raskem näha inimestega, kuid visuaalselt see on tõesti, mida 800 00:35:45,850 --> 00:35:46,540 juhtub. 801 00:35:46,540 --> 00:35:49,110 >> Aga proovime põhimõtteliselt erinevat lähenemist praegu. 802 00:35:49,110 --> 00:35:52,387 Proovime eri algoritm, mille oleme teie 803 00:35:52,387 --> 00:35:59,640 poisid alustada nende esialgse seisukohti, mis oli see, et siin. 804 00:35:59,640 --> 00:36:00,827 Ja olgem minna nüüd. 805 00:36:00,827 --> 00:36:02,910 Ja ma teen midagi veelgi lihtsam, eks? 806 00:36:02,910 --> 00:36:06,710 Tagantjärele vahetada paarikaupa uuesti ja jälle, peaaegu natuke kaval. 807 00:36:06,710 --> 00:36:10,460 Teeme asjad veelgi naiivselt, kus, kui ma tahan, et järjestada need inimesed, 808 00:36:10,460 --> 00:36:12,560 las ma otsin edasi võtta väikseima elemendi. 809 00:36:12,560 --> 00:36:14,570 Nii et praegu on, 4 on Kõige vähem olen näinud. 810 00:36:14,570 --> 00:36:15,695 Ma mäletan. 811 00:36:15,695 --> 00:36:17,750 Ei, 2 on parem, ja pidage meeles, et. 812 00:36:17,750 --> 00:36:20,730 1 on veelgi väiksem. 813 00:36:20,730 --> 00:36:21,970 3, 7, 5. 814 00:36:21,970 --> 00:36:22,470 OK. 815 00:36:22,470 --> 00:36:23,750 Keegi-- mis su nimi oligi? 816 00:36:23,750 --> 00:36:24,400 >> Artie: Artie. 817 00:36:24,400 --> 00:36:24,610 >> DAVID Humala: Artie. 818 00:36:24,610 --> 00:36:25,460 Niisiis, Artie, edasi minna. 819 00:36:25,460 --> 00:36:27,043 Ma lähen vedama teid välja rida. 820 00:36:27,043 --> 00:36:28,400 Kui sa saaksid siia tagasi tulla. 821 00:36:28,400 --> 00:36:30,790 Ja mul on vaja, et teha ruumi teda. 822 00:36:30,790 --> 00:36:32,040 Meil on otsuse punktis siin. 823 00:36:32,040 --> 00:36:36,000 Kuidas võiks me teha ruumi Artie siin alguses milles number 1 kuulub? 824 00:36:36,000 --> 00:36:36,770 >> Sihtrühm: Shift. 825 00:36:36,770 --> 00:36:38,950 >> DAVID Humala: OK, me realiseerumisel võib igaüks. 826 00:36:38,950 --> 00:36:40,860 Aga ettepanekuid optimeerimine. 827 00:36:40,860 --> 00:36:43,410 See tundub veidi tüütu minu jaoks küsida neli inimest 828 00:36:43,410 --> 00:36:44,620 liikuda kogu tee alla. 829 00:36:44,620 --> 00:36:45,520 Mida muud ma teha sain? 830 00:36:45,520 --> 00:36:46,360 >> Sihtrühm: Switch neid. 831 00:36:46,360 --> 00:36:46,850 >> DAVID Humala Lülita neid. 832 00:36:46,850 --> 00:36:47,900 Ja mis su nimi oligi? 833 00:36:47,900 --> 00:36:48,441 >> JACOB: Jacob. 834 00:36:48,441 --> 00:36:50,330 DAVID Humala: Jacob, liikuda. 835 00:36:50,330 --> 00:36:54,440 Palju tõhusam lihtsalt on Jacob swap kohtades Artie, 836 00:36:54,440 --> 00:36:56,710 mitte sundides kõik neli neist inimesed, 837 00:36:56,710 --> 00:36:58,734 tänan teid väga, et oma õigesse asendisse. 838 00:36:58,734 --> 00:37:01,150 Mis on tore Artie nüüd, ta on oma õiges asendis. 839 00:37:01,150 --> 00:37:02,060 Teeme seda uuesti. 840 00:37:02,060 --> 00:37:03,730 2, mis on väikseim number Olen näinud. 841 00:37:03,730 --> 00:37:05,690 3, 7, 5. 842 00:37:05,690 --> 00:37:06,190 OK. 843 00:37:06,190 --> 00:37:07,467 2 on kindlasti väikseim. 844 00:37:07,467 --> 00:37:08,550 Ei pea tegema muud tööd. 845 00:37:08,550 --> 00:37:09,320 Teeme seda uuesti. 846 00:37:09,320 --> 00:37:10,070 6. 847 00:37:10,070 --> 00:37:10,640 Väikseim? 848 00:37:10,640 --> 00:37:11,140 8. 849 00:37:11,140 --> 00:37:11,590 Nope. 850 00:37:11,590 --> 00:37:11,720 4? 851 00:37:11,720 --> 00:37:12,220 Ooh. 852 00:37:12,220 --> 00:37:13,420 Lubage mul meenutada 4. 853 00:37:13,420 --> 00:37:13,950 3. 854 00:37:13,950 --> 00:37:15,110 Lubage mul meenutada 3. 855 00:37:15,110 --> 00:37:16,080 7, 5. 856 00:37:16,080 --> 00:37:18,490 Väikseim number Olen näinud selle läbima on 3. 857 00:37:18,490 --> 00:37:20,340 Kui sa tuled välja. 858 00:37:20,340 --> 00:37:21,986 Kuhu me paneme sind? 859 00:37:21,986 --> 00:37:22,860 Ja mis sinu nimi on? 860 00:37:22,860 --> 00:37:23,530 >> Alanna: Alanna. 861 00:37:23,530 --> 00:37:25,780 >> DAVID Humala: Alanna, me oleme pean tõstma teid. 862 00:37:25,780 --> 00:37:28,670 Aga see on tõhusam, lihtsalt vahetada kaks inimest, 863 00:37:28,670 --> 00:37:31,850 kui on mitu inimest tegelikult vältima üle. 864 00:37:31,850 --> 00:37:32,850 Nüüd teeme seda jälle. 865 00:37:32,850 --> 00:37:34,980 Ma lähen, et valida 4, nii et tule välja. 866 00:37:34,980 --> 00:37:36,540 Ja kes läheb liikuda? 867 00:37:36,540 --> 00:37:37,750 Number 8, muidugi. 868 00:37:37,750 --> 00:37:40,260 Kui ma nüüd leida number 5, tule välja. 869 00:37:40,260 --> 00:37:42,104 Number 8 läheb visatakse uuesti. 870 00:37:42,104 --> 00:37:43,770 Ma nüüd leida number 6 koht. 871 00:37:43,770 --> 00:37:44,410 7 asemel. 872 00:37:44,410 --> 00:37:45,080 8 asemel. 873 00:37:45,080 --> 00:37:48,590 >> Mida me tegime nüüd on midagi, mida nimetatakse valiku sorteerida, 874 00:37:48,590 --> 00:37:52,560 ja kui me seda visualiseerida, see on läheb tunda veidi erinev. 875 00:37:52,560 --> 00:37:56,800 Lähme edasi ja selle menüü siin, see visualization-- 876 00:37:56,800 --> 00:38:02,920 Muutkem seda to-- tule, Firefox. 877 00:38:02,920 --> 00:38:07,610 Muutkem seda valikut sort. 878 00:38:07,610 --> 00:38:11,830 Ja olgem kiirendada nagu enne, ja alustada visualiseerimise nüüd. 879 00:38:11,830 --> 00:38:13,990 Ja see algoritm on erinev tunne seda. 880 00:38:13,990 --> 00:38:16,480 Iga iteratsiooni ausalt öeldes see on veelgi lihtsam. 881 00:38:16,480 --> 00:38:18,385 Ma lihtsalt valides väikseim element. 882 00:38:18,385 --> 00:38:21,510 Nüüd, ausalt öeldes, mul on natuke õnne, et ajal, et sorteerida ülikiire. 883 00:38:21,510 --> 00:38:22,660 Elemendid olid juhuslikult. 884 00:38:22,660 --> 00:38:25,520 See ei ole, kui paneme lõpuks vaata, põhimõtteliselt kiirem. 885 00:38:25,520 --> 00:38:29,400 Aga vaatame, kolmas ja viimane läheneda siin, et mis toimub. 886 00:38:29,400 --> 00:38:36,230 Nii et lähme edasi ja reset kutid üks viimane aeg olla selles, et siin. 887 00:38:36,230 --> 00:38:38,450 >> Ja nüüd, ma lähen olla natuke targem, 888 00:38:38,450 --> 00:38:40,220 lihtsalt ringi läbi meie algoritme. 889 00:38:40,220 --> 00:38:41,230 Ma lähen seda tegema. 890 00:38:41,230 --> 00:38:43,140 Ma ei lähe edasi ja tagasi nii palju. 891 00:38:43,140 --> 00:38:44,900 Ausalt, ma olen väsinud kõik liiklevad. 892 00:38:44,900 --> 00:38:47,691 Ma lihtsalt võtta, mida ma olen manustada algul loendist 893 00:38:47,691 --> 00:38:49,460 ja ma lähen sorteeri et siis ja seal. 894 00:38:49,460 --> 00:38:50,140 Nii et siin me oleme. 895 00:38:50,140 --> 00:38:51,030 Number 4. 896 00:38:51,030 --> 00:38:53,680 Ma lähen sisestada number 4 sisse järjestatud nimekirja. 897 00:38:53,680 --> 00:38:54,180 Valmis. 898 00:38:54,180 --> 00:38:58,300 Väidan nüüd, ja vaid teha see rohkem selge see osa minu nimekirja sorteeritakse. 899 00:38:58,300 --> 00:39:02,610 See on selline rumal väide, kuid tegelikult 4 sorteeritakse nimekiri suurus üks. 900 00:39:02,610 --> 00:39:04,210 Nüüd ma lähen võtta number 2. 901 00:39:04,210 --> 00:39:07,670 Number 2 Ma nüüd lähen lisada õiges kohas. 902 00:39:07,670 --> 00:39:08,680 Nii et kui ei 2 kuuluvad? 903 00:39:08,680 --> 00:39:09,824 Ilmselt on siin. 904 00:39:09,824 --> 00:39:11,490 Nii et laske käia ja liikuda tagasi, kui sa võiksid. 905 00:39:11,490 --> 00:39:14,406 Ja miks sa ei kutid lihtsalt võtta oma muusika seisab teiega seekord. 906 00:39:14,406 --> 00:39:17,020 Ja olgem sunniviisiliselt sisestada te viiakse algul nimekirjas. 907 00:39:17,020 --> 00:39:17,936 Nii et natuke rohkem tööd. 908 00:39:17,936 --> 00:39:20,890 Pidin liikuma Jacob ümber, ja mis su nimi on? 909 00:39:20,890 --> 00:39:21,420 >> AMIN: Amin. 910 00:39:21,420 --> 00:39:22,270 >> DAVID Humala: Amin. 911 00:39:22,270 --> 00:39:24,350 Aga vähemalt ma ei lähe edasi ja tagasi. 912 00:39:24,350 --> 00:39:25,739 Ma lihtsalt võttes asju nagu ma minema. 913 00:39:25,739 --> 00:39:27,530 Ma lihtsalt sisestamist õiges kohas. 914 00:39:27,530 --> 00:39:29,220 6, see on tegelikult üsna lihtne. 915 00:39:29,220 --> 00:39:31,510 Lisame teil seal, kui te tahtsin minna üle veidi. 916 00:39:31,510 --> 00:39:32,870 Number 8, ka üsna lihtne. 917 00:39:32,870 --> 00:39:33,741 Seal. 918 00:39:33,741 --> 00:39:34,240 Kurat. 919 00:39:34,240 --> 00:39:37,590 Number 1 Me ei saa lihtsalt Vaheta Amin siin 920 00:39:37,590 --> 00:39:39,340 sest see läheb segi ajama järjekorras. 921 00:39:39,340 --> 00:39:40,660 Nii et me peame olema natuke targem. 922 00:39:40,660 --> 00:39:42,770 Niisiis, Artie, kui sa saaksid varundada hetkeks. 923 00:39:42,770 --> 00:39:46,550 Lähme edasi ja vahetustega nüüd, erinevalt meie eelmise algoritme, 924 00:39:46,550 --> 00:39:50,910 et teha ruumi Artie siinsamas alguses. 925 00:39:50,910 --> 00:39:54,690 Nii et lõpus päeval, ma olen selline seda, mida ma tahtsin, et vältida varem. 926 00:39:54,690 --> 00:39:57,770 Ja nii minu algoritm on omamoodi pööratud, intellektuaalselt, 927 00:39:57,770 --> 00:39:59,070 mis see algselt oli. 928 00:39:59,070 --> 00:40:01,240 Ma teen ainult käiguvahetus erinevas punktis. 929 00:40:01,240 --> 00:40:02,291 Nüüd ma olen 3. 930 00:40:02,291 --> 00:40:02,790 Oh, kurat. 931 00:40:02,790 --> 00:40:04,039 Me peame tegema rohkem tööd uuesti. 932 00:40:04,039 --> 00:40:05,060 Nii et olgem push teid ära. 933 00:40:05,060 --> 00:40:09,360 Liigume 8, 6, 4-- oh Oh-- ja 3 lähe sinna. 934 00:40:09,360 --> 00:40:11,490 Nii vähemalt mõningast kokkuhoidu seekord. 935 00:40:11,490 --> 00:40:13,100 7, mitte liiga palju tööd teha. 936 00:40:13,100 --> 00:40:15,370 Nii et kui soovite pop tagasi, olgem lisada sind. 937 00:40:15,370 --> 00:40:17,440 Ja lõpuks, 5, kui te tahad hüpata tagasi, me 938 00:40:17,440 --> 00:40:22,610 pead minema, sa, sa kuni viis on paigas. 939 00:40:22,610 --> 00:40:25,670 >> Nüüd seda näha aadressil kõrge graafiliselt, 940 00:40:25,670 --> 00:40:31,080 Teeme seda algoritmi visualiseerimine üks lisaaega. 941 00:40:31,080 --> 00:40:33,580 Nii et see kutsume sisestamise omamoodi. 942 00:40:33,580 --> 00:40:37,700 Me kasutada seda sama kiire ja alustage siit. 943 00:40:37,700 --> 00:40:39,580 Ja see ka, on teistsugune tunne. 944 00:40:39,580 --> 00:40:42,180 See on omamoodi aina paremaks ja parem, kuid see on kunagi täiuslik 945 00:40:42,180 --> 00:40:44,630 kuni ma minna ja sile neid lünki. 946 00:40:44,630 --> 00:40:47,860 Sest jällegi, ma ainult võttes, mida Ma antakse vasakult paremale. 947 00:40:47,860 --> 00:40:50,350 Nii et ma ei saanud nii õnnelik et kõik oli täiuslik. 948 00:40:50,350 --> 00:40:54,190 Sellepärast meil oli neid vähe mispositions et me fikseeritud aja jooksul. 949 00:40:54,190 --> 00:40:58,890 >> Niisiis kõik need algoritmid tunduvad joosta veidi erinevas tempos. 950 00:40:58,890 --> 00:41:02,030 Tegelikult, mis sul öelda on parim või kiireim seni? 951 00:41:02,030 --> 00:41:03,450 Bubble sort, esimene? 952 00:41:03,450 --> 00:41:05,000 Valik omamoodi teine? 953 00:41:05,000 --> 00:41:08,450 Insertion sorti kolmas? 954 00:41:08,450 --> 00:41:10,710 Ma kuulsin, et mõned valikut kehvasti. 955 00:41:10,710 --> 00:41:13,280 Muud mõtted? 956 00:41:13,280 --> 00:41:16,880 >> Nii selgub, et kõik need algoritmid 957 00:41:16,880 --> 00:41:22,400 on põhimõtteliselt sama tõhusad kui Iga paneme või vastupidi, just nagu 958 00:41:22,400 --> 00:41:25,980 ebaefektiivne nagu teineteist sest me ei tee põhimõtteliselt 959 00:41:25,980 --> 00:41:28,120 parem kui kõik kolm Nende algoritme. 960 00:41:28,120 --> 00:41:29,990 Ja see on natuke hädavale, liiga. 961 00:41:29,990 --> 00:41:32,580 kui ma ütlen, kui tõhus või ebatõhusaks, 962 00:41:32,580 --> 00:41:35,040 mis on vähemalt super-suurte n väärtused. 963 00:41:35,040 --> 00:41:38,450 Kui meil on vaid kaheksa inimest siin, või äkki 50 või nii baarides ekraanil 964 00:41:38,450 --> 00:41:41,645 sa absoluutselt märgata erinevusi Neist kolm algoritme. 965 00:41:41,645 --> 00:41:44,020 Aga nagu n inimeste arv, või numbrite arv, 966 00:41:44,020 --> 00:41:46,350 või inimeste arvu telefoninumber raamat või arvu veebilehti 967 00:41:46,350 --> 00:41:48,230 Google'i andmebaas muutub suuremaks ja suuremaks, 968 00:41:48,230 --> 00:41:51,650 me näeme, et kõik need kolm algoritmid on tegelikult päris halb. 969 00:41:51,650 --> 00:41:54,060 Ja me saame teha põhimõtteliselt paremini. 970 00:41:54,060 --> 00:41:56,830 >> Võtame pilk lõpuks mida need algoritmid võiks 971 00:41:56,830 --> 00:41:59,520 tunduda sisse kontekstis mõned teised 972 00:41:59,520 --> 00:42:03,550 samuti teel käesoleva visualiseerimine siin 973 00:42:03,550 --> 00:42:06,860 , mis tutvustab meile arvu algoritme. 974 00:42:06,860 --> 00:42:10,330 Lähme edasi ja õnnitleda Meie osalejad siin, keda kõiki 975 00:42:10,330 --> 00:42:11,690 järjestatud ise väga hästi. 976 00:42:11,690 --> 00:42:15,124 Kui soovite võtta jumalagajätt kingitus. 977 00:42:15,124 --> 00:42:16,540 Saate hoida oma numbrid samuti. 978 00:42:16,540 --> 00:42:19,460 979 00:42:19,460 --> 00:42:22,520 Ja mida sa näed, või õigemini kuulda, nüüd, 980 00:42:22,520 --> 00:42:25,710 on see, et kui me paneme helid iga nimetatud vardad 981 00:42:25,710 --> 00:42:28,660 ja seostab seda tarkvara, Erineva sagedusega heli, 982 00:42:28,660 --> 00:42:33,970 saad sa oma meelt rohkem audioly ümber, mida kõik need asjad 983 00:42:33,970 --> 00:42:34,470 nägema. 984 00:42:34,470 --> 00:42:39,325 Esimene on sisestamise omamoodi 985 00:42:39,325 --> 00:42:44,275 >> [TONES] 986 00:42:44,275 --> 00:42:47,245 987 00:42:47,245 --> 00:42:49,720 >> See on mull omamoodi. 988 00:42:49,720 --> 00:42:54,175 >> [TONES] 989 00:42:54,175 --> 00:43:17,250 990 00:43:17,250 --> 00:43:18,222 >> Valik sort. 991 00:43:18,222 --> 00:43:22,596 >> [TONES] 992 00:43:22,596 --> 00:43:33,570 993 00:43:33,570 --> 00:43:35,150 >> Midagi, mida nimetatakse merge sort. 994 00:43:35,150 --> 00:43:38,140 >> [TONES] 995 00:43:38,140 --> 00:43:49,510 996 00:43:49,510 --> 00:43:51,278 >> Gnome sort. 997 00:43:51,278 --> 00:43:56,390 >> [TONES] 998 00:43:56,390 --> 00:44:08,240 999 00:44:08,240 --> 00:44:09,430 >> Ongi CS50. 1000 00:44:09,430 --> 00:44:13,360 Me näeme teid kolmapäeval. 1001 00:44:13,360 --> 00:44:16,671 >> Jutustaja: Ja nüüd, "Deep Mõtted, "mida Daven Farnham. 1002 00:44:16,671 --> 00:44:19,910 1003 00:44:19,910 --> 00:44:21,590 Miks on nii, et loop? 1004 00:44:21,590 --> 00:44:23,200 Miks mitte teha seda parem? 1005 00:44:23,200 --> 00:44:25,970 Ma teeksin viie silmuse. 1006 00:44:25,970 --> 00:44:28,720 >> [Naer]