1 00:00:00,000 --> 00:00:10,982 2 00:00:10,982 --> 00:00:11,940 DAVID MALAN: Allt í lagi. 3 00:00:11,940 --> 00:00:16,470 Svo er þetta CS50, og þetta er nú að byrja á viku þrjú. 4 00:00:16,470 --> 00:00:19,960 >> Svo allt þar til nú, höfum við verið að skrifa forrit í C 5 00:00:19,960 --> 00:00:23,210 að líta svolítið eitthvað eins og þetta hér. 6 00:00:23,210 --> 00:00:25,470 Þannig að við höfum fengið nokkrar Mikil inniheldur að ofan. 7 00:00:25,470 --> 00:00:28,490 Við höfum fengið int helstu, ógild, og þá eitthvað að gera í miðju, 8 00:00:28,490 --> 00:00:30,590 sumir hluti af kóða inni þeirrar starfsemi. 9 00:00:30,590 --> 00:00:34,170 En lykill hefur verið sú staðreynd að við höfum verið að segja ógilt hér. 10 00:00:34,170 --> 00:00:39,320 Svo ógild, allan tíma, skilgreinir að þessi forrit þegar keyrt, 11 00:00:39,320 --> 00:00:41,300 aðeins hægt að keyra í gegnum nafnið. 12 00:00:41,300 --> 00:00:46,330 Þú getur ekki slá önnur orð eða tölur eftir nafni forritsins er þegar 13 00:00:46,330 --> 00:00:46,830 keyra það. 14 00:00:46,830 --> 00:00:51,200 Svo, til dæmis, ef forritið væri saman í skrá sem heitir halló, 15 00:00:51,200 --> 00:00:53,480 þú gætir gert ./hello, en það er það. 16 00:00:53,480 --> 00:00:56,750 >> Eina leiðin sem þú gætir leggja til þessarar áætlunar 17 00:00:56,750 --> 00:00:57,960 er með því að kalla á aðgerð. 18 00:00:57,960 --> 00:00:59,790 Til dæmis, hvað virka höfum við verið að nota svona langt 19 00:00:59,790 --> 00:01:00,950 til að fá inntak frá notanda? 20 00:01:00,950 --> 00:01:02,117 >> Áhorfendur: Fá band. 21 00:01:02,117 --> 00:01:04,700 DAVID MALAN: Til að fá band, eða fá int, eða þú hefur séð aðra, 22 00:01:04,700 --> 00:01:07,630 jafnvel ef þú hefur ekki notað þá enn, eins og fá löng, löng og þess háttar. 23 00:01:07,630 --> 00:01:09,380 En geri ráð fyrir að við reyndar langar að byrja 24 00:01:09,380 --> 00:01:12,760 skrifa forrit sem eru lítið meira fjölhæfur, og, hreinskilnislega, lítið meira 25 00:01:12,760 --> 00:01:15,090 eins og skipanir sem þú hefur verið að fá, vonandi, 26 00:01:15,090 --> 00:01:16,550 svolítið vanur. 27 00:01:16,550 --> 00:01:18,560 Eins cd rúm Dropbox. 28 00:01:18,560 --> 00:01:20,800 Þetta er að sjálfsögðu, breytingar möppuna, hrokafullur 29 00:01:20,800 --> 00:01:23,590 þú ert á heimili John Harvard er skrá, til Dropbox möppu. 30 00:01:23,590 --> 00:01:27,380 Á sama tíma, stjórn eins og þetta skapar nýja möppu sem heitir pset2, 31 00:01:27,380 --> 00:01:30,290 eins og þú might hafa nú þegar eða mun brátt fyrir vandamál setja tvö. 32 00:01:30,290 --> 00:01:33,970 Gerðu Halló, auðvitað, er stjórn sem byggir forrit sem heitir halló 33 00:01:33,970 --> 00:01:35,770 úr skrá sem heitir halló punktur c. 34 00:01:35,770 --> 00:01:39,140 Og í hvert af þessum tilvikum, nú höfum við haft 35 00:01:39,140 --> 00:01:43,620 veita rök á svokölluðum stjórn lína, blikkandi hvetja, 36 00:01:43,620 --> 00:01:48,540 þannig að gera veit hvað á að byggja, og svo að mkdir veit hvað mappa til að búa til, 37 00:01:48,540 --> 00:01:51,110 og þannig að CD veit þar sem þú vilt fara. 38 00:01:51,110 --> 00:01:54,720 En allt þar til nú, að halda við að segja sem helstu sjálfgefið virka þinn, 39 00:01:54,720 --> 00:01:58,500 hefur ógilt tjáningu inni af þeim sviga, 40 00:01:58,500 --> 00:02:01,250 sem þýðir að það Ekki er hægt að taka neinar rök. 41 00:02:01,250 --> 00:02:03,240 >> Svo byrja í dag, hvað við erum að fara að gera 42 00:02:03,240 --> 00:02:06,270 er, við erum að fara að byrja styðja hluti eins og þetta jafnvel. 43 00:02:06,270 --> 00:02:08,990 Í staðreynd, í þessu tilfelli, sem þér ekki venjulega með höndunum tegund, 44 00:02:08,990 --> 00:02:11,130 Gera hefur verið að gera þetta fyrir okkur, það eru ekki 45 00:02:11,130 --> 00:02:15,840 einn en einn, tveir, þrír til viðbótar strengir eftir að forritið er heitir 46 00:02:15,840 --> 00:02:16,850 clang. 47 00:02:16,850 --> 00:02:18,240 Svo hvernig gera við að ná þessu? 48 00:02:18,240 --> 00:02:20,260 >> Jæja, hefst í dag, í þeim tilvikum þar sem við viljum 49 00:02:20,260 --> 00:02:22,855 að leggja í gegnum það svokallaða stjórn lína, 50 00:02:22,855 --> 00:02:24,980 við erum að fara að byrja að bæta hér er það í yellow-- 51 00:02:24,980 --> 00:02:30,520 skipta ógilt með int argc kommu band argv opna krappi loka krappi. 52 00:02:30,520 --> 00:02:32,520 Nú er þetta áhugavert fyrir a par af ástæða. 53 00:02:32,520 --> 00:02:35,690 Einn, það er að fara að láta okkur skrifa forrit sem eru aðeins meira dynamic. 54 00:02:35,690 --> 00:02:37,570 En meira compellingly, það er að fara að opna 55 00:02:37,570 --> 00:02:40,340 nú samtal sem að hvað fylki getur raunverulega 56 00:02:40,340 --> 00:02:43,300 að nota, fyrir það streng raunverulega er undir hetta, 57 00:02:43,300 --> 00:02:47,320 fyrr en í næstu viku þegar við byrjum köfun í enn dýpra um hvernig vélin er 58 00:02:47,320 --> 00:02:48,590 gera allt þetta stuff vinnu. 59 00:02:48,590 --> 00:02:51,920 En nú skulum teikna, kannski mynd. 60 00:02:51,920 --> 00:02:54,950 >> Þegar þú skrifar forrit með helstu lýst 61 00:02:54,950 --> 00:02:58,810 á þennan hátt, þannig að helstu tekur tvær breytur, við int 62 00:02:58,810 --> 00:03:03,233 and-- hvaða gögn tegund er annað rifrildi? 63 00:03:03,233 --> 00:03:04,529 >> Áhorfendur: Array. 64 00:03:04,529 --> 00:03:05,320 DAVID MALAN: Array. 65 00:03:05,320 --> 00:03:09,170 Svo það lítur út við fyrstu sýn eins og það er band, en taka eftir hornklofum. 66 00:03:09,170 --> 00:03:12,760 Muna síðasta skipti sem við kynnt hugmyndin um fylki. 67 00:03:12,760 --> 00:03:16,210 Og fylki nota hornklofa í nokkra samhengi. 68 00:03:16,210 --> 00:03:19,160 Þú gætir notað veldi sviga til að fara inn í array 69 00:03:19,160 --> 00:03:22,710 og fá ákveðna einingu, eins og Bríkin 0 eða Bríkin 1 eða Bríkin 2. 70 00:03:22,710 --> 00:03:25,500 En við sáum, ef stuttlega, í síðustu viku að þú líka 71 00:03:25,500 --> 00:03:28,790 nota þessar hornklofum til lýsa stærð af fjölda, 72 00:03:28,790 --> 00:03:31,790 ef þú veist fyrirfram hversu margir ints eða hversu margir strengir eða hvað sem þú 73 00:03:31,790 --> 00:03:32,630 raunverulega vilt. 74 00:03:32,630 --> 00:03:34,790 Svo kemur í ljós að það er þriðja samhengi hér 75 00:03:34,790 --> 00:03:37,890 sem hefur enga tala inni af hornklofum. 76 00:03:37,890 --> 00:03:41,920 Þegar þú tilgreinir, eins og ég hef hér, nafn eitthvað eins argv, 77 00:03:41,920 --> 00:03:44,550 sem er bara fínt leið til að segja rök vektor, sem 78 00:03:44,550 --> 00:03:47,750 er annar ímynda sér vegur af segja array af rökum, 79 00:03:47,750 --> 00:03:50,870 opna krappi loka krappi bara þýðir að þú ert ekki endilega 80 00:03:50,870 --> 00:03:52,960 vita fyrirfram hversu stór array er að fara að vera, 81 00:03:52,960 --> 00:03:55,070 en þú veist það er að fara að vera fylki. 82 00:03:55,070 --> 00:03:57,320 Svo ef þú veist ekki Fjöldi ekki setja það þar, 83 00:03:57,320 --> 00:04:01,160 fyrir opinn krappi loka krappi þýðir að argv er ekki band, 84 00:04:01,160 --> 00:04:03,124 en fylki af strengjum. 85 00:04:03,124 --> 00:04:05,040 Svo setningafræðilega, ef þú hugsa til baka í síðustu viku, 86 00:04:05,040 --> 00:04:09,460 það er mjög líkur til að segja eitthvað eins vaxtagr aldri opinn krappi, 87 00:04:09,460 --> 00:04:10,984 og svo eitthvað eftir það. 88 00:04:10,984 --> 00:04:12,150 Svo hvað þýðir þetta að líta út? 89 00:04:12,150 --> 00:04:13,399 Við skulum teikna raunverulega mynd. 90 00:04:13,399 --> 00:04:18,756 Svo þegar þú keyrir þetta forrit með Main hafa tvær breytur skilgreindar inni 91 00:04:18,756 --> 00:04:21,339 af þeim sviga, þú meginatriðum hafa að minnsta kosti tvær klumpur 92 00:04:21,339 --> 00:04:23,560 minni afhent til þín undir hetta. 93 00:04:23,560 --> 00:04:26,550 Einn, sem ég ætla teiknar eins og þetta rétthyrningsins er að fara að vera kölluð argc. 94 00:04:26,550 --> 00:04:30,645 Og rétt eins og a fljótur ágrip, hvað er gögn tegund argc? 95 00:04:30,645 --> 00:04:31,270 Svo er það int. 96 00:04:31,270 --> 00:04:33,480 Svo tala er að fara að fara í argc-- snýr 97 00:04:33,480 --> 00:04:35,660 út stendur að fyrir rifrildi telja. 98 00:04:35,660 --> 00:04:38,887 Á sama tíma, ég hef dregið argv sem fylki. 99 00:04:38,887 --> 00:04:40,970 Og ég í raun ekki vita hversu lengi það er að fara að vera, 100 00:04:40,970 --> 00:04:42,470 svo fyrir tilgangi í dag punktur punktur punktur. 101 00:04:42,470 --> 00:04:43,636 Það gæti fengið af tiltekinni lengd. 102 00:04:43,636 --> 00:04:45,640 En ég hef á myndinni hér að minnsta kosti fjórir ferhyrninga. 103 00:04:45,640 --> 00:04:50,970 Svo argv klumpur af minni sem geymir band band band punktur punktur punktur, 104 00:04:50,970 --> 00:04:53,950 og argc er bara einn klumpur af minni heiltala. 105 00:04:53,950 --> 00:04:55,710 >> Svo nú skulum við vera svolítið nákvæmari. 106 00:04:55,710 --> 00:04:59,200 Ef, þegar ég hef strengi í þessu fylki, sem heitir 107 00:04:59,200 --> 00:05:03,290 argv, ég vil fá á þá sig, rétt eins og í síðustu viku, 108 00:05:03,290 --> 00:05:05,670 við erum að fara að nota tákn eins argv krappi 0 109 00:05:05,670 --> 00:05:07,650 til að fá það fyrsta sem fylki. 110 00:05:07,650 --> 00:05:10,440 Argv krappi 1 til að fá Annað sem, og svo framvegis. 111 00:05:10,440 --> 00:05:14,597 Lykillinn hér að við erum enn 0 indexed-- við erum enn að telja frá 0. 112 00:05:14,597 --> 00:05:16,430 Svo nú skulum raunverulega setja eitthvað í þessu. 113 00:05:16,430 --> 00:05:21,670 Ef ég væri að safna saman forrit sem heitir halló úr skrá sem heitir halló punktur c, 114 00:05:21,670 --> 00:05:24,340 og þá er ég að keyra þessi forrit með punkti rista halló, 115 00:05:24,340 --> 00:05:28,380 hvað gerir tölvuna mína, fartölvuna mína, líta út eins og undir hetta 116 00:05:28,380 --> 00:05:31,300 í augnablikinu Ég keyrt punktur rista halló og ýttu á Enter? 117 00:05:31,300 --> 00:05:33,500 Jæja, þetta er kannski hvað við gætum lýsa 118 00:05:33,500 --> 00:05:37,010 sem efni tölvan þín er minni, eða RAM-- Random Access Memory. 119 00:05:37,010 --> 00:05:40,330 Með öðrum orðum, the tölva, einhvern veginn fyrir þig dularfullur, 120 00:05:40,330 --> 00:05:45,360 setur númer 1 í argc, AKA argcount, og það setur bókstaflega streng 121 00:05:45,360 --> 00:05:48,200 ./hello í argv krappi 0. 122 00:05:48,200 --> 00:05:51,750 Ég hef ekki hugmynd, hreinskilnislega, hvað er í argv bracket 1 eða 2 eða 3, 123 00:05:51,750 --> 00:05:55,550 vegna þess að ef notandi hefur ekki slegið neitt nema ./hello, 124 00:05:55,550 --> 00:05:58,550 við erum að fara að gera ráð fyrir að þessar eru líklegust sorp gildi, 125 00:05:58,550 --> 00:05:59,700 svo að segja. 126 00:05:59,700 --> 00:06:02,650 Þeir klumpur af minni fyrir hendi, en það er ekki allt að okkur 127 00:06:02,650 --> 00:06:05,710 að líta á þá, vegna þess að að argcount er aðeins einn. 128 00:06:05,710 --> 00:06:07,870 >> Nú, á meðan, ef ég skrifa keyra annað forrit, 129 00:06:07,870 --> 00:06:12,250 CD, sem er meira rétt að stjórn, í blikkandi prompt-- CD rúm 130 00:06:12,250 --> 00:06:17,200 Dropbox-- þegar ég hlaupa að, í raun, þegar CD forrit er keyrt, argc, 131 00:06:17,200 --> 00:06:22,270 inni minni tölvunnar minnar, er fyrir mest briefest annað númer 2. 132 00:06:22,270 --> 00:06:25,936 Og þá hefur argv krappi o CD, argv krappi 1 hefur Dropbox, 133 00:06:25,936 --> 00:06:28,560 og svo auðvitað stjórn lýkur, þannig að allir af þessum minni 134 00:06:28,560 --> 00:06:30,420 meginatriðum fer í burtu og er notað fyrir eitthvað annað. 135 00:06:30,420 --> 00:06:32,270 Og það er hvers vegna ég segi bara hættu annað. 136 00:06:32,270 --> 00:06:35,720 >> Á sama tíma, ef við gerum mkdir pset2, myndin lítur nánast sama, 137 00:06:35,720 --> 00:06:37,900 en með mismunandi strengi inni argv. 138 00:06:37,900 --> 00:06:42,570 Ef ég clang þjóta halló halló punktur c, sama hugmyndin. 139 00:06:42,570 --> 00:06:47,060 Meira efni er fyllt í fyrir argv, og argc, að sjálfsögðu, er 4. 140 00:06:47,060 --> 00:06:49,150 Svo í öðrum orðum, jafnvel þótt þetta array 141 00:06:49,150 --> 00:06:52,950 gæti verið punktur punktur punktur, sum breytilegum lengd, svo að segja, 142 00:06:52,950 --> 00:06:56,720 þú veist alltaf hvar enda það er, því argc er að fara að segja þér 143 00:06:56,720 --> 00:07:00,120 á hvaða tímapunkti sem þú þarft að hætta horfa á þætti í argv. 144 00:07:00,120 --> 00:07:03,660 Þú getur aðeins líta á fjórum samtals í þessu tilfelli. 145 00:07:03,660 --> 00:07:06,600 >> Svo skulum nú kíkja á, kannski, einföld forrit. 146 00:07:06,600 --> 00:07:09,070 Eitt sem bara segir halló við einhvern eins Zamyla. 147 00:07:09,070 --> 00:07:12,620 Svo ég kröfu að ég ætla að skrifa forrit á aðeins augnablik gegnum sem ég gæti gert 148 00:07:12,620 --> 00:07:16,670 ./hello rúm Zamyla, og þá vil ég áætlun mín að prenta út eitthvað 149 00:07:16,670 --> 00:07:18,520 frábær-einfalt eins og "halló, Zamyla." 150 00:07:18,520 --> 00:07:20,100 Nú í fortíðinni sem við höfum notað getstring. 151 00:07:20,100 --> 00:07:22,850 Svo í fortíðinni, jafnvel þótt þú ert nýr til að forritun, 152 00:07:22,850 --> 00:07:27,180 Líkurnar eru að þú gætir svipa upp a forrit sem notar getstring 153 00:07:27,180 --> 00:07:29,390 og þá notar printf að segja hæ við Zamyla. 154 00:07:29,390 --> 00:07:31,290 En við skulum ekki nota getstring þessa tíma. 155 00:07:31,290 --> 00:07:37,510 Leyfðu mér að fara í staðinn í Appliant og innihalda staðlaða I O punktur h. 156 00:07:37,510 --> 00:07:41,160 Leyfðu mér eru einnig CS50 punktur h. 157 00:07:41,160 --> 00:07:44,730 Nú int helstu, og nú er ég ekki að fara að gera ógilt í dag. 158 00:07:44,730 --> 00:07:51,200 Í staðinn ætla ég að fara að gera int argc band argv opna krappi loka krappi, 159 00:07:51,200 --> 00:07:52,640 ekki tilgreina númer. 160 00:07:52,640 --> 00:07:54,644 Og nú hér er minn svokallaða að gera. 161 00:07:54,644 --> 00:07:57,560 Það sem ég ætla að gera núna er ég að fara að gera a hluti af a áræðni, 162 00:07:57,560 --> 00:08:00,560 Ég ætla að gera ráð fyrir að notandi að fara að nota þetta forrit rétt, 163 00:08:00,560 --> 00:08:04,980 og ég ætla einfaldlega að fara að gera printf halló,% Sn. 164 00:08:04,980 --> 00:08:06,630 Svo ekkert nýtt þar. 165 00:08:06,630 --> 00:08:11,470 En ég vil nú setja hvað orð sem notandinn slær eftir nafni forritsins. 166 00:08:11,470 --> 00:08:16,970 Svo ef ég ./hello pláss Zamyla, ég vilt einhvern veginn kerfisbundið aðgang 167 00:08:16,970 --> 00:08:20,870 vitna unquote "Zamyla." svo ég getur farið inn rök vektor minn, 168 00:08:20,870 --> 00:08:25,980 array minn strengi, og ef stjórn, aftur, var ./hello rúm Zamyla, 169 00:08:25,980 --> 00:08:29,340 hvað fjölda ég vil að setja í argv hér? 170 00:08:29,340 --> 00:08:29,840 Áhorfendur: 1. 171 00:08:29,840 --> 00:08:32,355 DAVID MALAN: 1, vegna þess að krappi 0 reynist 172 00:08:32,355 --> 00:08:34,230 er að fara að vera nafn áætlunarinnar, eins og við sáum. 173 00:08:34,230 --> 00:08:37,789 Svo krappi 1 er fyrsta orðið að ég, sem notandi, hefur skrifað. 174 00:08:37,789 --> 00:08:39,559 Ég ætla að fara á undan og vista þessa. 175 00:08:39,559 --> 00:08:42,830 Ég ætla að fara inn í möppuna mína þar sem ég hef sett þessa skrá. 176 00:08:42,830 --> 00:08:44,920 Ég ætla að gera gera halló 3. 177 00:08:44,920 --> 00:08:46,230 OK Comp IO er. 178 00:08:46,230 --> 00:08:51,380 ./hello Zamyla Enter. 179 00:08:51,380 --> 00:08:54,480 Hvað gerði ég rangt? 180 00:08:54,480 --> 00:08:57,270 Ég hrökk sjálfur fyrir aðeins augnablik þar. 181 00:08:57,270 --> 00:08:58,230 Hvað gerði ég rangt? 182 00:08:58,230 --> 00:08:59,220 >> Áhorfendur: Nafn. 183 00:08:59,220 --> 00:09:01,767 >> DAVID MALAN: Skráin er í raun kallað hello3.c. 184 00:09:01,767 --> 00:09:03,850 Og ég gerði það bara fyrir samkvæmni, vegna þess að við höfum 185 00:09:03,850 --> 00:09:06,550 hafði hello.c er í framhjá í the online kóða. 186 00:09:06,550 --> 00:09:11,550 Svo skulum laga þetta ./hello krappi þjóta 3 Zamyla. 187 00:09:11,550 --> 00:09:12,370 Enter. 188 00:09:12,370 --> 00:09:14,030 Og nú höfum við halló, Zamyla. 189 00:09:14,030 --> 00:09:17,650 Á sama tíma, ég get breytt þessu til vera Rob, eða bara önnur orð. 190 00:09:17,650 --> 00:09:19,230 >> En við skulum íhuga horn tilfelli. 191 00:09:19,230 --> 00:09:24,360 Hvað gætir þú búist mun gerast ef Ég slegið nafn neinum yfirleitt? 192 00:09:24,360 --> 00:09:25,270 >> Áhorfendur: Villa. 193 00:09:25,270 --> 00:09:27,300 >> DAVID MALAN: Villa af einhverju tagi, kannski. 194 00:09:27,300 --> 00:09:28,200 Við skulum sjá. 195 00:09:28,200 --> 00:09:29,440 Enter. 196 00:09:29,440 --> 00:09:30,210 Null. 197 00:09:30,210 --> 00:09:33,870 Svo printf er í raun að vera smá verndar okkur 198 00:09:33,870 --> 00:09:38,131 hér, og bókstaflega prentun opnum paren null, en jafnvel verri hlutir geta gerst. 199 00:09:38,131 --> 00:09:40,130 Og bara til að sýna fram á eitthvað sem þú algerlega 200 00:09:40,130 --> 00:09:42,800 ætti ekki að gera, við skulum fara í hér og byrja að poking í kring. 201 00:09:42,800 --> 00:09:43,300 Ekki satt? 202 00:09:43,300 --> 00:09:46,410 Ef ég veit að myndin í minni er í raun þetta, 203 00:09:46,410 --> 00:09:52,660 argv krappi 1 hefur Zamyla, argv krappi 0 hefur ./hello eða ./hello-3. 204 00:09:52,660 --> 00:09:55,400 Hvað er í krappi 2? 205 00:09:55,400 --> 00:09:58,210 Svo ég get svarað því að spurning mig, ekki satt? 206 00:09:58,210 --> 00:10:00,460 Ég get bara breytt 1 til 2. 207 00:10:00,460 --> 00:10:07,270 Ég get nú að endurþýða halló 3, ./hello3 skulum súmma inn og ýta á Enter. 208 00:10:07,270 --> 00:10:08,270 Úpps. 209 00:10:08,270 --> 00:10:10,660 Engin tilvitnun merkja. 210 00:10:10,660 --> 00:10:12,540 Áhugavert. 211 00:10:12,540 --> 00:10:15,530 Svo er það góður af kaldur til sjá hvað er hér. 212 00:10:15,530 --> 00:10:17,130 >> Svo hvað er inni fartölvuna mína? 213 00:10:17,130 --> 00:10:20,390 Við skulum spara það með bracket 3. 214 00:10:20,390 --> 00:10:25,190 Gera hello3, ./hello-3. 215 00:10:25,190 --> 00:10:26,500 Forvitinn. 216 00:10:26,500 --> 00:10:30,560 Og nú skulum við fá raunverulega bold-- 50. 217 00:10:30,560 --> 00:10:34,340 Svo er það virkilega köfun djúpt í minni tölvunnar minnar. 218 00:10:34,340 --> 00:10:35,930 50 Vísitölur í. 219 00:10:35,930 --> 00:10:41,950 Svo gera halló 3 ./hello-3. 220 00:10:41,950 --> 00:10:42,680 Forvitinn. 221 00:10:42,680 --> 00:10:44,660 Allt í lagi, nú er ég bara að fara að fá kærulaus. 222 00:10:44,660 --> 00:10:47,331 Förum í 5000. 223 00:10:47,331 --> 00:10:47,830 Allt í lagi. 224 00:10:47,830 --> 00:10:49,520 Svo láta mig að endurþýða. 225 00:10:49,520 --> 00:10:51,460 Gera 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ú sumir af þú, það gæti vera ljósapera fara burt. 229 00:10:59,250 --> 00:11:01,900 Hversu margir af þú hafa séð þennan póst áður? 230 00:11:01,900 --> 00:11:03,440 OK. 231 00:11:03,440 --> 00:11:04,420 Svo, hvers vegna? 232 00:11:04,420 --> 00:11:07,250 >> Stuðlar are-- og það er mismunandi hlutir sem geta valdið þessu, 233 00:11:07,250 --> 00:11:09,730 og greinilega þú ert í góðu company-- við höfum greinilega 234 00:11:09,730 --> 00:11:11,900 olli það er kallað a skiptingu kenna. 235 00:11:11,900 --> 00:11:15,890 Og langa sögu stutta í dag, ég hafa snert hluti af minni 236 00:11:15,890 --> 00:11:17,060 að ég ætti ekki að hafa. 237 00:11:17,060 --> 00:11:19,970 Ef hluti þýðir bara klumpur minni að ég ætti ekki að hafa. 238 00:11:19,970 --> 00:11:25,530 Nú tryggir að tölvan að ef ég hlaupa ./helloZamyla að ég get snerta argv 239 00:11:25,530 --> 00:11:27,760 vera krappi 0 og argv krappi 1. 240 00:11:27,760 --> 00:11:32,730 En argc er gildi 2, sem þýðir að ég er aðeins allowed-- það er tegund af heiðri 241 00:11:32,730 --> 00:11:35,180 system-- að snerta Bríkin 0 og Bríkin 1. 242 00:11:35,180 --> 00:11:37,990 Ef ég fer lengra, það er algerlega að fara að vera minni þar. 243 00:11:37,990 --> 00:11:40,660 RAM minn er til líkamlega í tölvunni. 244 00:11:40,660 --> 00:11:42,080 En hver veit hvað er þarna? 245 00:11:42,080 --> 00:11:44,450 Reyndar, ég er að keyra margar forrit í einu. 246 00:11:44,450 --> 00:11:46,910 Ég gæti hafa seen-- ef ég væri ekki gera þetta á Appliant 247 00:11:46,910 --> 00:11:49,937 en á Mac minn eða Einkatölva ég gæti hafa séð innihald tölvupósti. 248 00:11:49,937 --> 00:11:52,270 Ég gæti hafa séð augnablik skilaboðin sem ég hef nýlega sent. 249 00:11:52,270 --> 00:11:55,390 Nokkuð sem gæti verið langvarandi í kring í minni 250 00:11:55,390 --> 00:11:59,180 gæti hafa verið skoðuð með því að þetta handahófskennt ferningur krappi tákn. 251 00:11:59,180 --> 00:12:02,850 Eða verri enn, þú might hafa fundið einn af lykilorðum mínum 252 00:12:02,850 --> 00:12:05,859 að ég vil nýlega slegið í, að program hafði geymd í minni þannig 253 00:12:05,859 --> 00:12:07,900 til að auðkenna mig, og þá bara svona eftir það 254 00:12:07,900 --> 00:12:09,910 í vinnsluminni til að ég hætti þessi forrit. 255 00:12:09,910 --> 00:12:12,860 >> Og reyndar, þetta er einn af hætta og einn völd 256 00:12:12,860 --> 00:12:15,980 um að nota tungumál eins C. Þú hefur ótakmarkaðan aðgang 257 00:12:15,980 --> 00:12:18,860 að allt innihald minni forrits, 258 00:12:18,860 --> 00:12:21,340 og hvað slæmt krakkar geta jafnvel gera í þeim cases-- 259 00:12:21,340 --> 00:12:23,807 sérstaklega þegar við fá að forritun vefur 260 00:12:23,807 --> 00:12:26,890 undir lok misseris, við munum skoðunar topic-- er pota í kring, 261 00:12:26,890 --> 00:12:31,660 hugsanlega einhver er tölva ' minni og finna svo forvitinn hluti 262 00:12:31,660 --> 00:12:32,570 eins og við sáum þarna. 263 00:12:32,570 --> 00:12:36,900 Eða jafnvel verra enn, lykilorð sem hann eða hún getur þá notað til að gera slæma hluti. 264 00:12:36,900 --> 00:12:40,240 >> Svo greinilega að ég ætti ekki að hafa gert þetta, því undarlegir atburðir að gerast. 265 00:12:40,240 --> 00:12:42,310 Reyndar, þetta er forrit hrun. 266 00:12:42,310 --> 00:12:44,580 Þetta myndi vera ígildi Mac OS eða Windows 267 00:12:44,580 --> 00:12:46,770 a program gluggi bara hverfa. 268 00:12:46,770 --> 00:12:48,300 Óvænt villa átti sér stað. 269 00:12:48,300 --> 00:12:50,840 Í stjórn-lína umhverfi við sjáum eitthvað þessu líkt. 270 00:12:50,840 --> 00:12:54,480 En það er hvers vegna, er ég ætla einfaldlega að snerta minni sem ekki tilheyra mér. 271 00:12:54,480 --> 00:12:57,090 >> Svo skulum verja gegn þessu a svolítið á annan hátt 272 00:12:57,090 --> 00:12:59,010 með því að horfa á þetta forrit hér. 273 00:12:59,010 --> 00:13:01,000 Svo aftur, beinagrind sem við sáum earlier-- 274 00:13:01,000 --> 00:13:02,480 og ég hef hápunktur þessa tíma int. 275 00:13:02,480 --> 00:13:05,900 Og allan þennan tíma helstu hefur örugglega aftur gildi. 276 00:13:05,900 --> 00:13:09,120 Jafnvel þótt í flestum fyrirlestrinum okkar dæmi sem við höfum aldrei einu sinni notuð 277 00:13:09,120 --> 00:13:10,990 aftur eitthvað í aðal. 278 00:13:10,990 --> 00:13:13,710 Við að skrifa bara printf loka hrokkið Brace og það er það. 279 00:13:13,710 --> 00:13:16,500 En fyrir frjáls, hvað þýðanda verið að gera fyrir þig, 280 00:13:16,500 --> 00:13:19,510 á áhrifaríkan hátt, er að fara aftur 0 fyrir þig. 281 00:13:19,510 --> 00:13:22,950 Snýr out-- og það er lítið counterintuitive-- að 0 er gott. 282 00:13:22,950 --> 00:13:24,690 Það þýðir ekki falskur í sjálfu sér. 283 00:13:24,690 --> 00:13:29,080 0 er gott, og allir non-0 gildi, heimurinn hefur ákveðið, 284 00:13:29,080 --> 00:13:30,619 getur signify villu. 285 00:13:30,619 --> 00:13:32,910 Þannig að ef þú hefur einhvern tíma boðberi eitthvað upp á tölvunni þinni, 286 00:13:32,910 --> 00:13:36,600 eða áætlun hefur bara lést þig og þú hefur fengið einhverja rangra glugga 287 00:13:36,600 --> 00:13:40,360 á skjánum, sagði villa neikvæð 49 eða villa 23-- 288 00:13:40,360 --> 00:13:44,170 sumir virðist handahófskennt value-- sem er vegna þess að forritarinn hefur harður-dulmáli 289 00:13:44,170 --> 00:13:49,370 gildi eins neikvæð 49 eða jákvæð 23 til að tákna hvaða númer, þora að segja, 290 00:13:49,370 --> 00:13:53,340 af 4 milljarða mögulegum hlutum sem gæti farið úrskeiðis í forriti. 291 00:13:53,340 --> 00:13:55,700 >> Svo hvernig gæti ég tekið Kosturinn við þetta sjálfur? 292 00:13:55,700 --> 00:13:58,970 Jæja, láttu mig opna forrit að ég skrifaði í fyrirfram, 293 00:13:58,970 --> 00:14:01,450 og pota í kring á netinu sem heitir Halló 4. 294 00:14:01,450 --> 00:14:05,650 Og það er nánast eins, nema að þess fékk smá villa-stöðva. 295 00:14:05,650 --> 00:14:09,660 Í þessu tilfelli, hef ég aftur lýst Helstu og taka tvö rök, 296 00:14:09,660 --> 00:14:13,180 en í þetta skiptið, á línu 17, tilkynning Ég er að gera a hluti af a geðheilsu stöðva. 297 00:14:13,180 --> 00:14:17,100 Ég er að gera viss um að argc jafngildir jafngildir 2. 298 00:14:17,100 --> 00:14:18,960 Vegna þess að ef það er, að þýðir að ég get örugglega 299 00:14:18,960 --> 00:14:21,420 snerta ekki aðeins krappi 0, en krappi 1. 300 00:14:21,420 --> 00:14:24,330 Og ég fer á undan og prenta út, í þessu tilfelli, Zamyla eða Rob 301 00:14:24,330 --> 00:14:26,020 eða hvað orð ég slóst út. 302 00:14:26,020 --> 00:14:28,020 Og nú bara að fá smá meira viðeigandi, 303 00:14:28,020 --> 00:14:31,910 Ég ætla að beinlínis aftur 0 að signify allt er vel. 304 00:14:31,910 --> 00:14:33,300 Ekkert slæmt gerðist. 305 00:14:33,300 --> 00:14:38,590 >> En með því að venju, ég ætla að aftur 1, eða satt allir non-0 gildi, 306 00:14:38,590 --> 00:14:40,160 ef eitthvað fór úrskeiðis. 307 00:14:40,160 --> 00:14:43,270 Nú er notandinn ekki að fara að virkilega taka eftir hvað er að gerast. 308 00:14:43,270 --> 00:14:50,410 Reyndar ef ég fer inn í þessa möppu, við zoom í og ​​gera Halló 4, 309 00:14:50,410 --> 00:14:54,210 ./hello-4 Zamyla haga sér eins og ég búist við. 310 00:14:54,210 --> 00:14:58,570 En ef ég í staðinn ekki slá eitthvað, ekkert virðist gerast, 311 00:14:58,570 --> 00:14:59,680 en það þýðir ekki að hrun. 312 00:14:59,680 --> 00:15:04,660 Og ef ég geri staðinn eitthvað eins Rob er PROCTOR 313 00:15:04,660 --> 00:15:07,550 í Thayer-- hlutdeild handahófskennt upplýsingar. 314 00:15:07,550 --> 00:15:13,680 En fyrirvara, argv 1, 2, 3, 4, og 5 ætti nú til í minni. 315 00:15:13,680 --> 00:15:16,540 Það líka, er ekki hvað áætlun mín gerir ráð fyrir, 316 00:15:16,540 --> 00:15:20,300 vegna þess að ég hef athugað hvort argc jafnt jafn 2 eða ekki. 317 00:15:20,300 --> 00:15:22,140 Þannig að ég ætla nú að verja gegn þessu. 318 00:15:22,140 --> 00:15:25,290 >> Nú, eins og innskot, við að programmer-- eða frekar við að users-- 319 00:15:25,290 --> 00:15:29,670 aldrei sjá að 0 eða 1, en með því að nota tól sem kallast aflúsara, eða önnur verkfæri, 320 00:15:29,670 --> 00:15:32,250 eins og við munum sjá fyrir langur, þú forritari 321 00:15:32,250 --> 00:15:36,590 getur raunverulega sjá hvað gæti verið fara úrskeiðis inni á áætlun þinni. 322 00:15:36,590 --> 00:15:39,170 >> Svo, einhverjar spurningar um argc? 323 00:15:39,170 --> 00:15:40,873 Já. 324 00:15:40,873 --> 00:15:45,292 >> Áhorfendur: Ég hef séð þar sem þeir hafa ekki haft staf [inaudible] 325 00:15:45,292 --> 00:15:49,669 bara sagt band stjörnu d, eins eðli stjörnu komma. 326 00:15:49,669 --> 00:15:50,710 Eru þeir jafngildi hér? 327 00:15:50,710 --> 00:15:51,626 >> DAVID MALAN: Þeir eru. 328 00:15:51,626 --> 00:15:55,080 Svo spurningin er, hefur þú stundum séð forrit 329 00:15:55,080 --> 00:15:57,270 eins og þetta sem gera ekki segja string argv krappi 330 00:15:57,270 --> 00:16:01,015 heldur segja eitthvað eins bleikju stjörnu argv krappi. 331 00:16:01,015 --> 00:16:03,140 Og það er jafnvel annar afbrigði sem þú gætir séð. 332 00:16:03,140 --> 00:16:04,264 Þeir eru örugglega jafngildi. 333 00:16:04,264 --> 00:16:06,240 Fyrir nú, við höfum þetta konar þjálfun hjól 334 00:16:06,240 --> 00:16:09,737 á í formi streng í CS50 bókasafn, en í rúmlega viku 335 00:16:09,737 --> 00:16:12,570 eða svo við erum að fara að fjarlægja það Teppa öllu og í raun 336 00:16:12,570 --> 00:16:16,820 líta á það sem bleikja og stjarnan eru og hvernig þeir taka til minni 337 00:16:16,820 --> 00:16:18,140 framsetning almennt. 338 00:16:18,140 --> 00:16:19,540 Þannig að við munum koma aftur til það. 339 00:16:19,540 --> 00:16:21,540 >> Aðrar spurningar um argv okkar eða argc? 340 00:16:21,540 --> 00:16:22,397 Já. 341 00:16:22,397 --> 00:16:24,438 Áhorfendur: Hvers vegna var það aftur villa [inaudible]? 342 00:16:24,438 --> 00:16:27,147 343 00:16:27,147 --> 00:16:29,230 DAVID MALAN: Hvers vegna gerði það skila villu only-- ó! 344 00:16:29,230 --> 00:16:31,813 Í fyrra tilvikinu, þegar við voru futzing kring með minni, 345 00:16:31,813 --> 00:16:35,110 af hverju gerði bara það aftur villu þegar ég slóst í raun stórt númer? 346 00:16:35,110 --> 00:16:36,620 Stutta svarið er, við fengum bara heppinn. 347 00:16:36,620 --> 00:16:39,240 Almennt talað, tölva úthlutar minni í bitum, 348 00:16:39,240 --> 00:16:42,900 og það gaf mér nógu stór klumpur sem Ég slapp, án þess að taka, 349 00:16:42,900 --> 00:16:46,280 af snerta krappi 2. krappi 3, krappi 50, en um leið og ég ýtti 350 00:16:46,280 --> 00:16:49,080 heppni mína, fór ég út að Mörk klumpur af minni 351 00:16:49,080 --> 00:16:50,520 stýrikerfi hafði gefið mér. 352 00:16:50,520 --> 00:16:52,720 Og það er þegar það clamped niður og sagði, nei. 353 00:16:52,720 --> 00:16:54,580 Skiptingu villa. 354 00:16:54,580 --> 00:16:55,692 Já. 355 00:16:55,692 --> 00:16:58,890 >> Áhorfendur: Hvernig virkar tölvan vita verðmæti argc? 356 00:16:58,890 --> 00:17:02,390 >> DAVID MALAN: Hvernig virkar tölva veit gildi argc? 357 00:17:02,390 --> 00:17:07,920 Þegar þú keyrir forritið, sem program, og eðli blikkandi hvetja, 358 00:17:07,920 --> 00:17:11,359 er afhent array orð sem voru slegið 359 00:17:11,359 --> 00:17:13,300 á að hvetja, sem var slegið á the hvetja. 360 00:17:13,300 --> 00:17:16,569 Og svo er það stýrikerfi þitt kerfi sem í raun 361 00:17:16,569 --> 00:17:20,329 populates rök Main fyrir þig. 362 00:17:20,329 --> 00:17:22,829 Svo er það einn af þeim þjónustu sem þú færð, svona leynilega 363 00:17:22,829 --> 00:17:24,869 undir hetta stýrikerfi. 364 00:17:24,869 --> 00:17:27,118 Aðrar spurningar? 365 00:17:27,118 --> 00:17:27,618 Já. 366 00:17:27,618 --> 00:17:29,787 >> Áhorfendur: Hvað algerlega sorphaugur meina? 367 00:17:29,787 --> 00:17:31,370 DAVID MALAN: Hvað algerlega sorphaugur meina? 368 00:17:31,370 --> 00:17:32,950 Svo er það góð spurning. 369 00:17:32,950 --> 00:17:35,312 Og láta mig fara aftur í þessari skrá hér. 370 00:17:35,312 --> 00:17:37,270 Og þú munt taka eftir því að ÉG hafa a nýr skrá þar. 371 00:17:37,270 --> 00:17:41,670 Það er reyndar kallað algerlega, og það er reyndar yfirleitt ágætis-stór skrá. 372 00:17:41,670 --> 00:17:45,300 Það er í raun mynd af innihald minni forritsins míns 373 00:17:45,300 --> 00:17:46,902 eða RAM þegar það hrundi. 374 00:17:46,902 --> 00:17:49,110 Og þetta mun vera gagnlegt, hugsanlega, sjúkdómsgreiningar, 375 00:17:49,110 --> 00:17:52,850 þegar við tölum í framtíðinni fyrirlestri og kafla um kembiforrit, 376 00:17:52,850 --> 00:17:55,730 vegna þess að þú getur í raun og veru að gera jafngildir um stafræna krufninguna 377 00:17:55,730 --> 00:18:00,300 á að skrá til að hjálpa reikna út hvað þú gerðir rangt í forritinu. 378 00:18:00,300 --> 00:18:01,220 Já. 379 00:18:01,220 --> 00:18:04,450 >> Áhorfendur: Er argc skipun í sig, eða getur þú nefnt það nokkuð? 380 00:18:04,450 --> 00:18:05,575 >> DAVID MALAN: Góð spurning. 381 00:18:05,575 --> 00:18:08,040 Er argc skipun í sjálfu sér, eða getur þú nafn það nokkuð? 382 00:18:08,040 --> 00:18:09,290 Það er örugglega ekki a stjórn. 383 00:18:09,290 --> 00:18:13,500 Það er einfaldlega breytu er heiti eða rifrildi er, 384 00:18:13,500 --> 00:18:15,481 og svo algerlega við gæti kalla þetta foo, 385 00:18:15,481 --> 00:18:18,480 við gætum kalla þetta bar, sem hafa tilhneigingu til að vera að fara til orð sem tölva 386 00:18:18,480 --> 00:18:19,860 vísindamaður fer að. 387 00:18:19,860 --> 00:18:22,820 En með því að venju, við notum argc og argv. 388 00:18:22,820 --> 00:18:25,360 En það er bara mannlegur venju, ekkert meira. 389 00:18:25,360 --> 00:18:25,860 Allt í lagi. 390 00:18:25,860 --> 00:18:28,140 Svo kemur í ljós, ég hef verið segja smá hvítt lie-- 391 00:18:28,140 --> 00:18:31,264 og hreinskilnislega, í framtíðinni, þú munt sjá við höfum verið að segja öðrum hvítum lygar. 392 00:18:31,264 --> 00:18:33,510 En nú erum við að fara að afhýða aftur einn af þessum. 393 00:18:33,510 --> 00:18:37,310 Í þessu tilfelli hér þegar ég áður hljóp forrit eins ./hello eða ./hello-3 394 00:18:37,310 --> 00:18:42,780 Zamyla, við höfðum innihald minn minni tölvunnar leita u.þ.b. eins 395 00:18:42,780 --> 00:18:43,280 þetta. 396 00:18:43,280 --> 00:18:45,070 En muna hvað strengur er. 397 00:18:45,070 --> 00:18:49,279 Hvað gerði við segjum viku síðan hvað band er í raun undir hetta? 398 00:18:49,279 --> 00:18:50,320 Áhorfendur: Array stafir. 399 00:18:50,320 --> 00:18:52,111 DAVID MALAN: Það er array stafir, ekki satt? 400 00:18:52,111 --> 00:18:55,760 Svo við gætum haft fjölbreytta strengir, en aftur á móti, a band 401 00:18:55,760 --> 00:18:57,150 er fylki af stöfum. 402 00:18:57,150 --> 00:19:00,010 Svo ef ég vil virkilega að vera endaþarms þegar ég teikna þessa mynd, 403 00:19:00,010 --> 00:19:03,290 Ég ætti í raun að vera að teikna það svolítið meira eins og þetta, 404 00:19:03,290 --> 00:19:08,000 þar sem í hvert þessara Vísitölur argv array minn, 405 00:19:08,000 --> 00:19:11,432 það er sjálft í heild band að sjálft er í fylki. 406 00:19:11,432 --> 00:19:13,140 Og nú hvíta lygi við erum að segja í dag 407 00:19:13,140 --> 00:19:15,181 er að myndin er ekki líta alveg eins og þetta. 408 00:19:15,181 --> 00:19:19,110 Í raun eru litlu ferninga yfirleitt utan stóru rétthyrninga 409 00:19:19,110 --> 00:19:19,610 þar. 410 00:19:19,610 --> 00:19:21,280 En við munum koma aftur til að áður en langur. 411 00:19:21,280 --> 00:19:25,440 En þetta er ./hello sviga 0, að vera sérstakur karakter sem 412 00:19:25,440 --> 00:19:28,310 aðskilur fyrir endann á band, og við höfum fengið annað eftir 413 00:19:28,310 --> 00:19:29,360 Nafn Zamyla er. 414 00:19:29,360 --> 00:19:30,900 Svo hvað þýðir þetta? 415 00:19:30,900 --> 00:19:33,410 >> Jæja, láttu mig fara á undan og opna tvær önnur dæmi 416 00:19:33,410 --> 00:19:35,220 sem eru í boði á netinu. 417 00:19:35,220 --> 00:19:40,590 Einn er kölluð argv1.c og hitt er argv2. 418 00:19:40,590 --> 00:19:44,260 Það er frábær-einfalt forrit sem er frábrugðin síðustu programs 419 00:19:44,260 --> 00:19:47,260 í því núna er ég að nota argc og argv upp hér. 420 00:19:47,260 --> 00:19:54,300 Og nú er ég að samþætta með for lykkju í samræmi 18, frá i = 0 á allt að argc. 421 00:19:54,300 --> 00:19:56,850 Og hvað er ég að fara að gera með þessari línu af kóða hér? 422 00:19:56,850 --> 00:19:58,270 Á ensku. 423 00:19:58,270 --> 00:20:00,510 Þetta sýnir augljóslega notkun argc. 424 00:20:00,510 --> 00:20:03,670 En í ensku, hvað þýðir það að gera ef ég keyra þetta forrit? 425 00:20:03,670 --> 00:20:04,366 Já? 426 00:20:04,366 --> 00:20:07,386 >> Áhorfendur: Það er að fara að prenta þinn skjár eins oft og þú vilt. 427 00:20:07,386 --> 00:20:08,260 DAVID MALAN: Einmitt. 428 00:20:08,260 --> 00:20:10,480 Svo hvað orð I slegið á the hvetja, það er 429 00:20:10,480 --> 00:20:13,120 að fara að kasta upp þá á mig eitt í hverja línu. 430 00:20:13,120 --> 00:20:14,370 Svo skulum fara á undan og gera þetta. 431 00:20:14,370 --> 00:20:17,862 Leyfðu mér að fara inn í möppuna mína og gera að argv1 ./argv1. 432 00:20:17,862 --> 00:20:20,521 433 00:20:20,521 --> 00:20:21,770 Og nú, við skulum halda það einfalt. 434 00:20:21,770 --> 00:20:23,834 Við skulum gera ekkert í fyrstu. 435 00:20:23,834 --> 00:20:26,750 Það gerði prenta út eitt, og það er örugglega nafnið á forritinu, 436 00:20:26,750 --> 00:20:28,240 því það er í krappi 0. 437 00:20:28,240 --> 00:20:33,290 Ef ég segi nú foo, það er að fara að gera þessir tveir, og ef ég segi foo bar, 438 00:20:33,290 --> 00:20:35,580 það er að fara að segja þeim þremur hlutum. 439 00:20:35,580 --> 00:20:37,740 Nú er það nokkuð áhugavert, kannski. 440 00:20:37,740 --> 00:20:41,450 En muna að argv er fylki á strengi, 441 00:20:41,450 --> 00:20:45,960 en band er fylki á stafir, svo við getum tekið það upp hak 442 00:20:45,960 --> 00:20:48,560 og gilda að undirstöðu rökfræði og gera kóða sem 443 00:20:48,560 --> 00:20:51,160 lítur svolítið meira dulinn, að vísu. 444 00:20:51,160 --> 00:20:53,540 En með því að hafa hreiður lykkja, eitthvað í ætt 445 00:20:53,540 --> 00:20:57,030 við hvað þú gætir muna frá Mario, til dæmis, ef þú gerðir það með þessum hætti. 446 00:20:57,030 --> 00:21:00,380 >> Svo nú taka á línu 19, ég er aftur iterating yfir málflutningi mínum, 447 00:21:00,380 --> 00:21:02,410 frá 0 á allt að argc. 448 00:21:02,410 --> 00:21:05,510 Og nú í samræmi 21-- ég lántökur bragð frá síðasta week-- 449 00:21:05,510 --> 00:21:11,090 Ég er að skoða hvað er lengd argv krappi i. 450 00:21:11,090 --> 00:21:12,920 Ég geyma það svar í n. 451 00:21:12,920 --> 00:21:18,230 Og þá er ég að samþætta frá j á allt að n, þar sem j er frumstilla til 0. 452 00:21:18,230 --> 00:21:19,460 Svo, samningur fyrir talningu. 453 00:21:19,460 --> 00:21:22,335 Þegar þú hefur notað i, ef þú hafa a hreiður lykkja, þú getur ekki notað i aftur, 454 00:21:22,335 --> 00:21:25,770 annars munt þú clobber hugsanlega gildi fyrir utan um innri lykkju. 455 00:21:25,770 --> 00:21:27,200 Þannig að ég ætla að nota j eftir venju. 456 00:21:27,200 --> 00:21:28,020 Við gætum notað k. 457 00:21:28,020 --> 00:21:31,080 Ef þú ert með fleiri en k, þú sennilega hafa of mikið hreiður, venjulega. 458 00:21:31,080 --> 00:21:33,800 En nú, eftir printf minn lína er örlítið öðruvísi. 459 00:21:33,800 --> 00:21:37,520 Ég ætla ekki að prentun% s, ég er prentun% c, sem, að sjálfsögðu, 460 00:21:37,520 --> 00:21:39,460 er staðgengill fyrir bleikju. 461 00:21:39,460 --> 00:21:40,770 >> Og nú taka þessa setningafræði. 462 00:21:40,770 --> 00:21:41,270 New. 463 00:21:41,270 --> 00:21:42,630 Við höfum ekki séð það áður. 464 00:21:42,630 --> 00:21:47,290 En rökrétt, þetta þýðir bara fá ith band í argv 465 00:21:47,290 --> 00:21:50,067 og fá jth hvað? 466 00:21:50,067 --> 00:21:50,900 Áhorfendur: Eðli. 467 00:21:50,900 --> 00:21:52,800 DAVID MALAN: Eðli í strengsins. 468 00:21:52,800 --> 00:21:57,100 Svo með því að nota hornklofa eftir hornklofum, 469 00:21:57,100 --> 00:22:00,390 þetta er köfun fyrst í strengi argv er, 470 00:22:00,390 --> 00:22:02,225 og þá seinni hornklofum með j 471 00:22:02,225 --> 00:22:06,580 er köfun í stafina sem einkum band í argv. 472 00:22:06,580 --> 00:22:09,562 Og þá, bara fyrir gott mál, Ég prenta nýja línu hér. 473 00:22:09,562 --> 00:22:12,020 Svo nú láta mig fara á undan og opna upp örlítið stærri glugga 474 00:22:12,020 --> 00:22:13,600 svo við getum séð þetta í aðgerð. 475 00:22:13,600 --> 00:22:15,700 Leyfðu mér að fara inn í þessi mappa. 476 00:22:15,700 --> 00:22:22,550 Og nú gera gera argv-2-- whoops-- gera argv-2, ./argv 2. 477 00:22:22,550 --> 00:22:23,110 Enter. 478 00:22:23,110 --> 00:22:24,860 Og það er svolítið erfitt að lesa lóðrétt, 479 00:22:24,860 --> 00:22:27,920 en það er örugglega nafnið á program, fylgt eftir með auða línu. 480 00:22:27,920 --> 00:22:30,210 Nú láta mig fara á undan og gera foo. 481 00:22:30,210 --> 00:22:33,210 Álíka erfitt að lesa, en það er örugglega prentun einn staf í hverja línu. 482 00:22:33,210 --> 00:22:36,780 Og ef ég bar, það er nú prentun þá línu fyrir línu. 483 00:22:36,780 --> 00:22:40,140 Svo er takeaway hér ekki svo mikið að, vá, líta á þetta snyrtilegur nýja bragð 484 00:22:40,140 --> 00:22:44,750 þar sem þú getur fengið á innihaldi af sérstökum stafi í fylki er, 485 00:22:44,750 --> 00:22:48,380 heldur hvernig við erum að taka þetta undirstöðu hugmyndir eins flokkun í fylki, 486 00:22:48,380 --> 00:22:51,620 og þá flokkun inn í array sem var í þeirri fylking, 487 00:22:51,620 --> 00:22:56,180 og bara beita sömu hugmyndir að örlítið flóknari dæmi. 488 00:22:56,180 --> 00:22:59,560 En grundvallaratriði hafa í raun ekki breyst, jafnvel frá síðustu viku. 489 00:22:59,560 --> 00:23:02,350 >> Nú er þetta svona tímanlega, í því, muna, í viku núll 490 00:23:02,350 --> 00:23:04,110 við spiluðum með símaskrá eins og þetta. 491 00:23:04,110 --> 00:23:06,670 Og jafnvel þótt það sé augljóslega líkamlega stykki af pappír, 492 00:23:06,670 --> 00:23:09,150 þú getur konar hugsa um a símaskrá sem fylki. 493 00:23:09,150 --> 00:23:12,770 Vissulega, ef þú varst að reimplement þetta stykki þessi stykki af pappír 494 00:23:12,770 --> 00:23:15,260 í tölvunni, sennilega þú myndir nota eitthvað 495 00:23:15,260 --> 00:23:20,270 eins fylki til að geyma allar þessar nöfn og númer úr alla leið 496 00:23:20,270 --> 00:23:23,800 gegnum Z. Svo er þetta gott, vegna þess að það gerir okkur tækifæri, 497 00:23:23,800 --> 00:23:28,310 kannski að íhuga hvernig þú gætir reyndar innleiða eitthvað svona. 498 00:23:28,310 --> 00:23:31,250 Eins og með a röð af hurðum hér. 499 00:23:31,250 --> 00:23:36,380 Þannig að ef ég could-- við þurfum eitt sjálfboðaliða til að koma upp. 500 00:23:36,380 --> 00:23:36,980 Við skulum sjá. 501 00:23:36,980 --> 00:23:40,650 Framandi andlit kannski, framandi andlit kannski. 502 00:23:40,650 --> 00:23:42,090 Hvað um í appelsínugulum? 503 00:23:42,090 --> 00:23:42,680 Hér. 504 00:23:42,680 --> 00:23:45,870 Appelsína skyrta, koma upp. 505 00:23:45,870 --> 00:23:52,230 >> Við skulum fara á undan núna og hreyfa Þessar dyr yfir til hliðar, 506 00:23:52,230 --> 00:23:54,020 færa þeim út af the vegur í smástund. 507 00:23:54,020 --> 00:23:56,600 508 00:23:56,600 --> 00:23:57,760 Hvað er nafn þitt? 509 00:23:57,760 --> 00:23:58,580 >> Ajay: 510 00:23:58,580 --> 00:23:58,655 >> DAVID MALAN: Ajay. 511 00:23:58,655 --> 00:23:58,680 David. 512 00:23:58,680 --> 00:23:59,451 Gaman að hitta þig. 513 00:23:59,451 --> 00:23:59,950 Allt í lagi. 514 00:23:59,950 --> 00:24:04,500 Þannig að við höfum á bak við þessar sex hurðir stafrænt á screen-- 515 00:24:04,500 --> 00:24:07,810 Eða frekar, sjö hurðir á að screen-- a heild búnt af tölum. 516 00:24:07,810 --> 00:24:10,099 Og ég hef sagt þér neitt í advance-- sammála? 517 00:24:10,099 --> 00:24:11,140 Ajay: Ekkert fyrirfram. 518 00:24:11,140 --> 00:24:14,730 DAVID MALAN: Allt sem ég vil að þú að gera nú er að finna fyrir mig, og fyrir okkur, 519 00:24:14,730 --> 00:24:20,920 í raun hefur fjöldi 50, eitt skref í einu. 520 00:24:20,920 --> 00:24:21,830 >> Ajay: Númer 50? 521 00:24:21,830 --> 00:24:22,580 >> DAVID MALAN: Fjöldi 50. 522 00:24:22,580 --> 00:24:24,746 Og þú geta sýna hvað er á bak við hvert þessara hurðum 523 00:24:24,746 --> 00:24:27,930 einfaldlega með því að snerta það með fingri. 524 00:24:27,930 --> 00:24:31,364 Andskotans. [Hlátur] 525 00:24:31,364 --> 00:24:34,560 >> [Applause] 526 00:24:34,560 --> 00:24:39,540 >> Mjög vel gert. 527 00:24:39,540 --> 00:24:40,400 OK. 528 00:24:40,400 --> 00:24:44,090 Við höfum yndislega gjöf verðlaun fyrir þig hér. 529 00:24:44,090 --> 00:24:46,520 Velja þinn bíó við rætt í síðustu viku. 530 00:24:46,520 --> 00:24:47,362 >> Ajay: Ó, maður. 531 00:24:47,362 --> 00:24:49,050 Ó, ég hef aldrei séð Spaceballs. 532 00:24:49,050 --> 00:24:49,520 >> DAVID MALAN: Spaceballs. 533 00:24:49,520 --> 00:24:50,140 Allt í lagi. 534 00:24:50,140 --> 00:24:53,790 Svo halda á bara eitt augnablik. 535 00:24:53,790 --> 00:24:57,430 How-- skulum gera þetta a teachable moment-- 536 00:24:57,430 --> 00:25:00,412 hvernig fannst þér að fara um finna númer 50? 537 00:25:00,412 --> 00:25:01,370 Ajay: Ég valdi af handahófi. 538 00:25:01,370 --> 00:25:03,420 DAVID MALAN: Svo þú valdir handahófi og fékk heppinn. 539 00:25:03,420 --> 00:25:03,790 Ajay: Já. 540 00:25:03,790 --> 00:25:04,456 DAVID MALAN: OK. 541 00:25:04,456 --> 00:25:05,050 Excellent. 542 00:25:05,050 --> 00:25:08,470 Svo nú, hafði þig ekki fengið heppinn, hvað annað 543 00:25:08,470 --> 00:25:10,210 gæti hafa gerst á bak við þessar dyr? 544 00:25:10,210 --> 00:25:12,930 Þannig að ef ég fer á undan og sýna þessar tölur hér, 545 00:25:12,930 --> 00:25:15,180 þeir eru í raun í handahófskenndri röð. 546 00:25:15,180 --> 00:25:17,750 Og það besta sem þú gætir hafa gert, hreinskilnislega, er með, að lokum, 547 00:25:17,750 --> 00:25:19,410 í versta tilfelli, að haka við þá alla. 548 00:25:19,410 --> 00:25:23,000 Svo þú got frábær-heppinn, sem er ekki það sem við myndum kalla reiknirit. 549 00:25:23,000 --> 00:25:24,730 Já, hamingju. 550 00:25:24,730 --> 00:25:27,010 En nú let's-- húmor mig, ef þú gætir. 551 00:25:27,010 --> 00:25:28,310 Við skulum fara á þennan flipa hér. 552 00:25:28,310 --> 00:25:31,460 Og hér eru tölurnar í greinilega það virðist vera af handahófi röð, 553 00:25:31,460 --> 00:25:32,280 og þeir voru. 554 00:25:32,280 --> 00:25:35,160 En nú ef ég krafa staðinn að á bak við þessar dyr 555 00:25:35,160 --> 00:25:39,070 eru tölur sem eru raðað. 556 00:25:39,070 --> 00:25:41,780 Markmiðið er nú að líka finna okkur númerið 50. 557 00:25:41,780 --> 00:25:45,910 En gera það algorithmically, og Segðu okkur hvernig þú ert að fara um það. 558 00:25:45,910 --> 00:25:48,020 Og ef þú finnur það, halda þér myndina. 559 00:25:48,020 --> 00:25:49,520 Þú finnur ekki það, sem þú gefa það til baka. 560 00:25:49,520 --> 00:25:52,720 561 00:25:52,720 --> 00:25:58,112 Ajay: Þannig að ég ætla að athuga endana í fyrsta lagi að ákveða hvort there's-- 562 00:25:58,112 --> 00:26:02,048 [Hlátur og lófaklapp] 563 00:26:02,048 --> 00:26:04,451 564 00:26:04,451 --> 00:26:05,492 DAVID MALAN: Hérna. 565 00:26:05,492 --> 00:26:17,080 566 00:26:17,080 --> 00:26:21,700 Við skulum taka a líta á einn forverar Ajay er, 567 00:26:21,700 --> 00:26:25,450 Sean, sem var ekki alveg eins heppinn. 568 00:26:25,450 --> 00:26:28,670 Allt í lagi, þannig að þitt verkefni hér, Sean, er eftirfarandi. 569 00:26:28,670 --> 00:26:32,970 Ég hef falið bak þessum hurðir sem númer sjö, 570 00:26:32,970 --> 00:26:37,200 en matur burt í sumum þessara hlera svo eru aðrar neikvæðar tölur. 571 00:26:37,200 --> 00:26:40,730 Og markmið þitt er að hugsa um þetta Efst á tölur sem bara fylki. 572 00:26:40,730 --> 00:26:43,590 Það nægir að taka röð af stykki af pappír með tölum á bak við þá. 573 00:26:43,590 --> 00:26:47,640 Og markmið þitt er aðeins að nota efst array hér, finna mér númer sjö. 574 00:26:47,640 --> 00:26:51,200 Og við erum svo að fara að gagnrýna hvernig þú ferð um að gera það. 575 00:26:51,200 --> 00:26:52,920 Finndu okkur númerið sjö, takk. 576 00:26:52,920 --> 00:27:02,570 577 00:27:02,570 --> 00:27:03,070 Nei 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 Það er ekki bragð spurning. 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 Á þessum tímapunkti skora er ekki mjög gott, svo þú might eins og heilbrigður halda áfram. 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 Fara á. 590 00:27:39,802 --> 00:27:42,510 Frankly, ég get ekki annað en furða hvað þú ert jafnvel að hugsa um. 591 00:27:42,510 --> 00:27:44,990 >> SEAN: Ég get tekið frá eini efstu röðinni. 592 00:27:44,990 --> 00:27:46,240 DAVID MALAN: Aðeins efsta línan. 593 00:27:46,240 --> 00:27:47,281 Svo þú hefur fengið þrjú eftir. 594 00:27:47,281 --> 00:27:48,310 Svo finna mig 7. 595 00:27:48,310 --> 00:27:54,758 596 00:27:54,758 --> 00:27:59,141 >> [Áhorfendur hrópar Tillögur] 597 00:27:59,141 --> 00:28:22,210 598 00:28:22,210 --> 00:28:26,130 Svo bæði þeirra voru ótrúlega fyrir mjög mismunandi ástæðum. 599 00:28:26,130 --> 00:28:29,150 Svo er þetta þar sem við horfið í smá stund síðan, 600 00:28:29,150 --> 00:28:32,530 og lykillinn innsýn hér var þessi hurðir höfðu tölur 601 00:28:32,530 --> 00:28:37,390 að baki þeim sem voru raðað, kjörinn takeaway sem er að þú gætir gert 602 00:28:37,390 --> 00:28:39,670 grundvallaratriðum betur í þessi seinni example-- 603 00:28:39,670 --> 00:28:42,380 og reyndar það var Sean er Fyrsta tilraun með handahófi tölur 604 00:28:42,380 --> 00:28:45,460 bara eins before-- en um leið eins og þessar tölur eru flokkuð, 605 00:28:45,460 --> 00:28:47,980 mikið eins og símaskrá, hvað getur þú gert augljóslega? 606 00:28:47,980 --> 00:28:50,090 Eða hvernig er hægt að nýta þá þekkingu? 607 00:28:50,090 --> 00:28:51,530 Já. 608 00:28:51,530 --> 00:28:54,910 >> Áhorfendur: Þú ferð á miðri leið [inaudible]. 609 00:28:54,910 --> 00:28:55,660 DAVID MALAN: Já. 610 00:28:55,660 --> 00:28:56,160 Nákvæmlega. 611 00:28:56,160 --> 00:28:59,680 Svo upphaflega eðlishvöt Ajay var að athuga endana, eins og ég man, 612 00:28:59,680 --> 00:29:02,320 og þá erum við konar lokið dæmi fljótt. 613 00:29:02,320 --> 00:29:05,220 En ef við byrjuðum að gera þetta meira skipulega meðfram þeim línum, 614 00:29:05,220 --> 00:29:07,860 en byrja kannski í miðja, vegna þess að þeir eru raðað, 615 00:29:07,860 --> 00:29:10,900 eins fljótt og við sýna að númer 16, know-- við því 616 00:29:10,900 --> 00:29:14,850 og við skulum gera nákvæmlega that-- vér Hygg að 50, ef í dag, 617 00:29:14,850 --> 00:29:16,080 hefur got til vera til hægri. 618 00:29:16,080 --> 00:29:18,735 Svo bara eins og í viku núll þegar Við reif símaskrána í tvennt 619 00:29:18,735 --> 00:29:21,490 og kastaði helmingur af vandamál í burtu, sama hugmynd hér. 620 00:29:21,490 --> 00:29:23,680 Við getum kastað þessum helmingur á vandamálinu í burtu. 621 00:29:23,680 --> 00:29:25,730 Og sennilega það sem þú gæti gert algorithmically, 622 00:29:25,730 --> 00:29:28,710 þegar þú veist að 50 verður að vera til hægri, ef það er einhvers staðar, 623 00:29:28,710 --> 00:29:31,390 er að reyna það, í miðju af hinum hurðir. 624 00:29:31,390 --> 00:29:33,450 Að sjálfsögðu, 50 er hærra en 42, þannig að við getum 625 00:29:33,450 --> 00:29:36,060 kasta þetta eftir fjórðungur af vandamálinu í burtu, 626 00:29:36,060 --> 00:29:38,510 og að lokum, þekkja eitthvað eins og 50. 627 00:29:38,510 --> 00:29:41,050 En rétt eins og með símaskrá, þessar tölur 628 00:29:41,050 --> 00:29:44,560 voru gefin okkur þegar í Raðað röð, sem skilur okkur 629 00:29:44,560 --> 00:29:47,450 við spurningunni, hvernig þér fá það í raðað röð? 630 00:29:47,450 --> 00:29:49,640 Og hreinskilnislega, á hvaða kostnað? 631 00:29:49,640 --> 00:29:51,390 Það er eitt að vera afhent símaskrána 632 00:29:51,390 --> 00:29:54,810 og þá komdu vinum þínum með því að finna a símanúmer virkilega hratt, ekki satt? 633 00:29:54,810 --> 00:29:58,520 Rífa 32 síður út til að finna maður af 4 milljarða flettinga, 634 00:29:58,520 --> 00:30:00,470 við sögðum var einn öfgafullt dæmi. 635 00:30:00,470 --> 00:30:03,320 En hversu mikinn tíma gerði það að taka Regin að raða að símaskránni? 636 00:30:03,320 --> 00:30:06,170 Hversu mikill tími fór það að taka okkur að raða þessum sjö tölur? 637 00:30:06,170 --> 00:30:10,110 Það er spurning sem við höfum svona langt alveg hunsað. 638 00:30:10,110 --> 00:30:12,330 >> Svo skulum svara þessari spurningu núna. 639 00:30:12,330 --> 00:30:15,920 Og við erum öll úr bíó núna, en við höfum nokkrar streitu kúlur. 640 00:30:15,920 --> 00:30:19,480 Ef, segjum, átta sjálfboðaliðar myndi ekki hugur hopinn upp hér? 641 00:30:19,480 --> 00:30:24,100 Við skulum fara á undan og gera, hvernig um fjórir þig, þið þrír hér? 642 00:30:24,100 --> 00:30:25,290 Fá ný andlit. 643 00:30:25,290 --> 00:30:27,220 Og fjórir af þér þarna? 644 00:30:27,220 --> 00:30:30,760 Og now-- skulum ekki hlutdrægni here-- og númer átta hérna á enda. 645 00:30:30,760 --> 00:30:32,060 Komdu upp. 646 00:30:32,060 --> 00:30:32,560 Allt í lagi. 647 00:30:32,560 --> 00:30:37,480 Svo það sem við höfum hér fyrir hver ykkar er tala. 648 00:30:37,480 --> 00:30:40,055 Ef þú vilt fara undan, að taka þetta númer. 649 00:30:40,055 --> 00:30:40,763 Hvað er nafn þitt? 650 00:30:40,763 --> 00:30:41,950 >> Artie: Artie. 651 00:30:41,950 --> 00:30:43,100 >> DAVID MALAN: Artie, allt í lagi. 652 00:30:43,100 --> 00:30:44,297 Þú ert númer 1. 653 00:30:44,297 --> 00:30:45,310 >> Amin: Amin. 654 00:30:45,310 --> 00:30:46,060 DAVID MALAN: Amin. 655 00:30:46,060 --> 00:30:46,820 David. 656 00:30:46,820 --> 00:30:47,530 Þú ert númer 2. 657 00:30:47,530 --> 00:30:49,100 Og fara á undan, eins og ég hendi þú blöð af pappír, 658 00:30:49,100 --> 00:30:52,130 lína ykkur upp fyrir framan tónlist stendur í sömu röð og allt það. 659 00:30:52,130 --> 00:30:52,660 >> ANDY: Hi, Andy. 660 00:30:52,660 --> 00:30:53,970 >> DAVID MALAN: Andy, það er gott að sjá þig. 661 00:30:53,970 --> 00:30:54,520 Númer 3. 662 00:30:54,520 --> 00:30:55,310 >> JACOB: Jakob. 663 00:30:55,310 --> 00:30:56,760 >> DAVID MALAN: Jakob, númer 4. 664 00:30:56,760 --> 00:30:57,549 Velkomin um borð. 665 00:30:57,549 --> 00:30:58,090 GRANT: Grant. 666 00:30:58,090 --> 00:30:58,881 DAVID MALAN: Grant. 667 00:30:58,881 --> 00:31:00,348 Númer 5. 668 00:31:00,348 --> 00:31:01,200 >> Alanna: Alanna. 669 00:31:01,200 --> 00:31:02,766 >> DAVID MALAN: Alanna, númer 6. 670 00:31:02,766 --> 00:31:03,589 >> FRANCES: Frances. 671 00:31:03,589 --> 00:31:04,880 DAVID MALAN: Frances, númer 7. 672 00:31:04,880 --> 00:31:05,200 Og? 673 00:31:05,200 --> 00:31:05,830 >> RACHEL: Rachel. 674 00:31:05,830 --> 00:31:06,815 >> DAVID MALAN: Rakel, númer 8. 675 00:31:06,815 --> 00:31:07,100 Allt í lagi. 676 00:31:07,100 --> 00:31:08,766 Fara á undan og fá sjálfur í þessari röð. 677 00:31:08,766 --> 00:31:11,440 Leyfðu mér að setja einn eftir tónlist standa í stað. 678 00:31:11,440 --> 00:31:13,670 Hvar þarft þú að standa? 679 00:31:13,670 --> 00:31:14,170 OK. 680 00:31:14,170 --> 00:31:18,710 Fara á undan og bara setja númer þitt þar sem áhorfendur geta séð þá á, 681 00:31:18,710 --> 00:31:20,340 tónlistin standa frammi út á við. 682 00:31:20,340 --> 00:31:27,240 Og vonandi, fyrst okkar Sanity athuga here-- 4, 2, 6. 683 00:31:27,240 --> 00:31:27,890 Oh-ó. 684 00:31:27,890 --> 00:31:29,070 Bíddu í eina mínútu. 685 00:31:29,070 --> 00:31:31,140 Við höfum ekki í 8. 686 00:31:31,140 --> 00:31:35,180 Ég þarf til evict þig úr dæmi einhvern veginn. 687 00:31:35,180 --> 00:31:35,680 Nei 688 00:31:35,680 --> 00:31:36,940 Nei, það er allt í lagi. 689 00:31:36,940 --> 00:31:37,890 Við skulum sjá. 690 00:31:37,890 --> 00:31:38,880 Við getum gert þetta. 691 00:31:38,880 --> 00:31:39,440 Standa eftir. 692 00:31:39,440 --> 00:31:43,970 693 00:31:43,970 --> 00:31:45,740 Það sem við förum. 694 00:31:45,740 --> 00:31:46,800 Rétt. 695 00:31:46,800 --> 00:31:47,360 Allt í lagi. 696 00:31:47,360 --> 00:31:50,260 Svo nú höfum við 8, 1, 3 7, 5. 697 00:31:50,260 --> 00:31:50,760 OK. 698 00:31:50,760 --> 00:31:51,360 Excellent. 699 00:31:51,360 --> 00:31:54,400 >> Svo spurningin hendi er, á hvað kostar, og í gegnum hvaða aðferð, 700 00:31:54,400 --> 00:31:58,580 getum við raða í raun þessar tölur hér svo að við getum konar vinna aftur á bak, 701 00:31:58,580 --> 00:32:02,759 lokum, og decide-- er það í raun áhrifamikill, er það virkilega duglegur, 702 00:32:02,759 --> 00:32:04,550 að ég get skipta og sigra símaskrá? 703 00:32:04,550 --> 00:32:06,716 Er það virkilega duglegur að Ég get skipta og sigra 704 00:32:06,716 --> 00:32:08,600 þessir stafrænn stykki af pappír á borðinu, 705 00:32:08,600 --> 00:32:14,500 ef til vill það er að fara að kosta okkur a örlög í tíma eða orku eða CPU hringrás 706 00:32:14,500 --> 00:32:17,340 að í raun og veru að fá gögn okkar í sumum flokkaðs röð? 707 00:32:17,340 --> 00:32:18,930 Svo skulum spyrja þessi spurning. 708 00:32:18,930 --> 00:32:22,077 >> Svo fyrst burt, eru þessar tölur í nánast af handahófi, 709 00:32:22,077 --> 00:32:24,160 og ég ætla að leggja einn reiknirit eða ferli 710 00:32:24,160 --> 00:32:25,970 sem við getum flokkað þessum fólkinu. 711 00:32:25,970 --> 00:32:28,100 Ég ætla að nálgast þetta nokkuð naively. 712 00:32:28,100 --> 00:32:30,730 Og ég ætla að viðurkenna að það er góður af a einhver fjöldi fyrir mig 713 00:32:30,730 --> 00:32:32,890 að vefja huga minn um að heil gögnum í einu. 714 00:32:32,890 --> 00:32:33,640 En þú veist hvað? 715 00:32:33,640 --> 00:32:37,450 Ég ætla að gera nokkrar mjög einfalt lélegur fastur. 716 00:32:37,450 --> 00:32:41,152 4 og 2 eru úr röð, ef Markmiðið er að fara frá 1 á allt að 8. 717 00:32:41,152 --> 00:32:41,860 Svo þú veist hvað? 718 00:32:41,860 --> 00:32:43,776 Ég ætla að hafa þig krakkar skipti, ef þú kveikir 719 00:32:43,776 --> 00:32:46,380 líkamlega stöðu og stykki af pappír. 720 00:32:46,380 --> 00:32:47,894 Nú 4 og 6, þær eru í röð. 721 00:32:47,894 --> 00:32:49,060 Ég ætla að láta þá vera. 722 00:32:49,060 --> 00:32:50,227 6 og 8, eru þeir í röð. 723 00:32:50,227 --> 00:32:51,185 Að fara að yfirgefa þá vera. 724 00:32:51,185 --> 00:32:52,170 8 og1, út af röð. 725 00:32:52,170 --> 00:32:54,790 Ef þið viljir ekki huga að skipta. 726 00:32:54,790 --> 00:32:57,300 Nú 8 og 3, ef þú krakkar gætu skipta. 727 00:32:57,300 --> 00:32:59,320 8 og 7, ef þú krakkar gætu skipta. 728 00:32:59,320 --> 00:33:01,790 Og 8 og 5, ef þú krakkar gætu skipta. 729 00:33:01,790 --> 00:33:03,980 >> Nú er ég að gera? 730 00:33:03,980 --> 00:33:05,200 Nei, augljóslega ekki. 731 00:33:05,200 --> 00:33:07,880 En ég hef gert Ástandið betra, ekki satt? 732 00:33:07,880 --> 00:33:09,430 Hvað var nafn þitt aftur, númer 8? 733 00:33:09,430 --> 00:33:10,055 >> RACHEL: Rachel. 734 00:33:10,055 --> 00:33:12,850 DAVID MALAN: Svo hefur Rachel raun bullað upp ansi langt, 735 00:33:12,850 --> 00:33:15,660 alla leið til loka array minn tölum hér. 736 00:33:15,660 --> 00:33:17,310 Og svo að vandamálið er eins konar leyst. 737 00:33:17,310 --> 00:33:21,670 Nú, augljóslega, 2 enn þarf að færa hluti, og 4. og 6. og 1. 738 00:33:21,670 --> 00:33:24,420 En ég virðist hafa fengið að smá nær lausninni. 739 00:33:24,420 --> 00:33:26,790 Svo skulum beita þetta sama barnaleg leitandi aftur. 740 00:33:26,790 --> 00:33:27,690 2 og 4, OK. 741 00:33:27,690 --> 00:33:28,810 4 og 6, OK. 742 00:33:28,810 --> 00:33:29,930 6 og 1, mm-mm. 743 00:33:29,930 --> 00:33:32,230 Skulum skipti. 744 00:33:32,230 --> 00:33:33,200 6 og 3, mm-mm. 745 00:33:33,200 --> 00:33:34,420 Skulum skipti. 746 00:33:34,420 --> 00:33:35,580 6 og 7 er í lagi. 747 00:33:35,580 --> 00:33:36,590 7 og 5, nei. 748 00:33:36,590 --> 00:33:37,790 Skulum skipti. 749 00:33:37,790 --> 00:33:38,470 Og nú 7 og 8. 750 00:33:38,470 --> 00:33:39,862 Og hvað er nafnið þitt aftur? 751 00:33:39,862 --> 00:33:40,570 FRANCES: Frances. 752 00:33:40,570 --> 00:33:41,445 DAVID MALAN: Frances. 753 00:33:41,445 --> 00:33:44,230 Svo nú er Frances í jafnvel betri stöðu, því nú 7 og 8 754 00:33:44,230 --> 00:33:46,440 séu rétt bullað upp á toppinn. 755 00:33:46,440 --> 00:33:47,510 Svo 2 og 4, OK. 756 00:33:47,510 --> 00:33:48,720 4 og 1, skipti skulum. 757 00:33:48,720 --> 00:33:50,410 4 og 3, skipti skulum. 758 00:33:50,410 --> 00:33:51,550 4 og 6, þú ert í lagi. 759 00:33:51,550 --> 00:33:53,340 6 og 5, skipti skulum. 760 00:33:53,340 --> 00:33:54,590 Og nú þessir krakkar eru góð. 761 00:33:54,590 --> 00:33:55,780 Við erum næstum þarna. 762 00:33:55,780 --> 00:33:57,706 2 og 1, út af röð, svo skipta. 763 00:33:57,706 --> 00:33:59,080 Og nú láta mig gera geðheilsu stöðva. 764 00:33:59,080 --> 00:34:03,080 2 og 3, 3 og 4, 4 og 5, 5 og 6, 6 og 7, 8. 765 00:34:03,080 --> 00:34:05,060 Allt í lagi, þannig að við erum búin. 766 00:34:05,060 --> 00:34:09,310 >> En á hvaða kostnað gerði ég raða þessar tölur hérna? 767 00:34:09,310 --> 00:34:13,960 Jæja, hversu mörg skref gerði ég hugsanlega taka þegar flokkun þessum fólkinu? 768 00:34:13,960 --> 00:34:15,710 Jæja, munum við koma aftur við þeirri spurningu. 769 00:34:15,710 --> 00:34:18,030 En hreinskilnislega, ef þú got smá leiðindi, það er 770 00:34:18,030 --> 00:34:22,270 konar sýna, að hér var ekki kannski mest duglegur reiknirit. 771 00:34:22,270 --> 00:34:25,230 Og reyndar, hreinskilnislega, ég er sviti allt meira ganga fram og til baka. 772 00:34:25,230 --> 00:34:26,639 Það var ekki finnst sérstaklega duglegur. 773 00:34:26,639 --> 00:34:27,805 Svo skulum reyna eitthvað annað. 774 00:34:27,805 --> 00:34:31,870 Ef þú krakkar gætu endurstilla Sjálfir til þessara átta gildum. 775 00:34:31,870 --> 00:34:32,969 Gott starf. 776 00:34:32,969 --> 00:34:36,570 >> Við skulum taka a líta á stafrænt, fyrir aðeins stund áður en við reynum eitthvað annað, 777 00:34:36,570 --> 00:34:38,179 hvað bara gerðist. 778 00:34:38,179 --> 00:34:41,330 Upp hér, þú ert að fara að sjá visualization af þessum átta mönnum 779 00:34:41,330 --> 00:34:44,719 þar blár og rauður bars tákna tölur. 780 00:34:44,719 --> 00:34:46,670 The hærri sem stikan er, stærri fjölda. 781 00:34:46,670 --> 00:34:48,510 Því styttra sem bar, minni fjölda. 782 00:34:48,510 --> 00:34:51,560 Og hvað þú ert að fara að sjá er í handahófi röð meira en átta af þeim. 783 00:34:51,560 --> 00:34:55,830 Þú ert að fara að sjá þessar bars fá raðað eftir sama reiknirit, 784 00:34:55,830 --> 00:34:59,890 eða setja af leiðbeiningar, sem Við munum kalla héðan kúla tegund. 785 00:34:59,890 --> 00:35:04,000 Svo taka, hvert annað eða svo, tveir barir eru lýsing upp í rauðu, 786 00:35:04,000 --> 00:35:05,590 Verið er að bera saman við tölvuna. 787 00:35:05,590 --> 00:35:08,630 Og þá ef stór bar og litla barnum eru í ólagi, 788 00:35:08,630 --> 00:35:11,220 þau eru skipst fyrir mig. 789 00:35:11,220 --> 00:35:15,120 >> Nú er þetta ótrúlega leiðinlegur að horfa á þetta, vissulega, 790 00:35:15,120 --> 00:35:18,630 mjög lengi, en taka eftir því takeaway-- stór bars flytja til hægri, 791 00:35:18,630 --> 00:35:20,460 little barir flytja til vinstri. 792 00:35:20,460 --> 00:35:23,380 Við skulum hætta þessu ferli og flýta þessu upp 793 00:35:23,380 --> 00:35:27,330 að vera miklu hraðar, þannig að við getum fá a hár-láréttur flötur tilfinningu hvað, 794 00:35:27,330 --> 00:35:29,970 reyndar, kúla raða er að gera. 795 00:35:29,970 --> 00:35:33,150 Reyndar, það er freyðandi upp að hægri hönd hlið af listanum, 796 00:35:33,150 --> 00:35:35,260 eða fylki, stærri bars. 797 00:35:35,260 --> 00:35:40,020 Og öfugt, eru litlu barir freyðandi leið sína niður til vinstri, 798 00:35:40,020 --> 00:35:42,950 að vísu á meiri hraða en við gerðum áður. 799 00:35:42,950 --> 00:35:45,850 Svo, erfiðara að sjá með mönnum, en sjónrænt er það örugglega hvað 800 00:35:45,850 --> 00:35:46,540 var að gerast. 801 00:35:46,540 --> 00:35:49,110 >> En við skulum reyna að grundvallaratriðum mismunandi nálgun núna. 802 00:35:49,110 --> 00:35:52,387 Við skulum reyna annað reiknirit þar sem við höfum þér 803 00:35:52,387 --> 00:35:59,640 krakkar byrja í þessum upprunalega stöðu, sem var í þessari röð hér. 804 00:35:59,640 --> 00:36:00,827 Og við skulum fara á undan núna. 805 00:36:00,827 --> 00:36:02,910 Og ég ætla að gera eitthvað jafnvel einfaldari, ekki satt? 806 00:36:02,910 --> 00:36:06,710 Eftir á að hyggja, skipta pöruðum aftur og aftur, næstum smá snjall. 807 00:36:06,710 --> 00:36:10,460 Skulum gera hlutina enn meira naively, þar sem ef ég vil raða þessum fólkinu, 808 00:36:10,460 --> 00:36:12,560 láta mig halda bara að leita fyrir minnstu frumefni. 809 00:36:12,560 --> 00:36:14,570 Svo núna, 4 er minnsti fjöldi sem ég hef séð. 810 00:36:14,570 --> 00:36:15,695 Ég ætla að muna það. 811 00:36:15,695 --> 00:36:17,750 Nei, 2 er betri, og muna það. 812 00:36:17,750 --> 00:36:20,730 1 er jafnvel minni. 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 One-- hvað heitirðu aftur? 816 00:36:23,750 --> 00:36:24,400 >> Artie: Artie. 817 00:36:24,400 --> 00:36:24,610 >> DAVID MALAN: Artie. 818 00:36:24,610 --> 00:36:25,460 Svo, Artie, fara fram í tímann. 819 00:36:25,460 --> 00:36:27,043 Ég ætla að draga þig út af the lína. 820 00:36:27,043 --> 00:36:28,400 Ef þú gætir komið aftur hingað. 821 00:36:28,400 --> 00:36:30,790 Og ég þarf að búa til pláss fyrir hann. 822 00:36:30,790 --> 00:36:32,040 Við höfum ákvörðun benda hér. 823 00:36:32,040 --> 00:36:36,000 Hvernig gætum við gert pláss fyrir Artie hér í upphafi þar sem fjöldi 1 tilheyrir? 824 00:36:36,000 --> 00:36:36,770 >> Áhorfendur: Shift. 825 00:36:36,770 --> 00:36:38,950 >> DAVID MALAN: OK, við gæti skipta alla. 826 00:36:38,950 --> 00:36:40,860 En leggjum til hagræðingu. 827 00:36:40,860 --> 00:36:43,410 Það líður svolítið pirrandi fyrir mig að spyrja fjóra manns 828 00:36:43,410 --> 00:36:44,620 að færa alla leið niður. 829 00:36:44,620 --> 00:36:45,520 Hvað annað gat ég gert? 830 00:36:45,520 --> 00:36:46,360 >> Áhorfendur: Switch þá. 831 00:36:46,360 --> 00:36:46,850 >> DAVID MALAN: Switch þá. 832 00:36:46,850 --> 00:36:47,900 Og hvað er nafnið þitt aftur? 833 00:36:47,900 --> 00:36:48,441 >> JACOB: Jakob. 834 00:36:48,441 --> 00:36:50,330 DAVID MALAN: Jakob, færa. 835 00:36:50,330 --> 00:36:54,440 Mun skilvirkari bara að hafa Jacob skiptasamningar stöðum með Artie, 836 00:36:54,440 --> 00:36:56,710 öfugt við þvingunar allir fjórir af þessum fólkinu, 837 00:36:56,710 --> 00:36:58,734 þakka þér kærlega fyrir, að réttri stöðu þeirra. 838 00:36:58,734 --> 00:37:01,150 Hvað er gott um Artie núna, hann er í réttri stöðu hans. 839 00:37:01,150 --> 00:37:02,060 Við skulum gera þetta aftur. 840 00:37:02,060 --> 00:37:03,730 2, sem er minnsti fjöldi sem ég hef séð. 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 er ákveðið minnstu. 844 00:37:07,467 --> 00:37:08,550 Þarft ekki að gera allir vinna. 845 00:37:08,550 --> 00:37:09,320 Við skulum gera það aftur. 846 00:37:09,320 --> 00:37:10,070 6. 847 00:37:10,070 --> 00:37:10,640 Minnst? 848 00:37:10,640 --> 00:37:11,140 8. 849 00:37:11,140 --> 00:37:11,590 Nei. 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 Leyfðu mér að muna 4. 853 00:37:13,420 --> 00:37:13,950 3. 854 00:37:13,950 --> 00:37:15,110 Leyfðu mér að muna 3. 855 00:37:15,110 --> 00:37:16,080 7, 5. 856 00:37:16,080 --> 00:37:18,490 Minnsti fjöldi sem ég hef sést á skarðinu er 3. 857 00:37:18,490 --> 00:37:20,340 Ef þú vilt koma á út. 858 00:37:20,340 --> 00:37:21,986 Hvar erum við að fara að setja þig? 859 00:37:21,986 --> 00:37:22,860 Og hvað er nafnið þitt? 860 00:37:22,860 --> 00:37:23,530 >> Alanna: Alanna. 861 00:37:23,530 --> 00:37:25,780 >> DAVID MALAN: Alanna, erum við fara að hafa til evict þig. 862 00:37:25,780 --> 00:37:28,670 En það er fleiri duglegur, að bara skipta tvær manneskjur, 863 00:37:28,670 --> 00:37:31,850 en að hafa marga menn reyndar vikið yfir. 864 00:37:31,850 --> 00:37:32,850 Nú skulum gera þetta aftur. 865 00:37:32,850 --> 00:37:34,980 Ég ætla að velja 4, svo komdu fram. 866 00:37:34,980 --> 00:37:36,540 Og hver er að fara að flytja? 867 00:37:36,540 --> 00:37:37,750 Fjöldi 8, auðvitað. 868 00:37:37,750 --> 00:37:40,260 Ef ég finn nú númer 5, komdu út. 869 00:37:40,260 --> 00:37:42,104 Númer 8 er að fara að fá evicted aftur. 870 00:37:42,104 --> 00:37:43,770 Ég er nú að fara að finna í 6. sæti í stað. 871 00:37:43,770 --> 00:37:44,410 7 í stað. 872 00:37:44,410 --> 00:37:45,080 8 í stað. 873 00:37:45,080 --> 00:37:48,590 >> Það sem við gerðum bara núna er eitthvað sem kallast val tagi, 874 00:37:48,590 --> 00:37:52,560 og ef við sjón þessa, það er að fara að finna svolítið öðruvísi. 875 00:37:52,560 --> 00:37:56,800 Við skulum fara á undan og frá þessu matseðill hér, þetta visualization-- 876 00:37:56,800 --> 00:38:02,920 skulum breyta þessu to-- koma á, Firefox. 877 00:38:02,920 --> 00:38:07,610 Við skulum breyta þessu við val tagi. 878 00:38:07,610 --> 00:38:11,830 Og við skulum hraða það upp eins og áður, og hefja visualization núna. 879 00:38:11,830 --> 00:38:13,990 Og þetta reiknirit er mismunandi feel til það. 880 00:38:13,990 --> 00:38:16,480 Á hverjum endurtekning, hreinskilnislega, það er jafnvel meira einföld. 881 00:38:16,480 --> 00:38:18,385 Ég ætla bara að velja minnstu frumefni. 882 00:38:18,385 --> 00:38:21,510 Nú, hreinskilnislega, ég fékk smá heppin að tíma, í að það raðað frábær-fljótur. 883 00:38:21,510 --> 00:38:22,660 Þættir voru af handahófi. 884 00:38:22,660 --> 00:38:25,520 Það er ekki, eins og við munum að lokum sjá, í grundvallaratriðum hraðar. 885 00:38:25,520 --> 00:38:29,400 En við skulum sjá þriðja og síðasta nálgast hér um hvað er að gerast. 886 00:38:29,400 --> 00:38:36,230 Svo skulum fara á undan og endurstilla ykkur ein endanleg tími til að vera í þessari röð hér. 887 00:38:36,230 --> 00:38:38,450 >> Og nú, ég ætla að vera a lítill fleiri snjall, 888 00:38:38,450 --> 00:38:40,220 bara að umferð út reiknirit okkar. 889 00:38:40,220 --> 00:38:41,230 Ég ætla að gera þetta. 890 00:38:41,230 --> 00:38:43,140 Ég ætla að ekki fara fram og til baka svo mikið. 891 00:38:43,140 --> 00:38:44,900 Frankly, ég er þreyttur á allt þetta að fara yfir. 892 00:38:44,900 --> 00:38:47,691 Ég ætla bara að fara að taka það sem ég er gefið í upphafi listanum, 893 00:38:47,691 --> 00:38:49,460 og ég ætla að raða að þá og þar. 894 00:38:49,460 --> 00:38:50,140 Svo hér erum við. 895 00:38:50,140 --> 00:38:51,030 Númer 4. 896 00:38:51,030 --> 00:38:53,680 Ég ætla að setja inn númer 4 í raðað lista. 897 00:38:53,680 --> 00:38:54,180 Lokið. 898 00:38:54,180 --> 00:38:58,300 Ég krafa nú, og bara til að gera þetta meira ljóst, þessi hluti af listanum mínum er raðað. 899 00:38:58,300 --> 00:39:02,610 Það er góður af a heimskur kröfu, en örugglega 4 er raðað í lista yfir stærð einn. 900 00:39:02,610 --> 00:39:04,210 Nú er ég að fara að taka á númer 2. 901 00:39:04,210 --> 00:39:07,670 Númer 2 Ég er nú að fara til setja inn á réttum stað. 902 00:39:07,670 --> 00:39:08,680 Svo hvar 2 tilheyra? 903 00:39:08,680 --> 00:39:09,824 Vitanlega, hérna. 904 00:39:09,824 --> 00:39:11,490 Svo fara á undan og flytja aftur ef þú gætir. 905 00:39:11,490 --> 00:39:14,406 Og hví ekki að þú krakkar bara taka tónlist stendur með þér í þetta sinn. 906 00:39:14,406 --> 00:39:17,020 Og við skulum valdi setja þig í upphafi listanum. 907 00:39:17,020 --> 00:39:17,936 Svo smá meiri vinnu. 908 00:39:17,936 --> 00:39:20,890 Ég þurfti að færa Jakob kring, og hvað er nafnið þitt? 909 00:39:20,890 --> 00:39:21,420 >> Amin: Amin. 910 00:39:21,420 --> 00:39:22,270 >> DAVID MALAN: Amin. 911 00:39:22,270 --> 00:39:24,350 En að minnsta kosti ég vissi ekki að fara fram og til baka. 912 00:39:24,350 --> 00:39:25,739 Ég ætla bara að taka það sem ég fer. 913 00:39:25,739 --> 00:39:27,530 Ég ætla bara að setja þá á réttum stað. 914 00:39:27,530 --> 00:39:29,220 6, þetta er í raun frekar auðvelt. 915 00:39:29,220 --> 00:39:31,510 Skulum setja þig þarna, ef þú langaði bara að færa yfir örlítið. 916 00:39:31,510 --> 00:39:32,870 Fjöldi 8, einnig nokkuð auðvelt. 917 00:39:32,870 --> 00:39:33,741 Þarna. 918 00:39:33,741 --> 00:39:34,240 Andskotans. 919 00:39:34,240 --> 00:39:37,590 Númer 1 við getum ekki bara skipti með Amin hér, 920 00:39:37,590 --> 00:39:39,340 því það er að fara að skipta sér upp í röð. 921 00:39:39,340 --> 00:39:40,660 Þannig að við verðum að vera svolítið meira snjall. 922 00:39:40,660 --> 00:39:42,770 Svo, Artie, ef þú gætir aftur upp í smástund. 923 00:39:42,770 --> 00:39:46,550 Við skulum fara á undan og skipta nú, ólíkt fyrri reiknirit okkar, 924 00:39:46,550 --> 00:39:50,910 að gera pláss fyrir Artie hérna í upphafi. 925 00:39:50,910 --> 00:39:54,690 Svo í lok dagsins, ég er svona gera það sem ég vildi koma í veg fyrir áður. 926 00:39:54,690 --> 00:39:57,770 Og svo er reiknirit mitt raða af baka, vitsmunalega, 927 00:39:57,770 --> 00:39:59,070 frá því sem það var upphaflega. 928 00:39:59,070 --> 00:40:01,240 Ég ætla bara að gera slíkt hið breytast á sama stað. 929 00:40:01,240 --> 00:40:02,291 Nú er ég á 3. 930 00:40:02,291 --> 00:40:02,790 Ó, fjandinn. 931 00:40:02,790 --> 00:40:04,039 Við verðum að gera meiri vinnu á ný. 932 00:40:04,039 --> 00:40:05,060 Svo skulum ýta þér út. 933 00:40:05,060 --> 00:40:09,360 Við skulum færa 8, 6, 4-- ó oh-- og 3 er að fara að fara þarna. 934 00:40:09,360 --> 00:40:11,490 Svo að minnsta kosti smá sparnað í þetta sinn. 935 00:40:11,490 --> 00:40:13,100 7, ekki of mikið verk að gera. 936 00:40:13,100 --> 00:40:15,370 Svo ef þú vilt að skjóta aftur, við skulum setja þig. 937 00:40:15,370 --> 00:40:17,440 Og loks, 5, ef þú langar að skjóta aftur, sem við 938 00:40:17,440 --> 00:40:22,610 þarf að skipta þér, þér, þú, þangað til fimm er á sínum stað. 939 00:40:22,610 --> 00:40:25,670 >> Svo nú að sjá þetta á a mikil myndrænt, 940 00:40:25,670 --> 00:40:31,080 skulum gera þetta reiknirit visualization eitt meiri tíma. 941 00:40:31,080 --> 00:40:33,580 Þannig að þetta skulum við kalla insertion sort. 942 00:40:33,580 --> 00:40:37,700 Við munum keyra hana eins og hratt, og hefja það hér. 943 00:40:37,700 --> 00:40:39,580 Og það líka, hefur mismunandi tilfinningu. 944 00:40:39,580 --> 00:40:42,180 Það er tegund af að fá betri og betur, en það er aldrei fullkomin 945 00:40:42,180 --> 00:40:44,630 þangað til ég fer í og ​​slétt í þeim eyður. 946 00:40:44,630 --> 00:40:47,860 Vegna þess, aftur, ég ætla bara að taka það Ég sé gefið frá vinstri til hægri. 947 00:40:47,860 --> 00:40:50,350 Svo ég komst ekki svo heppinn að allt var fullkomið. 948 00:40:50,350 --> 00:40:54,190 Það er þess vegna sem við höfðum þetta litla mispositions sem við föst með tímanum. 949 00:40:54,190 --> 00:40:58,890 >> Svo allar þessar reiknirit virðast hlaupa á örlítið mismunandi skref. 950 00:40:58,890 --> 00:41:02,030 Í raun, sem vildi þú segja besta eða festa svo langt? 951 00:41:02,030 --> 00:41:03,450 Bubble tegund, fyrst? 952 00:41:03,450 --> 00:41:05,000 Val tagi, annað? 953 00:41:05,000 --> 00:41:08,450 Insertion sort, þriðja? 954 00:41:08,450 --> 00:41:10,710 Ég heyri sumir val konar. 955 00:41:10,710 --> 00:41:13,280 Aðrar hugsanir? 956 00:41:13,280 --> 00:41:16,880 >> Svo kemur í ljós að allar þessar reiknirit 957 00:41:16,880 --> 00:41:22,400 eru í grundvallaratriðum eins skilvirkt og hver other-- eða öfugt, rétt eins og 958 00:41:22,400 --> 00:41:25,980 óhagkvæm og hvert annað, vegna þess að við getum gert í grundvallaratriðum 959 00:41:25,980 --> 00:41:28,120 betri en allir þrír þessara reiknirit. 960 00:41:28,120 --> 00:41:29,990 Og það er dálítið af hvítri lygi líka. 961 00:41:29,990 --> 00:41:32,580 þegar ég segi eins duglegur eða eins og óhagkvæm, 962 00:41:32,580 --> 00:41:35,040 það er að minnsta kosti fyrir Super-stór gildi á n. 963 00:41:35,040 --> 00:41:38,450 Þegar við höfum bara átta manns hér, eða kannski 50 eða svo bars á skjánum, 964 00:41:38,450 --> 00:41:41,645 þú munt alveg taka mismun meðal þessara þriggja reiknirit. 965 00:41:41,645 --> 00:41:44,020 En eins og n er fjöldi fólks, eða fjölda af tölum, 966 00:41:44,020 --> 00:41:46,350 eða fjöldi fólks í símanum bók, eða fjöldi vefsíðna 967 00:41:46,350 --> 00:41:48,230 hjá Google fær stærri og stærri, 968 00:41:48,230 --> 00:41:51,650 Við munum sjá að öll þrjú af þessum reiknirit eru í raun mjög lítið. 969 00:41:51,650 --> 00:41:54,060 Og við getum gert í grundvallaratriðum betur en það. 970 00:41:54,060 --> 00:41:56,830 >> Við skulum taka a líta, að lokum, á hvað þessi reiknirit gæti 971 00:41:56,830 --> 00:41:59,520 hljóma í samhengi nokkrum öðrum 972 00:41:59,520 --> 00:42:03,550 eins vel með því að þetta visualization hér 973 00:42:03,550 --> 00:42:06,860 sem mun kynna okkur að a tala af reiknirit. 974 00:42:06,860 --> 00:42:10,330 Við skulum fara á undan og hamingju þátttakendur okkar hér, sem allir 975 00:42:10,330 --> 00:42:11,690 raðað sér mjög vel. 976 00:42:11,690 --> 00:42:15,124 Ef þú vilt taka skilnaði gjöf. 977 00:42:15,124 --> 00:42:16,540 Þú getur haldið tölur eins og heilbrigður. 978 00:42:16,540 --> 00:42:19,460 979 00:42:19,460 --> 00:42:22,520 Og það sem þú munt sjá, eða frekar heyra, nú, 980 00:42:22,520 --> 00:42:25,710 er að þegar við setja hljóð á hvert þessara börum 981 00:42:25,710 --> 00:42:28,660 og tengja það með the hugbúnaður, mismunandi tíðni hljóðs, 982 00:42:28,660 --> 00:42:33,970 þú getur sett þinn hugur meira audioly um hvað hver af þessum hlutum 983 00:42:33,970 --> 00:42:34,470 líta út. 984 00:42:34,470 --> 00:42:39,325 Fyrsta sem er insertion sort 985 00:42:39,325 --> 00:42:44,275 >> [Tónar] 986 00:42:44,275 --> 00:42:47,245 987 00:42:47,245 --> 00:42:49,720 >> Þetta er kúla tegund. 988 00:42:49,720 --> 00:42:54,175 >> [Tónar] 989 00:42:54,175 --> 00:43:17,250 990 00:43:17,250 --> 00:43:18,222 >> Val tegund. 991 00:43:18,222 --> 00:43:22,596 >> [Tónar] 992 00:43:22,596 --> 00:43:33,570 993 00:43:33,570 --> 00:43:35,150 >> Eitthvað sem kallast Mergesort. 994 00:43:35,150 --> 00:43:38,140 >> [Tónar] 995 00:43:38,140 --> 00:43:49,510 996 00:43:49,510 --> 00:43:51,278 >> Gnome tegund. 997 00:43:51,278 --> 00:43:56,390 >> [Tónar] 998 00:43:56,390 --> 00:44:08,240 999 00:44:08,240 --> 00:44:09,430 >> Það er það fyrir CS50. 1000 00:44:09,430 --> 00:44:13,360 Við munum sjá þig á miðvikudag. 1001 00:44:13,360 --> 00:44:16,671 >> Sögumaður: Og nú, "Deep Hugsun, "eftir Daven Farnham. 1002 00:44:16,671 --> 00:44:19,910 1003 00:44:19,910 --> 00:44:21,590 Hvers vegna er það for lykkju? 1004 00:44:21,590 --> 00:44:23,200 Hvers vegna ekki að gera það betra? 1005 00:44:23,200 --> 00:44:25,970 Ég myndi gera fimm lykkju. 1006 00:44:25,970 --> 00:44:28,720 >> [Hlátur]