1 00:00:00,000 --> 00:00:10,982 2 00:00:10,982 --> 00:00:11,940 DAVID Malan: All wa kulia. 3 00:00:11,940 --> 00:00:16,470 Hivyo hii ni CS50, na hii ni sasa ya kuanza kwa wiki tatu. 4 00:00:16,470 --> 00:00:19,960 >> Hivyo hadi sasa, tumekuwa wamekuwa kuandika mipango katika C 5 00:00:19,960 --> 00:00:23,210 ili kuangalia kidogo kitu kama hii hapa. 6 00:00:23,210 --> 00:00:25,470 Hivyo sisi tumepewa michache ya mkali ni pamoja na saa ya juu. 7 00:00:25,470 --> 00:00:28,490 Sisi tumepewa int, kuu, utupu, na kisha kitu cha kufanya katika katikati, 8 00:00:28,490 --> 00:00:30,590 baadhi kidogo ya code ndani ya ya kazi hiyo. 9 00:00:30,590 --> 00:00:34,170 Lakini muhimu imekuwa ukweli kwamba tumekuwa akisema utupu hapa. 10 00:00:34,170 --> 00:00:39,320 Hivyo batili, wote wa wakati huu, bayana kwamba mpango huu, wakati kukimbia, 11 00:00:39,320 --> 00:00:41,300 inaweza tu kuwa na kukimbia kupitia jina lake. 12 00:00:41,300 --> 00:00:46,330 Huwezi aina ya maneno yoyote nyingine au namba baada ya jina mpango wa wakati 13 00:00:46,330 --> 00:00:46,830 mbio ni. 14 00:00:46,830 --> 00:00:51,200 Hivyo, kwa mfano, kama mpango walikuwa compiled katika faili inayoitwa hello, 15 00:00:51,200 --> 00:00:53,480 unaweza kufanya ./hello, lakini hiyo ni yake. 16 00:00:53,480 --> 00:00:56,750 >> njia pekee ya kwamba unaweza kutoa mchango kwa mpango huu 17 00:00:56,750 --> 00:00:57,960 ni kwa kupiga kazi. 18 00:00:57,960 --> 00:00:59,790 Kwa mfano, kazi gani tumekuwa kutumia hivi sasa 19 00:00:59,790 --> 00:01:00,950 kupata pembejeo kutoka kwa mtumiaji? 20 00:01:00,950 --> 00:01:02,117 >> Watazamaji: Kupata kamba. 21 00:01:02,117 --> 00:01:04,700 DAVID Malan: Ili kupata uzi, au kupata int, au ve kuonekana wengine, 22 00:01:04,700 --> 00:01:07,630 hata kama wewe si kutumika yao bado, kama kupata muda mrefu, kwa muda mrefu na kama. 23 00:01:07,630 --> 00:01:09,380 Lakini tuseme kwamba sisi kweli unataka kuanza 24 00:01:09,380 --> 00:01:12,760 programu kuandika kwamba ni kidogo zaidi versatile, na, kusema ukweli, kidogo zaidi 25 00:01:12,760 --> 00:01:15,090 kama amri hiyo wewe wameweza wamekuwa kupata, hopefully, 26 00:01:15,090 --> 00:01:16,550 kidogo wamezoea. 27 00:01:16,550 --> 00:01:18,560 Kama cd nafasi Dropbox. 28 00:01:18,560 --> 00:01:20,800 Hii, bila shaka, mabadiliko saraka yako, kuchukua 29 00:01:20,800 --> 00:01:23,590 wewe ni katika nyumba John Harvard ya directory, kwa Dropbox folder yako. 30 00:01:23,590 --> 00:01:27,380 Wakati huo huo, amri kama hii inajenga directory mpya iitwayo pset2, 31 00:01:27,380 --> 00:01:30,290 kama unaweza kuwa na tayari au hivi karibuni kwa kuweka tatizo miwili. 32 00:01:30,290 --> 00:01:33,970 Kufanya Hello, bila shaka, ni amri ya ambayo hujenga programu inayoitwa hodi 33 00:01:33,970 --> 00:01:35,770 kutoka faili inayoitwa hodi dot c. 34 00:01:35,770 --> 00:01:39,140 Na katika kila moja ya haya kesi, sasa, tumekuwa alikuwa 35 00:01:39,140 --> 00:01:43,620 kutoa hoja juu ya kinachojulikana mstari amri, haraka blinking, 36 00:01:43,620 --> 00:01:48,540 ili kufanya anajua kujenga, na hivyo kwamba mkdir anajua folder kujenga, 37 00:01:48,540 --> 00:01:51,110 na hivyo kuwa cd anajua ambapo unataka kwenda. 38 00:01:51,110 --> 00:01:54,720 Lakini hadi sasa, sisi kuendelea kusema kwamba kuu, yako default kazi, 39 00:01:54,720 --> 00:01:58,500 ina utupu kujieleza ndani ya mabano hizo, 40 00:01:58,500 --> 00:02:01,250 ambayo ina maana kwamba hawezi kuchukua hoja yoyote. 41 00:02:01,250 --> 00:02:03,240 >> Hivyo kuanzia leo, nini tunakwenda kufanya 42 00:02:03,240 --> 00:02:06,270 yaani, sisi ni kwenda kuanza kusaidia mambo kama hayo hata. 43 00:02:06,270 --> 00:02:08,990 Kwa kweli, katika kesi hii, ambayo si kawaida manually aina, 44 00:02:08,990 --> 00:02:11,130 Kufanya amekuwa akifanya hii kwa ajili yetu, kuna si 45 00:02:11,130 --> 00:02:15,840 moja lakini moja, mbili, tatu ya ziada masharti baada ya mpango wa jina lake 46 00:02:15,840 --> 00:02:16,850 Clang. 47 00:02:16,850 --> 00:02:18,240 Hivyo ni jinsi gani sisi kufikia hili? 48 00:02:18,240 --> 00:02:20,260 >> Naam, kuanzia leo, katika kesi ambapo tunataka 49 00:02:20,260 --> 00:02:22,855 kutoa mchango kupitia kinachojulikana mstari amri, 50 00:02:22,855 --> 00:02:24,980 sisi ni kwenda kuanza kuongeza hapa nini katika yellow-- 51 00:02:24,980 --> 00:02:30,520 kuchukua nafasi ya utupu na int argc comma kamba argv bracket wazi karibu bracket. 52 00:02:30,520 --> 00:02:32,520 Sasa hii ni ya kuvutia kwa ajili ya wanandoa ya sababu. 53 00:02:32,520 --> 00:02:35,690 Moja, ni kwenda hebu kuandika mipango ya kuwa ni nguvu zaidi kidogo. 54 00:02:35,690 --> 00:02:37,570 Lakini, zaidi compellingly, ni kwenda kufungua 55 00:02:37,570 --> 00:02:40,340 sasa mazungumzo kama kwa nini arrays unaweza kweli 56 00:02:40,340 --> 00:02:43,300 kutumika, kwa kamba nini kweli ni chini ya Hood, 57 00:02:43,300 --> 00:02:47,320 mpaka wiki ijayo wakati sisi kuanza mbizi katika hata zaidi kama kwa jinsi mashine ni 58 00:02:47,320 --> 00:02:48,590 kufanya yote ya kazi hii mambo ya ajabu. 59 00:02:48,590 --> 00:02:51,920 Lakini kwa sasa, hebu kuteka, labda, picha. 60 00:02:51,920 --> 00:02:54,950 >> Wakati kuandika mpango na kuu alitangaza 61 00:02:54,950 --> 00:02:58,810 kwa njia hii, kama kwamba kuu inachukua hoja mbili, int 62 00:02:58,810 --> 00:03:03,233 and-- nini data aina Hoja ya pili ni? 63 00:03:03,233 --> 00:03:04,529 >> Watazamaji: Array. 64 00:03:04,529 --> 00:03:05,320 DAVID Malan: Array. 65 00:03:05,320 --> 00:03:09,170 Hivyo inaonekana katika mtazamo wa kwanza kama ni kamba, lakini taarifa mabano mraba. 66 00:03:09,170 --> 00:03:12,760 Kumbuka wakati wa mwisho sisi ilianzisha dhana ya safu. 67 00:03:12,760 --> 00:03:16,210 Na arrays kutumia mabano mraba katika michache ya mazingira. 68 00:03:16,210 --> 00:03:19,160 Unaweza kutumia mraba mabano na kwenda katika safu 69 00:03:19,160 --> 00:03:22,710 na kupata kipengele fulani, kama bracket 0 au bracket 1 au bracket 2. 70 00:03:22,710 --> 00:03:25,500 Lakini tuliona, kama kwa ufupi, wiki iliyopita kwamba wewe pia 71 00:03:25,500 --> 00:03:28,790 kutumia mabano haya mraba kwa kutangaza ukubwa wa safu, 72 00:03:28,790 --> 00:03:31,790 kama unajua mapema jinsi ints wengi au jinsi masharti wengi au chochote 73 00:03:31,790 --> 00:03:32,630 kweli wanataka. 74 00:03:32,630 --> 00:03:34,790 Hivyo ni zamu nje huko ya mazingira ya tatu hapa 75 00:03:34,790 --> 00:03:37,890 kwamba hana idadi ndani ya mabano mraba. 76 00:03:37,890 --> 00:03:41,920 Wakati wewe taja, kama mimi hapa, jina la kitu kama argv, 77 00:03:41,920 --> 00:03:44,550 ambayo ni njia tu ya dhana ya akisema hoja vector, ambayo 78 00:03:44,550 --> 00:03:47,750 ni njia nyingine ya dhana ya akisema safu ya hoja, 79 00:03:47,750 --> 00:03:50,870 bracket wazi karibu bracket tu ina maana kwamba huna lazima 80 00:03:50,870 --> 00:03:52,960 kujua mapema jinsi kubwa safu ni kwenda kuwa, 81 00:03:52,960 --> 00:03:55,070 lakini unajua ni kwenda kuwa safu. 82 00:03:55,070 --> 00:03:57,320 Hivyo kama wewe sijui simu wala kuweka huko, 83 00:03:57,320 --> 00:04:01,160 kwa bracket wazi karibu bracket ina maana kwamba argv ni si kamba, 84 00:04:01,160 --> 00:04:03,124 lakini safu ya masharti. 85 00:04:03,124 --> 00:04:05,040 Hivyo syntactically, kama wewe kufikiri nyuma wiki iliyopita, 86 00:04:05,040 --> 00:04:09,460 ni sawa sana na kusema kitu kama int umri bracket wazi, 87 00:04:09,460 --> 00:04:10,984 na kisha kitu baada ya hapo. 88 00:04:10,984 --> 00:04:12,150 Basi nini hii kuangalia kama? 89 00:04:12,150 --> 00:04:13,399 Hebu kweli kuchora picha. 90 00:04:13,399 --> 00:04:18,756 Hivyo wakati wewe kukimbia mpango huu na Kuu ya baada ya hoja mbili inavyoelezwa ndani ya 91 00:04:18,756 --> 00:04:21,339 ya mabano hayo, kimsingi kuwa na chunks angalau mbili 92 00:04:21,339 --> 00:04:23,560 ya kumbukumbu mitupu kwa wewe chini ya Hood. 93 00:04:23,560 --> 00:04:26,550 Moja, kama mimi itabidi huchota kama pembenne hii, ni kwenda kuitwa argc. 94 00:04:26,550 --> 00:04:30,645 Na tu kama recap ya haraka, nini ni aina data ya argc? 95 00:04:30,645 --> 00:04:31,270 Hivyo ni int. 96 00:04:31,270 --> 00:04:33,480 Hivyo idadi ni kwenda kwenda katika zamu argc-- 97 00:04:33,480 --> 00:04:35,660 nje kwamba anasimama kwa ajili hoja kuhesabu. 98 00:04:35,660 --> 00:04:38,887 Wakati huo huo, nimekuwa inayotolewa argv kama safu. 99 00:04:38,887 --> 00:04:40,970 Na mimi si kweli kujua muda gani ni kwenda kuwa, 100 00:04:40,970 --> 00:04:42,470 hivyo kwa madhumuni ya leo ya dot dot dot. 101 00:04:42,470 --> 00:04:43,636 Ni ili kupata baadhi ya urefu. 102 00:04:43,636 --> 00:04:45,640 Lakini nimekuwa pichani hapa angalau nne mistatili. 103 00:04:45,640 --> 00:04:50,970 Hivyo argv chunk ya kumbukumbu kwamba maduka kamba kamba kamba dot dot dot, 104 00:04:50,970 --> 00:04:53,950 na argc ni chunk moja tu ya kumbukumbu kwa integer. 105 00:04:53,950 --> 00:04:55,710 >> Hivyo sasa, hebu kuwa sahihi zaidi kidogo. 106 00:04:55,710 --> 00:04:59,200 Kama, wakati mimi na masharti katika safu hii, aitwaye 107 00:04:59,200 --> 00:05:03,290 argv, nataka kupata saa yao mmoja mmoja, tu kama wiki iliyopita, 108 00:05:03,290 --> 00:05:05,670 sisi ni kwenda kutumia nukuu kama argv bracket 0 109 00:05:05,670 --> 00:05:07,650 kupata Jambo la kwanza safu. 110 00:05:07,650 --> 00:05:10,440 Argv bracket 1 kwa kupata Jambo la pili, na kadhalika. 111 00:05:10,440 --> 00:05:14,597 muhimu hapa kuwa bado tuko 0 indexed-- bado tuko kuhesabu kutoka 0. 112 00:05:14,597 --> 00:05:16,430 Hivyo sasa hebu kweli kuweka kitu katika hili. 113 00:05:16,430 --> 00:05:21,670 Kama ningekuwa na mpango wa kukusanya kuitwa hodi kutoka faili inayoitwa hodi dot c, 114 00:05:21,670 --> 00:05:24,340 na kisha mimi kukimbia mpango kwamba kwa dot kufyeka hello, 115 00:05:24,340 --> 00:05:28,380 nini kompyuta yangu, mbali yangu, kuangalia kama chini ya Hood 116 00:05:28,380 --> 00:05:31,300 sasa mimi kukimbia dot kufyeka hello na hit Enter? 117 00:05:31,300 --> 00:05:33,500 Naam, hii ni labda nini tunaweza kuelezea 118 00:05:33,500 --> 00:05:37,010 kama maudhui ya kompyuta yako kumbukumbu, au RAM-- Random Access Memory. 119 00:05:37,010 --> 00:05:40,330 Kwa maneno mengine, kompyuta, kwa namna fulani kwa ajili yenu magically, 120 00:05:40,330 --> 00:05:45,360 unaweka namba 1 katika argc, AKA argcount, na unaweka literally kamba 121 00:05:45,360 --> 00:05:48,200 ./hello katika argv bracket 0. 122 00:05:48,200 --> 00:05:51,750 Mimi sijui, kusema ukweli, nini katika argv bracket 1 au 2 au 3, 123 00:05:51,750 --> 00:05:55,550 kwa sababu kama user ina si typed kitu chochote zaidi ya ./hello, 124 00:05:55,550 --> 00:05:58,550 tunakwenda kudhani kwamba haya ni zaidi uwezekano maadili ya takataka, 125 00:05:58,550 --> 00:05:59,700 hivyo kusema. 126 00:05:59,700 --> 00:06:02,650 Wale chunks ya kumbukumbu zipo, lakini siyo juu yetu 127 00:06:02,650 --> 00:06:05,710 kuangalia yao, kwa sababu argcount ni moja tu. 128 00:06:05,710 --> 00:06:07,870 >> Sasa, wakati huo huo, kama mimi kuandika kuendesha programu nyingine, 129 00:06:07,870 --> 00:06:12,250 cd, ambayo ni vizuri zaidi amri, katika prompt-- yako blinking cd nafasi 130 00:06:12,250 --> 00:06:17,200 Dropbox-- wakati mimi kukimbia kwamba, kwa hakika, wakati cd mpango ni kukimbia, argc, 131 00:06:17,200 --> 00:06:22,270 ndani ya kumbukumbu ya kompyuta yangu, ni kwa zaidi briefest pili namba 2. 132 00:06:22,270 --> 00:06:25,936 Na kisha argv bracket o ina cd, argv bracket 1 ina Dropbox, 133 00:06:25,936 --> 00:06:28,560 na kisha bila shaka amri tamati, hivyo wote wa kumbukumbu hii 134 00:06:28,560 --> 00:06:30,420 kimsingi huenda zake na ni kutumika kwa ajili ya kitu kingine. 135 00:06:30,420 --> 00:06:32,270 Na kwamba ni kwa nini nasema tu kupasuliwa pili. 136 00:06:32,270 --> 00:06:35,720 >> Wakati huo huo, kama sisi kufanya mkdir pset2, picha inaonekana karibu sawa, 137 00:06:35,720 --> 00:06:37,900 lakini kwa masharti mbalimbali ndani ya argv. 138 00:06:37,900 --> 00:06:42,570 Kama mimi kufanya Clang dash hodi hodi dot c, wazo moja. 139 00:06:42,570 --> 00:06:47,060 Zaidi stuff ni kujazwa katika kwa argv, na argc, bila shaka, ni 4. 140 00:06:47,060 --> 00:06:49,150 Hivyo kwa maneno mengine, ingawa safu hii 141 00:06:49,150 --> 00:06:52,950 dot dot inaweza kuwa dot, baadhi ya variable urefu, hivyo kusema, 142 00:06:52,950 --> 00:06:56,720 daima kujua ambapo mwisho wake ni, kwa sababu argc ni kwenda kuwaambia wewe 143 00:06:56,720 --> 00:07:00,120 katika hatua gani una kuacha kuangalia mambo katika argv. 144 00:07:00,120 --> 00:07:03,660 Unaweza tu kuangalia saa nne katika jumla katika kesi hii. 145 00:07:03,660 --> 00:07:06,600 >> Basi hebu sasa tuangalie, labda, mpango rahisi. 146 00:07:06,600 --> 00:07:09,070 Moja kwamba tu anasema hello kwa mtu kama Zamyla. 147 00:07:09,070 --> 00:07:12,620 Hivyo mimi kudai mimi nina kwenda kuandika mpango katika muda tu kupitia ambayo mimi naweza kufanya 148 00:07:12,620 --> 00:07:16,670 ./hello nafasi Zamyla, na kisha Mimi nataka mpango wangu na magazeti nje kitu 149 00:07:16,670 --> 00:07:18,520 super-rahisi kama "hello, Zamyla." 150 00:07:18,520 --> 00:07:20,100 Sasa katika siku za nyuma tumekuwa kutumika GetString. 151 00:07:20,100 --> 00:07:22,850 Hivyo katika siku za nyuma, hata kama wewe ni mpya kwa programu, 152 00:07:22,850 --> 00:07:27,180 ni tabia mbaya unaweza mjeledi juu ya mpango kwamba anatumia GetString 153 00:07:27,180 --> 00:07:29,390 na kisha anatumia printf kusema hi kwa Zamyla. 154 00:07:29,390 --> 00:07:31,290 Lakini hebu kutumia GetString wakati huu. 155 00:07:31,290 --> 00:07:37,510 Hebu badala kwenda katika Appliant na wala ni pamoja na kiwango mimi O dot h. 156 00:07:37,510 --> 00:07:41,160 Hebu pia ni pamoja na CS50 dot h. 157 00:07:41,160 --> 00:07:44,730 Sasa int kuu, na sasa mimi nina si kwenda kufanya utupu leo. 158 00:07:44,730 --> 00:07:51,200 Badala yake, mimi nina kwenda kufanya int argc kamba argv bracket wazi karibu bracket, 159 00:07:51,200 --> 00:07:52,640 si kubainisha idadi. 160 00:07:52,640 --> 00:07:54,644 Na sasa hapa ni yangu kinachojulikana kufanya. 161 00:07:54,644 --> 00:07:57,560 Nini mimi kwenda kufanya sasa ni, mimi nina kwenda kufanya kidogo ya leap ya imani, 162 00:07:57,560 --> 00:08:00,560 Mimi nina kwenda kudhani kwamba mtumiaji kwenda kutumia mpango huu kwa usahihi, 163 00:08:00,560 --> 00:08:04,980 na mimi nina tu kwenda kufanya printf hello,% sn. 164 00:08:04,980 --> 00:08:06,630 Hivyo hakuna jipya huko. 165 00:08:06,630 --> 00:08:11,470 Lakini nataka sasa kuweka chochote neno aina ya mtumiaji baada ya jina wa programu hiyo. 166 00:08:11,470 --> 00:08:16,970 Hivyo kama mimi kufanya nafasi ./hello Zamyla, mimi wanataka kwa namna fulani programmatically upatikanaji 167 00:08:16,970 --> 00:08:20,870 kunukuu unquote "Zamyla." hivyo mimi unaweza kwenda katika hoja yangu vector, 168 00:08:20,870 --> 00:08:25,980 safu yangu ya masharti, na kama amri, tena, alikuwa nafasi ./hello Zamyla, 169 00:08:25,980 --> 00:08:29,340 nini idadi kufanya mimi nataka kuweka katika argv hapa? 170 00:08:29,340 --> 00:08:29,840 Watazamaji: 1. 171 00:08:29,840 --> 00:08:32,355 DAVID Malan: 1, kwa sababu bracket 0 zinageuka 172 00:08:32,355 --> 00:08:34,230 ni kwenda kuwa jina mpango huo, kama sisi kuona. 173 00:08:34,230 --> 00:08:37,789 Hivyo bracket 1 ni neno la kwanza kwamba mimi, user, kuwa typed. 174 00:08:37,789 --> 00:08:39,559 Mimi nina kwenda mbele na kuokoa hii. 175 00:08:39,559 --> 00:08:42,830 Mimi nina kwenda katika folder yangu ambapo nimekuwa kuwekwa faili hii. 176 00:08:42,830 --> 00:08:44,920 Mimi nina kwenda kufanya kufanya hujambo 3. 177 00:08:44,920 --> 00:08:46,230 Comp IO ya OK. 178 00:08:46,230 --> 00:08:51,380 ./hello Zamyla kuingia. 179 00:08:51,380 --> 00:08:54,480 Je, mimi kufanya makosa? 180 00:08:54,480 --> 00:08:57,270 Mimi alikuwa hawakupata kwa mshangao mwenyewe kwa muda tu huko. 181 00:08:57,270 --> 00:08:58,230 Je, mimi kufanya makosa? 182 00:08:58,230 --> 00:08:59,220 >> Watazamaji: Jina. 183 00:08:59,220 --> 00:09:01,767 >> DAVID Malan: file ya kweli kuitwa hello3.c. 184 00:09:01,767 --> 00:09:03,850 Na mimi kwamba tu kwa ajili ya msimamo, kwa sababu tumekuwa 185 00:09:03,850 --> 00:09:06,550 alikuwa hello.c katika siku za nyuma katika code online. 186 00:09:06,550 --> 00:09:11,550 Basi hebu kurekebisha ./hello hii bracket dash 3 Zamyla. 187 00:09:11,550 --> 00:09:12,370 Kuingia. 188 00:09:12,370 --> 00:09:14,030 Na sasa tuna hello, Zamyla. 189 00:09:14,030 --> 00:09:17,650 Wakati huo huo, siwezi kubadili hali hii kwa kuwa Rob, au kweli neno nyingine yoyote. 190 00:09:17,650 --> 00:09:19,230 >> Lakini hebu kuzingatia kesi kona. 191 00:09:19,230 --> 00:09:24,360 Nini kinaweza unatarajia kitatokea kama Mimi si aina jina ya mtu yeyote wakati wote? 192 00:09:24,360 --> 00:09:25,270 >> Watazamaji: Error. 193 00:09:25,270 --> 00:09:27,300 >> DAVID Malan: kosa wa aina fulani, labda. 194 00:09:27,300 --> 00:09:28,200 Hebu angalia. 195 00:09:28,200 --> 00:09:29,440 Kuingia. 196 00:09:29,440 --> 00:09:30,210 Null. 197 00:09:30,210 --> 00:09:33,870 Hivyo printf ni kweli kuwa kinga kidogo ya us 198 00:09:33,870 --> 00:09:38,131 hapa, na literally uchapishaji Paren wazi null, lakini mambo hata mbaya zaidi yanaweza kutokea. 199 00:09:38,131 --> 00:09:40,130 Na tu kuonyesha kitu wewe kabisa 200 00:09:40,130 --> 00:09:42,800 haipaswi kufanya, hebu kwenda katika hapa na kuanza poking kuzunguka. 201 00:09:42,800 --> 00:09:43,300 Haki? 202 00:09:43,300 --> 00:09:46,410 Kama mimi kujua kwamba picha katika kumbukumbu ni kimsingi hii, 203 00:09:46,410 --> 00:09:52,660 argv bracket 1 ina Zamyla, argv bracket 0 ina ./hello, au ./hello-3. 204 00:09:52,660 --> 00:09:55,400 Je, ni katika bracket 2? 205 00:09:55,400 --> 00:09:58,210 Hivyo siwezi kujibu kwamba swali mwenyewe, haki? 206 00:09:58,210 --> 00:10:00,460 Siwezi kubadili tu 1 hadi 2. 207 00:10:00,460 --> 00:10:07,270 Mimi sasa wanaweza recompile hodi 3, ./hello3 Hebu zoom katika na hit Enter. 208 00:10:07,270 --> 00:10:08,270 Whoops. 209 00:10:08,270 --> 00:10:10,660 Hakuna quote alama. 210 00:10:10,660 --> 00:10:12,540 Kuvutia. 211 00:10:12,540 --> 00:10:15,530 Basi hiyo ni aina ya baridi kwa kuona nini kingine ni katika hapa. 212 00:10:15,530 --> 00:10:17,130 >> Hivyo kile kingine ni ndani ya mbali yangu? 213 00:10:17,130 --> 00:10:20,390 Hebu kuokoa ni kwa bracket 3. 214 00:10:20,390 --> 00:10:25,190 Kufanya hello3, ./hello-3. 215 00:10:25,190 --> 00:10:26,500 Curious. 216 00:10:26,500 --> 00:10:30,560 Na sasa hebu kupata kweli bold-- 50. 217 00:10:30,560 --> 00:10:34,340 Hivyo kwamba ni kweli mbizi kina ndani ya kumbukumbu ya kompyuta yangu. 218 00:10:34,340 --> 00:10:35,930 50 bahati katika. 219 00:10:35,930 --> 00:10:41,950 Hivyo kufanya hujambo 3 ./hello-3. 220 00:10:41,950 --> 00:10:42,680 Curious. 221 00:10:42,680 --> 00:10:44,660 Haki zote, sasa mimi nina tu kwenda kupata reckless. 222 00:10:44,660 --> 00:10:47,331 Hebu kwenda 5,000. 223 00:10:47,331 --> 00:10:47,830 Wote haki. 224 00:10:47,830 --> 00:10:49,520 Hivyo basi mimi recompile. 225 00:10:49,520 --> 00:10:51,460 Kufanya 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 Sasa baadhi ya wewe, kuna nguvu kuwa balbu ya mwanga kwenda mbali. 229 00:10:59,250 --> 00:11:01,900 Jinsi wengi una kuonekana ujumbe huu kabla? 230 00:11:01,900 --> 00:11:03,440 OK. 231 00:11:03,440 --> 00:11:04,420 Hivyo, kwa nini? 232 00:11:04,420 --> 00:11:07,250 >> Tabia mbaya are-- na kuna mbalimbali mambo ambayo yanaweza kusababisha hii, 233 00:11:07,250 --> 00:11:09,730 na kwa uwazi uko katika hali nzuri company-- tuna wazi 234 00:11:09,730 --> 00:11:11,900 unasababishwa kile kinachoitwa segmentation kosa. 235 00:11:11,900 --> 00:11:15,890 Na hadithi muda mfupi kwa leo, mimi mmewagusa sehemu ya kumbukumbu 236 00:11:15,890 --> 00:11:17,060 kwamba mimi unapaswa kuwa. 237 00:11:17,060 --> 00:11:19,970 Ambapo sehemu tu ina maana chunk ya kumbukumbu kwamba mimi unapaswa kuwa. 238 00:11:19,970 --> 00:11:25,530 Sasa kompyuta dhamana kwamba kama mimi kukimbia ./helloZamyla kwamba naweza kugusa argv 239 00:11:25,530 --> 00:11:27,760 kuwa bracket 0 na argv bracket 1. 240 00:11:27,760 --> 00:11:32,730 Lakini argc ni thamani 2, hiyo ina maana mimi ni tu allowed-- ni aina ya heshima 241 00:11:32,730 --> 00:11:35,180 system-- kwa kugusa bracket 0 na bracket 1. 242 00:11:35,180 --> 00:11:37,990 Kama mimi kwenda yoyote mbali zaidi, kuna kabisa kwenda kuwa kumbukumbu huko. 243 00:11:37,990 --> 00:11:40,660 RAM My ipo kimwili katika kompyuta. 244 00:11:40,660 --> 00:11:42,080 Lakini nani anajua nini huko? 245 00:11:42,080 --> 00:11:44,450 Hakika, mimi nina mbio nyingi mipango kwa wakati mmoja. 246 00:11:44,450 --> 00:11:46,910 Nipate kuwa seen-- kama ningekuwa si kufanya hili Appliant 247 00:11:46,910 --> 00:11:49,937 lakini juu ya Mac yangu au PC-- nipate kuwa kuonekana yaliyomo ya barua pepe. 248 00:11:49,937 --> 00:11:52,270 Mimi aliyoiona papo ujumbe Nimekuwa hivi karibuni alimtuma. 249 00:11:52,270 --> 00:11:55,390 Jambo lolote ambalo linaweza kuwa kuenea kote katika kumbukumbu 250 00:11:55,390 --> 00:11:59,180 wangeweza kupatikana kwa njia ya hii holela mraba bracket nukuu. 251 00:11:59,180 --> 00:12:02,850 Au, bado mbaya, unaweza kuwa na akamkuta mmoja wa nywila yangu 252 00:12:02,850 --> 00:12:05,859 kwamba ningependa hivi karibuni typed katika, kwamba programu hiyo kuhifadhiwa katika kumbukumbu hivyo kama 253 00:12:05,859 --> 00:12:07,900 kuthibitisha kwangu, na kisha tu aina ya kushoto ni 254 00:12:07,900 --> 00:12:09,910 katika RAM mpaka mimi kuacha mpango huo. 255 00:12:09,910 --> 00:12:12,860 >> Na hakika, hii ni moja ya hatari na moja nguvu 256 00:12:12,860 --> 00:12:15,980 ya kutumia lugha kama C. Unaweza kupata unfettered 257 00:12:15,980 --> 00:12:18,860 kwa yaliyomo yote ya kumbukumbu mpango huo, 258 00:12:18,860 --> 00:12:21,340 na guys nini mbaya unaweza hata kufanya katika cases-- wale 259 00:12:21,340 --> 00:12:23,807 hasa wakati sisi kupata programu ya mtandao 260 00:12:23,807 --> 00:12:26,890 kuelekea mwisho wa muhula, tutaweza kupitia upya topic-- hii ni poke kuzunguka, 261 00:12:26,890 --> 00:12:31,660 uwezekano, mtu ni ya kompyuta kumbukumbu na kupata mambo kama hayo curious 262 00:12:31,660 --> 00:12:32,570 kama tuliona huko. 263 00:12:32,570 --> 00:12:36,900 Au hata bado mbaya, nywila kwamba yeye au anaweza kisha kutumia kufanya mambo mabaya. 264 00:12:36,900 --> 00:12:40,240 >> Hivyo ni wazi mimi haipaswi kuwa kufanya hivyo, kwa sababu mambo weird kuanza kutokea. 265 00:12:40,240 --> 00:12:42,310 Hakika, huu ni mpango crashing. 266 00:12:42,310 --> 00:12:44,580 Hii itakuwa sawa ya Mac OS au Windows katika 267 00:12:44,580 --> 00:12:46,770 dirisha mpango tu kutoweka. 268 00:12:46,770 --> 00:12:48,300 hitilafu isiyotarajiwa imetokea. 269 00:12:48,300 --> 00:12:50,840 Katika amri ya mstari wa mazingira sisi kuona kitu kama hiki. 270 00:12:50,840 --> 00:12:54,480 Lakini hiyo ni kwa nini, ni mimi nina kugusa tu kumbukumbu hiyo haina mali yangu. 271 00:12:54,480 --> 00:12:57,090 >> Basi hebu kuilinda dhidi ya a hii kidogo katika njia tofauti 272 00:12:57,090 --> 00:12:59,010 kwa kuangalia mpango huu hapa. 273 00:12:59,010 --> 00:13:01,000 Hivyo, tena, mifupa kuwa tuliona earlier-- 274 00:13:01,000 --> 00:13:02,480 na nimekuwa yalionyesha hii int wakati. 275 00:13:02,480 --> 00:13:05,900 Na kuu hii muda wote ina kweli akarudi thamani. 276 00:13:05,900 --> 00:13:09,120 Hata ingawa katika zaidi ya hotuba yetu mifano tumekuwa kamwe mara moja kutumika 277 00:13:09,120 --> 00:13:10,990 kurudi kitu chochote katika kuu. 278 00:13:10,990 --> 00:13:13,710 Sisi tu kuandika printf karibu curly brace na hiyo ni yake. 279 00:13:13,710 --> 00:13:16,500 Lakini kwa ajili ya bure, nini compiler wamekuwa wakifanya kwa ajili yenu, 280 00:13:16,500 --> 00:13:19,510 kwa ufanisi, ni kurudi 0 kwa ajili yenu. 281 00:13:19,510 --> 00:13:22,950 Anarudi out-- na ni kidogo counterintuitive-- kwamba 0 ni nzuri. 282 00:13:22,950 --> 00:13:24,690 Ni haina maana uongo per se. 283 00:13:24,690 --> 00:13:29,080 0 ni nzuri, na yoyote yasiyo ya 0 thamani, dunia imeamua, 284 00:13:29,080 --> 00:13:30,619 unaweza yanamaanisha makosa. 285 00:13:30,619 --> 00:13:32,910 Hivyo kama wewe wameweza milele messed kitu juu kwenye kompyuta yako, 286 00:13:32,910 --> 00:13:36,600 au mpango ina tu alikufa wewe na wewe wameweza kujipatia baadhi dirisha makosa 287 00:13:36,600 --> 00:13:40,360 juu ya screen yako, akisema kosa hasi 49 au kosa 23-- 288 00:13:40,360 --> 00:13:44,170 baadhi value-- inaonekana holela hiyo ni kwa sababu programu ina ngumu-coded 289 00:13:44,170 --> 00:13:49,370 thamani kama hasi au chanya 49 23 kwa kuwakilisha idadi wowote, kuthubutu kusema, 290 00:13:49,370 --> 00:13:53,340 ya mambo bilioni 4 iwezekanavyo ambayo inaweza kwenda vibaya katika mpango. 291 00:13:53,340 --> 00:13:55,700 >> Hivyo jinsi gani mimi kuchukua fursa hii, mimi mwenyewe? 292 00:13:55,700 --> 00:13:58,970 Naam, napenda kufungua mpango kwamba mimi aliandika mapema, 293 00:13:58,970 --> 00:14:01,450 na poke kuzunguka online kuitwa hodi 4. 294 00:14:01,450 --> 00:14:05,650 Na ni karibu sawa, ila kwa kuwa yake got kidogo ya makosa ya kuangalia. 295 00:14:05,650 --> 00:14:09,660 Katika kesi hiyo, nimekuwa tena alitangaza kuu kama kuchukua hoja mbili, 296 00:14:09,660 --> 00:14:13,180 lakini wakati huu, juu ya mstari 17, ilani Mimi nina kufanya kidogo ya sanity hundi. 297 00:14:13,180 --> 00:14:17,100 Mimi nina kufanya kuhakikisha kwamba argc ni sawa na ni sawa na 2. 298 00:14:17,100 --> 00:14:18,960 Kwa sababu kama ni, kwamba ina maana naweza salama 299 00:14:18,960 --> 00:14:21,420 kugusa si tu bracket 0, lakini bracket 1. 300 00:14:21,420 --> 00:14:24,330 Na mimi kwenda mbele na magazeti nje, katika kesi hii, Zamyla au Rob 301 00:14:24,330 --> 00:14:26,020 au chochote neno mimi typed nje. 302 00:14:26,020 --> 00:14:28,020 Na sasa tu kupata kidogo zaidi sahihi, 303 00:14:28,020 --> 00:14:31,910 Mimi nina kwenda wazi kurudi 0 kwa ishara ya yote ni sawa. 304 00:14:31,910 --> 00:14:33,300 Hakuna kitu kibaya kilichotokea. 305 00:14:33,300 --> 00:14:38,590 >> Lakini kwa mkataba huo, mimi nina kwenda kurudi 1, au kusema ukweli yoyote yasiyo ya 0 thamani, 306 00:14:38,590 --> 00:14:40,160 kama kitu potoka. 307 00:14:40,160 --> 00:14:43,270 Sasa user si kwenda kweli taarifa ya nini kinaendelea. 308 00:14:43,270 --> 00:14:50,410 Hakika kama mimi kwenda katika saraka hii, sisi zoom katika na kufanya kufanya hujambo 4, 309 00:14:50,410 --> 00:14:54,210 ./hello-4 Zamyla kutenda kama mimi kutarajia. 310 00:14:54,210 --> 00:14:58,570 Lakini kama mimi badala si aina kitu chochote, kitu inaonekana kutokea, 311 00:14:58,570 --> 00:14:59,680 lakini haina ajali. 312 00:14:59,680 --> 00:15:04,660 Na kama mimi badala kufanya kitu kama Rob ni mwangalizi 313 00:15:04,660 --> 00:15:07,550 katika kugawana Thayer-- habari holela. 314 00:15:07,550 --> 00:15:13,680 Lakini sikia, argv 1, 2, 3, 4, na 5 lazima sasa zipo katika kumbukumbu. 315 00:15:13,680 --> 00:15:16,540 Kwamba, pia, ni nini mpango wangu anatarajia, 316 00:15:16,540 --> 00:15:20,300 kwa sababu nimekuwa checked kama argc ni sawa na sawa 2 au si. 317 00:15:20,300 --> 00:15:22,140 Hivyo mimi nina sasa kulinda dhidi ya hii. 318 00:15:22,140 --> 00:15:25,290 >> Sasa, kama kando, sisi programmer-- au tuseme sisi users-- 319 00:15:25,290 --> 00:15:29,670 kamwe kuona kwamba 0 au 1 lakini kwa kutumia chombo aitwaye Debugger, au zana nyingine, 320 00:15:29,670 --> 00:15:32,250 kama tutaweza kuona kabla ya muda mrefu, unaweza programu 321 00:15:32,250 --> 00:15:36,590 unaweza kweli kuona nini inaweza kuwa kwenda vibaya ndani ya programu yako. 322 00:15:36,590 --> 00:15:39,170 >> Hivyo, maswali yoyote juu ya argc? 323 00:15:39,170 --> 00:15:40,873 Yeah. 324 00:15:40,873 --> 00:15:45,292 >> Watazamaji: Nimeona ambapo wao si alikuwa na tabia, [inaudible] 325 00:15:45,292 --> 00:15:49,669 tu alisema string nyota d, kama tabia ya asterisk comma. 326 00:15:49,669 --> 00:15:50,710 Je, wao ni sawa hapa? 327 00:15:50,710 --> 00:15:51,626 >> DAVID Malan: Wao ni. 328 00:15:51,626 --> 00:15:55,080 Hivyo swali ni, una programu mara kwa mara kuonekana 329 00:15:55,080 --> 00:15:57,270 kama hii si kusema string argv bracket 330 00:15:57,270 --> 00:16:01,015 lakini badala yake kusema kitu kama char nyota argv bracket. 331 00:16:01,015 --> 00:16:03,140 Na kuna hata wengine variants kwamba unaweza kuona. 332 00:16:03,140 --> 00:16:04,264 Hakika hao ni sawa. 333 00:16:04,264 --> 00:16:06,240 Kwa sasa, tuna haya aina ya magurudumu mafunzo 334 00:16:06,240 --> 00:16:09,737 juu ya katika mfumo wa kamba katika CS50 maktaba, lakini katika zaidi ya wiki 335 00:16:09,737 --> 00:16:12,570 au hivyo sisi ni kwenda kuondoa kwamba kizuizi kabisa na kwa kweli 336 00:16:12,570 --> 00:16:16,820 kuangalia nini char na nyota ni, na jinsi wale zinazohusiana na kumbukumbu 337 00:16:16,820 --> 00:16:18,140 uwakilishi zaidi kwa ujumla. 338 00:16:18,140 --> 00:16:19,540 Hivyo tutaweza kuja nyuma na kwamba. 339 00:16:19,540 --> 00:16:21,540 >> Maswali mengine juu ya argv yetu au argc? 340 00:16:21,540 --> 00:16:22,397 Yeah. 341 00:16:22,397 --> 00:16:24,438 Watazamaji: Kwa nini alifanya hivyo kurudi kosa [inaudible]? 342 00:16:24,438 --> 00:16:27,147 343 00:16:27,147 --> 00:16:29,230 DAVID Malan: Kwa nini alifanya hivyo kurudi kosa only-- oh! 344 00:16:29,230 --> 00:16:31,813 Katika kesi ya awali, wakati sisi walikuwa futzing karibu na kumbukumbu, 345 00:16:31,813 --> 00:16:35,110 kwa nini alifanya hivyo tu kurudi kosa wakati mimi kwa kweli typed idadi kubwa? 346 00:16:35,110 --> 00:16:36,620 Short jibu ni, sisi tu got bahati. 347 00:16:36,620 --> 00:16:39,240 Kwa ujumla, kompyuta kutenga kumbukumbu katika chunks, 348 00:16:39,240 --> 00:16:42,900 na alinipa kubwa chunk wa kutosha kwamba I got mbali, bila ya kuwa niliona, 349 00:16:42,900 --> 00:16:46,280 ya kugusa bracket 2, bracket 3, bracket 50, lakini haraka kama mimi kusukuma 350 00:16:46,280 --> 00:16:49,080 bahati yangu, nilikwenda zaidi ya mipaka ya chunk ya kumbukumbu 351 00:16:49,080 --> 00:16:50,520 mfumo wa uendeshaji kunipa. 352 00:16:50,520 --> 00:16:52,720 Na kwamba wakati ni clamped chini na alisema, hakuna. 353 00:16:52,720 --> 00:16:54,580 Kosa segmentation. 354 00:16:54,580 --> 00:16:55,692 Yeah. 355 00:16:55,692 --> 00:16:58,890 >> Watazamaji: Ni jinsi gani kompyuta kujua thamani ya argc? 356 00:16:58,890 --> 00:17:02,390 >> DAVID Malan: Ni jinsi gani kompyuta kujua thamani ya argc? 357 00:17:02,390 --> 00:17:07,920 Wakati wewe kukimbia mpango, mpango huo, na asili ya haraka blinking, 358 00:17:07,920 --> 00:17:11,359 ni mitupu safu ya maneno kwamba walikuwa typed 359 00:17:11,359 --> 00:17:13,300 katika haraka, kwamba alikuwa typed katika haraka. 360 00:17:13,300 --> 00:17:16,569 Na hivyo ni wa uendeshaji wako mfumo wa kwamba kimsingi 361 00:17:16,569 --> 00:17:20,329 populates hoja kuu ya kwa ajili yenu. 362 00:17:20,329 --> 00:17:22,829 Hivyo hiyo ni moja ya huduma kwamba kupata, aina ya siri 363 00:17:22,829 --> 00:17:24,869 chini ya Hood ya mfumo wa uendeshaji. 364 00:17:24,869 --> 00:17:27,118 Maswali mengine? 365 00:17:27,118 --> 00:17:27,618 Yeah. 366 00:17:27,618 --> 00:17:29,787 >> Watazamaji: Je, msingi dampo maana yake nini? 367 00:17:29,787 --> 00:17:31,370 DAVID Malan: Nini msingi dampo maana yake nini? 368 00:17:31,370 --> 00:17:32,950 Hivyo hiyo ni swali zuri. 369 00:17:32,950 --> 00:17:35,312 Na napenda kurudi nyuma katika saraka hii hapa. 370 00:17:35,312 --> 00:17:37,270 Na wewe utakuwa taarifa kwamba Nina faili mpya huko. 371 00:17:37,270 --> 00:17:41,670 Ni kweli kuitwa ya msingi, na ni kweli kawaida heshima ukubwa wa file. 372 00:17:41,670 --> 00:17:45,300 Ambayo kimsingi ni snapshot ya yaliyomo ya kumbukumbu mpango wangu ya 373 00:17:45,300 --> 00:17:46,902 au RAM ilipokwama. 374 00:17:46,902 --> 00:17:49,110 Na hii itakuwa muhimu, uwezekano, diagnostically, 375 00:17:49,110 --> 00:17:52,850 mara moja sisi majadiliano katika hotuba baadaye na sehemu kuhusu debugging, 376 00:17:52,850 --> 00:17:55,730 kwa sababu unaweza kweli kufanya sawa na autopsy digital 377 00:17:55,730 --> 00:18:00,300 juu ya faili kwamba kusaidia kufikiri nini alifanya makosa katika mpango wako. 378 00:18:00,300 --> 00:18:01,220 Yeah. 379 00:18:01,220 --> 00:18:04,450 >> Watazamaji: Je, argc amri katika yenyewe, au unaweza jina hilo kitu chochote? 380 00:18:04,450 --> 00:18:05,575 >> DAVID Malan: Swali Good. 381 00:18:05,575 --> 00:18:08,040 Ni argc amri katika yenyewe, au unaweza jina hilo kitu chochote? 382 00:18:08,040 --> 00:18:09,290 Ni dhahiri si amri. 383 00:18:09,290 --> 00:18:13,500 Ni tu variable ya jina au jina hoja ya, 384 00:18:13,500 --> 00:18:15,481 na hivyo kabisa sisi angeweza kuwaita foo hii, 385 00:18:15,481 --> 00:18:18,480 tungeweza kuwaita bar hii, ambayo huwa kuwa go-kwa maneno kwamba kompyuta 386 00:18:18,480 --> 00:18:19,860 mwanasayansi huenda kwa. 387 00:18:19,860 --> 00:18:22,820 Lakini kwa mkataba, sisi kutumia argc na argv. 388 00:18:22,820 --> 00:18:25,360 Lakini hiyo ni binadamu mkataba huo, hakuna kitu zaidi. 389 00:18:25,360 --> 00:18:25,860 Wote haki. 390 00:18:25,860 --> 00:18:28,140 Hivyo zinageuka, nimekuwa kuwaambia kidogo ya lie-- nyeupe 391 00:18:28,140 --> 00:18:31,264 na kusema ukweli, katika siku zijazo, utaona tumekuwa kuwaambia nyingine nyeupe uongo. 392 00:18:31,264 --> 00:18:33,510 Lakini kwa sasa, tunakwenda peel nyuma mmoja wa haya. 393 00:18:33,510 --> 00:18:37,310 Katika kesi hiyo hapa wakati mimi hapo awali mbio mpango kama ./hello au ./hello-3 394 00:18:37,310 --> 00:18:42,780 Zamyla, tulikuwa na yaliyomo ya yangu kumbukumbu ya kompyuta kuangalia takribani kama 395 00:18:42,780 --> 00:18:43,280 huu. 396 00:18:43,280 --> 00:18:45,070 Lakini kukumbuka nini string ni. 397 00:18:45,070 --> 00:18:49,279 Nini sisi kusema wiki iliyopita nini a kamba kweli ni chini ya Hood? 398 00:18:49,279 --> 00:18:50,320 Watazamaji: Array ya chars. 399 00:18:50,320 --> 00:18:52,111 DAVID Malan: Ni safu ya chars, haki? 400 00:18:52,111 --> 00:18:55,760 Hivyo sisi tupate kuwa safu ya masharti, lakini, kwa upande wake, kamba 401 00:18:55,760 --> 00:18:57,150 ni safu ya wahusika. 402 00:18:57,150 --> 00:19:00,010 Hivyo kama mimi kwa kweli unataka kuwa anal wakati mimi kuteka picha hii, 403 00:19:00,010 --> 00:19:03,290 Mimi lazima kweli kuwa kuchora ni kidogo zaidi kama hii, 404 00:19:03,290 --> 00:19:08,000 ambapo katika kila moja ya haya bahati ya argv yangu safu, 405 00:19:08,000 --> 00:19:11,432 kuna yenyewe kamba nzima kwamba yenyewe ni katika safu. 406 00:19:11,432 --> 00:19:13,140 Na sasa uongo nyeupe sisi ni kuwaambia leo 407 00:19:13,140 --> 00:19:15,181 ni kwamba picha haina kuangalia kabisa kama hii. 408 00:19:15,181 --> 00:19:19,110 Kwa kweli, viwanja kidogo ni kawaida nje ya rectangles kubwa 409 00:19:19,110 --> 00:19:19,610 huko. 410 00:19:19,610 --> 00:19:21,280 Lakini tutaweza kuja nyuma na kwamba kabla ya muda mrefu. 411 00:19:21,280 --> 00:19:25,440 Lakini hii ni ./hello backslash 0, kwamba kuwa tabia maalum kwamba 412 00:19:25,440 --> 00:19:28,310 demarcates mwisho wa kamba, na sisi tumepewa mwingine moja baada ya 413 00:19:28,310 --> 00:19:29,360 Jina Zamyla ya. 414 00:19:29,360 --> 00:19:30,900 Hivyo hii ina maana gani? 415 00:19:30,900 --> 00:19:33,410 >> Naam, napenda kwenda mbele na kufungua mifano mingine miwili 416 00:19:33,410 --> 00:19:35,220 ambayo inapatikana online. 417 00:19:35,220 --> 00:19:40,590 Moja inaitwa argv1.c na nyingine ni argv2. 418 00:19:40,590 --> 00:19:44,260 Ni mpango super-rahisi kwamba ni tofauti na mipango ya siku za nyuma 419 00:19:44,260 --> 00:19:47,260 kwa kuwa sasa mimi nina kutumia argc na argv up hapa. 420 00:19:47,260 --> 00:19:54,300 Na sasa mimi nina kuunganisha na kwa kitanzi katika line 18, kutoka i = 0 hadi kwenye argc. 421 00:19:54,300 --> 00:19:56,850 Na je, Mimi kwenda kufanya na line hii ya maadili ya hapa? 422 00:19:56,850 --> 00:19:58,270 Katika lugha ya Kiingereza. 423 00:19:58,270 --> 00:20:00,510 Hii ni wazi inaonyesha matumizi ya argc. 424 00:20:00,510 --> 00:20:03,670 Lakini katika lugha ya Kiingereza, nini ni nini kama mimi kukimbia mpango huu? 425 00:20:03,670 --> 00:20:04,366 Yeah? 426 00:20:04,366 --> 00:20:07,386 >> Watazamaji: Ni kwenda magazeti yako screen mara nyingi kama unataka. 427 00:20:07,386 --> 00:20:08,260 DAVID Malan: Hasa. 428 00:20:08,260 --> 00:20:10,480 Hivyo maneno chochote mimi aina katika haraka, ni 429 00:20:10,480 --> 00:20:13,120 kwenda regurgitate yao saa yangu moja kwa kila mstari. 430 00:20:13,120 --> 00:20:14,370 Basi hebu kwenda mbele na kufanya hili. 431 00:20:14,370 --> 00:20:17,862 Hebu kwenda katika saraka yangu na kufanya kufanya argv1 ./argv1. 432 00:20:17,862 --> 00:20:20,521 433 00:20:20,521 --> 00:20:21,770 Na sasa, hebu kushika ni rahisi. 434 00:20:21,770 --> 00:20:23,834 Hebu kufanya kitu kwa mara ya kwanza. 435 00:20:23,834 --> 00:20:26,750 Ni alifanya magazeti nje jambo moja, na hiyo ni kweli jina la mpango, 436 00:20:26,750 --> 00:20:28,240 kwa sababu hiyo ni katika bracket 0. 437 00:20:28,240 --> 00:20:33,290 Kama mimi sasa kusema foo, ni kwenda kufanya hizo mbili, na kama mimi kusema foo bar, 438 00:20:33,290 --> 00:20:35,580 ni kwenda kusema mambo hayo matatu. 439 00:20:35,580 --> 00:20:37,740 Sasa hiyo ni kiasi fulani ya kuvutia, labda. 440 00:20:37,740 --> 00:20:41,450 Lakini kukumbuka kwamba argv ni safu ya masharti, 441 00:20:41,450 --> 00:20:45,960 lakini kamba ni safu ya chars, ili tuweze kuchukua mambo up notch 442 00:20:45,960 --> 00:20:48,560 na kuomba kwamba msingi mantiki na kufanya kificho kwamba 443 00:20:48,560 --> 00:20:51,160 inaonekana cryptic kidogo zaidi, admittedly. 444 00:20:51,160 --> 00:20:53,540 Lakini kwa kuwa nested kitanzi, kitu sawa 445 00:20:53,540 --> 00:20:57,030 kwa nini unaweza kukumbuka kutoka Mario, kwa mfano, kama wewe alifanya hivyo kwa njia hii. 446 00:20:57,030 --> 00:21:00,380 >> Hivyo sasa taarifa juu ya mstari 19, mimi nina tena iterating juu ya hoja yangu, 447 00:21:00,380 --> 00:21:02,410 kutoka 0 hadi kwenye argc. 448 00:21:02,410 --> 00:21:05,510 Na sasa katika line 21-- mimi nina kukopa hila kutoka mwisho week-- 449 00:21:05,510 --> 00:21:11,090 Mimi kuangalia nini ni urefu wa argv bracket i. 450 00:21:11,090 --> 00:21:12,920 Mimi nina kuhifadhi kwamba jibu katika n. 451 00:21:12,920 --> 00:21:18,230 Na kisha mimi nina kuunganisha kutoka j juu ya hadi n, ambapo j ni initialized kwa 0. 452 00:21:18,230 --> 00:21:19,460 Hivyo, mkataba kwa ajili ya kuhesabu kura. 453 00:21:19,460 --> 00:21:22,335 Mara ve kutumika i, kama una nested kitanzi, huwezi kutumia i tena, 454 00:21:22,335 --> 00:21:25,770 vinginevyo itabidi clobber, uwezekano, thamani nje ya kitanzi ndani. 455 00:21:25,770 --> 00:21:27,200 Hivyo mimi nina kutumia j na mkataba. 456 00:21:27,200 --> 00:21:28,020 Tunaweza kutumia k. 457 00:21:28,020 --> 00:21:31,080 Kama una zaidi ya k, pengine na nesting sana, kawaida. 458 00:21:31,080 --> 00:21:33,800 Lakini sasa, taarifa printf yangu line ni tofauti kidogo. 459 00:21:33,800 --> 00:21:37,520 Mimi si uchapishaji% s, mimi nina uchapishaji% c, ambayo, bila shaka, 460 00:21:37,520 --> 00:21:39,460 ni placeholder kwa char. 461 00:21:39,460 --> 00:21:40,770 >> Na sasa taarifa hii syntax. 462 00:21:40,770 --> 00:21:41,270 New. 463 00:21:41,270 --> 00:21:42,630 Hatujaona kabla. 464 00:21:42,630 --> 00:21:47,290 Lakini mantiki, hii ina maana tu kupata string ith katika argv 465 00:21:47,290 --> 00:21:50,067 na kupata jth nini? 466 00:21:50,067 --> 00:21:50,900 Watazamaji: Tabia. 467 00:21:50,900 --> 00:21:52,800 DAVID Malan: Tabia katika kamba hiyo. 468 00:21:52,800 --> 00:21:57,100 Hivyo kwa kutumia mabano mraba ikifuatiwa na mabano mraba, 469 00:21:57,100 --> 00:22:00,390 hii ni mbizi kwanza ndani ya masharti argv ya, 470 00:22:00,390 --> 00:22:02,225 na kisha ya pili mabano mraba na j 471 00:22:02,225 --> 00:22:06,580 ni mbizi ndani ya wahusika wa kwamba string hasa katika argv. 472 00:22:06,580 --> 00:22:09,562 Na kisha, tu kwa ajili ya hatua nzuri, Mimi nina uchapishaji line mpya hapa. 473 00:22:09,562 --> 00:22:12,020 Hivyo sasa napenda kwenda mbele na kufungua up window kidogo kubwa 474 00:22:12,020 --> 00:22:13,600 ili tuweze kuona hii katika action. 475 00:22:13,600 --> 00:22:15,700 Hebu kwenda katika kwamba folder. 476 00:22:15,700 --> 00:22:22,550 Na sasa kufanya kufanya argv-2-- whoops-- kufanya argv-2, ./argv 2. 477 00:22:22,550 --> 00:22:23,110 Kuingia. 478 00:22:23,110 --> 00:22:24,860 Na ni vigumu kidogo kusoma wima, 479 00:22:24,860 --> 00:22:27,920 lakini hiyo ni kweli jina la mpango, ikifuatiwa na line tupu. 480 00:22:27,920 --> 00:22:30,210 Sasa basi mimi kwenda mbele na kufanya foo. 481 00:22:30,210 --> 00:22:33,210 Vile vile vigumu kusoma, lakini ni kweli uchapishaji tabia ya moja kwa kila mstari. 482 00:22:33,210 --> 00:22:36,780 Na kama mimi kufanya bar, ni sasa uchapishaji wale mstari kwa mstari. 483 00:22:36,780 --> 00:22:40,140 Hivyo takeaway hapa ni sio sana kwamba, wow, kuangalia nadhifu mpya hila hii 484 00:22:40,140 --> 00:22:44,750 ambapo unaweza kupata yaliyomo ya wahusika safu ya maalum, 485 00:22:44,750 --> 00:22:48,380 lakini badala ya jinsi sisi ni kuchukua hizi za msingi mawazo kama Indexing katika safu, 486 00:22:48,380 --> 00:22:51,620 na kisha Indexing katika safu kwamba alikuwa katika safu, 487 00:22:51,620 --> 00:22:56,180 na tu kutumia mawazo sawa kwa mifano kidogo kisasa zaidi. 488 00:22:56,180 --> 00:22:59,560 Lakini misingi kweli kuwa si iliyopita, hata tangu wiki iliyopita. 489 00:22:59,560 --> 00:23:02,350 >> Sasa hii ni aina ya wakati, kwa kuwa, kukumbuka, katika wiki zero 490 00:23:02,350 --> 00:23:04,110 sisi alicheza na kitabu cha simu kama hii. 491 00:23:04,110 --> 00:23:06,670 Na hata kama hii ni wazi vipande ya kimwili ya karatasi, 492 00:23:06,670 --> 00:23:09,150 unaweza aina ya kufikiria kitabu cha simu kama safu. 493 00:23:09,150 --> 00:23:12,770 Hakika, kama ungekuwa na reimplement hii vipande vipande hayo ya karatasi 494 00:23:12,770 --> 00:23:15,260 katika kompyuta, pengine ungependa kutumia kitu 495 00:23:15,260 --> 00:23:20,270 kama safu ya kuhifadhi wote wa wale majina na namba kutoka njia yote 496 00:23:20,270 --> 00:23:23,800 kupitia Z. Hivyo hii ni nzuri, kwa sababu inaruhusu sisi nafasi, 497 00:23:23,800 --> 00:23:28,310 labda, kwa kuzingatia jinsi nguvu kweli kutekeleza kitu kama hicho. 498 00:23:28,310 --> 00:23:31,250 Kama ilivyo kwa mfululizo wa milango hapa. 499 00:23:31,250 --> 00:23:36,380 Hivyo kama mimi could-- tunahitaji moja kujitolea kuja juu ya up. 500 00:23:36,380 --> 00:23:36,980 Hebu angalia. 501 00:23:36,980 --> 00:23:40,650 uso usio wa kawaida labda, unfamiliar uso labda. 502 00:23:40,650 --> 00:23:42,090 Vipi kuhusu katika machungwa? 503 00:23:42,090 --> 00:23:42,680 Hapa. 504 00:23:42,680 --> 00:23:45,870 Orange shati, kuja juu up. 505 00:23:45,870 --> 00:23:52,230 >> Hebu kwenda mbele sasa na hoja milango haya juu kwa upande wa, 506 00:23:52,230 --> 00:23:54,020 hoja hizi nje ya njia kwa muda. 507 00:23:54,020 --> 00:23:56,600 508 00:23:56,600 --> 00:23:57,760 Nini jina lako? 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 Daudi. 512 00:23:58,680 --> 00:23:59,451 Nice kukutana na wewe. 513 00:23:59,451 --> 00:23:59,950 Wote haki. 514 00:23:59,950 --> 00:24:04,500 Hivyo tuna nyuma ya haya sita milango digital juu ya screen-- 515 00:24:04,500 --> 00:24:07,810 au, badala, milango saba juu ya screen-- rundo zima wa idadi. 516 00:24:07,810 --> 00:24:10,099 Na nimekuwa aliiambia chochote katika advance-- walikubaliana? 517 00:24:10,099 --> 00:24:11,140 Ajay: Hakuna mapema. 518 00:24:11,140 --> 00:24:14,730 DAVID Malan: All Mimi nataka wewe kufanya sasa ni kupata kwa ajili yangu, na kwa ajili yetu, 519 00:24:14,730 --> 00:24:20,920 kweli, idadi 50, hatua moja kwa wakati mmoja. 520 00:24:20,920 --> 00:24:21,830 >> Ajay: Idadi 50? 521 00:24:21,830 --> 00:24:22,580 >> DAVID Malan: idadi 50. 522 00:24:22,580 --> 00:24:24,746 Na unaweza yatangaza nini nyuma ya kila mmoja milango hizi 523 00:24:24,746 --> 00:24:27,930 tu kwa kugusa kwa kidole. 524 00:24:27,930 --> 00:24:31,364 Damn yake. [Kicheko] 525 00:24:31,364 --> 00:24:34,560 >> [Makofi] 526 00:24:34,560 --> 00:24:39,540 >> Vizuri sana kufanyika. 527 00:24:39,540 --> 00:24:40,400 OK. 528 00:24:40,400 --> 00:24:44,090 Tuna zawadi lovely tuzo kwa ajili yenu hapa. 529 00:24:44,090 --> 00:24:46,520 Pick yako ya sinema sisi kujadiliwa wiki iliyopita. 530 00:24:46,520 --> 00:24:47,362 >> Ajay: Oh, mtu. 531 00:24:47,362 --> 00:24:49,050 Oh, sijawahi kuona Spaceballs. 532 00:24:49,050 --> 00:24:49,520 >> DAVID Malan: Spaceballs. 533 00:24:49,520 --> 00:24:50,140 Wote haki. 534 00:24:50,140 --> 00:24:53,790 Hivyo kushikilia juu ya wakati mmoja tu. 535 00:24:53,790 --> 00:24:57,430 How-- hebu kufanya hili moment-- kufundishika 536 00:24:57,430 --> 00:25:00,412 jinsi gani unaweza kwenda juu ya kutafuta idadi 50? 537 00:25:00,412 --> 00:25:01,370 Ajay: Nilichagua nasibu. 538 00:25:01,370 --> 00:25:03,420 DAVID Malan: Hivyo wewe alichagua nasibu na got bahati. 539 00:25:03,420 --> 00:25:03,790 Ajay: Ndiyo. 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 Hivyo sasa, alikuwa na wewe si waliopata bahati, kile kingine 543 00:25:08,470 --> 00:25:10,210 anaweza kuwa kilichotokea nyuma ya milango haya? 544 00:25:10,210 --> 00:25:12,930 Hivyo kama mimi kwenda mbele na yatangaza namba hizi hapa, 545 00:25:12,930 --> 00:25:15,180 wao kweli ni ili random. 546 00:25:15,180 --> 00:25:17,750 Na bora unaweza kuwa na kufanyika, kusema ukweli, ni na, hatimaye, 547 00:25:17,750 --> 00:25:19,410 katika hali mbaya zaidi, kuangalia yao yote. 548 00:25:19,410 --> 00:25:23,000 Hivyo wewe got super-bahati, ambayo ni nini tunatarajia kuwaita algorithm. 549 00:25:23,000 --> 00:25:24,730 Ndiyo, Congrats. 550 00:25:24,730 --> 00:25:27,010 Lakini sasa let's-- ucheshi na mimi, kama unaweza. 551 00:25:27,010 --> 00:25:28,310 Hebu kwenda tab hii hapa. 552 00:25:28,310 --> 00:25:31,460 Na hapa ni namba katika wazi kile inaonekana kuwa ili random, 553 00:25:31,460 --> 00:25:32,280 na hao. 554 00:25:32,280 --> 00:25:35,160 Lakini sasa kama mimi badala ya kudai kwamba nyuma ya milango haya 555 00:25:35,160 --> 00:25:39,070 ni idadi ya kwamba ni vyema. 556 00:25:39,070 --> 00:25:41,780 lengo ni sasa pia kupata yetu ya simu 50. 557 00:25:41,780 --> 00:25:45,910 Lakini kufanya hivyo algorithmically, na kutuambia jinsi wewe ni kwenda juu yake. 558 00:25:45,910 --> 00:25:48,020 Na kama wewe kupata hiyo, wewe kushika movie. 559 00:25:48,020 --> 00:25:49,520 Huwezi kupata hiyo, wewe kuwapa nyuma. 560 00:25:49,520 --> 00:25:52,720 561 00:25:52,720 --> 00:25:58,112 Ajay: Hivyo mimi nina kwenda kuangalia ncha kwanza, ili kuamua kama there's-- 562 00:25:58,112 --> 00:26:02,048 [Kicheko na makofi] 563 00:26:02,048 --> 00:26:04,451 564 00:26:04,451 --> 00:26:05,492 DAVID Malan: Hapa kwenda. 565 00:26:05,492 --> 00:26:17,080 566 00:26:17,080 --> 00:26:21,700 Hebu tuangalie moja ya watangulizi Ajay ya, 567 00:26:21,700 --> 00:26:25,450 Sean, ambaye alikuwa si kabisa kama bahati. 568 00:26:25,450 --> 00:26:28,670 OK, hivyo kazi yako hapa, Sean, ni yafuatayo. 569 00:26:28,670 --> 00:26:32,970 Mimi siri nyuma ya haya milango namba saba, 570 00:26:32,970 --> 00:26:37,200 lakini zilizowekwa katika baadhi ya milango hiyo kama vizuri ni mengine namba mashirika yasiyo ya hasi. 571 00:26:37,200 --> 00:26:40,730 Na lengo lako ni kufikiri ya hii juu ya mstari wa namba kama tu safu. 572 00:26:40,730 --> 00:26:43,590 Sisi ni tu mlolongo wa vipande ya karatasi na namba nyuma yao. 573 00:26:43,590 --> 00:26:47,640 Na lengo lako ni, tu kutumia juu safu hapa, kupata mimi namba saba. 574 00:26:47,640 --> 00:26:51,200 Na sisi ni kisha kwenda kukosoa jinsi ya kwenda juu ya kufanya hivyo. 575 00:26:51,200 --> 00:26:52,920 Kupata sisi namba saba, tafadhali. 576 00:26:52,920 --> 00:27:02,570 577 00:27:02,570 --> 00:27:03,070 Hapana 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 Siyo swali hila. 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 Katika hatua hii ya alama yako ni si sana nzuri, hivyo unaweza pia kuendelea. 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 Kwenda juu. 590 00:27:39,802 --> 00:27:42,510 Kwa kweli, siwezi kusaidia lakini ajabu nini wewe hata kufikiria juu ya. 591 00:27:42,510 --> 00:27:44,990 >> SEAN: Siwezi kuchukua kutoka tu safu ya juu. 592 00:27:44,990 --> 00:27:46,240 DAVID Malan: Ni safu ya juu. 593 00:27:46,240 --> 00:27:47,281 Basi nimepata tatu kushoto. 594 00:27:47,281 --> 00:27:48,310 Hivyo kupata me 7. 595 00:27:48,310 --> 00:27:54,758 596 00:27:54,758 --> 00:27:59,141 >> [Watazamaji shouts MAPENDEKEZO] 597 00:27:59,141 --> 00:28:22,210 598 00:28:22,210 --> 00:28:26,130 Hivyo wote wawili wa wale walikuwa ajabu kwa sababu tofauti sana. 599 00:28:26,130 --> 00:28:29,150 Hivyo hii ni mahali ambapo sisi kushoto mbali wakati iliyopita, 600 00:28:29,150 --> 00:28:32,530 na ufahamu muhimu hapa mara milango hizi walikuwa na idadi 601 00:28:32,530 --> 00:28:37,390 nyuma yao kwamba walikuwa Iliyopangwa, bora takeaway kwa ajili ya ambayo ni kwamba unaweza kufanya 602 00:28:37,390 --> 00:28:39,670 kimsingi bora katika example-- hii ya pili 603 00:28:39,670 --> 00:28:42,380 na kwa kweli, kwamba alikuwa Sean ya jaribio la kwanza na idadi random 604 00:28:42,380 --> 00:28:45,460 tu kama kabla, lakini kama hivi karibuni kama namba hizi ni sorted, 605 00:28:45,460 --> 00:28:47,980 kiasi kama kitabu cha simu, nini unaweza wazi nini? 606 00:28:47,980 --> 00:28:50,090 Au jinsi gani unaweza kujiinua maarifa kwamba? 607 00:28:50,090 --> 00:28:51,530 Yeah. 608 00:28:51,530 --> 00:28:54,910 >> Watazamaji: Unaweza kwenda nusu [inaudible]. 609 00:28:54,910 --> 00:28:55,660 DAVID Malan: Yeah. 610 00:28:55,660 --> 00:28:56,160 Hasa. 611 00:28:56,160 --> 00:28:59,680 Hivyo Ajay ya silika ya awali ilikuwa kuangalia mwisho, kama mimi kukumbuka, 612 00:28:59,680 --> 00:29:02,320 na kisha sisi aina ya kumaliza mfano haraka. 613 00:29:02,320 --> 00:29:05,220 Lakini kama sisi kuanza kufanya hii zaidi methodically pamoja na mistari hizo, 614 00:29:05,220 --> 00:29:07,860 lakini kuanzia labda katika katikati, kwa sababu wao ni sorted, 615 00:29:07,860 --> 00:29:10,900 haraka kama sisi yatangaza namba 16, sisi hiyo know-- 616 00:29:10,900 --> 00:29:14,850 na hebu kufanya hasa that-- sisi kwa hiyo tunajua kwamba 50, katika kesi ya leo, 617 00:29:14,850 --> 00:29:16,080 ina got kuwa na haki. 618 00:29:16,080 --> 00:29:18,735 Hivyo tu kama katika wiki sifuri wakati sisi akararua kitabu cha simu katika nusu 619 00:29:18,735 --> 00:29:21,490 na kurusha nusu ya tatizo mbali, sawa wazo hapa. 620 00:29:21,490 --> 00:29:23,680 Tunaweza kutupa nusu hii ya tatizo mbali. 621 00:29:23,680 --> 00:29:25,730 Na pengine nini anaweza kufanya algorithmically, 622 00:29:25,730 --> 00:29:28,710 mara moja unajua kwamba 50 lazima na haki, ikiwa ni mahali popote, 623 00:29:28,710 --> 00:29:31,390 ni kujaribu huko, katikati ya milango iliyobaki. 624 00:29:31,390 --> 00:29:33,450 Bila shaka, 50 ni ya juu ya 42, ili tuweze 625 00:29:33,450 --> 00:29:36,060 kutupa hii iliyobaki robo ya tatizo mbali, 626 00:29:36,060 --> 00:29:38,510 na, hatimaye, kutambua kitu kama 50. 627 00:29:38,510 --> 00:29:41,050 Lakini tu kama kwa kitabu cha simu, namba hizi 628 00:29:41,050 --> 00:29:44,560 walipewa kwetu tayari katika ili sorted, ambayo majani us 629 00:29:44,560 --> 00:29:47,450 na swali, jinsi ya kufanya wewe kupata mambo katika namna ili? 630 00:29:47,450 --> 00:29:49,640 Na, kusema ukweli, kwa nini gharama? 631 00:29:49,640 --> 00:29:51,390 Ni jambo moja kuwa mitupu kitabu cha simu 632 00:29:51,390 --> 00:29:54,810 na kisha kumvutia rafiki yako kwa kutafuta namba ya simu kweli haraka, haki? 633 00:29:54,810 --> 00:29:58,520 Akamtikisatikisa kurasa 32 nje ya kupata mtu nje ya kurasa bilioni 4, 634 00:29:58,520 --> 00:30:00,470 sisi alisema alikuwa mfano mmoja uliokithiri. 635 00:30:00,470 --> 00:30:03,320 Lakini ni kiasi gani wakati alifanya hivyo kuchukua Verizon kutatua kwamba kitabu cha simu? 636 00:30:03,320 --> 00:30:06,170 Muda kiasi gani alifanya hivyo kuchukua us kutatua namba hizi saba? 637 00:30:06,170 --> 00:30:10,110 Hilo ni swali kwamba tumekuwa hivi sasa kupuuzwa kabisa. 638 00:30:10,110 --> 00:30:12,330 >> Basi hebu kujibu swali hili sasa. 639 00:30:12,330 --> 00:30:15,920 Na sisi ni wote nje ya sinema sasa, lakini sisi kufanya kuwa na baadhi ya mipira stress. 640 00:30:15,920 --> 00:30:19,480 Kama, kusema, kujitolea nane bila akili kujiunga na sisi hapa? 641 00:30:19,480 --> 00:30:24,100 Hebu kwenda mbele na kufanya, vipi kuhusu nne ya wewe, tatu ya hapa? 642 00:30:24,100 --> 00:30:25,290 Kupata baadhi ya nyuso mpya. 643 00:30:25,290 --> 00:30:27,220 Na nne ya wewe huko? 644 00:30:27,220 --> 00:30:30,760 Na now-- hebu si upendeleo here-- na namba nane juu ya hapa ya mwisho. 645 00:30:30,760 --> 00:30:32,060 Kuja juu juu. 646 00:30:32,060 --> 00:30:32,560 Wote haki. 647 00:30:32,560 --> 00:30:37,480 Hivyo nini sisi hapa kwa kila mmoja wenu ni idadi. 648 00:30:37,480 --> 00:30:40,055 Kama Ningependa kwenda mbele, kuchukua idadi hii. 649 00:30:40,055 --> 00:30:40,763 Nini jina lako? 650 00:30:40,763 --> 00:30:41,950 >> Artie: Artie. 651 00:30:41,950 --> 00:30:43,100 >> DAVID Malan: Artie, okay. 652 00:30:43,100 --> 00:30:44,297 Wewe ni namba 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 Daudi. 656 00:30:46,820 --> 00:30:47,530 Wewe ni namba 2. 657 00:30:47,530 --> 00:30:49,100 Na kwenda mbele, kama mimi mkono wewe kipande cha karatasi, 658 00:30:49,100 --> 00:30:52,130 mstari wenyewe up mbele ya muziki anasimama katika utaratibu huo kama up huko. 659 00:30:52,130 --> 00:30:52,660 >> ANDY: Hi, Andy. 660 00:30:52,660 --> 00:30:53,970 >> DAVID Malan: Andy, ni nzuri ya kuona wewe. 661 00:30:53,970 --> 00:30:54,520 Namba 3. 662 00:30:54,520 --> 00:30:55,310 >> JACOB: Jacob. 663 00:30:55,310 --> 00:30:56,760 >> DAVID Malan: Jacob, namba 4. 664 00:30:56,760 --> 00:30:57,549 Karibu ndani. 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 Namba 5. 668 00:31:00,348 --> 00:31:01,200 >> Alanna: Alanna. 669 00:31:01,200 --> 00:31:02,766 >> DAVID Malan: Alanna, namba 6. 670 00:31:02,766 --> 00:31:03,589 >> FRANCES: Frances. 671 00:31:03,589 --> 00:31:04,880 DAVID Malan: Frances, namba 7. 672 00:31:04,880 --> 00:31:05,200 Na? 673 00:31:05,200 --> 00:31:05,830 >> RACHEL: Rachel. 674 00:31:05,830 --> 00:31:06,815 >> DAVID Malan: Rachel, idadi 8. 675 00:31:06,815 --> 00:31:07,100 Wote haki. 676 00:31:07,100 --> 00:31:08,766 Kwenda mbele na kupata mwenyewe katika utaratibu huu. 677 00:31:08,766 --> 00:31:11,440 Napenda kuweka moja iliyobaki muziki kusimama katika nafasi. 678 00:31:11,440 --> 00:31:13,670 Ambapo unahitaji kusimama? 679 00:31:13,670 --> 00:31:14,170 OK. 680 00:31:14,170 --> 00:31:18,710 Kwenda mbele na tu ya kuweka namba yako ambapo watazamaji unaweza kuona yao, 681 00:31:18,710 --> 00:31:20,340 muziki niangalie nje. 682 00:31:20,340 --> 00:31:27,240 Na hopefully, yetu ya kwanza sanity hundi here-- 4, 2, 6. 683 00:31:27,240 --> 00:31:27,890 Oh-oh. 684 00:31:27,890 --> 00:31:29,070 Kusubiri dakika. 685 00:31:29,070 --> 00:31:31,140 Hatuna 8. 686 00:31:31,140 --> 00:31:35,180 Mimi haja ya kuwaondoa katika mfano kwa namna fulani. 687 00:31:35,180 --> 00:31:35,680 Hapana 688 00:31:35,680 --> 00:31:36,940 Hapana, hiyo ni sawa. 689 00:31:36,940 --> 00:31:37,890 Hebu angalia. 690 00:31:37,890 --> 00:31:38,880 Tunaweza kufanya hivyo. 691 00:31:38,880 --> 00:31:39,440 Kusimama kwa. 692 00:31:39,440 --> 00:31:43,970 693 00:31:43,970 --> 00:31:45,740 Kuna sisi kwenda. 694 00:31:45,740 --> 00:31:46,800 Sahihi. 695 00:31:46,800 --> 00:31:47,360 Wote haki. 696 00:31:47,360 --> 00:31:50,260 Hivyo, kwa sasa tuna 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 >> Hivyo swali katika mkono ni, katika nini gharama, na kupitia mbinu gani, 700 00:31:54,400 --> 00:31:58,580 tunaweza kweli kutatua namba hizi hapa ili tuweze aina ya kazi nyuma, 701 00:31:58,580 --> 00:32:02,759 hatimaye, na decide-- ni kweli kuvutia, ni kweli ufanisi, 702 00:32:02,759 --> 00:32:04,550 kwamba naweza kugawa na kushinda kitabu cha simu? 703 00:32:04,550 --> 00:32:06,716 Je, ni kweli kwamba ufanisi Mimi unaweza kugawanya na kushinda 704 00:32:06,716 --> 00:32:08,600 wale vipande digital karatasi ya juu ya bodi, 705 00:32:08,600 --> 00:32:14,500 kama labda ni kwenda gharama yetu bahati katika muda au nishati au CPU mzunguko 706 00:32:14,500 --> 00:32:17,340 kwa kweli kupata takwimu zetu ndani ya baadhi ya amri sorted? 707 00:32:17,340 --> 00:32:18,930 Basi hebu kuuliza swali hilo. 708 00:32:18,930 --> 00:32:22,077 >> Off Hivyo kwanza, namba hizi ni katika random pretty much ili, 709 00:32:22,077 --> 00:32:24,160 na mimi nina kwenda kupendekeza algorithm moja, au mchakato 710 00:32:24,160 --> 00:32:25,970 ambayo tunaweza kutatua folks haya. 711 00:32:25,970 --> 00:32:28,100 Mimi nina kwenda kwa njia ya hii pretty naively. 712 00:32:28,100 --> 00:32:30,730 Na mimi nina kwenda kutambua kwamba ni aina ya mengi kwa ajili yangu 713 00:32:30,730 --> 00:32:32,890 wrap akili yangu karibu data zima kuweka mara moja. 714 00:32:32,890 --> 00:32:33,640 Lakini unajua nini? 715 00:32:33,640 --> 00:32:37,450 Mimi nina kwenda kufanya baadhi ya Kando rahisi sana fixes. 716 00:32:37,450 --> 00:32:41,152 4 na 2 ni nje ya utaratibu, ikiwa lengo ni kwenda kutoka 1 juu ya hadi 8. 717 00:32:41,152 --> 00:32:41,860 Hivyo unajua nini? 718 00:32:41,860 --> 00:32:43,776 Mimi nina kwenda kuwa na wewe guys wabadilishane, kama wewe kubadili 719 00:32:43,776 --> 00:32:46,380 kimwili nafasi na vipande yako ya karatasi. 720 00:32:46,380 --> 00:32:47,894 Sasa 4 na 6, hizi ni kwa utaratibu. 721 00:32:47,894 --> 00:32:49,060 Mimi nina kwenda kuondoka wale kuwa. 722 00:32:49,060 --> 00:32:50,227 6 na 8, hayo ni katika utaratibu. 723 00:32:50,227 --> 00:32:51,185 Kwenda waache kuwa. 724 00:32:51,185 --> 00:32:52,170 8 and1, nje ya utaratibu. 725 00:32:52,170 --> 00:32:54,790 Kama wewe mbili bila akili swapping. 726 00:32:54,790 --> 00:32:57,300 Sasa 8 na 3, kama wewe guys yanaweza kubadili. 727 00:32:57,300 --> 00:32:59,320 8 na 7, kama wewe guys yanaweza kubadili. 728 00:32:59,320 --> 00:33:01,790 Na 8 na 5, kama wewe guys yanaweza kubadili. 729 00:33:01,790 --> 00:33:03,980 >> Sasa, mimi kosa gani? 730 00:33:03,980 --> 00:33:05,200 Hakuna, ni wazi si. 731 00:33:05,200 --> 00:33:07,880 Lakini mimi kuwa alifanya hali bora, haki? 732 00:33:07,880 --> 00:33:09,430 Ilikuwa jina yako ni nini tena, idadi 8? 733 00:33:09,430 --> 00:33:10,055 >> RACHEL: Rachel. 734 00:33:10,055 --> 00:33:12,850 DAVID Malan: Hivyo Rachel ana ufanisi bubbled up pretty mbali, 735 00:33:12,850 --> 00:33:15,660 njia yote hadi mwisho wa safu yangu ya namba hapa. 736 00:33:15,660 --> 00:33:17,310 Na hivyo tatizo kwamba ni aina ya kutatuliwa. 737 00:33:17,310 --> 00:33:21,670 Sasa, ni wazi, 2 bado kuna haja ya hoja kidogo, na 4 na 6 na 1. 738 00:33:21,670 --> 00:33:24,420 Lakini mimi wanaonekana kuwa na kujipatia kidogo karibu na ufumbuzi. 739 00:33:24,420 --> 00:33:26,790 Basi hebu kuomba hiyo naive heuristic tena. 740 00:33:26,790 --> 00:33:27,690 2 na 4, OK. 741 00:33:27,690 --> 00:33:28,810 4 na 6, OK. 742 00:33:28,810 --> 00:33:29,930 6 na 1, mm-mm. 743 00:33:29,930 --> 00:33:32,230 Hebu wabadilishane. 744 00:33:32,230 --> 00:33:33,200 6 na 3, mm-mm. 745 00:33:33,200 --> 00:33:34,420 Hebu wabadilishane. 746 00:33:34,420 --> 00:33:35,580 6 na 7 ni sawa. 747 00:33:35,580 --> 00:33:36,590 7 na 5, nope. 748 00:33:36,590 --> 00:33:37,790 Hebu wabadilishane. 749 00:33:37,790 --> 00:33:38,470 Na sasa 7 na 8. 750 00:33:38,470 --> 00:33:39,862 Na nini jina yako tena? 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 Hivyo sasa Frances ni bora hata katika nafasi, kwa sababu sasa 7 na 8 754 00:33:44,230 --> 00:33:46,440 ni usahihi bubbled hadi juu. 755 00:33:46,440 --> 00:33:47,510 Hivyo 2 na 4, OK. 756 00:33:47,510 --> 00:33:48,720 4 na 1, wabadilishane hebu. 757 00:33:48,720 --> 00:33:50,410 4 na 3, wabadilishane hebu. 758 00:33:50,410 --> 00:33:51,550 4 na 6, wewe ni OK. 759 00:33:51,550 --> 00:33:53,340 6 na 5, wabadilishane hebu. 760 00:33:53,340 --> 00:33:54,590 Na sasa wale guys ni nzuri. 761 00:33:54,590 --> 00:33:55,780 Sisi ni karibu na hapo. 762 00:33:55,780 --> 00:33:57,706 2 na 1, nje ya utaratibu, hivyo wabadilishane. 763 00:33:57,706 --> 00:33:59,080 Na sasa basi mimi kufanya sanity hundi. 764 00:33:59,080 --> 00:34:03,080 2 na 3, 3 na 4, 4 na 5, 5 na 6, 6 na 7, 8. 765 00:34:03,080 --> 00:34:05,060 OK, hivyo sisi ni kosa. 766 00:34:05,060 --> 00:34:09,310 >> Lakini kwa gharama gani alifanya mimi aina ya namba hizi hapa? 767 00:34:09,310 --> 00:34:13,960 Naam, jinsi hatua nyingi alifanya mimi uwezekano kuchukua wakati kuchagua folks haya? 768 00:34:13,960 --> 00:34:15,710 Naam, tutaweza kurudi kwa swali hilo. 769 00:34:15,710 --> 00:34:18,030 Lakini, kusema ukweli, kama wewe got kuchoka kidogo, hiyo ni 770 00:34:18,030 --> 00:34:22,270 aina ya akifafanua katika kuwa hii haikuwa labda algorithm ufanisi zaidi. 771 00:34:22,270 --> 00:34:25,230 Na hakika, kusema ukweli, mimi nina jasho wote zaidi kutembea na kurudi. 772 00:34:25,230 --> 00:34:26,639 Kwamba hakuwa na kuhisi hasa ufanisi. 773 00:34:26,639 --> 00:34:27,805 Basi hebu jaribu kitu kingine. 774 00:34:27,805 --> 00:34:31,870 Kama wewe guys inaweza upya wenyewe kwa maadili haya nane. 775 00:34:31,870 --> 00:34:32,969 Kazi nzuri. 776 00:34:32,969 --> 00:34:36,570 >> Hebu tuangalie digital, kwa ajili tu ya muda kabla ya sisi kujaribu kitu kingine, 777 00:34:36,570 --> 00:34:38,179 nini ilitokea tu. 778 00:34:38,179 --> 00:34:41,330 Up hapa, wewe ni juu ya kuona taswira ya haya binadamu nane 779 00:34:41,330 --> 00:34:44,719 ambapo bluu na nyekundu baa kuwakilisha idadi. 780 00:34:44,719 --> 00:34:46,670 mirefu bar, kubwa idadi. 781 00:34:46,670 --> 00:34:48,510 mfupi bar, ndogo idadi. 782 00:34:48,510 --> 00:34:51,560 Na nini ni kwenda kuona ni katika ili random zaidi ya nane wao. 783 00:34:51,560 --> 00:34:55,830 Wewe ni kwenda kuona baa haya kupata yamepangwa kwa algorithm kwamba huo huo, 784 00:34:55,830 --> 00:34:59,890 au seti ya maelekezo, ambayo tutaweza wito tena Bubble aina. 785 00:34:59,890 --> 00:35:04,000 Hivyo taarifa, kila pili au hivyo, baa mbili ni taa juu katika nyekundu, 786 00:35:04,000 --> 00:35:05,590 ni kuwa ikilinganishwa na kompyuta. 787 00:35:05,590 --> 00:35:08,630 Na kisha kama bar kubwa na bar kidogo ni nje ya utaratibu, 788 00:35:08,630 --> 00:35:11,220 wao ni kuwa swapped kwa ajili yangu. 789 00:35:11,220 --> 00:35:15,120 >> Sasa hii ni incredibly tedious kuangalia hii, bila shaka, 790 00:35:15,120 --> 00:35:18,630 kwa muda mrefu sana, lakini taarifa takeaway-- baa kubwa kuhamia na haki, 791 00:35:18,630 --> 00:35:20,460 baa kidogo kuhamia upande wa kushoto. 792 00:35:20,460 --> 00:35:23,380 Hebu mimba mchakato huu na kasi ya hii up 793 00:35:23,380 --> 00:35:27,330 kuwa kwa kasi zaidi, ili tuweze kupata kiwango cha juu cha hisia ya kile, 794 00:35:27,330 --> 00:35:29,970 kweli, Bubble aina ni kufanya. 795 00:35:29,970 --> 00:35:33,150 Hakika, ni bubbling hadi upande wa kulia wa orodha, 796 00:35:33,150 --> 00:35:35,260 au safu, baa kubwa. 797 00:35:35,260 --> 00:35:40,020 Na kinyume chake, baa kidogo ni bubbling njia yao chini kwa upande wa kushoto, 798 00:35:40,020 --> 00:35:42,950 angalau kwa kasi zaidi kuliko sisi awali alivyofanya. 799 00:35:42,950 --> 00:35:45,850 Hivyo, vigumu kuona na binadamu, lakini kuibua hiyo ni kweli nini 800 00:35:45,850 --> 00:35:46,540 kilichojitokeza. 801 00:35:46,540 --> 00:35:49,110 >> Lakini hebu jaribu kimsingi mbinu mbalimbali sasa. 802 00:35:49,110 --> 00:35:52,387 Hebu jaribu mbalimbali algorithm ambapo sisi kuwa na wewe 803 00:35:52,387 --> 00:35:59,640 guys kuanza katika haya ya awali nafasi, ambayo ilikuwa utaratibu huu hapa. 804 00:35:59,640 --> 00:36:00,827 Na hebu kwenda mbele sasa. 805 00:36:00,827 --> 00:36:02,910 Na mimi nina kwenda kufanya kitu hata rahisi, sawa? 806 00:36:02,910 --> 00:36:06,710 Katika retrospect, swapping pairwise tena na tena, karibu kidogo wajanja. 807 00:36:06,710 --> 00:36:10,460 Hebu kufanya mambo hata zaidi naively, ambapo kama nataka aina folks haya, 808 00:36:10,460 --> 00:36:12,560 napenda tu kuendelea kutafuta kwa kipengele ndogo. 809 00:36:12,560 --> 00:36:14,570 Hivyo sasa hivi, 4 ni idadi ndogo nimeona. 810 00:36:14,570 --> 00:36:15,695 Mimi nina kwenda kukumbuka kwamba. 811 00:36:15,695 --> 00:36:17,750 No, 2 ni bora, na kukumbuka kwamba. 812 00:36:17,750 --> 00:36:20,730 1 ni hata kidogo. 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-- ni nini jina yako tena? 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 Hivyo, Artie, kwenda mbele. 819 00:36:25,460 --> 00:36:27,043 Mimi nina kwenda kuvuta wewe nje ya mstari. 820 00:36:27,043 --> 00:36:28,400 Kama unaweza kurudi hapa. 821 00:36:28,400 --> 00:36:30,790 Na mimi haja ya kufanya chumba kwa ajili yake. 822 00:36:30,790 --> 00:36:32,040 Sisi kuwa na uhakika uamuzi hapa. 823 00:36:32,040 --> 00:36:36,000 Jinsi gani sisi kufanya chumba kwa ajili Artie hapa mwanzoni ambapo namba 1 ni mali? 824 00:36:36,000 --> 00:36:36,770 >> Watazamaji: Shift. 825 00:36:36,770 --> 00:36:38,950 >> DAVID Malan: Sawa, sisi inaweza kuhama kila mtu. 826 00:36:38,950 --> 00:36:40,860 Lakini kupendekeza optimization. 827 00:36:40,860 --> 00:36:43,410 Kwamba anahisi kidogo annoying kwa mimi kuuliza watu wanne 828 00:36:43,410 --> 00:36:44,620 kwa hoja njia yote chini. 829 00:36:44,620 --> 00:36:45,520 Nini kingine unaweza kufanya nini? 830 00:36:45,520 --> 00:36:46,360 >> Watazamaji: kubadili yao. 831 00:36:46,360 --> 00:36:46,850 >> DAVID Malan: kubadili yao. 832 00:36:46,850 --> 00:36:47,900 Na nini jina yako tena? 833 00:36:47,900 --> 00:36:48,441 >> JACOB: Jacob. 834 00:36:48,441 --> 00:36:50,330 DAVID Malan: Jacob, hoja. 835 00:36:50,330 --> 00:36:54,440 Ufanisi zaidi tu kuwa na Jacob wabadilishane maeneo na Artie, 836 00:36:54,440 --> 00:36:56,710 kinyume na kulazimisha zote nne za folks haya, 837 00:36:56,710 --> 00:36:58,734 asante sana, kwa msimamo wao sahihi. 838 00:36:58,734 --> 00:37:01,150 Nini kizuri kuhusu Artie sasa, yeye ni katika nafasi yake sahihi. 839 00:37:01,150 --> 00:37:02,060 Hebu kufanya hii tena. 840 00:37:02,060 --> 00:37:03,730 2, hiyo ni idadi ndogo nimeona. 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 ni dhahiri ndogo. 844 00:37:07,467 --> 00:37:08,550 Je, si kufanya kazi yoyote. 845 00:37:08,550 --> 00:37:09,320 Hebu kufanya hivyo tena. 846 00:37:09,320 --> 00:37:10,070 6. 847 00:37:10,070 --> 00:37:10,640 Madogo? 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 Hebu kumbuka 4. 853 00:37:13,420 --> 00:37:13,950 3. 854 00:37:13,950 --> 00:37:15,110 Hebu kumbuka 3. 855 00:37:15,110 --> 00:37:16,080 7, 5. 856 00:37:16,080 --> 00:37:18,490 Idadi ndogo nimekuwa kuonekana kwenye hii kupita ni 3. 857 00:37:18,490 --> 00:37:20,340 Kama wewe d kuja juu ya nje. 858 00:37:20,340 --> 00:37:21,986 Ambapo ni sisi kwenda kuweka wewe? 859 00:37:21,986 --> 00:37:22,860 Na nini jina lako? 860 00:37:22,860 --> 00:37:23,530 >> Alanna: Alanna. 861 00:37:23,530 --> 00:37:25,780 >> DAVID Malan: Alanna, sisi ni kwenda na kuwaondoa. 862 00:37:25,780 --> 00:37:28,670 Lakini hiyo ni ufanisi zaidi, tu wabadilishane watu wawili, 863 00:37:28,670 --> 00:37:31,850 kuliko kuwa na watu mbalimbali kweli sidestep juu. 864 00:37:31,850 --> 00:37:32,850 Sasa hebu kufanya hii tena. 865 00:37:32,850 --> 00:37:34,980 Mimi nina kwenda kuchagua 4, hivyo kuja juu ya nje. 866 00:37:34,980 --> 00:37:36,540 Na ambaye ni kwenda hoja? 867 00:37:36,540 --> 00:37:37,750 Idadi ya 8, bila shaka. 868 00:37:37,750 --> 00:37:40,260 Kama mimi sasa kupata namba 5, njoo huku nje. 869 00:37:40,260 --> 00:37:42,104 Namba 8 kwenda kupata kufukuzwa tena. 870 00:37:42,104 --> 00:37:43,770 Mimi sasa kwenda kupata namba 6 katika mahali. 871 00:37:43,770 --> 00:37:44,410 7 katika mahali. 872 00:37:44,410 --> 00:37:45,080 8 katika mahali. 873 00:37:45,080 --> 00:37:48,590 >> Nini sisi tu alifanya sasa ni kitu kinachoitwa uteuzi aina, 874 00:37:48,590 --> 00:37:52,560 na kama sisi taswira hii, ni kwenda kujisikia tofauti kidogo. 875 00:37:52,560 --> 00:37:56,800 Hebu kwenda mbele na kutokana na hili menu hapa, hii visualization-- 876 00:37:56,800 --> 00:38:02,920 hebu kubadili hali hii to-- kuja juu, Firefox. 877 00:38:02,920 --> 00:38:07,610 Hebu kubadili hali hii kwa uteuzi aina. 878 00:38:07,610 --> 00:38:11,830 Na hebu kasi yake juu kama kabla, na kuanza visualization sasa. 879 00:38:11,830 --> 00:38:13,990 Na algorithm hii ina kujisikia tofauti na hiyo. 880 00:38:13,990 --> 00:38:16,480 Juu ya kila iteration, kusema ukweli, ni hata zaidi ya moja kwa moja. 881 00:38:16,480 --> 00:38:18,385 Mimi nina kuchagua tu kipengele ndogo. 882 00:38:18,385 --> 00:38:21,510 Sasa, kusema ukweli, mimi got bahati kidogo kwamba wakati, kwa maana kwamba namna super-haraka. 883 00:38:21,510 --> 00:38:22,660 mambo walikuwa random. 884 00:38:22,660 --> 00:38:25,520 Ni si, kama tutaweza hatimaye kuona, kimsingi kwa kasi zaidi. 885 00:38:25,520 --> 00:38:29,400 Lakini hebu angalia tatu na ya mwisho mbinu hapa kama kwa nini kinaendelea. 886 00:38:29,400 --> 00:38:36,230 Basi hebu kwenda mbele na kuweka upya nyie wakati moja ya mwisho kuwa katika utaratibu huu hapa. 887 00:38:36,230 --> 00:38:38,450 >> Na sasa, mimi nina kwenda kuwa wajanja zaidi kidogo, 888 00:38:38,450 --> 00:38:40,220 tu kwa pande zote nje algorithms yetu. 889 00:38:40,220 --> 00:38:41,230 Mimi nina kwenda kufanya hivyo. 890 00:38:41,230 --> 00:38:43,140 Mimi nina kwenda si kwenda na kurudi sana. 891 00:38:43,140 --> 00:38:44,900 Kusema ukweli, mimi nina uchovu wa apitaye hii yote. 892 00:38:44,900 --> 00:38:47,691 Mimi tu kwenda kuchukua nini mimi nina kutolewa katika mwanzo wa orodha, 893 00:38:47,691 --> 00:38:49,460 na mimi nina kwenda kwa aina kwamba basi na pale. 894 00:38:49,460 --> 00:38:50,140 Hivyo hapa sisi ni. 895 00:38:50,140 --> 00:38:51,030 Namba 4. 896 00:38:51,030 --> 00:38:53,680 Mimi nina kwenda kuingiza idadi 4 katika orodha Iliyopangwa. 897 00:38:53,680 --> 00:38:54,180 Kufanyika. 898 00:38:54,180 --> 00:38:58,300 Mimi kudai sasa, na tu kufanya hili zaidi wazi, sehemu hii ya orodha yangu ni Iliyopangwa. 899 00:38:58,300 --> 00:39:02,610 Ni aina ya madai ya kijinga, lakini kwa kweli 4 ni Iliyopangwa katika orodha ya kipimo kimoja. 900 00:39:02,610 --> 00:39:04,210 Sasa, mimi nina kwenda kuchukua juu ya namba 2. 901 00:39:04,210 --> 00:39:07,670 Idadi 2 mimi nina sasa kwenda kuingiza ndani ya mahali pa haki. 902 00:39:07,670 --> 00:39:08,680 Hivyo ambapo gani 2 ni? 903 00:39:08,680 --> 00:39:09,824 Ni wazi, zaidi ya hapa. 904 00:39:09,824 --> 00:39:11,490 Hivyo kwenda mbele na kusonga nyuma, kama unaweza. 905 00:39:11,490 --> 00:39:14,406 Na kwa nini si wewe guys tu kuchukua muziki wako anasimama na wewe wakati huu. 906 00:39:14,406 --> 00:39:17,020 Na hebu kwa nguvu kuingiza wewe ndani ya mwanzo wa orodha. 907 00:39:17,020 --> 00:39:17,936 Hivyo kidogo zaidi kazi. 908 00:39:17,936 --> 00:39:20,890 Mimi alikuwa na hoja Jacob kote, na ni nini jina lako? 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 Lakini angalau sikuweza kwenda na kurudi. 912 00:39:24,350 --> 00:39:25,739 Mimi tu kuchukua mambo kama mimi kwenda. 913 00:39:25,739 --> 00:39:27,530 Mimi tu kuingiza yao katika mahali pa haki. 914 00:39:27,530 --> 00:39:29,220 6, hii ni kweli pretty rahisi. 915 00:39:29,220 --> 00:39:31,510 Hebu kuingiza wewe zaidi ya hapo, kama wewe nilitaka hoja juu ya kidogo. 916 00:39:31,510 --> 00:39:32,870 Idadi ya 8, pia ni rahisi sana. 917 00:39:32,870 --> 00:39:33,741 Right zaidi ya hapo. 918 00:39:33,741 --> 00:39:34,240 Damn yake. 919 00:39:34,240 --> 00:39:37,590 Idadi 1 hatuwezi tu wabadilishane na Amin hapa, 920 00:39:37,590 --> 00:39:39,340 kwa sababu kwamba kinaendelea kwa fujo up utaratibu. 921 00:39:39,340 --> 00:39:40,660 Hivyo tuna kuwa wajanja kidogo zaidi. 922 00:39:40,660 --> 00:39:42,770 Hivyo, Artie, kama unaweza nyuma hadi kwa sasa. 923 00:39:42,770 --> 00:39:46,550 Hebu kwenda mbele na kuhama sasa, tofauti na algorithms yetu ya awali, 924 00:39:46,550 --> 00:39:50,910 kufanya chumba kwa ajili Artie haki hapa mwanzoni. 925 00:39:50,910 --> 00:39:54,690 Hivyo mwisho wa siku, mimi nina aina ya kufanya nini nilitaka kuepuka kabla ya. 926 00:39:54,690 --> 00:39:57,770 Na hivyo algorithm yangu ni aina ya kuachwa, kielimu, 927 00:39:57,770 --> 00:39:59,070 kutokana na kile ni awali alikuwa. 928 00:39:59,070 --> 00:40:01,240 Mimi nina kufanya tu shifting katika hatua mbalimbali. 929 00:40:01,240 --> 00:40:02,291 Sasa mimi nina saa 3. 930 00:40:02,291 --> 00:40:02,790 Oh, damn. 931 00:40:02,790 --> 00:40:04,039 Sisi kufanya kazi zaidi tena. 932 00:40:04,039 --> 00:40:05,060 Basi hebu kushinikiza wewe nje. 933 00:40:05,060 --> 00:40:09,360 Hebu hoja 8, 6, 4-- oh oh-- na 3 ni kwenda haki pale. 934 00:40:09,360 --> 00:40:11,490 Basi angalau kidogo akiba wakati huu. 935 00:40:11,490 --> 00:40:13,100 7, si kazi sana kufanyika. 936 00:40:13,100 --> 00:40:15,370 Hivyo kama unataka pop nyuma, hebu kuingiza wewe. 937 00:40:15,370 --> 00:40:17,440 Na mwisho, 5, kama wewe unataka kulirejesha nyuma, sisi 938 00:40:17,440 --> 00:40:22,610 haja ya kuhama wewe, wewe, wewe, mpaka tano ni katika mahali. 939 00:40:22,610 --> 00:40:25,670 >> Hivyo sasa kuona hii katika kiwango cha juu graphically, 940 00:40:25,670 --> 00:40:31,080 hebu kufanya algorithm hii visualization mara moja ya ziada. 941 00:40:31,080 --> 00:40:33,580 Hivyo hii tutamwita insertion aina. 942 00:40:33,580 --> 00:40:37,700 Tutaweza kukimbia tu kama haraka, na kuanza hapa. 943 00:40:37,700 --> 00:40:39,580 Na, pia, ina kujisikia tofauti. 944 00:40:39,580 --> 00:40:42,180 Ni aina ya kupata bora na bora, lakini ni kamwe kamili 945 00:40:42,180 --> 00:40:44,630 mpaka mimi kwenda katika na laini katika mapengo hayo. 946 00:40:44,630 --> 00:40:47,860 Kwa sababu, tena, mimi nina tu kuchukua kile Mimi nina wanapewa kutoka upande wa kushoto na haki. 947 00:40:47,860 --> 00:40:50,350 Hivyo sikuweza kupata hivyo bahati kuwa kila kitu kilikuwa kamili. 948 00:40:50,350 --> 00:40:54,190 Hiyo ni kwa nini sisi alikuwa na hawa kidogo mispositions kwamba sisi fasta juu ya muda. 949 00:40:54,190 --> 00:40:58,890 >> Basi wote wa algorithms hawa wanaonekana endesha wakati wa paces tofauti kidogo. 950 00:40:58,890 --> 00:41:02,030 Kwa kweli, ambayo unaweza kusema ni bora au kasi hadi sasa? 951 00:41:02,030 --> 00:41:03,450 Bubble aina, kwanza? 952 00:41:03,450 --> 00:41:05,000 Uteuzi aina, pili? 953 00:41:05,000 --> 00:41:08,450 Aina insertion, tatu? 954 00:41:08,450 --> 00:41:10,710 Nasikia aina baadhi uteuzi. 955 00:41:10,710 --> 00:41:13,280 Mawazo mengine? 956 00:41:13,280 --> 00:41:16,880 >> Hivyo ni zamu nje kwamba yote ya algorithms haya 957 00:41:16,880 --> 00:41:22,400 ni kimsingi tu kama ufanisi kama kila other-- au, kinyume chake, kama 958 00:41:22,400 --> 00:41:25,980 ufanisi kama kila mmoja, kwa sababu tunaweza kufanya kimsingi 959 00:41:25,980 --> 00:41:28,120 bora kuliko zote tatu ya algorithms haya. 960 00:41:28,120 --> 00:41:29,990 Na kwamba ni kidogo ya uongo nyeupe, pia. 961 00:41:29,990 --> 00:41:32,580 wakati mimi kusema kama ufanisi au kama ufanisi, 962 00:41:32,580 --> 00:41:35,040 kwamba angalau kwa maadili super-kubwa ya n. 963 00:41:35,040 --> 00:41:38,450 Wakati tuna watu nane tu hapa, au labda baa 50 au hivyo juu ya screen, 964 00:41:38,450 --> 00:41:41,645 utasikia kabisa taarifa tofauti kati ya algorithms hizi tatu. 965 00:41:41,645 --> 00:41:44,020 Lakini kama n, idadi ya watu, au idadi ya namba, 966 00:41:44,020 --> 00:41:46,350 au idadi ya watu katika simu kitabu, au idadi ya kurasa za mtandao 967 00:41:46,350 --> 00:41:48,230 katika database Google anapata kubwa na kubwa zaidi, 968 00:41:48,230 --> 00:41:51,650 tutaweza kuona kwamba wote watatu wa haya algorithms ni kweli pretty maskini. 969 00:41:51,650 --> 00:41:54,060 Na tunaweza kufanya kimsingi bora kuliko hiyo. 970 00:41:54,060 --> 00:41:56,830 >> Hebu tuangalie, hatimaye, nini algorithms haya huenda 971 00:41:56,830 --> 00:41:59,520 sauti kama katika mazingira ya wengine wachache 972 00:41:59,520 --> 00:42:03,550 kama vizuri kwa njia ya hii visualization hapa 973 00:42:03,550 --> 00:42:06,860 ambayo kuanzisha yetu na idadi ya algorithms. 974 00:42:06,860 --> 00:42:10,330 Hebu kwenda mbele na kumpongeza washiriki wetu hapa, ambao wote 975 00:42:10,330 --> 00:42:11,690 yamepangwa wenyewe vizuri sana. 976 00:42:11,690 --> 00:42:15,124 Kama Ningependa kuchukua zimefunguliwa zawadi. 977 00:42:15,124 --> 00:42:16,540 Unaweza kuweka namba yako pia. 978 00:42:16,540 --> 00:42:19,460 979 00:42:19,460 --> 00:42:22,520 Na nini utaona, au tuseme kusikia, sasa, 980 00:42:22,520 --> 00:42:25,710 ni kwamba kama sisi kuweka sauti kwa kila mmoja wa baa haya 981 00:42:25,710 --> 00:42:28,660 na kuihusisha na programu, frequency mbalimbali za sauti, 982 00:42:28,660 --> 00:42:33,970 unaweza wrap akili yako zaidi audioly kuzunguka kile kila moja ya mambo haya 983 00:42:33,970 --> 00:42:34,470 kuangalia kama. 984 00:42:34,470 --> 00:42:39,325 ya kwanza ambayo ni insertion aina 985 00:42:39,325 --> 00:42:44,275 >> [Tani] 986 00:42:44,275 --> 00:42:47,245 987 00:42:47,245 --> 00:42:49,720 >> Hii ni Bubble aina. 988 00:42:49,720 --> 00:42:54,175 >> [Tani] 989 00:42:54,175 --> 00:43:17,250 990 00:43:17,250 --> 00:43:18,222 >> Uteuzi aina. 991 00:43:18,222 --> 00:43:22,596 >> [Tani] 992 00:43:22,596 --> 00:43:33,570 993 00:43:33,570 --> 00:43:35,150 >> Kitu kinachoitwa kuunganisha aina. 994 00:43:35,150 --> 00:43:38,140 >> [Tani] 995 00:43:38,140 --> 00:43:49,510 996 00:43:49,510 --> 00:43:51,278 >> Gnome aina. 997 00:43:51,278 --> 00:43:56,390 >> [Tani] 998 00:43:56,390 --> 00:44:08,240 999 00:44:08,240 --> 00:44:09,430 >> Hiyo ni kwa CS50. 1000 00:44:09,430 --> 00:44:13,360 Sisi kuona juu ya Jumatano. 1001 00:44:13,360 --> 00:44:16,671 >> NARRATOR: Na sasa, "Deep Mawazo, "na Daven Farnham. 1002 00:44:16,671 --> 00:44:19,910 1003 00:44:19,910 --> 00:44:21,590 Kwa nini ni kwa kitanzi? 1004 00:44:21,590 --> 00:44:23,200 Kwa nini si kufanya vizuri? 1005 00:44:23,200 --> 00:44:25,970 Ningependa kufanya kitanzi tano. 1006 00:44:25,970 --> 00:44:28,720 >> [Kicheko]