1 00:00:00,000 --> 00:00:00,488 2 00:00:00,488 --> 00:00:10,800 >> [Halisi kucheza] 3 00:00:10,800 --> 00:00:13,500 DAVID Malan: zote haki. 4 00:00:13,500 --> 00:00:14,670 Haki wote, kuwakaribisha nyuma. 5 00:00:14,670 --> 00:00:18,120 Hivyo hii ni wiki ya 4, mwanzo yake, tayari. 6 00:00:18,120 --> 00:00:21,320 Na itabidi kukumbuka kwamba wiki iliyopita, sisi kuweka Kanuni kando kwa ajili ya kidogo kidogo tu 7 00:00:21,320 --> 00:00:24,240 na sisi kuanza kuzungumza zaidi kidogo ngazi ya juu, juu ya mambo kama 8 00:00:24,240 --> 00:00:28,130 kutafuta na kuchagua, ingawa kiasi fulani rahisi mawazo, ni 9 00:00:28,130 --> 00:00:31,840 mwakilishi wa darasa la matatizo utaanza kutatua hasa 10 00:00:31,840 --> 00:00:34,820 kama wewe kuanza kufikiri juu ya mwisho miradi na ufumbuzi kuvutia 11 00:00:34,820 --> 00:00:36,760 wanaweza kuwa na matatizo halisi ya dunia. 12 00:00:36,760 --> 00:00:39,490 Sasa Bubble aina alikuwa mmoja wa rahisi vile algorithms, na ni 13 00:00:39,490 --> 00:00:42,900 kazi kwa kuwa na namba hizi ndogo katika orodha au katika safu ya aina 14 00:00:42,900 --> 00:00:46,530 Bubble njia yao hadi juu, na idadi kubwa hoja njia yao chini 15 00:00:46,530 --> 00:00:47,930 mwisho wa orodha hiyo. 16 00:00:47,930 --> 00:00:50,650 >> Na kukumbuka kwamba tunaweza taswira Bubble aina kidogo 17 00:00:50,650 --> 00:00:52,310 kitu kama hiki. 18 00:00:52,310 --> 00:00:53,640 Hivyo basi mimi kwenda mbele na bonyeza Start. 19 00:00:53,640 --> 00:00:55,350 Nimekuwa preselected Bubble aina. 20 00:00:55,350 --> 00:00:58,920 Na kama wewe kukumbuka kuwa bluu mirefu mistari kuwakilisha idadi kubwa, ndogo 21 00:00:58,920 --> 00:01:03,300 mistari ya bluu kuwakilisha idadi ndogo, kama sisi kwenda kwa njia hii tena na tena na 22 00:01:03,300 --> 00:01:07,680 tena, kulinganisha baa mbili karibu na kila nyingine katika nyekundu, tunakwenda wabadilishane 23 00:01:07,680 --> 00:01:11,010 kubwa na ndogo kama wao ni nje ya utaratibu. 24 00:01:11,010 --> 00:01:14,150 >> Hivyo hii kwenda juu na kwenda juu na kwenda juu, na utaona kuwa kubwa 25 00:01:14,150 --> 00:01:16,700 mambo ni kufanya njia yao ya haki, na mambo madogo ni 26 00:01:16,700 --> 00:01:17,900 kufanya njia yao ya kushoto. 27 00:01:17,900 --> 00:01:21,380 Lakini tulianza kupima ufanisi, 28 00:01:21,380 --> 00:01:22,970 ubora wa algorithm hii. 29 00:01:22,970 --> 00:01:25,200 Na sisi alisema kwamba katika mbaya kesi, algorithm hii alichukua 30 00:01:25,200 --> 00:01:27,940 takribani ngapi hatua? 31 00:01:27,940 --> 00:01:28,980 >> Hivyo n squared. 32 00:01:28,980 --> 00:01:30,402 Na nini ilikuwa n? 33 00:01:30,402 --> 00:01:31,650 >> Watazamaji: Idadi ya vipengele. 34 00:01:31,650 --> 00:01:32,790 >> DAVID Malan: Hivyo n mara idadi ya vipengele. 35 00:01:32,790 --> 00:01:33,730 Na hivyo tutaweza kufanya hili mara nyingi. 36 00:01:33,730 --> 00:01:36,650 Wakati wowote tunataka kuzungumza juu ya ukubwa wa tatizo au ukubwa wa 37 00:01:36,650 --> 00:01:39,140 pembejeo, au kiasi cha muda inachukua kuzalisha pato, tutaweza tu 38 00:01:39,140 --> 00:01:41,610 wa jumla chochote pembejeo ni kama n. 39 00:01:41,610 --> 00:01:45,970 Hivyo nyuma katika Wiki 0, idadi ya kurasa katika kitabu cha simu mara n. 40 00:01:45,970 --> 00:01:47,550 idadi ya wanafunzi katika chumba ilikuwa n. 41 00:01:47,550 --> 00:01:49,630 Hivyo hapa, pia, sisi ni kufuatia kwamba mfano. 42 00:01:49,630 --> 00:01:52,800 >> Sasa n squared si hasa haraka, hivyo sisi alijaribu kufanya vizuri zaidi. 43 00:01:52,800 --> 00:01:55,970 Na hivyo sisi inaonekana katika michache ya nyingine algorithms, kati ya ambayo 44 00:01:55,970 --> 00:01:57,690 walikuwa uteuzi aina. 45 00:01:57,690 --> 00:01:59,180 Hivyo uteuzi aina alikuwa tofauti kidogo. 46 00:01:59,180 --> 00:02:03,130 Ilikuwa karibu rahisi, mimi kuthubutu kusema, ambapo mimi kuanza saa ya kuanza 47 00:02:03,130 --> 00:02:06,740 orodha ya kujitolea wetu na mimi tu tena na tena na tena safari kwa kupitia 48 00:02:06,740 --> 00:02:10,060 orodha, kukwanyua nje ndogo kipengele katika muda na kuweka naye au 49 00:02:10,060 --> 00:02:13,040 yake katika mwanzo wa orodha. 50 00:02:13,040 --> 00:02:16,410 >> Lakini hii pia, mara sisi kuanza kufikiri kupitia hesabu na kubwa 51 00:02:16,410 --> 00:02:19,860 picha, mawazo kuhusu ni mara ngapi Mimi kwenda na kurudi nyuma na 52 00:02:19,860 --> 00:02:24,090 na nje, sisi alisema katika kesi mbaya, uteuzi aina, pia, ilikuwa nini? 53 00:02:24,090 --> 00:02:24,960 n squared. 54 00:02:24,960 --> 00:02:27,490 Sasa katika ulimwengu wa kweli, ni nguvu kweli kuwa kidogo kwa kasi zaidi. 55 00:02:27,490 --> 00:02:30,620 Sababu tena, sikuwa na kuweka inafuatilia mara moja mimi alikuwa yamepangwa 56 00:02:30,620 --> 00:02:31,880 ndogo vipengele. 57 00:02:31,880 --> 00:02:35,090 Lakini kama sisi kufikiri juu ya n kubwa sana, na kama wewe aina ya kufanya math nje kama 58 00:02:35,090 --> 00:02:39,170 Mimi alifanya juu ya bodi, na squared n bala kitu, kila kitu kingine 59 00:02:39,170 --> 00:02:41,850 badala n squared, mara moja n anapata kweli kubwa, haina 60 00:02:41,850 --> 00:02:42,850 kweli jambo kama mengi. 61 00:02:42,850 --> 00:02:45,470 Hivyo kama wanasayansi wa kompyuta, sisi aina ya kugeuka vipofu ndogo 62 00:02:45,470 --> 00:02:49,220 mambo na lengo tu juu ya sababu katika kujieleza kwamba kwenda kufanya 63 00:02:49,220 --> 00:02:50,330 tofauti kubwa. 64 00:02:50,330 --> 00:02:52,840 >> Naam, Mwisho, sisi inaonekana katika aina kuingizwa. 65 00:02:52,840 --> 00:02:56,620 Na hii ilikuwa sawa katika roho, lakini badala ya kwenda kwa njia ya iteratively na 66 00:02:56,620 --> 00:03:01,250 kuchagua ndogo kipengele moja katika wakati, mimi badala yake akachukua mkono kwamba mimi 67 00:03:01,250 --> 00:03:04,070 alikuwa kushughulikiwa, na niliamua, kila haki, wewe ni hapa. 68 00:03:04,070 --> 00:03:06,160 Kisha mimi alihamia kwenye kipengele ijayo na kuamua kwamba yeye au 69 00:03:06,160 --> 00:03:07,470 yeye ni mali hapa. 70 00:03:07,470 --> 00:03:08,810 Na kisha mimi wakiongozwa na juu. 71 00:03:08,810 --> 00:03:11,780 Na mimi ili kwa, njiani, kuhama guys haya ili 72 00:03:11,780 --> 00:03:13,030 kufanya chumba kwa ajili yao. 73 00:03:13,030 --> 00:03:16,880 Hivyo kwamba ilikuwa ni aina ya mabadiliko ya akili wa aina uteuzi kwamba sisi 74 00:03:16,880 --> 00:03:18,630 kuitwa kuingizwa aina. 75 00:03:18,630 --> 00:03:20,810 >> Hivyo hizi mada kutokea katika ulimwengu halisi. 76 00:03:20,810 --> 00:03:23,640 Miaka michache tu iliyopita, wakati fulani seneta alikuwa akikimbia kwa rais, 77 00:03:23,640 --> 00:03:27,160 Eric Schmidt, wakati Mkurugenzi Mtendaji wa Google, kwa kweli alikuwa na nafasi ya 78 00:03:27,160 --> 00:03:28,040 kuwahoji naye. 79 00:03:28,040 --> 00:03:32,010 Na sisi mawazo tunatarajia kushiriki hii YouTube video kwa ajili yenu hapa, kama tunaweza kugeuka up 80 00:03:32,010 --> 00:03:32,950 kiasi. 81 00:03:32,950 --> 00:03:39,360 >> [Video avspelning] 82 00:03:39,360 --> 00:03:44,620 >> -Sasa, Seneta, uko hapa katika Google, na mimi kama kufikiri ya urais 83 00:03:44,620 --> 00:03:46,042 kama mahojiano ya kazi. 84 00:03:46,042 --> 00:03:47,770 >> [Kicheko] 85 00:03:47,770 --> 00:03:50,800 >> -Sasa ni vigumu kupata kazi kama rais. 86 00:03:50,800 --> 00:03:52,480 Na wewe ni kwenda kupitia rigours sasa. 87 00:03:52,480 --> 00:03:54,330 Ni pia vigumu kupata kazi saa Google. 88 00:03:54,330 --> 00:03:59,610 Tuna maswali na tunaomba yetu wagombea maswali. 89 00:03:59,610 --> 00:04:02,250 Na hii ni moja kutoka Larry Schwimmer. 90 00:04:02,250 --> 00:04:05,325 >> [Kicheko] 91 00:04:05,325 --> 00:04:06,400 -Wewe guys kufikiri mimi kidding? 92 00:04:06,400 --> 00:04:08,750 Ni haki hapa. 93 00:04:08,750 --> 00:04:12,110 Je, ni njia ya ufanisi zaidi kwa kutatua milioni integers mbili kidogo? 94 00:04:12,110 --> 00:04:15,810 >> [Kicheko] 95 00:04:15,810 --> 00:04:18,260 >> -Naam, uh - 96 00:04:18,260 --> 00:04:19,029 >> Nina-pole. 97 00:04:19,029 --> 00:04:19,745 Labda sisi lazima - 98 00:04:19,745 --> 00:04:21,000 >> -Hapana, hapana, hapana, hapana, hapana. 99 00:04:21,000 --> 00:04:21,470 >> -Hiyo si - 100 00:04:21,470 --> 00:04:22,185 OK. 101 00:04:22,185 --> 00:04:25,328 >> -Nadhani aina Bubble ingekuwa kuwa njia sahihi ya kwenda. 102 00:04:25,328 --> 00:04:26,792 >> [Kicheko] 103 00:04:26,792 --> 00:04:28,510 >> [Cheering na makofi] 104 00:04:28,510 --> 00:04:31,211 >> -Haya, ambaye alimwambia hii? 105 00:04:31,211 --> 00:04:32,155 OK. 106 00:04:32,155 --> 00:04:33,350 >> [MWISHO video avspelning] 107 00:04:33,350 --> 00:04:35,070 >> DAVID Malan: Hivyo kuna una hiyo. 108 00:04:35,070 --> 00:04:39,600 Hivyo tulianza kupima hizi mbio nyakati, hivyo kusema, na kitu 109 00:04:39,600 --> 00:04:43,480 kuitwa asymptotic nukuu, ambayo ni tu akimaanisha aina yetu ya kugeuka 110 00:04:43,480 --> 00:04:47,420 jicho kipofu kwa sababu hizo ndogo na tu kuangalia wakati mbio, 111 00:04:47,420 --> 00:04:51,250 utendaji ya algorithms haya, kama n kweli anapata kubwa zaidi ya muda. 112 00:04:51,250 --> 00:04:55,110 Na hivyo sisi ilianzisha kubwa O. Na kubwa O kuwakilishwa kitu ambacho tulidhani 113 00:04:55,110 --> 00:04:57,000 ya kama amefungwa juu. 114 00:04:57,000 --> 00:04:59,570 Na kweli, Barry, tunaweza kupunguza kuliko mic kidogo? 115 00:04:59,570 --> 00:05:01,040 >> Tulidhani ya hii ni amefungwa juu. 116 00:05:01,040 --> 00:05:04,710 Hivyo kubwa O ya njia n squared kwamba katika kesi mbaya, kitu kama 117 00:05:04,710 --> 00:05:07,780 uteuzi aina bila kuchukua n hatua squared. 118 00:05:07,780 --> 00:05:10,310 Au kitu kama aina ya kuingizwa ingekuwa n hatua squared. 119 00:05:10,310 --> 00:05:15,150 Sasa kwa ajili ya kitu kama kuingizwa aina, nini ilikuwa hali mbaya zaidi? 120 00:05:15,150 --> 00:05:18,200 Kutokana na safu, nini mbaya iwezekanavyo scenario kwamba unaweza kupata 121 00:05:18,200 --> 00:05:20,650 mwenyewe wanakabiliwa na? 122 00:05:20,650 --> 00:05:21,860 >> Ni kabisa nyuma, haki? 123 00:05:21,860 --> 00:05:24,530 Kwa sababu kama ni kabisa nyuma, una kufanya mengi yote ya kazi. 124 00:05:24,530 --> 00:05:26,420 Kwa sababu kama wewe ni kabisa nyuma, wewe ni kwenda kupata 125 00:05:26,420 --> 00:05:28,840 kubwa kipengele hapa, hata kama ni mali ya chini huko. 126 00:05:28,840 --> 00:05:31,140 Hivyo wewe ni kwenda kusema, haki ya wote, katika huu katika muda, wewe ni hapa, 127 00:05:31,140 --> 00:05:32,310 hivyo wewe kuondoka peke yake. 128 00:05:32,310 --> 00:05:35,425 >> Basi wewe kutambua, oh, damn, nina hoja hii ya kipengele kidogo kidogo kwa 129 00:05:35,425 --> 00:05:36,470 kushoto wa wewe. 130 00:05:36,470 --> 00:05:38,770 Basi mimi na kwa kufanya hivyo tena na tena na tena. 131 00:05:38,770 --> 00:05:41,410 Na kama mimi kutembea na kurudi, wewe itakuwa aina ya kujisikia ya utendaji wa 132 00:05:41,410 --> 00:05:45,540 algorithm kwamba, kwa sababu mara kwa mara mimi shuffling kila mtu mwingine chini katika 133 00:05:45,540 --> 00:05:46,510 safu kufanya chumba kwa ajili yake. 134 00:05:46,510 --> 00:05:47,750 Hivyo kwamba ni kesi mbaya. 135 00:05:47,750 --> 00:05:48,570 >> Kwa upande mwingine - 136 00:05:48,570 --> 00:05:50,320 na hii ilikuwa mwisho cliffhanger wakati - 137 00:05:50,320 --> 00:05:54,065 sisi alisema kwamba aina ya kuingizwa mara omega ya nini? 138 00:05:54,065 --> 00:05:57,530 Nini mbio bora kesi wakati wa aina kuingizwa? 139 00:05:57,530 --> 00:05:58,520 Hivyo ni kweli n. 140 00:05:58,520 --> 00:06:00,980 Hiyo ilikuwa tupu kwamba sisi kushoto juu ya bodi ya mwisho wakati. 141 00:06:00,980 --> 00:06:03,160 >> Na ni omega ya n sababu kwa nini? 142 00:06:03,160 --> 00:06:06,630 Naam, katika kesi bora sana, nini kuingizwa aina kwenda kuwa mitupu? 143 00:06:06,630 --> 00:06:09,830 Naam, orodha hiyo kabisa kutatuliwa tayari, ndogo kazi ya kufanya. 144 00:06:09,830 --> 00:06:12,460 Lakini nini nadhifu kuhusu aina ya kuingizwa ni kwamba kwa sababu ni kuanza hapa na 145 00:06:12,460 --> 00:06:15,340 anaamua, oh, wewe ni idadi moja, wewe ni hapa. 146 00:06:15,340 --> 00:06:16,970 Oh, nini bahati nzuri. 147 00:06:16,970 --> 00:06:17,740 >> Wewe ni namba mbili. 148 00:06:17,740 --> 00:06:19,030 Wewe pia ni mali hapa. 149 00:06:19,030 --> 00:06:21,010 Namba tatu, hata bora zaidi, wewe ni hapa. 150 00:06:21,010 --> 00:06:25,210 Haraka kama anapata hadi mwisho wa orodha, kwa kila aina ya kuingizwa pseudocode 151 00:06:25,210 --> 00:06:28,010 kwamba sisi kutembea kwa njia ya maneno mara ya mwisho, ni kosa. 152 00:06:28,010 --> 00:06:32,790 Lakini uteuzi aina, kwa kulinganisha, naendelea kufanya nini? 153 00:06:32,790 --> 00:06:35,260 >> Naendelea kwenda kupitia orodha tena na tena na tena. 154 00:06:35,260 --> 00:06:39,160 Kwa sababu ufahamu muhimu kulikuwa tu mara moja umefanya inaonekana njia yote ya 155 00:06:39,160 --> 00:06:42,500 mwisho wa orodha unaweza kuwa na uhakika kwamba kipengele wewe kuchaguliwa mara 156 00:06:42,500 --> 00:06:45,560 kweli kipengele sasa madogo. 157 00:06:45,560 --> 00:06:48,920 Hivyo haya mbalimbali ya akili mifano mwisho hadi kujitoa sana baadhi ya ulimwengu halisi 158 00:06:48,920 --> 00:06:53,130 tofauti kwa ajili yetu, kama vile hizi kinadharia asymptotic tofauti. 159 00:06:53,130 --> 00:06:56,910 >> Hivyo tu kwa kurejea, basi, kubwa O ya n squared, tumeona vile chache 160 00:06:56,910 --> 00:06:58,350 algorithms hivi sasa. 161 00:06:58,350 --> 00:06:59,580 Kubwa O ya n? 162 00:06:59,580 --> 00:07:02,870 Nini algorithm ambayo inaweza kuwa alisema kuwa kubwa O ya n? 163 00:07:02,870 --> 00:07:06,930 Katika hali mbaya zaidi, inachukua idadi linear ya hatua. 164 00:07:06,930 --> 00:07:07,810 >> OK, linear utafutaji. 165 00:07:07,810 --> 00:07:10,470 Na katika hali mbaya zaidi, ambapo ni kipengele wewe ni kuangalia kwa wakati 166 00:07:10,470 --> 00:07:12,950 kutumia tafuta linear? 167 00:07:12,950 --> 00:07:14,680 >> OK, katika kesi mbaya, ni hata huko. 168 00:07:14,680 --> 00:07:17,000 Au katika kesi ya pili mbaya zaidi, ni njia yote katika mwisho, ambayo ni 169 00:07:17,000 --> 00:07:18,880 pamoja na-au-bala tofauti hatua moja. 170 00:07:18,880 --> 00:07:21,180 Hivyo mwisho wa siku, tunaweza kusema ni linear. 171 00:07:21,180 --> 00:07:23,910 Kubwa O ya n itakuwa linear utafutaji, kwa sababu katika hali mbaya zaidi, 172 00:07:23,910 --> 00:07:26,610 kipengele hata si huko au ni njia yote mwishoni. 173 00:07:26,610 --> 00:07:29,370 >> Naam, kubwa O logi ya n. 174 00:07:29,370 --> 00:07:32,760 Hatukuwa majadiliano katika kina kubwa kuhusu hii, lakini tumeona hii kabla. 175 00:07:32,760 --> 00:07:36,840 Nini anaendesha katika kinachojulikana logarithmic wakati, katika kesi mbaya? 176 00:07:36,840 --> 00:07:38,500 >> Yeah, hivyo binary tafuta. 177 00:07:38,500 --> 00:07:42,930 Na kisha tafuta katika kesi mbaya wanaweza kuwa na kipengele mahali fulani katika 178 00:07:42,930 --> 00:07:45,640 katikati, au mahali fulani ndani ya safu. 179 00:07:45,640 --> 00:07:48,040 Lakini wewe tu kupata hiyo mara moja kugawanya orodha katika nusu, katika 180 00:07:48,040 --> 00:07:48,940 nusu, katika nusu, katika nusu. 181 00:07:48,940 --> 00:07:50,200 Na kisha voila, ni huko. 182 00:07:50,200 --> 00:07:52,500 Au tena, kesi mbaya, ni hata huko. 183 00:07:52,500 --> 00:07:56,770 Lakini huwezi kujua kwamba siyo kuna mpaka aina ya kufikia mwisho 184 00:07:56,770 --> 00:08:00,470 chini-wengi vipengele na kupunguza nusu ya na kupunguza nusu na nusu. 185 00:08:00,470 --> 00:08:01,400 >> Kubwa O ya 1. 186 00:08:01,400 --> 00:08:03,540 Hivyo tunaweza kubwa O ya 2, kubwa O ya 3. 187 00:08:03,540 --> 00:08:06,260 Wowote unataka tu ya simu mara kwa mara, sisi tu ya aina ya tu kurahisisha 188 00:08:06,260 --> 00:08:07,280 kwamba kama kubwa O ya 1. 189 00:08:07,280 --> 00:08:10,440 Hata ingawa kama realistically, inachukua 2 au hata 100 hatua, ikiwa ni 190 00:08:10,440 --> 00:08:13,680 mara kwa mara ya simu ya hatua, sisi tu kusema kubwa O ya 1. 191 00:08:13,680 --> 00:08:15,930 Nini algorithm kwamba katika kubwa O ya 1? 192 00:08:15,930 --> 00:08:18,350 >> Watazamaji: Kupata urefu ya kutofautiana. 193 00:08:18,350 --> 00:08:21,090 >> DAVID Malan: Kupata urefu wa kutofautiana? 194 00:08:21,090 --> 00:08:23,870 >> Watazamaji: Hapana, urefu kama ni tayari Iliyopangwa. 195 00:08:23,870 --> 00:08:24,160 >> DAVID Malan: Good. 196 00:08:24,160 --> 00:08:27,850 OK, hivyo kutafuta urefu wa kitu kama urefu wa kitu ambacho, kama 197 00:08:27,850 --> 00:08:30,020 safu, ni kuhifadhiwa katika variable fulani. 198 00:08:30,020 --> 00:08:33,380 Kwa sababu unaweza kusoma tu kutofautiana, au magazeti kutofautiana, au 199 00:08:33,380 --> 00:08:34,960 ujumla tu kupata kwamba kutofautiana. 200 00:08:34,960 --> 00:08:37,299 Na voilĂ , kwamba inachukua muda mara kwa mara. 201 00:08:37,299 --> 00:08:38,909 >> Kwa upande mwingine, kufikiri nyuma scratch. 202 00:08:38,909 --> 00:08:42,460 Fikiria nyuma kwenye wiki ya kwanza ya C, wito tu printf na uchapishaji 203 00:08:42,460 --> 00:08:46,240 kitu juu ya screen ni arguably wakati mara kwa mara, kwa sababu tu inachukua 204 00:08:46,240 --> 00:08:50,880 baadhi ya idadi ya mzunguko CPU kuonyesha kwamba maandishi kwenye screen. 205 00:08:50,880 --> 00:08:52,720 Au kusubiri - gani? 206 00:08:52,720 --> 00:08:56,430 Jinsi mwingine ili sisi mfano utendaji wa printf? 207 00:08:56,430 --> 00:09:00,420 Je, mtu kama hawakubaliani, kwamba labda si kweli mara kwa mara wakati? 208 00:09:00,420 --> 00:09:03,600 Kwa namna gani wanaweza printf mbio wakati, kwa kweli uchapishaji kamba juu ya 209 00:09:03,600 --> 00:09:05,580 screen, kuwa kitu chochote zaidi ya mara kwa mara. 210 00:09:05,580 --> 00:09:07,860 >> Watazamaji: [inaudible]. 211 00:09:07,860 --> 00:09:08,230 >> DAVID Malan: Yeah. 212 00:09:08,230 --> 00:09:09,300 Hivyo inategemea mtazamo wetu. 213 00:09:09,300 --> 00:09:13,390 Kama sisi kweli nadhani ya pembejeo kwa printf kama kuwa kamba, na 214 00:09:13,390 --> 00:09:16,380 hiyo sisi kupima ukubwa wa kwamba pembejeo na urefu wake - hivyo hebu piga 215 00:09:16,380 --> 00:09:17,780 kwamba urefu n pia - 216 00:09:17,780 --> 00:09:21,990 arguably, printf yenyewe ni kubwa O ya n kwa sababu ni kwenda kuchukua wewe n hatua 217 00:09:21,990 --> 00:09:24,750 magazeti nje ya kila aina ya wale n wahusika, uwezekano mkubwa. 218 00:09:24,750 --> 00:09:27,730 Angalau kwa kiasi kwamba sisi kudhani kwamba labda ni kutumia kwa kitanzi 219 00:09:27,730 --> 00:09:28,560 chini ya Hood. 220 00:09:28,560 --> 00:09:30,860 >> Lakini tunataka kuwa na kuangalia kwamba Kanuni kuelewa ni bora zaidi. 221 00:09:30,860 --> 00:09:33,650 Na kwa kweli, mara moja nyie kuanza kuchambua yako algorithms mwenyewe, itabidi 222 00:09:33,650 --> 00:09:34,900 literally kufanya tu. 223 00:09:34,900 --> 00:09:37,765 Aina ya mboni ya kanuni yako na kufikiri kuhusu - haki ya wote, nina hii kitanzi 224 00:09:37,765 --> 00:09:41,870 hapa au nina mizunguko Furushi hapa, kwamba kinaendelea kufanya mambo n n nyakati, 225 00:09:41,870 --> 00:09:46,050 na unaweza aina ya sababu njia yako kupitia kanuni, hata kama ni 226 00:09:46,050 --> 00:09:47,980 pseudocode na si halisi ya kanuni. 227 00:09:47,980 --> 00:09:49,730 >> Basi nini kuhusu omega ya n squared? 228 00:09:49,730 --> 00:09:53,582 Nini ilikuwa algorithm kwamba katika bora kesi, bado alichukua hatua squared n? 229 00:09:53,582 --> 00:09:54,014 Yeah? 230 00:09:54,014 --> 00:09:54,880 >> Watazamaji: [inaudible]. 231 00:09:54,880 --> 00:09:55,900 >> DAVID Malan: Hivyo uteuzi aina. 232 00:09:55,900 --> 00:09:59,150 Kwa sababu katika tatizo kwamba kweli kupunguzwa na ukweli kwamba tena, sijui 233 00:09:59,150 --> 00:10:02,600 Nimepata ndogo mpaka sasa Nimekuwa checked mambo yote darn. 234 00:10:02,600 --> 00:10:08,050 Hivyo omega ya, kusema, n, sisi alikuja tu na moja. 235 00:10:08,050 --> 00:10:09,300 Kuingizwa aina. 236 00:10:09,300 --> 00:10:12,370 Kama orodha kinachotokea ya kutatuliwa tayari, katika kesi bora sisi tu 237 00:10:12,370 --> 00:10:15,090 kufanya moja kupita njia hiyo, saa ambayo kumweka sisi ni uhakika. 238 00:10:15,090 --> 00:10:17,890 Na kisha hiyo inaweza kuwa alisema kuwa linear, kwa uhakika. 239 00:10:17,890 --> 00:10:20,570 >> Nini kuhusu omega ya 1? 240 00:10:20,570 --> 00:10:23,790 Nini, katika kesi bora, inaweza kuchukua simu mara kwa mara ya hatua? 241 00:10:23,790 --> 00:10:27,220 Hivyo linear tafuta, kama wewe tu kupata bahati na kipengele wewe ni kuangalia 242 00:10:27,220 --> 00:10:31,000 ni haki katika mwanzo wa orodha, kama hiyo ambapo wewe ni mapya yako 243 00:10:31,000 --> 00:10:33,070 linear traversal wa orodha hiyo. 244 00:10:33,070 --> 00:10:35,180 >> Na hii ni ya kweli ya idadi ya mambo. 245 00:10:35,180 --> 00:10:37,660 Kwa mfano, hata binary kutafuta ni omega ya 1. 246 00:10:37,660 --> 00:10:40,310 Kwa sababu nini kama wewe kupata kweli darn bahati na Smack-dab katika katikati ya 247 00:10:40,310 --> 00:10:42,950 safu yako ni idadi wewe ni kuangalia kwa? 248 00:10:42,950 --> 00:10:45,730 Hivyo unaweza kupata bahati huko, kama vile. 249 00:10:45,730 --> 00:10:49,190 >> Hii moja, mwishowe, omega ya n logi n. 250 00:10:49,190 --> 00:10:52,573 Hivyo n logi n, sisi si kweli majadiliano juu bado, lakini - 251 00:10:52,573 --> 00:10:53,300 >> Watazamaji: Merge aina? 252 00:10:53,300 --> 00:10:53,960 >> DAVID Malan: Merge aina. 253 00:10:53,960 --> 00:10:56,920 Hiyo ilikuwa cliffhanger ya wakati wa mwisho, ambapo sisi mapendekezo, na sisi ilionyesha 254 00:10:56,920 --> 00:10:58,600 kuibua, kwamba kuna algorithms. 255 00:10:58,600 --> 00:11:02,470 Na kuunganisha aina moja tu ya vile algorithm kwamba kimsingi ni kasi 256 00:11:02,470 --> 00:11:03,450 kuliko baadhi ya guys haya mengine. 257 00:11:03,450 --> 00:11:07,800 Kwa kweli, kuunganisha short siyo tu katika bora kesi n n logi, katika mbaya 258 00:11:07,800 --> 00:11:09,460 kesi n n gogo. 259 00:11:09,460 --> 00:11:14,540 Na wakati una hii bahati mbaya ya omega na kubwa O kuwa kitu kimoja? 260 00:11:14,540 --> 00:11:17,310 Tunaweza kweli kueleza kwamba kama nini kuitwa theta, ingawa ni 261 00:11:17,310 --> 00:11:18,220 kidogo chini ya kawaida. 262 00:11:18,220 --> 00:11:21,730 Lakini hiyo ina maana tu mipaka miwili, katika kesi hii, ni sawa. 263 00:11:21,730 --> 00:11:25,770 >> Hivyo kuunganisha aina, je, hii kweli jipu chini kwa ajili yetu? 264 00:11:25,770 --> 00:11:27,000 Naam, kukumbuka motisha. 265 00:11:27,000 --> 00:11:30,340 Hebu vuta hadi mwingine uhuishaji kwamba sisi hawakuwa kuangalia wakati wa mwisho. 266 00:11:30,340 --> 00:11:33,390 Hii moja, wazo moja, lakini ni kidogo kubwa. 267 00:11:33,390 --> 00:11:36,160 Na mimi nina kwenda mbele na kumweka nje kwanza - tuna aina kuingizwa kwenye 268 00:11:36,160 --> 00:11:39,410 upande wa juu kushoto, basi uteuzi aina, Bubble aina, ya wanandoa wa aina nyingine - 269 00:11:39,410 --> 00:11:42,670 shell na ya haraka - kwamba sisi si aliongea kuhusu, na chungu na kuunganisha aina. 270 00:11:42,670 --> 00:11:47,090 >> Hivyo angalau kujaribu kuzingatia macho yako juu tatu za juu upande wa kushoto na kisha 271 00:11:47,090 --> 00:11:49,120 kuunganisha aina wakati mimi bonyeza hii mshale kijani. 272 00:11:49,120 --> 00:11:51,900 Lakini mimi itabidi basi wao wote kukimbia, tu kukupa hisia ya utofauti wa 273 00:11:51,900 --> 00:11:53,980 algorithms ambazo zipo katika dunia. 274 00:11:53,980 --> 00:11:56,180 Mimi nina kwenda basi hii kukimbia kwa sekunde chache tu. 275 00:11:56,180 --> 00:11:59,640 Na kama wewe lengo macho yako - pick algorithm, kuzingatia ni kwa ajili tu ya 276 00:11:59,640 --> 00:12:02,970 sekunde - utasikia kuanza kuona mfano kwamba ni utekelezaji. 277 00:12:02,970 --> 00:12:04,530 >> Aina kuunganisha, ilani, ni kosa. 278 00:12:04,530 --> 00:12:06,430 Lundo aina, haraka aina, shell - 279 00:12:06,430 --> 00:12:09,480 hivyo inaonekana sisi ilianzisha tatu mbaya zaidi algorithms wiki iliyopita. 280 00:12:09,480 --> 00:12:12,960 Lakini hiyo ni nzuri kwamba sisi ni hapa leo kuangalia aina kuunganisha, ambayo ni moja ya 281 00:12:12,960 --> 00:12:16,500 ndio rahisi ni kuangalia, hata ingawa pengine bend akili yako 282 00:12:16,500 --> 00:12:17,490 kidogo tu. 283 00:12:17,490 --> 00:12:21,130 Hapa tunaweza kuona ni kiasi gani uteuzi aina sucks. 284 00:12:21,130 --> 00:12:24,600 >> Lakini kwa upande flip, ni kweli ni rahisi kutekeleza. 285 00:12:24,600 --> 00:12:28,160 Na labda kwa ajili ya P Set 3, hiyo ni moja ya algorithms alichagua kutekeleza 286 00:12:28,160 --> 00:12:28,960 kwa toleo la kawaida. 287 00:12:28,960 --> 00:12:30,970 Kikamilifu faini, kikamilifu sahihi. 288 00:12:30,970 --> 00:12:35,210 >> Lakini tena, kama n anapata kubwa, kama wewe kuchagua kutekeleza algorithm kasi 289 00:12:35,210 --> 00:12:39,020 kama kuunganisha aina, ni tabia mbaya katika kubwa na kubwa za pembejeo, code yako ni ya haki 290 00:12:39,020 --> 00:12:39,800 kwenda kukimbia kwa kasi zaidi. 291 00:12:39,800 --> 00:12:41,090 Tovuti yako ya kwenda kufanya kazi bora. 292 00:12:41,090 --> 00:12:42,650 Watumiaji yako ni kwenda kuwa furaha. 293 00:12:42,650 --> 00:12:45,280 Na hivyo kuna athari hizi ya kweli kutoa 294 00:12:45,280 --> 00:12:47,350 sisi baadhi undani mawazo. 295 00:12:47,350 --> 00:12:49,990 >> Basi hebu tuangalie nini kuunganisha aina ni kweli yote juu. 296 00:12:49,990 --> 00:12:52,992 jambo zuri ni kwamba kuunganisha aina ni tu hii. 297 00:12:52,992 --> 00:12:56,300 Hii ni, tena, kile ambacho tumekuwa aitwaye pseudocode, pseudocode kiumbe 298 00:12:56,300 --> 00:12:57,720 Kiingereza-kama syntax. 299 00:12:57,720 --> 00:12:59,890 Na unyenyekevu ni aina ya kuvutia. 300 00:12:59,890 --> 00:13:02,840 >> Hivyo juu ya pembejeo ya mambo n - ili njia tu, hapa ni safu. 301 00:13:02,840 --> 00:13:04,000 Ni got mambo n ndani yake. 302 00:13:04,000 --> 00:13:05,370 Kwamba wote sisi ni kusema huko. 303 00:13:05,370 --> 00:13:07,560 >> Kama n ni chini ya 2, kurudi. 304 00:13:07,560 --> 00:13:08,640 Hivyo kwamba ni tu kesi yasiyo na maana. 305 00:13:08,640 --> 00:13:12,580 Kama n ni chini ya 2, basi ni wazi ni 1 au 0, katika kesi ambayo kitu 306 00:13:12,580 --> 00:13:14,780 tayari yamepangwa au haipo, hivyo tu kurudi. 307 00:13:14,780 --> 00:13:15,900 Kuna kitu cha kufanya. 308 00:13:15,900 --> 00:13:18,360 Hivyo kwamba ni kesi rahisi kuvunja mbali. 309 00:13:18,360 --> 00:13:20,110 >> Mwingine, tuna hatua tatu. 310 00:13:20,110 --> 00:13:23,650 Kutatua nusu ya kushoto ya mambo, aina nusu haki ya vipengele, 311 00:13:23,650 --> 00:13:26,650 na kisha kuunganisha nusu Iliyopangwa. 312 00:13:26,650 --> 00:13:29,400 Nini kuvutia hapa ni kwamba Mimi nina aina ya punting, haki? 313 00:13:29,400 --> 00:13:32,300 Kuna aina ya ufafanuzi mviringo kwa algorithm hii. 314 00:13:32,300 --> 00:13:35,986 Katika maana gani ni hii ya algorithm ufafanuzi mviringo? 315 00:13:35,986 --> 00:13:37,850 >> Watazamaji: [inaudible]. 316 00:13:37,850 --> 00:13:41,670 >> DAVID Malan: Yeah, kuchagua yangu algorithm, mbili ya hatua yake ni "aina 317 00:13:41,670 --> 00:13:44,640 kitu ". Na hivyo kwamba anaomba swali, vizuri, je, Mimi naenda kutumia 318 00:13:44,640 --> 00:13:46,460 kutatua nusu ya kushoto na nusu ya haki? 319 00:13:46,460 --> 00:13:49,600 Na uzuri hapa ni kwamba hata kama tena, hii ni akili-bending 320 00:13:49,600 --> 00:13:54,030 sehemu uwezekano, unaweza kutumia moja algorithm kutatua nusu ya kushoto. 321 00:13:54,030 --> 00:13:54,700 >> Lakini kusubiri dakika. 322 00:13:54,700 --> 00:13:57,070 Wakati wewe ni aliiambia kutatua nusu ya kushoto, kile ni mbili 323 00:13:57,070 --> 00:13:58,240 hatua kwenda kuwa ijayo? 324 00:13:58,240 --> 00:14:00,550 Tutaweza kutatua nusu ya kushoto ya kushoto na kulia nusu 325 00:14:00,550 --> 00:14:01,420 nusu ya nusu ya kushoto. 326 00:14:01,420 --> 00:14:04,430 Damn, jinsi gani mimi aina hizo mbili nusu, au robo, sasa? 327 00:14:04,430 --> 00:14:05,260 >> Lakini hiyo ni sawa. 328 00:14:05,260 --> 00:14:07,830 Tuna algorithm kuchagua hapa. 329 00:14:07,830 --> 00:14:10,660 Na hata ingawa unaweza wasiwasi katika kwanza hii ni aina ya usio 330 00:14:10,660 --> 00:14:12,780 kitanzi, ni mzunguko kwamba kamwe kwenda mwisho - ni kwenda 331 00:14:12,780 --> 00:14:15,770 kukomesha mara moja nini hufanyika? 332 00:14:15,770 --> 00:14:16,970 Mara moja n ni chini ya 2. 333 00:14:16,970 --> 00:14:19,180 Ambayo hatimaye kinaenda kutokea, kwa sababu kama wewe kuweka hesabu za nusu na 334 00:14:19,180 --> 00:14:23,020 kupunguza nusu katika kupunguza nusu nusu hizi, hakika hatimaye wewe ni kwenda mwisho 335 00:14:23,020 --> 00:14:25,350 juu na tu 1 au 0 vipengele. 336 00:14:25,350 --> 00:14:28,500 Saa ambayo kumweka, hii algorithm anasema wewe ni kosa. 337 00:14:28,500 --> 00:14:31,020 >> Hivyo uchawi kweli katika hii algorithm inaonekana kuwa katika 338 00:14:31,020 --> 00:14:33,470 kwamba hatua ya mwisho, kuunganisha. 339 00:14:33,470 --> 00:14:37,190 Kwamba wazo rahisi tu kuunganisha mbili mambo, kwamba ni nini hatimaye kwenda 340 00:14:37,190 --> 00:14:40,920 kuruhusu yetu ya kutatua safu ya, hebu sema, mambo nane. 341 00:14:40,920 --> 00:14:44,410 Hivyo nina nane mipira mkazo zaidi juu hapa, nane vipande vya karatasi, na moja 342 00:14:44,410 --> 00:14:45,500 Google kioo - 343 00:14:45,500 --> 00:14:46,140 ambayo mimi kupata kushika. 344 00:14:46,140 --> 00:14:46,960 >> [Kicheko] 345 00:14:46,960 --> 00:14:48,970 >> DAVID Malan: Kama sisi inaweza kuchukua nane kujitolea, na hebu angalia kama tunaweza 346 00:14:48,970 --> 00:14:51,430 kucheza nje, hivyo. 347 00:14:51,430 --> 00:14:52,500 Wow, OK. 348 00:14:52,500 --> 00:14:53,565 Sayansi ya kompyuta ni kupata furaha. 349 00:14:53,565 --> 00:14:54,320 Wote haki. 350 00:14:54,320 --> 00:14:57,770 Hivyo vipi kuhusu wewe tatu, kubwa mkono hadi pale. 351 00:14:57,770 --> 00:14:58,580 Nne katika nyuma. 352 00:14:58,580 --> 00:15:02,220 Na vipi kuhusu tutaweza kufanya wewe tatu katika safu hii? 353 00:15:02,220 --> 00:15:03,390 Na nne mbele. 354 00:15:03,390 --> 00:15:04,920 Hivyo nane, kuja juu juu. 355 00:15:04,920 --> 00:15:12,060 >> [Kicheko] 356 00:15:12,060 --> 00:15:13,450 >> DAVID Malan: Mimi kwa kweli uhakika ni nini. 357 00:15:13,450 --> 00:15:14,810 Je, ni mipira ya dhiki? 358 00:15:14,810 --> 00:15:16,510 taa dawati? 359 00:15:16,510 --> 00:15:18,650 nyenzo? 360 00:15:18,650 --> 00:15:19,680 internet? 361 00:15:19,680 --> 00:15:20,160 >> OK. 362 00:15:20,160 --> 00:15:21,310 Hivyo kuja juu juu. 363 00:15:21,310 --> 00:15:22,310 Ambao wangependa - 364 00:15:22,310 --> 00:15:23,570 kuendelea kuja juu. 365 00:15:23,570 --> 00:15:24,240 Hebu angalia. 366 00:15:24,240 --> 00:15:26,460 Na hii unaweka katika eneo - 367 00:15:26,460 --> 00:15:27,940 uko katika eneo moja. 368 00:15:27,940 --> 00:15:28,670 Uh-oh, kusubiri dakika. 369 00:15:28,670 --> 00:15:30,760 1, 2, 3, 4, 5, 6, 7 - oh, nzuri. 370 00:15:30,760 --> 00:15:31,310 Haki wote, sisi ni nzuri. 371 00:15:31,310 --> 00:15:35,130 Haki ya wote, hivyo kila mtu kuwa na kiti, lakini si kwa kioo Google. 372 00:15:35,130 --> 00:15:36,475 Hebu kwa foleni haya juu. 373 00:15:36,475 --> 00:15:37,115 Nini jina lako? 374 00:15:37,115 --> 00:15:37,440 >> MICHELLE: Michelle. 375 00:15:37,440 --> 00:15:38,090 >> DAVID Malan: Michelle? 376 00:15:38,090 --> 00:15:42,000 Wote haki, kupata na kuangalia kama geek, kama kwamba ni sawa. 377 00:15:42,000 --> 00:15:44,625 Naam, mimi pia, nadhani, kwa muda tu. 378 00:15:44,625 --> 00:15:45,875 Haki ya wote, kusubiri. 379 00:15:45,875 --> 00:15:48,510 380 00:15:48,510 --> 00:15:50,950 Tumekuwa kujaribu kuja na kutumia kesi kwa ajili ya Google kioo, na sisi 381 00:15:50,950 --> 00:15:53,750 walidhani itakuwa furaha tu kufanya hii wakati watu ni onstage. 382 00:15:53,750 --> 00:15:57,120 Tutarekodi dunia kwa mtazamo wao. 383 00:15:57,120 --> 00:15:58,410 Wote haki. 384 00:15:58,410 --> 00:15:59,830 Si pengine kile Google yaliyokusudiwa. 385 00:15:59,830 --> 00:16:02,260 Haki ya yote, kama huna akili amevaa hili kwa dakika ijayo Awkward, 386 00:16:02,260 --> 00:16:03,150 kwamba itakuwa ya ajabu. 387 00:16:03,150 --> 00:16:08,620 >> Haki wote, hivyo sisi hapa safu ya mambo, na kwamba safu, kama kwa 388 00:16:08,620 --> 00:16:11,480 vipande vya karatasi katika folks hizi ' mikono, kwa sasa ni zisizochambuliwa. 389 00:16:11,480 --> 00:16:12,050 >> MICHELLE: Oh, hiyo ni kioja. 390 00:16:12,050 --> 00:16:12,810 >> DAVID Malan: Ni pretty much random. 391 00:16:12,810 --> 00:16:15,760 Na katika muda tu, sisi ni kwenda kujaribu kutekeleza kuunganisha aina pamoja 392 00:16:15,760 --> 00:16:17,950 na kuona ambapo kwamba ufahamu muhimu ni. 393 00:16:17,950 --> 00:16:21,970 Na hila hapa na aina kuunganisha ni kitu ambacho sisi si kudhani bado. 394 00:16:21,970 --> 00:16:24,030 Sisi kwa kweli haja ya baadhi ya ziada nafasi. 395 00:16:24,030 --> 00:16:26,650 Hivyo nini kinaendelea kuwa hasa kuvutia kuhusu hili ni kwamba hawa 396 00:16:26,650 --> 00:16:29,270 guys ni kwenda kuzunguka kidogo kidogo, kwa sababu mimi naenda kwa kudhani kwamba 397 00:16:29,270 --> 00:16:31,880 kuna safu ya ziada ya nafasi, kusema, haki ya nyuma yao. 398 00:16:31,880 --> 00:16:34,570 >> Hivyo kama wao uko nyuma ya mwenyekiti wao, hiyo ni safu ya sekondari. 399 00:16:34,570 --> 00:16:36,960 Kama uko ameketi hapa, hiyo ni safu ya msingi. 400 00:16:36,960 --> 00:16:40,170 Lakini hii ni rasilimali ya kwamba tuna si leveraged hivi sasa na Bubble 401 00:16:40,170 --> 00:16:42,040 aina, na aina ya uteuzi, na aina ya kuingizwa. 402 00:16:42,040 --> 00:16:44,600 Kukumbuka wiki iliyopita, kila mtu tu aina ya shuffled katika mahali. 403 00:16:44,600 --> 00:16:46,840 Hawakuwa na matumizi yoyote kumbukumbu ya ziada. 404 00:16:46,840 --> 00:16:49,310 Tukiwa na chumba kwa ajili ya watu na kuhamia watu duniani. 405 00:16:49,310 --> 00:16:50,580 >> Hivyo hii ni ufahamu muhimu, pia. 406 00:16:50,580 --> 00:16:53,410 Kuna hii biashara-off, kwa ujumla katika sayansi ya kompyuta, ya rasilimali. 407 00:16:53,410 --> 00:16:55,800 Kama unataka kuongeza kasi ya kitu kama muda, wewe ni kwenda 408 00:16:55,800 --> 00:16:56,900 na kulipa bei. 409 00:16:56,900 --> 00:17:00,750 Na moja ya bei hizo ni mara nyingi sana nafasi, kiasi cha kumbukumbu au ngumu 410 00:17:00,750 --> 00:17:01,700 disk nafasi ya kuwa unatumia. 411 00:17:01,700 --> 00:17:03,640 Au, kusema ukweli, kiasi ya muda programu. 412 00:17:03,640 --> 00:17:06,700 Kiasi gani wakati inachukua wewe, mwanadamu, kwa kweli kutekeleza baadhi ya zaidi 413 00:17:06,700 --> 00:17:07,829 ngumu algorithm. 414 00:17:07,829 --> 00:17:09,760 Lakini kwa leo, biashara-off ni muda na nafasi. 415 00:17:09,760 --> 00:17:11,930 >> Hivyo kama wewe guys inaweza kushikilia tu juu yako namba ili tuweze kuona kwamba wewe ni 416 00:17:11,930 --> 00:17:15,839 kweli vinavyolingana 4, 2, 6, 1, 3, 7, 8. 417 00:17:15,839 --> 00:17:16,599 Bora. 418 00:17:16,599 --> 00:17:19,520 Hivyo nina kwenda kujaribu orchestrate mambo, kama wewe guys unaweza tu 419 00:17:19,520 --> 00:17:21,800 kufuata kuongoza yangu hapa. 420 00:17:21,800 --> 00:17:26,650 >> Kwa hiyo mimi ni kwenda kutekeleza, kwanza, hatua ya kwanza ya pseudocode, ambayo ni 421 00:17:26,650 --> 00:17:29,440 juu ya pembejeo ya mambo n, ikiwa n ni chini ya 2, halafu arudi. 422 00:17:29,440 --> 00:17:31,370 Ni wazi, kwamba hana kuomba, hivyo sisi kuondoka. 423 00:17:31,370 --> 00:17:33,340 Hivyo kutatua nusu ya kushoto ya vipengele. 424 00:17:33,340 --> 00:17:36,220 Hivyo kwamba maana mimi nina kwenda kuzingatia yangu tahadhari kwa muda tu juu ya haya 425 00:17:36,220 --> 00:17:37,310 wanne guys hapa. 426 00:17:37,310 --> 00:17:39,774 Wote haki, je, mimi ijayo kufanya? 427 00:17:39,774 --> 00:17:40,570 >> Watazamaji: aina nusu ya kushoto. 428 00:17:40,570 --> 00:17:42,780 >> DAVID Malan: Basi sasa nina kutatua nusu ya kushoto ya guys haya. 429 00:17:42,780 --> 00:17:45,580 Sababu tena, kudhani na wewe mwenyewe lengo ni kutatua nusu ya kushoto. 430 00:17:45,580 --> 00:17:46,440 Jinsi gani unaweza kufanya hivyo? 431 00:17:46,440 --> 00:17:49,140 Tu kufuata maelekezo, hata ingawa sisi ni kufanya hivyo tena. 432 00:17:49,140 --> 00:17:50,160 Hivyo kutatua nusu ya kushoto. 433 00:17:50,160 --> 00:17:52,030 Sasa mimi nina kuchagua guys hizi mbili. 434 00:17:52,030 --> 00:17:53,563 Kile unakuja ijayo? 435 00:17:53,563 --> 00:17:54,510 >> Watazamaji: aina nusu ya kushoto. 436 00:17:54,510 --> 00:17:55,460 >> DAVID Malan: aina nusu ya kushoto. 437 00:17:55,460 --> 00:18:00,680 Hivyo sasa hivi, kiti hiki hapa, ni orodha ya kawaida ya 1. 438 00:18:00,680 --> 00:18:01,365 Na nini jina lako tena? 439 00:18:01,365 --> 00:18:02,390 >> PRINCESS DAISY: Princess Daisy. 440 00:18:02,390 --> 00:18:03,690 >> DAVID Malan: Princess Daisy ni hapa. 441 00:18:03,690 --> 00:18:07,470 Na hivyo yeye tayari ni Iliyopangwa, kwa sababu orodha ni ya kawaida ya 1. 442 00:18:07,470 --> 00:18:09,490 Je, mimi ijayo kufanya? 443 00:18:09,490 --> 00:18:13,680 OK, kurudi, kwa sababu orodha ya kwamba ni ya kawaida ya 1, ambayo ni chini ya 2. 444 00:18:13,680 --> 00:18:14,320 Kisha hatua gani ya baadaye? 445 00:18:14,320 --> 00:18:17,490 Na sasa una aina ya backtrack katika akili yako. 446 00:18:17,490 --> 00:18:19,340 >> Aina nusu haki, ambayo ni - 447 00:18:19,340 --> 00:18:19,570 nini jina lako? 448 00:18:19,570 --> 00:18:20,220 >> LINDA: Linda. 449 00:18:20,220 --> 00:18:20,980 >> DAVID Malan: Linda. 450 00:18:20,980 --> 00:18:23,210 Na hivyo tunafanya nini sasa kwamba tuna orodha ya kawaida ya 1? 451 00:18:23,210 --> 00:18:24,440 >> Watazamaji: Kurudi. 452 00:18:24,440 --> 00:18:24,760 >> DAVID Malan: Makini. 453 00:18:24,760 --> 00:18:29,540 Sisi kurudi kwanza, na sasa ya tatu hatua - na kama mimi aina ya depict hivyo kwa 454 00:18:29,540 --> 00:18:33,490 kumuunga viti mbili sasa, sasa mimi na kuunganisha mambo haya mawili. 455 00:18:33,490 --> 00:18:35,530 Hivyo sasa kwa bahati mbaya, mambo ni nje ya utaratibu. 456 00:18:35,530 --> 00:18:39,920 Lakini hilo ambapo mchakato kuunganisha kuanza kupata kulazimisha. 457 00:18:39,920 --> 00:18:42,410 >> Hivyo kama wewe guys inaweza kusimama kwa ajili tu ya sasa, mimi nina kwenda haja ya wewe, katika 458 00:18:42,410 --> 00:18:44,170 sasa, hatua ya nyuma ya kiti yako. 459 00:18:44,170 --> 00:18:46,480 Na kama Linda, kwa sababu ya 2 ni ndogo kuliko 4, kwa nini sio 460 00:18:46,480 --> 00:18:48,130 wewe kuja karibu ya kwanza? 461 00:18:48,130 --> 00:18:48,690 Kukaa huko. 462 00:18:48,690 --> 00:18:50,520 Hivyo Linda, wewe kuja duniani kwanza. 463 00:18:50,520 --> 00:18:53,820 >> Sasa katika hali halisi kama ni tu safu tunaweza tu hoja yake katika muda halisi 464 00:18:53,820 --> 00:18:55,360 kutoka kwa mwenyekiti hii na doa hili. 465 00:18:55,360 --> 00:18:57,770 Hivyo kufikiria kwamba alichukua baadhi ya mara kwa mara Idadi ya hatua 1. 466 00:18:57,770 --> 00:18:58,480 Na sasa - 467 00:18:58,480 --> 00:19:01,490 lakini tunahitaji kuweka wewe katika mahali ya kwanza hapa. 468 00:19:01,490 --> 00:19:03,930 >> Na sasa kama unaweza kuja karibu, kama vile, tunakwenda 469 00:19:03,930 --> 00:19:06,300 kuwa katika eneo mbili. 470 00:19:06,300 --> 00:19:09,120 Na hata kama hii anahisi kama ni kuchukua muda, nini ni nzuri sasa ni 471 00:19:09,120 --> 00:19:14,710 kwamba nusu ya kushoto ya nusu ya kushoto ni sasa Iliyopangwa. 472 00:19:14,710 --> 00:19:18,010 Hivyo kile ilikuwa hatua ya pili, kama sisi sasa rewind zaidi katika hadithi? 473 00:19:18,010 --> 00:19:18,980 >> Watazamaji: Haki nusu. 474 00:19:18,980 --> 00:19:19,900 >> DAVID Malan: aina ya nusu ya haki. 475 00:19:19,900 --> 00:19:21,320 Hivyo wewe guys kuwa kwa kufanya hivyo, kama vile. 476 00:19:21,320 --> 00:19:23,510 Hivyo kama unaweza kusimama kwa muda tu? 477 00:19:23,510 --> 00:19:25,192 Na nini jina lako? 478 00:19:25,192 --> 00:19:25,540 >> JESS: Jess. 479 00:19:25,540 --> 00:19:25,870 >> DAVID Malan: Jess. 480 00:19:25,870 --> 00:19:29,720 OK, hivyo Jess sasa ni kushoto nusu ya nusu ya haki. 481 00:19:29,720 --> 00:19:31,400 Na hivyo yeye ni orodha ya kawaida ya 1. 482 00:19:31,400 --> 00:19:32,380 Yeye ni wazi Iliyopangwa. 483 00:19:32,380 --> 00:19:33,070 Na jina yako tena? 484 00:19:33,070 --> 00:19:33,630 >> MICHELLE: Michelle. 485 00:19:33,630 --> 00:19:35,340 >> DAVID Malan: Michelle ni wazi orodha ya kawaida ya 1. 486 00:19:35,340 --> 00:19:36,050 Yeye ni tayari Iliyopangwa. 487 00:19:36,050 --> 00:19:38,690 Hivyo sasa uchawi ikitokea, mchakato wa kuunganisha. 488 00:19:38,690 --> 00:19:39,790 Hivyo nani kwenda aje kwanza? 489 00:19:39,790 --> 00:19:41,560 Ni wazi Michelle. 490 00:19:41,560 --> 00:19:43,280 Hivyo kama unaweza kuja kuzunguka nyuma. 491 00:19:43,280 --> 00:19:47,090 tuna nafasi ya kutosha kwa ajili yake sasa ni haki ya nyuma ya hii kiti hapa. 492 00:19:47,090 --> 00:19:51,580 Na sasa kama unaweza kuja nyuma kama vile, sisi sasa kuwa, kuwa wazi, mbili, 493 00:19:51,580 --> 00:19:53,810 nusu, kila aina ya ukubwa wa 2 - 494 00:19:53,810 --> 00:19:57,090 na kwa ajili tu ya picha ya Mungu ikiwa wewe inaweza kufanya kidogo ya nafasi - 495 00:19:57,090 --> 00:19:59,780 mtu wa kushoto nusu hapa, moja haki ya nusu hapa. 496 00:19:59,780 --> 00:20:01,160 >> Rewind zaidi katika hadithi. 497 00:20:01,160 --> 00:20:02,270 Nini ni hatua inayofuata? 498 00:20:02,270 --> 00:20:03,030 >> Watazamaji: Merge. 499 00:20:03,030 --> 00:20:04,160 >> DAVID Malan: Basi sasa tuna kuunganisha. 500 00:20:04,160 --> 00:20:07,490 Hivyo OK, hivyo kwa sasa, nashiriki, sisi tu huru hadi viti nne. 501 00:20:07,490 --> 00:20:11,480 Hivyo tumekuwa kutumika mara mbili kama kumbukumbu sana, lakini tunaweza kutoa flip-flopping kati ya 502 00:20:11,480 --> 00:20:12,330 arrays mbili. 503 00:20:12,330 --> 00:20:14,190 Hivyo ambayo idadi ni aje kwanza? 504 00:20:14,190 --> 00:20:14,850 Hivyo Michelle, ni wazi. 505 00:20:14,850 --> 00:20:16,680 Hivyo kuja karibu na kuchukua kiti yako hapa. 506 00:20:16,680 --> 00:20:19,120 Na kisha namba 2 ni wazi ijayo, hivyo kuja hapa. 507 00:20:19,120 --> 00:20:21,520 Namba 4, namba 6. 508 00:20:21,520 --> 00:20:23,390 Na tena, hata kama kuna kidogo kidogo ya kutembea wanaohusika, 509 00:20:23,390 --> 00:20:26,010 kweli, hizi inaweza kutokea mara moja, na kuhamia moja - 510 00:20:26,010 --> 00:20:26,880 OK, pia alicheza. 511 00:20:26,880 --> 00:20:28,350 >> [Kicheko] 512 00:20:28,350 --> 00:20:29,680 >> DAVID Malan: Na sasa tuko katika sura nzuri. 513 00:20:29,680 --> 00:20:34,910 nusu ya kushoto ya nzima pembejeo sasa imekuwa Iliyopangwa. 514 00:20:34,910 --> 00:20:37,370 Haki wote, hivyo hawa guys alikuwa faida ya yangu - 515 00:20:37,370 --> 00:20:40,340 jinsi gani kuishia wasichana wote juu ya kushoto na wavulana wote juu ya haki? 516 00:20:40,340 --> 00:20:42,450 >> OK, hivyo wavulana 'kugeuka sasa. 517 00:20:42,450 --> 00:20:44,680 Hivyo mimi si kutembea wewe kupitia hatua hizi. 518 00:20:44,680 --> 00:20:46,550 Tutaweza kuona kama tunaweza reapply pseudocode sawa. 519 00:20:46,550 --> 00:20:50,050 Kama unataka kwenda mbele na kusimama, na nyie, nikupe mic. 520 00:20:50,050 --> 00:20:52,990 Kuona kama unaweza si kuiga kile sisi tu alifanya hapa 521 00:20:52,990 --> 00:20:53,880 nyingine ya mwisho wa orodha. 522 00:20:53,880 --> 00:20:59,530 Ambaye anahitaji kusema ya kwanza, msingi algorithm? 523 00:20:59,530 --> 00:21:03,210 Hivyo waeleze nini unafanya kabla ya wewe kufanya harakati yoyote mguu. 524 00:21:03,210 --> 00:21:05,930 >> SPIKA 1: zote haki, hivyo tangu Mimi ni nusu ya kushoto ya 525 00:21:05,930 --> 00:21:07,790 nusu ya kushoto, mimi kurudi. 526 00:21:07,790 --> 00:21:08,730 Haki? 527 00:21:08,730 --> 00:21:09,250 >> DAVID Malan: Good. 528 00:21:09,250 --> 00:21:10,350 >> SPIKA 1: Na kisha - 529 00:21:10,350 --> 00:21:11,800 >> DAVID Malan: Nani anafanya mic kwenda ijayo? 530 00:21:11,800 --> 00:21:12,920 >> SPIKA 1: Next idadi. 531 00:21:12,920 --> 00:21:14,720 >> SPIKA 2: Kwa hiyo mimi nina haki ya nusu ya nusu ya kushoto ya 532 00:21:14,720 --> 00:21:17,830 kushoto nusu, na mimi kurudi. 533 00:21:17,830 --> 00:21:18,050 >> DAVID Malan: Good. 534 00:21:18,050 --> 00:21:18,550 Wewe kurudi. 535 00:21:18,550 --> 00:21:21,855 Hivyo sasa nini juu ijayo kwa ajili ya wewe mbili? 536 00:21:21,855 --> 00:21:23,740 >> SPIKA 2: Tunataka kuona nani vidogo vidogo. 537 00:21:23,740 --> 00:21:24,200 >> DAVID Malan: Hasa. 538 00:21:24,200 --> 00:21:24,940 Tunataka kuunganisha. 539 00:21:24,940 --> 00:21:27,590 nafasi tunakwenda kutumia kuunganisha wewe ndani, hata kama wao ni 540 00:21:27,590 --> 00:21:30,250 wazi yamepangwa tayari, tunakwenda kufuata algorithm sawa. 541 00:21:30,250 --> 00:21:31,560 Hivyo ambao unaendelea katika nyuma ya kwanza? 542 00:21:31,560 --> 00:21:35,720 Hivyo 3, na kisha 7. 543 00:21:35,720 --> 00:21:38,570 Na sasa mic huenda haya guys, OK? 544 00:21:38,570 --> 00:21:43,590 >> SPIKA 3: Kwa hiyo mimi nina haki ya nusu kushoto nusu, na n wangu ni chini ya 545 00:21:43,590 --> 00:21:45,048 1, hivyo mimi nina kwenda tu kupita - 546 00:21:45,048 --> 00:21:46,380 >> DAVID Malan: Good. 547 00:21:46,380 --> 00:21:49,450 >> SPIKA 4: Mimi nina haki ya nusu haki ya nusu ya nusu ya haki, na mimi nina 548 00:21:49,450 --> 00:21:51,740 pia mtu mmoja, hivyo mimi nina kwenda na kurudi. 549 00:21:51,740 --> 00:21:52,990 Hivyo sasa sisi kuunganisha. 550 00:21:52,990 --> 00:21:55,140 551 00:21:55,140 --> 00:21:56,150 >> SPIKA 3: Hivyo sisi kurudi nyuma. 552 00:21:56,150 --> 00:21:57,160 >> DAVID Malan: Hivyo wewe kwenda katika nyuma. 553 00:21:57,160 --> 00:21:59,200 Hivyo 5 huenda kwanza, basi 8. 554 00:21:59,200 --> 00:22:01,240 Na sasa watazamaji, ambayo ni hatua tuna sasa rewind 555 00:22:01,240 --> 00:22:02,200 nyuma na katika akili zetu? 556 00:22:02,200 --> 00:22:02,940 >> Watazamaji: Merge. 557 00:22:02,940 --> 00:22:07,270 >> DAVID Malan: Kuunganisha kushoto nusu na haki nusu ya nusu ya awali ya kushoto. 558 00:22:07,270 --> 00:22:08,840 Hivyo sasa - 559 00:22:08,840 --> 00:22:10,520 na tu kufanya hili wazi, kufanya kidogo wa nafasi ya 560 00:22:10,520 --> 00:22:11,690 kati ya wewe guys wawili. 561 00:22:11,690 --> 00:22:13,800 Hivyo sasa hiyo ni orodha mbili, kushoto na kulia. 562 00:22:13,800 --> 00:22:18,320 Hivyo ni jinsi gani sisi sasa kuunganisha guys katika mstari wa mbele wa viti tena? 563 00:22:18,320 --> 00:22:19,600 >> 3 huenda kwanza. 564 00:22:19,600 --> 00:22:20,850 Kisha 5, ni wazi. 565 00:22:20,850 --> 00:22:23,110 566 00:22:23,110 --> 00:22:27,330 Kisha 7, na sasa 8. 567 00:22:27,330 --> 00:22:28,710 OK, na sasa sisi ni? 568 00:22:28,710 --> 00:22:29,650 >> Watazamaji: Si kosa. 569 00:22:29,650 --> 00:22:32,440 >> DAVID Malan: Si kosa, kwa sababu ni wazi, kuna hatua moja iliyobaki. 570 00:22:32,440 --> 00:22:35,720 Lakini tena, sababu mimi nina kutumia hii jargon kama "rewind katika akili yako," 571 00:22:35,720 --> 00:22:37,160 ni kwa sababu hiyo kwa kweli nini kinatokea. 572 00:22:37,160 --> 00:22:39,610 Tunakwenda kupitia hatua zote hizi, lakini sisi ni aina ya pausing kwa 573 00:22:39,610 --> 00:22:42,480 sasa, mbizi zaidi katika algorithm, pausing kwa muda, 574 00:22:42,480 --> 00:22:45,840 mbizi zaidi katika algorithm, na sasa tuna aina ya rewind katika yetu 575 00:22:45,840 --> 00:22:49,430 akili na kuondoa wote wa tabaka hizi kwamba tumekuwa aina ya kuweka juu ya umiliki. 576 00:22:49,430 --> 00:22:51,790 >> Basi sasa tuna orodha mbili ya ukubwa wa 4. 577 00:22:51,790 --> 00:22:54,790 Kama wewe guys inaweza kusimama mara moja ya mwisho na kufanya kidogo ya nafasi hapa 578 00:22:54,790 --> 00:22:57,230 kufanya wazi kuwa hii ni kushoto nusu ya awali, 579 00:22:57,230 --> 00:22:58,620 haki ya nusu ya awali. 580 00:22:58,620 --> 00:23:01,060 Ambaye ni idadi ya kwanza ya kwamba sisi haja ya kuvuta ndani ya nyuma? 581 00:23:01,060 --> 00:23:01,870 Michelle, bila shaka. 582 00:23:01,870 --> 00:23:03,230 >> Hivyo sisi kuweka Michelle hapa. 583 00:23:03,230 --> 00:23:05,080 Na ambaye ana idadi 2? 584 00:23:05,080 --> 00:23:06,440 Idadi 2 inakuja juu ya nyuma pia. 585 00:23:06,440 --> 00:23:07,800 Namba 3? 586 00:23:07,800 --> 00:23:08,510 Bora. 587 00:23:08,510 --> 00:23:16,570 Namba 4, namba 5, idadi ya 6, namba 7, na namba 8. 588 00:23:16,570 --> 00:23:18,850 >> OK, hivyo waliona kama mengi ya hatua, kwa uhakika. 589 00:23:18,850 --> 00:23:22,390 Lakini sasa hebu angalia kama hatuwezi kuthibitisha aina ya intuitively kwamba hii 590 00:23:22,390 --> 00:23:26,190 algorithm kimsingi, hasa kama n kweli anapata kubwa, kama tumeona 591 00:23:26,190 --> 00:23:29,170 na mifano kwa michoro, ni kimsingi kwa kasi zaidi. 592 00:23:29,170 --> 00:23:33,400 Hivyo mimi kudai hii algorithm, katika mbaya kesi na hata katika kesi bora, 593 00:23:33,400 --> 00:23:36,160 ni kubwa O ya n mara logi n. 594 00:23:36,160 --> 00:23:39,160 Hiyo ni, kuna baadhi ya nyanja ya hii algorithm kwamba inachukua hatua n, lakini 595 00:23:39,160 --> 00:23:43,110 kuna kipengele mwingine mahali fulani katika kwamba iteration, kwamba looping, kwamba 596 00:23:43,110 --> 00:23:44,410 inachukua hatua logi n. 597 00:23:44,410 --> 00:23:49,154 Tunaweza kuweka kidole wetu juu ya nini wale namba mbili ni akimaanisha? 598 00:23:49,154 --> 00:23:51,320 Naam, ambapo - 599 00:23:51,320 --> 00:23:54,160 ambapo 'd mic kwenda? 600 00:23:54,160 --> 00:23:58,660 >> SPIKA 1: Je logi n kuwa kuvunja sisi juu katika mbili - 601 00:23:58,660 --> 00:23:59,630 kugawa na mbili, kimsingi. 602 00:23:59,630 --> 00:24:00,120 >> DAVID Malan: Hasa. 603 00:24:00,120 --> 00:24:03,000 Wakati wowote tunaona yoyote algorithm hivyo mbali, kuna kuwa muundo huu wa 604 00:24:03,000 --> 00:24:04,200 kugawa, kugawa, kugawa. 605 00:24:04,200 --> 00:24:05,700 Na ni kawaida kupunguza kwa kitu ambacho ni 606 00:24:05,700 --> 00:24:07,100 logarithmic, logi msingi 2. 607 00:24:07,100 --> 00:24:10,180 Lakini inaweza kweli kuwa kitu chochote, lakini kuingia wigo 2. 608 00:24:10,180 --> 00:24:11,330 >> Sasa nini kuhusu n? 609 00:24:11,330 --> 00:24:14,550 Mimi naona kwamba sisi aina ya kugawanywa wewe guys - kugawanywa wewe, kugawanywa wewe, 610 00:24:14,550 --> 00:24:15,910 kugawanywa wewe, kugawanywa wewe. 611 00:24:15,910 --> 00:24:18,760 Ambapo haina mwisho kuja kutoka? 612 00:24:18,760 --> 00:24:19,810 >> Hivyo ni kuunganisha. 613 00:24:19,810 --> 00:24:20,610 Kwa sababu kufikiri juu yake. 614 00:24:20,610 --> 00:24:25,420 Wakati kuunganisha watu nane kwa pamoja, ambapo nusu yao ni seti ya nne 615 00:24:25,420 --> 00:24:27,770 na nusu nyingine ni mwingine seti ya nne, jinsi gani unaweza kwenda 616 00:24:27,770 --> 00:24:28,820 juu ya kufanya kuunganisha? 617 00:24:28,820 --> 00:24:30,830 Naam, wewe guys alifanya hivyo haki intuitively. 618 00:24:30,830 --> 00:24:34,140 >> Lakini kama mimi badala yake alifanya hivyo zaidi kidogo methodically, nipate alisema saa 619 00:24:34,140 --> 00:24:38,090 mtu leftmost kwanza na kushoto kwangu mkono, alisema katika mtu leftmost 620 00:24:38,090 --> 00:24:42,080 ya kwamba nusu kwa mkono wangu wa kulia, na tu hatimaye kutembea kwa njia ya 621 00:24:42,080 --> 00:24:46,990 orodha, akionyesha kipengele ndogo kila wakati, kusonga kidole yangu juu na 622 00:24:46,990 --> 00:24:48,970 zaidi kama inahitajika katika orodha. 623 00:24:48,970 --> 00:24:51,890 Lakini nini kuhusu hili muhimu kuunganisha mchakato ni mimi nina kulinganisha jozi hizi 624 00:24:51,890 --> 00:24:53,460 ya vipengele. 625 00:24:53,460 --> 00:24:57,270 Kutoka nusu kulia na kutoka upande wa kushoto nusu, mimi nina kamwe mara moja inafuatilia. 626 00:24:57,270 --> 00:25:00,570 >> Hivyo kuunganisha yenyewe ni kuchukua hakuna zaidi ya n hatua. 627 00:25:00,570 --> 00:25:03,250 Na mara ngapi alifanya nina kufanya hivyo kuunganisha? 628 00:25:03,250 --> 00:25:07,150 Naam, hakuna zaidi ya n, na sisi tu akaona ya kuwa na kuunganisha ya mwisho. 629 00:25:07,150 --> 00:25:13,120 Na hivyo kama wewe kufanya kitu kwamba inachukua kuingia hatua n n mara, au kinyume chake, 630 00:25:13,120 --> 00:25:15,210 ni kwenda kutupa n mara logi n. 631 00:25:15,210 --> 00:25:16,310 >> Na kwa nini hii ni bora? 632 00:25:16,310 --> 00:25:19,600 Naam, kama sisi tayari kujua kuwa logi n ni bora kuliko n - haki? 633 00:25:19,600 --> 00:25:22,590 Tuliona katika kutafuta binary, kitabu cha simu mfano, logi n ilikuwa dhahiri 634 00:25:22,590 --> 00:25:23,760 bora kuliko linear. 635 00:25:23,760 --> 00:25:28,420 Hivyo kwamba maana n mara logi n ni dhahiri zaidi ya mara n mwingine 636 00:25:28,420 --> 00:25:30,390 n, AKA n squared. 637 00:25:30,390 --> 00:25:32,400 Na kwamba ni nini sisi hatimaye kuhisi. 638 00:25:32,400 --> 00:25:34,928 >> Hivyo kubwa ya raundi ya makofi, kama tunaweza, kwa guys haya. 639 00:25:34,928 --> 00:25:38,920 >> [Makofi] 640 00:25:38,920 --> 00:25:41,550 >> DAVID Malan: Na zimefunguliwa zawadi yako - unaweza kuweka idadi, 641 00:25:41,550 --> 00:25:44,010 kama ungependa. 642 00:25:44,010 --> 00:25:45,620 Na zimefunguliwa wako zawadi, kama kawaida. 643 00:25:45,620 --> 00:25:47,290 Oh, na sisi kukutumia Footage, Michelle. 644 00:25:47,290 --> 00:25:48,343 Asante. 645 00:25:48,343 --> 00:25:49,250 Wote haki. 646 00:25:49,250 --> 00:25:50,400 Msaada mwenyewe kwa mpira wa dhiki. 647 00:25:50,400 --> 00:25:54,110 >> Na napenda kuvuta up, katika huo huo, rafiki yetu Rob Bowden kutoa 648 00:25:54,110 --> 00:25:59,520 mtazamo tofauti kwa kiasi fulani juu ya hili, tangu unaweza kufikiri kuhusu hizi 649 00:25:59,520 --> 00:26:01,280 yanayotokea katika hatua fulani njia tofauti. 650 00:26:01,280 --> 00:26:04,750 Kwa kweli, set-up kwa nini Rob kuhusu kutuonyesha akubali kwamba tumekuwa 651 00:26:04,750 --> 00:26:09,030 tayari amefanya kugawa juu ya kubwa orodha katika orodha nane ndogo, 652 00:26:09,030 --> 00:26:10,570 kila aina ya kawaida ya 1. 653 00:26:10,570 --> 00:26:13,350 >> Hivyo sisi ni kubadilisha pseudocode kidogo tu kwa aina ya kupata saa 654 00:26:13,350 --> 00:26:15,320 msingi wazo la jinsi ya kuunganisha matendo. 655 00:26:15,320 --> 00:26:17,600 Lakini wakati mbio ya kile yeye ni juu ya kufanya bado ni 656 00:26:17,600 --> 00:26:19,110 kwenda kuwa sawa. 657 00:26:19,110 --> 00:26:23,540 Na tena, set-up hapa ni kwamba yeye ni imeanza na orodha ya nane ya kawaida ya 1. 658 00:26:23,540 --> 00:26:27,730 Hivyo wameweza amekosa sehemu ambapo yeye ni kweli amefanya n logi, logi n, logi n 659 00:26:27,730 --> 00:26:31,205 kugawa wa pembejeo. 660 00:26:31,205 --> 00:26:32,120 >> [Video avspelning] 661 00:26:32,120 --> 00:26:33,615 >> -Hiyo ni kwa hatua moja. 662 00:26:33,615 --> 00:26:38,270 Kwa hatua mbili, kwa kurudia kuunganisha jozi ya orodha. 663 00:26:38,270 --> 00:26:39,210 >> DAVID Malan: Hm. 664 00:26:39,210 --> 00:26:41,270 Audio tu ni kuja nje ya kompyuta yangu. 665 00:26:41,270 --> 00:26:42,520 Hebu jaribu hii tena. 666 00:26:42,520 --> 00:26:45,330 667 00:26:45,330 --> 00:26:48,310 >> -Tu kiholela pick ambayo - sasa tuna orodha nne. 668 00:26:48,310 --> 00:26:51,590 669 00:26:51,590 --> 00:26:52,120 Kujifunza kabla. 670 00:26:52,120 --> 00:26:53,040 >> DAVID Malan: Kuna sisi kwenda. 671 00:26:53,040 --> 00:27:00,510 >> -Kuunganisha 108 na 15, sisi kumaliza na orodha 15, 108. 672 00:27:00,510 --> 00:27:07,170 Kuunganisha 50 na 4, sisi kuishia na 4, 50. 673 00:27:07,170 --> 00:27:12,990 Kuunganisha 8 na 42, sisi kuishia na 8, 42. 674 00:27:12,990 --> 00:27:19,970 Na kuunganisha 23 na 16, sisi kuishia na 16, 23. 675 00:27:19,970 --> 00:27:23,270 >> Sasa wetu orodha zote ni ya ukubwa wa 2. 676 00:27:23,270 --> 00:27:26,690 Taarifa kwamba kila moja ya orodha ya nne ni Iliyopangwa. 677 00:27:26,690 --> 00:27:29,450 Ili tuweze kuanza kuunganisha jozi ya orodha tena. 678 00:27:29,450 --> 00:27:38,420 Kuunganisha 15 na 108 na 4 na 50, sisi kwanza kuchukua 4, kisha 15, kisha 679 00:27:38,420 --> 00:27:41,500 50, kisha 108. 680 00:27:41,500 --> 00:27:50,610 Kuunganisha 8, 42 na 16, 23, sisi kwanza kuchukua 8, kisha 16, kisha 23, 681 00:27:50,610 --> 00:27:52,700 kisha 42. 682 00:27:52,700 --> 00:27:57,600 >> Basi sasa tuna mbili tu orodha ya ukubwa 4, ambayo kila mmoja ni Iliyopangwa. 683 00:27:57,600 --> 00:28:01,170 Hivyo sasa sisi kuunganisha orodha hizi mbili. 684 00:28:01,170 --> 00:28:11,835 Kwanza, sisi kuchukua 4, basi sisi kuchukua 8, basi sisi kuchukua 15, kisha 16, basi 685 00:28:11,835 --> 00:28:19,456 23, kisha 42, kisha 50, kisha 108. 686 00:28:19,456 --> 00:28:19,872 >> [MWISHO video avspelning] 687 00:28:19,872 --> 00:28:23,430 >> DAVID Malan: Tena, angalia, yeye kamwe kuguswa kikombe kupewa zaidi ya mara moja 688 00:28:23,430 --> 00:28:24,860 baada ya kuendeleza zaidi ya hilo. 689 00:28:24,860 --> 00:28:26,200 Hivyo yeye kamwe kurudia. 690 00:28:26,200 --> 00:28:29,850 Hivyo yeye daima kuhamia upande, na hiyo ambapo tulipata n wetu. 691 00:28:29,850 --> 00:28:33,290 >> Kwa nini basi mimi kuvuta up moja uhuishaji kwamba tuliona mapema, lakini wakati huu 692 00:28:33,290 --> 00:28:35,110 kulenga tu juu ya aina kuunganisha. 693 00:28:35,110 --> 00:28:38,030 Hebu kwenda mbele na kuvuta katika hii hapa. 694 00:28:38,030 --> 00:28:42,530 Kwanza napenda kuchagua pembejeo random, ukuu wa hii, na unaweza aina ya kuona 695 00:28:42,530 --> 00:28:46,600 nini sisi alichukua kwa nafasi, awali, kuunganisha aina ni kweli kufanya. 696 00:28:46,600 --> 00:28:50,330 >> Hivyo taarifa kwamba wewe kupata nusu hizi au hizi robo au haya eighths ya 697 00:28:50,330 --> 00:28:53,140 tatizo kwamba ghafla kuanza kuchukua sura nzuri. 698 00:28:53,140 --> 00:28:57,070 Na kisha hatimaye, unaweza kuona katika mwisho sana kwamba bam, 699 00:28:57,070 --> 00:28:58,860 kila kitu ni zimeunganishwa pamoja. 700 00:28:58,860 --> 00:29:01,690 >> Basi hizi ni baadhi tu ya tatu tofauti inachukua wazo moja. 701 00:29:01,690 --> 00:29:05,980 Lakini ufahamu muhimu, kama kugawanya na kushinda katika darasa ya kwanza kabisa, 702 00:29:05,980 --> 00:29:10,640 ilikuwa kwamba tuliamua namna fulani kugawanya tatizo katika jambo kubwa, ndani ya 703 00:29:10,640 --> 00:29:14,760 kitu aina ya kufanana katika roho, lakini na ndogo ndogo na ndogo 704 00:29:14,760 --> 00:29:15,660 na vidogo vidogo. 705 00:29:15,660 --> 00:29:18,420 >> Sasa mwingine njia ya kujifurahisha na aina ya kufikiri kuhusu hizi, ingawa si 706 00:29:18,420 --> 00:29:20,520 kwenda kukupa angavu huo uelewa, ni 707 00:29:20,520 --> 00:29:21,640 uhuishaji zifuatazo. 708 00:29:21,640 --> 00:29:25,400 Hivyo hii ni mtu video kuweka pamoja kwamba kuhusishwa tofauti 709 00:29:25,400 --> 00:29:29,970 sauti na shughuli mbalimbali kwa ajili ya kuingizwa aina, kwa ajili ya aina kuunganisha, na 710 00:29:29,970 --> 00:29:31,150 kwa wanandoa wa wengine. 711 00:29:31,150 --> 00:29:32,330 Hivyo katika wakati huu, mimi naenda kumtwanga Play. 712 00:29:32,330 --> 00:29:33,600 Ni kuhusu muda wa dakika. 713 00:29:33,600 --> 00:29:37,410 Na hata ingawa bado unaweza kuona chati kinatokea, wakati huu unaweza 714 00:29:37,410 --> 00:29:41,420 pia kusikia jinsi hawa algorithms ni kufanya tofauti na kwa 715 00:29:41,420 --> 00:29:43,950 tofauti chati. 716 00:29:43,950 --> 00:29:45,830 >> Hii ni kuingizwa aina. 717 00:29:45,830 --> 00:29:50,400 >> [Tani KUCHEZA] 718 00:29:50,400 --> 00:29:52,400 >> DAVID Malan: Ni tena ni kujaribu kuingiza kila kipengele 719 00:29:52,400 --> 00:29:52,900 ndani ambapo ni mali. 720 00:29:52,900 --> 00:29:54,628 Hii ni Bubble aina. 721 00:29:54,628 --> 00:30:10,097 >> [Tani KUCHEZA] 722 00:30:10,097 --> 00:30:13,630 >> DAVID Malan: Na unaweza aina ya kujisikia jinsi kiasi kidogo kazi ni kufanya 723 00:30:13,630 --> 00:30:15,834 juu ya kila hatua. 724 00:30:15,834 --> 00:30:20,470 Hii ni nini tediousness inaonekana kama. 725 00:30:20,470 --> 00:30:21,472 >> [Tani KUCHEZA] 726 00:30:21,472 --> 00:30:25,222 >> DAVID Malan: Hii ni uteuzi aina, ambapo sisi kuchagua kipengele tunataka na 727 00:30:25,222 --> 00:30:28,845 kwenda kupitia tena na tena na tena na kuweka mwanzoni. 728 00:30:28,845 --> 00:30:37,674 >> [Tani KUCHEZA] 729 00:30:37,674 --> 00:30:43,970 >> DAVID Malan: Hii ni kuunganisha aina, ambayo kweli unaweza kuanza kuhisi. 730 00:30:43,970 --> 00:30:51,810 >> [Tani KUCHEZA] 731 00:30:51,810 --> 00:30:54,770 >> [Kicheko] 732 00:30:54,770 --> 00:30:58,395 >> DAVID Malan: Kitu inaitwa mbilikimo aina, ambayo sisi si inaonekana saa. 733 00:30:58,395 --> 00:31:13,630 >> [Tani KUCHEZA] 734 00:31:13,630 --> 00:31:17,910 >> DAVID Malan: Hivyo basi mimi kuona sasa, aliwasihi kama wewe ni matumaini na 735 00:31:17,910 --> 00:31:21,110 muziki, kama naweza kuingizwa kidogo kidogo ya math katika hapa. 736 00:31:21,110 --> 00:31:24,850 Hivyo kuna njia nne kwamba tunaweza kufikiri juu ya nini maana ya haya 737 00:31:24,850 --> 00:31:29,210 kazi kuwa kasi zaidi kuliko wale wa kwamba tumekuwa kuona mbele. 738 00:31:29,210 --> 00:31:32,470 Na kama wewe ni kuja saa shaka kutoka background hisabati, wewe 739 00:31:32,470 --> 00:31:36,030 kweli kujua labda tayari kwamba unaweza kofi mfupi ya mbinu hii - 740 00:31:36,030 --> 00:31:40,400 yaani recursion, kazi kwamba kwa namna fulani wito yenyewe. 741 00:31:40,400 --> 00:31:44,780 >> Na tena, kukumbuka kwamba aina kuunganisha pseudocode alikuwa kujirudia kwa maana ya 742 00:31:44,780 --> 00:31:48,460 kwamba moja ya hatua ya kuunganisha aina ya mara kuwaita aina - 743 00:31:48,460 --> 00:31:49,740 kwamba ni, yenyewe. 744 00:31:49,740 --> 00:31:52,480 Bali nashiriki, kwa sababu sisi naendelea wito aina, au kuunganisha aina, 745 00:31:52,480 --> 00:31:55,880 hasa, juu na ndogo ndogo na ndogo orodha, sisi hatimaye 746 00:31:55,880 --> 00:32:00,005 bottomed nje shukrani kwa kile Tutamwita kesi ya msingi, kesi ngumu-coded kwamba 747 00:32:00,005 --> 00:32:04,270 alisema kama orodha ni ndogo, chini ya 2 katika kesi hiyo, tu kurudi mara moja. 748 00:32:04,270 --> 00:32:07,550 Kama hatukuwa na kwamba kesi maalum, algorithm ingekuwa kamwe chini nje, 749 00:32:07,550 --> 00:32:11,010 na wewe bila ya shaka kupata katika usio kitanzi kweli milele. 750 00:32:11,010 --> 00:32:14,330 >> Lakini tuseme kwamba sisi alitaka sasa kuweka baadhi ya idadi juu ya hili, tena, kwa kutumia n 751 00:32:14,330 --> 00:32:15,660 kama kawaida ya pembejeo. 752 00:32:15,660 --> 00:32:18,680 Na nilitaka kuuliza wewe, nini wakati jumla ya kushiriki katika 753 00:32:18,680 --> 00:32:19,800 mbio kuunganisha aina? 754 00:32:19,800 --> 00:32:22,960 Au zaidi kwa ujumla, nini gharama yake katika muda? 755 00:32:22,960 --> 00:32:24,730 >> Naam ni pretty rahisi kupima kwamba. 756 00:32:24,730 --> 00:32:29,010 Kama n ni chini ya 2, wakati husika katika kuchagua mambo n, 757 00:32:29,010 --> 00:32:30,480 ambapo n ni 2, ni 0. 758 00:32:30,480 --> 00:32:31,410 Kwa sababu sisi tu kurudi. 759 00:32:31,410 --> 00:32:32,510 Hakuna kazi kufanyika. 760 00:32:32,510 --> 00:32:35,660 Sasa arguably, labda ni hatua moja au mbili hatua kufikiri kiasi cha 761 00:32:35,660 --> 00:32:38,420 kazi, lakini ni karibu kutosha 0 kwamba Mimi tu kwenda kusema hakuna kazi ni 762 00:32:38,420 --> 00:32:40,940 required kama orodha ni ndogo kuwa uninteresting. 763 00:32:40,940 --> 00:32:42,580 >> Lakini kesi hii ni ya kuvutia. 764 00:32:42,580 --> 00:32:47,320 kesi ya kujirudia mara tawi la pseudocode kwamba alisema mwingine, aina 765 00:32:47,320 --> 00:32:52,000 nusu ya kushoto, aina ya haki nusu, kuunganisha nusu mbili. 766 00:32:52,000 --> 00:32:55,530 Sasa kwa nini msemo huu kuwakilisha kwamba gharama? 767 00:32:55,530 --> 00:32:58,690 Naam, T ya n tu ina maana wakati wa kuchambua mambo n. 768 00:32:58,690 --> 00:33:03,070 Na kisha upande wa kulia wa alama ya usawa huko, T ya n kugawanywa 769 00:33:03,070 --> 00:33:06,600 na 2 ni akimaanisha gharama ya nini? 770 00:33:06,600 --> 00:33:07,570 Uamuzi nusu ya kushoto. 771 00:33:07,570 --> 00:33:10,990 T nyingine ya n kugawanywa na 2 ni labda akimaanisha gharama 772 00:33:10,990 --> 00:33:12,390 kutatua nusu ya haki. 773 00:33:12,390 --> 00:33:14,590 >> Na kisha n pamoja? 774 00:33:14,590 --> 00:33:15,420 Ni kuunganisha. 775 00:33:15,420 --> 00:33:19,120 Kwa sababu kama una orodha mbili, moja ya ukubwa n zaidi ya 2 na mwingine wa kawaida n 776 00:33:19,120 --> 00:33:22,580 zaidi ya 2, una kimsingi kugusa kila moja ya mambo hayo, kama Rob 777 00:33:22,580 --> 00:33:24,990 kuguswa kila moja ya vikombe, na tu kama sisi alisema katika kila moja ya 778 00:33:24,990 --> 00:33:26,310 kujitolea juu ya hatua. 779 00:33:26,310 --> 00:33:28,790 Hivyo n ni gharama ya kuunganisha. 780 00:33:28,790 --> 00:33:31,780 >> Sasa kwa bahati mbaya, hii formula yenyewe pia ni kujirudia. 781 00:33:31,780 --> 00:33:36,390 Hivyo kama aliuliza swali, kama ni n, kusema, 16, kama kuna watu 16 juu ya hatua 782 00:33:36,390 --> 00:33:40,670 au 16 vikombe katika video, jinsi wengi taarifa hatua gani kuchukua aina yao 783 00:33:40,670 --> 00:33:41,550 na aina kuunganisha? 784 00:33:41,550 --> 00:33:45,790 Ni kweli si jibu wazi, kwa sababu sasa una aina ya 785 00:33:45,790 --> 00:33:48,500 recursively kujibu formula hii. 786 00:33:48,500 --> 00:33:51,190 >> Lakini hiyo ni sawa, kwa sababu napenda kupendekeza kwamba sisi kufanya yafuatayo. 787 00:33:51,190 --> 00:33:56,670 wakati husika kutatua watu 16 au 16 vikombe ni kwenda kuwa kuwakilishwa 788 00:33:56,670 --> 00:33:58,020 ujumla kama T ya 16. 789 00:33:58,020 --> 00:34:01,400 Lakini hiyo ni sawa, kwa mujibu wa wetu uliopita formula, 2 mara kiasi 790 00:34:01,400 --> 00:34:04,780 ya muda inachukua kutatua 8 vikombe pamoja na 16. 791 00:34:04,780 --> 00:34:08,590 Na tena, pamoja na 16 ni wakati wa kuunganisha, na T mara mbili ya 8 ni 792 00:34:08,590 --> 00:34:10,790 wakati kutatua nusu kushoto na nusu ya haki. 793 00:34:10,790 --> 00:34:11,989 >> Lakini tena, hii si ya kutosha. 794 00:34:11,989 --> 00:34:13,210 Tuna kwa kupiga mbizi katika zaidi. 795 00:34:13,210 --> 00:34:16,409 Hii ina maana tuna kujibu Swali, ni nini T ya 8? 796 00:34:16,409 --> 00:34:19,610 Vizuri Simu ya 8 ni 2 tu mara Simu ya 4 pamoja na 8. 797 00:34:19,610 --> 00:34:20,520 Vizuri, nini T ya 4? 798 00:34:20,520 --> 00:34:23,780 Simu ya 4 ni mara 2 T ya 2 plus 4. 799 00:34:23,780 --> 00:34:25,489 Vizuri, nini T ya 2? 800 00:34:25,489 --> 00:34:29,030 Simu ya 2 ni mara 2 T ya 1 plus 2. 801 00:34:29,030 --> 00:34:31,940 >> Na tena, sisi ni aina ya kupata kukwama katika mzunguko huu. 802 00:34:31,940 --> 00:34:34,790 Lakini ni kuhusu hit kwamba kinachojulikana msingi kesi. 803 00:34:34,790 --> 00:34:37,310 Kwa sababu nini T ya 1, gani sisi kudai? 804 00:34:37,310 --> 00:34:37,810 0. 805 00:34:37,810 --> 00:34:39,730 Hivyo sasa hatimaye, tunaweza kufanya kazi kwa kurudi nyuma. 806 00:34:39,730 --> 00:34:44,290 >> Kama T ya 1 ni 0, mimi sasa wanaweza kwenda nyuma hadi moja kujipanga na guy hii hapa, na siwezi 807 00:34:44,290 --> 00:34:46,330 kuziba katika 0 kwa T ya 1. 808 00:34:46,330 --> 00:34:51,770 Hivyo kwamba maana yake ni sawa na mara 2 sifuri, inayojulikana kama 0, plus 2. 809 00:34:51,770 --> 00:34:53,739 Na ili kujieleza kwa ujumla ni 2. 810 00:34:53,739 --> 00:34:58,740 >> Sasa kama mimi kuchukua Simu ya 2, ambao jibu ni 2, kuziba ndani ya mstari wa katikati, T 811 00:34:58,740 --> 00:35:02,740 ya 4, kwamba anatoa mimi mara 2 2 pamoja na 4, hivyo 8. 812 00:35:02,740 --> 00:35:07,080 Kama mimi kisha kuziba katika 8 kwa uliopita mstari, kwamba anatoa mimi mara 2 8, 16. 813 00:35:07,080 --> 00:35:12,470 Na kama sisi kisha kuendelea kuwa na 24, na kuongeza katika 16, sisi hatimaye kupata 814 00:35:12,470 --> 00:35:13,820 thamani ya 64. 815 00:35:13,820 --> 00:35:18,480 >> Sasa kwa kuwa katika yenyewe aina ya anaongea chochote kwa nukuu n, 816 00:35:18,480 --> 00:35:20,700 kubwa O, omega kwamba tumekuwa imekuwa kuzungumza juu. 817 00:35:20,700 --> 00:35:24,890 Lakini zinageuka kuwa 64 kwa kweli ni 16, ukubwa wa pembejeo, 818 00:35:24,890 --> 00:35:27,110 kuingia wigo 2 ya 16. 819 00:35:27,110 --> 00:35:30,200 Na kama hii ni kidogo usio wa kawaida, tu kufikiri nyuma, na kutakuwa na kuja nyuma 820 00:35:30,200 --> 00:35:30,700 na wewe hatimaye. 821 00:35:30,700 --> 00:35:33,775 Kama hii ni kwa logi msingi 2, ni kama 2 kufufuka kwa nini anatoa wewe 16? 822 00:35:33,775 --> 00:35:36,380 Oh, hiyo ni 4, hivyo ni 16 mara 4. 823 00:35:36,380 --> 00:35:39,380 >> Na tena, siyo mpango kubwa kama hii ni aina ya kumbukumbu hazy sasa. 824 00:35:39,380 --> 00:35:43,720 Lakini kwa sasa, kuchukua imani kwamba 16 logi 16 ni 64. 825 00:35:43,720 --> 00:35:46,590 Na hivyo kweli kweli, na sanity hii rahisi kuangalia, tumekuwa alithibitisha - 826 00:35:46,590 --> 00:35:48,250 lakini si imeonekana rasmi - 827 00:35:48,250 --> 00:35:52,800 kwamba wakati mbio ya kuunganisha aina ni kweli n logi n. 828 00:35:52,800 --> 00:35:53,790 >> Hivyo si mbaya. 829 00:35:53,790 --> 00:35:57,260 Ni dhahiri bora kuliko algorithms tumeona hivi sasa, na 830 00:35:57,260 --> 00:36:00,710 ni kwa sababu tumekuwa leveraged, moja, mbinu inayoitwa recursion. 831 00:36:00,710 --> 00:36:03,880 Lakini ya kuvutia zaidi kuliko hiyo, ya kwamba dhana ya kugawa na mshindi. 832 00:36:03,880 --> 00:36:07,460 Tena, kweli wiki 0 mambo ambayo hata sasa ni mara kwa mara katika 833 00:36:07,460 --> 00:36:08,740 zaidi ya kulazimisha njia. 834 00:36:08,740 --> 00:36:11,750 >> Sasa furaha kidogo zoezi, kama wameweza kamwe kufanyika hii - na pengine 835 00:36:11,750 --> 00:36:14,660 bila kuwa, kwa sababu ya aina ya kawaida watu sidhani kufanya hili. 836 00:36:14,660 --> 00:36:20,650 Lakini kama mimi nenda google.com na kama Nataka kujifunza kitu kuhusu 837 00:36:20,650 --> 00:36:22,356 recursion, kuingia. 838 00:36:22,356 --> 00:36:25,106 839 00:36:25,106 --> 00:36:29,058 >> [Kicheko] 840 00:36:29,058 --> 00:36:32,030 [ZAIDI kicheko] 841 00:36:32,030 --> 00:36:33,385 DAVID Malan: utani Bad polepole kueneza. 842 00:36:33,385 --> 00:36:34,450 [Kicheko] 843 00:36:34,450 --> 00:36:36,970 DAVID Malan: Tu katika kesi, ni huko. 844 00:36:36,970 --> 00:36:38,710 Sikuweza Spell ni makosa, na kuna mzaha. 845 00:36:38,710 --> 00:36:40,810 Wote haki. 846 00:36:40,810 --> 00:36:42,950 Kueleza ni watu wa karibu na wewe kama bado kabisa clicked bado tu. 847 00:36:42,950 --> 00:36:47,650 Lakini kujirudia, kwa ujumla zaidi, inahusu mchakato wa kazi ya wito 848 00:36:47,650 --> 00:36:51,430 yenyewe, au zaidi kwa ujumla, kugawa tatizo katika kitu ambacho unaweza kuwa 849 00:36:51,430 --> 00:36:56,220 kutatuliwa piecemeal na kutatua kufanana mwakilishi matatizo. 850 00:36:56,220 --> 00:36:58,400 >> Mabadiliko vizuri, hebu gia kwa muda tu. 851 00:36:58,400 --> 00:37:00,840 Sisi kama mwisho juu ya cliffhangers fulani, hivyo hebu kuanza kwa kuweka 852 00:37:00,840 --> 00:37:05,870 hatua, kwa dakika kadhaa, juu ya wazo rahisi sana - 853 00:37:05,870 --> 00:37:07,620 ile ya swapping mambo mawili, haki? 854 00:37:07,620 --> 00:37:10,040 Yote ya algorithms haya tumekuwa kuzungumza juu ya wanandoa wa zamani wa 855 00:37:10,040 --> 00:37:12,420 mihadhara kuhusisha baadhi ya aina ya swapping. 856 00:37:12,420 --> 00:37:14,630 Leo ilikuwa Aliwazia na wao kupata hadi nje ya viti vyao na 857 00:37:14,630 --> 00:37:18,570 kutembea karibu, lakini katika kanuni, tunataka tu kuchukua kipengele kutoka safu moja 858 00:37:18,570 --> 00:37:20,370 na plop ndani ya mwingine. 859 00:37:20,370 --> 00:37:21,880 >> Hivyo ni jinsi gani sisi kwenda juu ya kufanya hii? 860 00:37:21,880 --> 00:37:24,850 Naam, napenda kwenda mbele na kuandika mpango wa haraka hapa. 861 00:37:24,850 --> 00:37:31,600 Mimi nina kwenda mbele na kufanya hii kama yafuatayo. 862 00:37:31,600 --> 00:37:33,910 Hebu piga hii - 863 00:37:33,910 --> 00:37:38,070 je, tunataka kuwaita hii moja? 864 00:37:38,070 --> 00:37:38,650 >> Kweli, hakuna. 865 00:37:38,650 --> 00:37:39,420 Hebu rewind. 866 00:37:39,420 --> 00:37:41,220 Sitaki kufanya hivyo cliffhanger bado. 867 00:37:41,220 --> 00:37:42,270 Itakuwa nyara furaha. 868 00:37:42,270 --> 00:37:43,600 Hebu kufanya hivyo badala yake. 869 00:37:43,600 --> 00:37:47,430 >> Tuseme kwamba nataka kuandika kidogo mpango na kwamba sasa unadhihirisha hii 870 00:37:47,430 --> 00:37:48,700 wazo la kujirudia. 871 00:37:48,700 --> 00:37:50,370 Mimi aina ya got mbele ya mimi nikiwa huko. 872 00:37:50,370 --> 00:37:51,420 Mimi nina kwenda kufanya yafuatayo. 873 00:37:51,420 --> 00:38:00,220 >> Kwanza, ni pamoja na ya haraka ya kiwango io.h, vilevile ni pamoja na ya cs50.h. 874 00:38:00,220 --> 00:38:03,200 Na kisha mimi nina kwenda mbele na kutangaza int kuu utupu 875 00:38:03,200 --> 00:38:04,360 katika njia ya kawaida. 876 00:38:04,360 --> 00:38:07,920 Nilitambua nimekuwa misnamed faili, hivyo basi mimi tu kuongeza c. ugani hapa hivyo 877 00:38:07,920 --> 00:38:09,510 kwamba tunaweza kukusanya ni vizuri. 878 00:38:09,510 --> 00:38:10,970 Kuanza kazi huu mbali. 879 00:38:10,970 --> 00:38:13,290 >> Na kazi nataka kuandika, kabisa tu, ni moja kwamba anauliza 880 00:38:13,290 --> 00:38:16,210 mtumiaji kwa ajili ya simu na kisha anaongeza hadi idadi yote kati ya kuwa 881 00:38:16,210 --> 00:38:19,920 idadi na, kusema, 0. 882 00:38:19,920 --> 00:38:22,510 Hivyo kwanza mimi nina kwenda mbele na kutangaza n int. 883 00:38:22,510 --> 00:38:24,760 Kisha mimi nakala baadhi ya kanuni kwamba tumekuwa kutumika kwa muda. 884 00:38:24,760 --> 00:38:26,660 Wakati kitu ni kweli. 885 00:38:26,660 --> 00:38:28,000 Nitakuja nyuma na kwamba katika wakati huu. 886 00:38:28,000 --> 00:38:29,010 >> Nini mimi unataka kufanya nini? 887 00:38:29,010 --> 00:38:33,460 Mimi nataka kusema printf chanya integer tafadhali. 888 00:38:33,460 --> 00:38:36,130 Na kisha mimi naenda kusema n anapata kupata int. 889 00:38:36,130 --> 00:38:38,800 Hivyo tena, baadhi ya kanuni boilerplate kwamba tumekuwa kutumika kabla. 890 00:38:38,800 --> 00:38:40,810 Na mimi nina kwenda kufanya hili wakati n ni chini ya 1. 891 00:38:40,810 --> 00:38:44,120 Hivyo hii kuhakikisha kwamba mtumiaji anitiaye sifuri. 892 00:38:44,120 --> 00:38:45,490 >> Na sasa mimi naenda kufanya yafuatayo. 893 00:38:45,490 --> 00:38:51,020 Nataka kuongeza hadi wote wa idadi ya kati ya 1 na na n, au 0 na n, 894 00:38:51,020 --> 00:38:52,570 equivalently, kwa kupata jumla jumla. 895 00:38:52,570 --> 00:38:55,100 Hivyo kubwa sigma ishara kwamba unaweza kukumbuka. 896 00:38:55,100 --> 00:38:59,050 Hivyo nina kwenda kufanya hili na wito wa kwanza kazi kuitwa sigma, 897 00:38:59,050 --> 00:39:06,030 kupita katika n, na kisha mimi naenda kusema printf, jibu ni haki pale. 898 00:39:06,030 --> 00:39:08,180 >> Hivyo katika muda mfupi, na mimi kupata int kutoka kwa mtumiaji. 899 00:39:08,180 --> 00:39:09,280 Mimi kuhakikisha ni mazuri. 900 00:39:09,280 --> 00:39:12,700 Mimi kutangaza variable kuitwa jibu la aina int na kuhifadhi katika ni kurudi 901 00:39:12,700 --> 00:39:15,610 thamani ya sigma, kupita katika n kama pembejeo. 902 00:39:15,610 --> 00:39:17,060 Na kisha mimi magazeti nje kwamba jibu. 903 00:39:17,060 --> 00:39:19,550 >> Kwa bahati mbaya, hata ingawa sigma sauti kama kitu ambacho wanaweza kuwa katika 904 00:39:19,550 --> 00:39:24,040 faili math.h, tamko lake, ni kweli si. 905 00:39:24,040 --> 00:39:24,690 Hivyo hiyo ni sawa. 906 00:39:24,690 --> 00:39:26,170 Siwezi kutekeleza hili mwenyewe. 907 00:39:26,170 --> 00:39:29,160 Mimi nina kwenda kutekeleza kazi kuitwa sigma, na ni kwenda kuchukua 908 00:39:29,160 --> 00:39:29,900 parameter - 909 00:39:29,900 --> 00:39:32,100 hebu tu kuiita m, tu hivyo ni tofauti. 910 00:39:32,100 --> 00:39:35,910 Na kisha hadi hapa, mimi nina kwenda kusema, vizuri, kama m ni chini ya 1 - hii ni 911 00:39:35,910 --> 00:39:38,180 sana uninteresting mpango. 912 00:39:38,180 --> 00:39:41,700 Hivyo nina kwenda mbele na mara moja kurudi 0. 913 00:39:41,700 --> 00:39:45,920 Ni tu haina maana kufanya kuongeza hadi kila namba kati ya 1 na m kama m 914 00:39:45,920 --> 00:39:48,470 yenyewe ni 0 au hasi. 915 00:39:48,470 --> 00:39:50,900 >> Na kisha mimi nina kwenda mbele na kufanya hili sana iteratively. 916 00:39:50,900 --> 00:39:53,090 Mimi nina kwenda kufanya aina hii ya umri wa shule ya-, na mimi naenda kwa kwenda mbele 917 00:39:53,090 --> 00:39:57,150 na kusema kwamba mimi nina kwenda Jumla kutangaza kuwa 0. 918 00:39:57,150 --> 00:39:59,630 Basi mimi naenda kuwa kwa kitanzi cha int - 919 00:39:59,630 --> 00:40:02,820 na napenda kufanya hivyo kwa mechi yetu usambazaji kificho, hivyo una nakala 920 00:40:02,820 --> 00:40:07,500 nyumbani. int i anapata 1 juu hadi i ni chini ya au sawa na m. 921 00:40:07,500 --> 00:40:09,430 i pamoja plus. 922 00:40:09,430 --> 00:40:11,430 Na kisha ndani ya hii kwa kitanzi - 923 00:40:11,430 --> 00:40:12,440 tuko karibu huko - 924 00:40:12,440 --> 00:40:15,810 Jumla anapata Jumla pamoja na 1. 925 00:40:15,810 --> 00:40:17,670 Na basi mimi nina kwenda na kurudi jumla. 926 00:40:17,670 --> 00:40:19,420 >> Hivyo mimi alifanya hivyo haraka, admittedly kabisa. 927 00:40:19,420 --> 00:40:22,775 Lakini tena, kazi kuu pretty moja kwa moja, msingi juu ya kanuni tumekuwa 928 00:40:22,775 --> 00:40:23,190 imeandikwa hivi sasa. 929 00:40:23,190 --> 00:40:25,610 Anatumia kitanzi mbili kupata chanya int kutoka kwa mtumiaji. 930 00:40:25,610 --> 00:40:29,870 Mimi kisha kupita kwamba int kwa kazi mpya kuitwa sigma, wito ni, tena, n. 931 00:40:29,870 --> 00:40:33,100 Na mimi kuhifadhi thamani ya kurudi, jibu kutoka sanduku nyeusi sasa 932 00:40:33,100 --> 00:40:35,460 inayojulikana kama sigma, katika kutofautiana kuitwa jibu. 933 00:40:35,460 --> 00:40:36,580 Kisha mimi magazeti hayo. 934 00:40:36,580 --> 00:40:39,090 >> Kama sisi sasa kuendelea hadithi, ni jinsi gani sigma kutekelezwa? 935 00:40:39,090 --> 00:40:40,840 Napendekeza kutekeleza kama ifuatavyo. 936 00:40:40,840 --> 00:40:43,560 Kwanza, kidogo kidogo ya makosa ya kuangalia- kuhakikisha kwamba mtumiaji si 937 00:40:43,560 --> 00:40:46,480 messing na mimi na kupita katika baadhi ya thamani hasi au 0. 938 00:40:46,480 --> 00:40:49,710 Basi mimi kutangaza variable kuitwa sum na kuweka kwa 0. 939 00:40:49,710 --> 00:40:55,910 >> Na sasa mimi kuanza kutembea kutoka i sawa 1 njia yote hadi na pamoja na m, 940 00:40:55,910 --> 00:41:00,130 kwa sababu mimi nataka ni pamoja na kila idadi kutoka moja kwa njia ya m, umoja. 941 00:41:00,130 --> 00:41:04,350 Na ndani ya hii kwa kitanzi, mimi tu kufanya Jumla anapata chochote ni sasa, pamoja na 942 00:41:04,350 --> 00:41:08,900 thamani ya i. 943 00:41:08,900 --> 00:41:10,370 Plus thamani ya i. 944 00:41:10,370 --> 00:41:14,090 >> Kama kando, kama wameweza hawajaona hii kabla, kuna baadhi ya sukari kisintaksia 945 00:41:14,090 --> 00:41:14,870 kwa ajili ya mstari huu. 946 00:41:14,870 --> 00:41:21,120 Siwezi kuandika tena kama plus sawa i, tu kuokoa mwenyewe keystrokes chache 947 00:41:21,120 --> 00:41:22,570 na kuangalia baridi kidogo. 948 00:41:22,570 --> 00:41:23,140 Lakini hiyo yote. 949 00:41:23,140 --> 00:41:24,660 Ni functionally kitu kimoja. 950 00:41:24,660 --> 00:41:26,710 >> Bahati mbaya, hii kanuni ya si kwenda kukusanya bado. 951 00:41:26,710 --> 00:41:31,600 Kama mimi kukimbia kufanya sigma 0, jinsi am Mimi kwenda kupata yelled saa? 952 00:41:31,600 --> 00:41:33,473 Nini ni kwenda si kama? 953 00:41:33,473 --> 00:41:35,740 >> Watazamaji: [inaudible]. 954 00:41:35,740 --> 00:41:37,800 >> DAVID Malan: Yeah, mimi hakuwa kutangaza kazi juu juu, haki? 955 00:41:37,800 --> 00:41:40,590 C ni aina ya kijinga, kwa kuwa tu anafanya nini kuwaambia ni nini, na wewe 956 00:41:40,590 --> 00:41:41,880 kufanya hivyo ili. 957 00:41:41,880 --> 00:41:45,910 Na hivyo kama mimi hit Enter hapa, mimi naenda kupata onyo kuhusu sigma thabiti 958 00:41:45,910 --> 00:41:46,860 tamko. 959 00:41:46,860 --> 00:41:48,120 >> Oh, si tatizo. 960 00:41:48,120 --> 00:41:50,370 Naweza kwenda hadi juu, na siwezi kusema, haki ya wote, kusubiri dakika. 961 00:41:50,370 --> 00:41:54,240 Sigma ni kazi kwamba anarudi int na inatarajia 962 00:41:54,240 --> 00:41:56,620 int kama pembejeo semicolon,. 963 00:41:56,620 --> 00:41:59,550 Au mimi naweza kuweka kazi nzima juu kuu, lakini kwa ujumla, ningependa 964 00:41:59,550 --> 00:42:02,260 kupendekeza dhidi ya kwamba, kwa sababu ni nzuri daima kuwa na kuu kwa juu ili 965 00:42:02,260 --> 00:42:06,310 unaweza kupiga mbizi haki na kujua nini mpango anafanya kwa kusoma kuu ya kwanza. 966 00:42:06,310 --> 00:42:07,930 >> Hivyo sasa napenda wazi screen. 967 00:42:07,930 --> 00:42:09,330 Umerudiwa sigma 0. 968 00:42:09,330 --> 00:42:10,340 Yote inaonekana kuangalia nje. 969 00:42:10,340 --> 00:42:11,970 Basi mimi kukimbia sigma 0. 970 00:42:11,970 --> 00:42:12,770 Chanya inter. 971 00:42:12,770 --> 00:42:15,580 Mimi nitakupa ni idadi 3 kushika ni rahisi. 972 00:42:15,580 --> 00:42:18,710 Hivyo kwamba wanapaswa kunipa 3 plus 2 pamoja na 1, hivyo 6. 973 00:42:18,710 --> 00:42:20,750 Kuingia, na kwa kweli mimi kupata 6. 974 00:42:20,750 --> 00:42:21,820 >> Mimi siwezi kufanya jambo kubwa - 975 00:42:21,820 --> 00:42:24,080 50, 12, 75. 976 00:42:24,080 --> 00:42:27,690 Tu kama tangent, mimi naenda kufanya kitu ujinga kama kweli kubwa 977 00:42:27,690 --> 00:42:30,375 simu, Oh, kwamba kweli kazi nje - 978 00:42:30,375 --> 00:42:31,600 eh, sidhani kwamba ni sahihi. 979 00:42:31,600 --> 00:42:32,810 Hebu angalia. 980 00:42:32,810 --> 00:42:34,060 Hebu kweli fujo na hivyo. 981 00:42:34,060 --> 00:42:37,150 982 00:42:37,150 --> 00:42:38,400 >> Kwamba ni tatizo. 983 00:42:38,400 --> 00:42:43,180 984 00:42:43,180 --> 00:42:44,970 Nini kinaendelea? 985 00:42:44,970 --> 00:42:46,050 kanuni ya kuwa mbaya. 986 00:42:46,050 --> 00:42:48,470 Ni bado linear. 987 00:42:48,470 --> 00:42:50,810 Whistling ni athari nzuri, ingawa. 988 00:42:50,810 --> 00:42:52,060 Nini kinaendelea? 989 00:42:52,060 --> 00:42:54,700 990 00:42:54,700 --> 00:42:55,620 >> Uhakika kama mimi walisikia maneno hayo. 991 00:42:55,620 --> 00:42:57,620 Hivyo ni zamu nje - na hii ni kama kando. 992 00:42:57,620 --> 00:42:59,400 Hii si ya msingi na wazo la kujirudia. 993 00:42:59,400 --> 00:43:02,480 Ni zamu ya nje, kwa sababu mimi nina kujaribu kuwakilisha idadi kubwa kama hiyo, wengi 994 00:43:02,480 --> 00:43:06,980 uwezekano ni kuwa misinterpreted na C kama idadi si chanya, 995 00:43:06,980 --> 00:43:09,980 lakini hasi idadi. 996 00:43:09,980 --> 00:43:12,690 >> Sisi si aliongea kuhusu hili, lakini ni zinageuka kuna idadi hasi 997 00:43:12,690 --> 00:43:14,210 katika dunia kwa kuongeza kwa idadi chanya. 998 00:43:14,210 --> 00:43:16,290 Na njia ambayo unaweza kuwakilisha idadi hasi 999 00:43:16,290 --> 00:43:19,530 kimsingi ni, unaweza kutumia moja maalum kidogo zinaonyesha 1000 00:43:19,530 --> 00:43:20,400 mazuri zaidi ya hasi. 1001 00:43:20,400 --> 00:43:22,950 Ni kidogo ngumu zaidi kuliko kuwa, lakini hiyo ni wazo msingi. 1002 00:43:22,950 --> 00:43:26,740 >> Hivyo kwa bahati mbaya, kama C ni utata moja ya wale bits kama kweli maana, 1003 00:43:26,740 --> 00:43:30,790 oh, hii ni idadi hasi, kitanzi yangu hapa, kwa mfano, ni kweli kamwe 1004 00:43:30,790 --> 00:43:31,740 kwenda kusitisha. 1005 00:43:31,740 --> 00:43:33,850 Hivyo kama mimi walikuwa kweli kitu kuchapa tena na tena, tunataka 1006 00:43:33,850 --> 00:43:34,650 kuona mengi nzima. 1007 00:43:34,650 --> 00:43:36,220 Lakini tena, hii ni badala ya uhakika. 1008 00:43:36,220 --> 00:43:38,590 Hii ni kweli tu aina ya miliki udadisi kwamba tutaweza kuja 1009 00:43:38,590 --> 00:43:39,550 nyuma na hatimaye. 1010 00:43:39,550 --> 00:43:43,400 Lakini kwa sasa, hii ni sahihi utekelezaji kama sisi kudhani kwamba 1011 00:43:43,400 --> 00:43:45,970 mtumiaji itatoa ints kwamba inafaa ndani ints. 1012 00:43:45,970 --> 00:43:49,370 >> Lakini mimi kudai kwamba kanuni hii, kusema ukweli, inaweza kufanyika hivyo zaidi tu. 1013 00:43:49,370 --> 00:43:54,060 Kama lengo katika mkono ni kuchukua simu kama m na kuongeza hadi yote ya 1014 00:43:54,060 --> 00:43:59,510 idadi kati yake na 1, au kinyume chake kati ya 1 na hayo, mimi kudai 1015 00:43:59,510 --> 00:44:03,380 kwamba naweza kukopa wazo hili kwamba kuunganisha aina alikuwa, ambayo ilikuwa kuchukua tatizo 1016 00:44:03,380 --> 00:44:05,660 hii ya kawaida na kugawa katika kitu kidogo. 1017 00:44:05,660 --> 00:44:09,875 Labda si nusu, lakini vidogo, lakini representatively sawa. 1018 00:44:09,875 --> 00:44:12,130 Same wazo, lakini tatizo kidogo. 1019 00:44:12,130 --> 00:44:15,470 >> Hivyo mimi nina kweli - basi mimi kuokoa faili hii na idadi tofauti version. 1020 00:44:15,470 --> 00:44:17,670 Tutamwita toleo hili 1 badala ya 0. 1021 00:44:17,670 --> 00:44:20,790 Na mimi kudai kwamba naweza kweli reimplement hii katika aina hii ya 1022 00:44:20,790 --> 00:44:22,160 akili-bending njia. 1023 00:44:22,160 --> 00:44:23,710 >> Mimi naenda kuondoka sehemu ya peke yake. 1024 00:44:23,710 --> 00:44:27,710 Mimi nina kwenda kusema kama m ni chini kuliko au hata sawa na 0 - 1025 00:44:27,710 --> 00:44:29,280 Mimi tu kwenda kuwa kidogo zaidi anal wakati huu 1026 00:44:29,280 --> 00:44:30,520 na makosa yangu kuangalia - 1027 00:44:30,520 --> 00:44:33,190 Mimi nina kwenda mbele na kurudi 0. 1028 00:44:33,190 --> 00:44:34,490 Hii ni holela. 1029 00:44:34,490 --> 00:44:37,500 Mimi tu tu kuamua kama mtumiaji anitiaye simu hasi, mimi nina 1030 00:44:37,500 --> 00:44:41,490 kurudi 0, na wao wanapaswa kuwa na kusoma nyaraka kwa karibu zaidi. 1031 00:44:41,490 --> 00:44:42,170 >> Kingine - 1032 00:44:42,170 --> 00:44:44,070 taarifa ya nini mimi nina kwenda kufanya. 1033 00:44:44,070 --> 00:44:49,260 Mwingine mimi kwenda na kurudi m plus - 1034 00:44:49,260 --> 00:44:51,010 ni nini sigma ya m? 1035 00:44:51,010 --> 00:44:56,710 Naam, sigma ya m plus minus m 1, pamoja na m bala 2, pamoja na m bala 3. 1036 00:44:56,710 --> 00:44:58,030 Sitaki kuandika yote ya nje kwamba. 1037 00:44:58,030 --> 00:44:59,120 Kwa nini si mimi tu Punt? 1038 00:44:59,120 --> 00:45:05,080 Recursively kuwaita mwenyewe na kidogo ndogo tatizo, semicolon, 1039 00:45:05,080 --> 00:45:06,840 na kuiita siku? 1040 00:45:06,840 --> 00:45:07,040 >> Haki? 1041 00:45:07,040 --> 00:45:10,980 Sasa hapa, pia, unaweza kuhisi au wasiwasi kwamba hii ni kitanzi usio kwamba mimi nina 1042 00:45:10,980 --> 00:45:15,450 inducing, ambapo mimi ni kutekeleza sigma na wito sigma. 1043 00:45:15,450 --> 00:45:20,342 Lakini hiyo ni kikamilifu sawa, kwa sababu mimi walidhani mbele aliongeza mistari ambayo? 1044 00:45:20,342 --> 00:45:22,600 >> Watazamaji: [inaudible]. 1045 00:45:22,600 --> 00:45:25,430 >> DAVID Malan: 23 na 26, ambayo ni wangu kama hali hiyo. 1046 00:45:25,430 --> 00:45:28,390 Kwa sababu nini ni nzuri kuhusu kutoa hapa, kwa sababu mimi kuendelea 1047 00:45:28,390 --> 00:45:31,180 kuwapatia sigma ndogo matatizo, ndogo matatizo, ndogo - si 1048 00:45:31,180 --> 00:45:31,870 ukubwa wa nusu. 1049 00:45:31,870 --> 00:45:34,380 Ni hatua tu mtoto ndogo, lakini hiyo ni sawa. 1050 00:45:34,380 --> 00:45:38,050 Kwa sababu hatimaye, tutaweza kazi njia yetu chini ya 1 au 0. 1051 00:45:38,050 --> 00:45:41,630 Na mara moja sisi hit 0, sigma si kwenda kuwaita yenyewe tena. 1052 00:45:41,630 --> 00:45:43,590 Ni kwenda mara moja kurudi 0. 1053 00:45:43,590 --> 00:45:47,960 >> Hivyo athari, kama aina ya upepo huu juu katika akili yako, ni kuongeza m pamoja 1054 00:45:47,960 --> 00:45:52,740 m minus 1, pamoja na m bala 2, pamoja na m bala 3, pamoja na dot, dot, dot, bala m 1055 00:45:52,740 --> 00:45:57,820 m, hatimaye kutoa 0, na athari ni hatimaye kuongeza yote ya 1056 00:45:57,820 --> 00:45:59,070 mambo haya kwa pamoja. 1057 00:45:59,070 --> 00:46:02,380 Hivyo hatuna, na kujirudia, kutatuliwa tatizo kwamba sisi 1058 00:46:02,380 --> 00:46:03,470 hakuweza kutatua kabla. 1059 00:46:03,470 --> 00:46:06,840 Hakika, toleo 0 wa hii, na kila tatizo hadi sasa, imekuwa solvable 1060 00:46:06,840 --> 00:46:09,980 na kutumia tu kwa tanzi au wakati mizunguko au constructs sawa. 1061 00:46:09,980 --> 00:46:13,150 >> Lakini recursion, mimi daresay, inatupa njia tofauti wa kufikiri kuhusu 1062 00:46:13,150 --> 00:46:17,010 matatizo, ambapo kama tunaweza kuchukua tatizo, kuigawanya kutoka kitu 1063 00:46:17,010 --> 00:46:22,340 kubwa kiasi fulani katika kitu fulani ndogo, mimi kudai kwamba tunaweza kutatua hilo 1064 00:46:22,340 --> 00:46:26,040 labda kidogo zaidi elegantly katika suala ya kubuni, na kanuni ya chini, 1065 00:46:26,040 --> 00:46:30,980 na labda hata kutatua matatizo ambayo ingekuwa kuwa ngumu, kama tutaweza hatimaye 1066 00:46:30,980 --> 00:46:33,280 kuona, kutatua rena iteratively. 1067 00:46:33,280 --> 00:46:35,980 >> Lakini cliffhanger kwamba mimi wanataka kuondoka sisi juu ilikuwa hii. 1068 00:46:35,980 --> 00:46:40,720 Hebu kwenda mbele na kufungua hadi faili kutoka - 1069 00:46:40,720 --> 00:46:44,300 kweli, napenda kwenda na kufanya hivyo kwa haraka kweli. 1070 00:46:44,300 --> 00:46:46,875 Hebu kwenda mbele na kupendekeza zifuatazo. 1071 00:46:46,875 --> 00:46:51,160 1072 00:46:51,160 --> 00:46:54,785 Miongoni mwa kanuni ya leo ni faili hii hapa. 1073 00:46:54,785 --> 00:47:01,090 1074 00:47:01,090 --> 00:47:03,050 Hii moja hapa, noswap. 1075 00:47:03,050 --> 00:47:06,260 >> Hivyo hii ni ya kijinga kidogo mpango kwamba Mimi kuchapwa up kuwa madai ya kufanya 1076 00:47:06,260 --> 00:47:06,940 zifuatazo. 1077 00:47:06,940 --> 00:47:10,140 Katika kuu, ni ya kwanza anatangaza int kuitwa x na inateua ni 1078 00:47:10,140 --> 00:47:11,100 thamani ya 1. 1079 00:47:11,100 --> 00:47:13,520 Kisha inatangaza y int na inateua ni thamani 2. 1080 00:47:13,520 --> 00:47:15,310 Basi ni Prints nje nini x na y ni. 1081 00:47:15,310 --> 00:47:17,781 Kisha anasema, swapping, dot dot dot. 1082 00:47:17,781 --> 00:47:21,670 >> Basi ni madai kuwa wito kazi kuitwa wabadilishane, kupita katika x na 1083 00:47:21,670 --> 00:47:24,290 y, wazo la ambayo ni kwamba hopefully x na y atakuja tena 1084 00:47:24,290 --> 00:47:25,620 tofauti, kinyume. 1085 00:47:25,620 --> 00:47:27,110 Basi ni kudai walibadilishana! 1086 00:47:27,110 --> 00:47:28,420 na kumweka Moderators. 1087 00:47:28,420 --> 00:47:30,190 Basi ni Prints nje x na y. 1088 00:47:30,190 --> 00:47:33,480 >> Lakini zinageuka kuwa hii sana rahisi maandamano chini 1089 00:47:33,480 --> 00:47:35,570 hapa ni kweli Buggy. 1090 00:47:35,570 --> 00:47:38,870 Hata mimi nina kutangaza muda kutofautiana na muda kuweka katika 1091 00:47:38,870 --> 00:47:42,010 hivyo, basi mimi nina reassigning thamani ya b - 1092 00:47:42,010 --> 00:47:45,080 ambayo anahisi nzuri, kwa sababu nimekuwa nakala ya kuokolewa katika temp. 1093 00:47:45,080 --> 00:47:48,410 Kisha mimi update b sawa chochote kilichokuwa katika temp. 1094 00:47:48,410 --> 00:47:51,610 Aina hii ya mchezo shell ya kusonga ndani ya b na b ndani ya hii kwa kutumia 1095 00:47:51,610 --> 00:47:54,360 katikati-mtu mmoja aitwaye temp anahisi kikamilifu busara. 1096 00:47:54,360 --> 00:47:57,270 >> Lakini mimi kudai kwamba wakati mimi kukimbia hii kanuni, kama mimi itabidi kufanya sasa - 1097 00:47:57,270 --> 00:47:59,490 napenda kwenda mbele na kuweka katika hapa. 1098 00:47:59,490 --> 00:48:01,995 Mimi nitakuita hii noswap.c. 1099 00:48:01,995 --> 00:48:05,630 Na kama jina linavyosema, hii si kwenda kuwa mpango sahihi. 1100 00:48:05,630 --> 00:48:09,460 Kufanya noswap /. Hakuna kubadilishana. 1101 00:48:09,460 --> 00:48:12,110 x ni 1, y ni 2, swapping, walibadilishana. 1102 00:48:12,110 --> 00:48:14,220 x ni 1, y ni 2. 1103 00:48:14,220 --> 00:48:16,920 Kimsingi hili ni vibaya, hata ingawa hii inaonekana kikamilifu 1104 00:48:16,920 --> 00:48:17,730 busara kwangu. 1105 00:48:17,730 --> 00:48:21,330 Na kuna sababu, lakini sisi siyo kwenda yatangaza sababu bado tu. 1106 00:48:21,330 --> 00:48:24,610 >> Kwa sasa cliffhanger pili nilitaka kuondoka na ni hii, 1107 00:48:24,610 --> 00:48:27,120 tangazo la aina ya Coupon namba. 1108 00:48:27,120 --> 00:48:31,590 Ubunifu wetu na siku mwishoni mwa mwaka huu umesababisha idadi zisizo yasiyo na maana 1109 00:48:31,590 --> 00:48:33,830 ya maswali, ambayo ilikuwa Si nia yetu. 1110 00:48:33,830 --> 00:48:36,590 Nia ya kanuni hizi Coupon, ambapo kama wewe kufanya sehemu ya tatizo 1111 00:48:36,590 --> 00:48:39,850 kuweka mapema, na hivyo kupata siku ya ziada, alikuwa kweli kukusaidia guys kusaidia 1112 00:48:39,850 --> 00:48:42,420 mwenyewe kuanza mapema, aina wa na incentivizing wewe. 1113 00:48:42,420 --> 00:48:44,880 Inatusaidia kusambaza mzigo hela masaa ya ofisi bora ili 1114 00:48:44,880 --> 00:48:45,740 ni aina ya kushinda na kushinda. 1115 00:48:45,740 --> 00:48:48,860 >> Kwa bahati mbaya, nadhani maagizo yangu wamekuwa, hadi sasa, wazi sana, hivyo 1116 00:48:48,860 --> 00:48:52,230 Mimi kurudi mwishoni mwa wiki hii na updated spec katika maandishi kubwa, bolder kwa 1117 00:48:52,230 --> 00:48:53,600 kueleza risasi kama hizi. 1118 00:48:53,600 --> 00:48:56,900 Na tu kusema hivyo zaidi ya hadharani, na default, tatizo seti ni kutokana Alhamisi 1119 00:48:56,900 --> 00:48:58,400 saa sita mchana, kwa mtaala. 1120 00:48:58,400 --> 00:49:02,030 Kama kuanza mapema, kumaliza sehemu ya tatizo kuweka na Jumatano saa 12:00 1121 00:49:02,030 --> 00:49:05,170 PM, sehemu ambayo inahusiana na Coupon kanuni, wazo ni kwamba unaweza kupanua 1122 00:49:05,170 --> 00:49:07,710 tarehe ya mwisho yako kwa ajili ya P kuweka mpaka Ijumaa. 1123 00:49:07,710 --> 00:49:10,890 Hiyo ni, kidogo mbali sehemu ndogo ya P kuweka jamaa na nini kawaida ni 1124 00:49:10,890 --> 00:49:13,200 kubwa tatizo, na kununua mwenyewe siku ya ziada. 1125 00:49:13,200 --> 00:49:15,190 Tena, anapata wewe kufikiria juu ya kuweka tatizo, anapata wewe 1126 00:49:15,190 --> 00:49:16,380 masaa ya ofisi mapema. 1127 00:49:16,380 --> 00:49:20,670 Lakini kanuni Coupon tatizo bado inavyotakiwa, hata kama huna kuwasilisha. 1128 00:49:20,670 --> 00:49:23,340 >> Lakini zaidi compellingly ni hii. 1129 00:49:23,340 --> 00:49:26,520 (STAGE Whisper) Na wale folks kuacha mapema ni gonna majuto. 1130 00:49:26,520 --> 00:49:28,620 Kama ni folks kwenye balcony. 1131 00:49:28,620 --> 00:49:32,510 Mimi kuomba msamaha mapema kwa folks juu ya balcony kwa sababu hiyo itakuwa 1132 00:49:32,510 --> 00:49:33,920 wazi katika muda tu. 1133 00:49:33,920 --> 00:49:37,050 >> Hivyo sisi ni bahati ya kuwa moja ya CS50 aliyekuwa mkuu mafundisho wenzake katika 1134 00:49:37,050 --> 00:49:39,302 kampuni inayoitwa dropbox.com. 1135 00:49:39,302 --> 00:49:45,500 Wao sana kwa ukarimu walichangia Coupon code hapa kwa ajili ya nafasi hii sana, 1136 00:49:45,500 --> 00:49:48,180 ambayo ni juu kutoka kawaida 2 gigabytes. 1137 00:49:48,180 --> 00:49:51,740 Hivyo nilifikiri nini tunataka kufanya juu ya hii kumbuka mwisho ni kufanya kidogo ya giveaway, 1138 00:49:51,740 --> 00:49:55,380 ambapo katika muda tu, sisi itaonyesha mshindi na ambaye ana Coupon 1139 00:49:55,380 --> 00:49:57,980 kificho kwamba unaweza kisha kwenda zao tovuti, aina yake katika, na voilĂ , kupata 1140 00:49:57,980 --> 00:50:01,370 nzima mengi zaidi Dropbox nafasi kwa ajili yako appliance na kwa files yako binafsi. 1141 00:50:01,370 --> 00:50:05,690 >> Na kwanza, ambao wangependa kushiriki katika picha hii? 1142 00:50:05,690 --> 00:50:09,630 OK, sasa kwamba inafanya hata furaha zaidi. 1143 00:50:09,630 --> 00:50:14,010 mtu ambaye anapata hii gigabyte 25- Coupon code - ambayo ni mbali 1144 00:50:14,010 --> 00:50:16,150 zaidi ya kulazimisha kuliko marehemu siku sasa, labda - 1145 00:50:16,150 --> 00:50:20,620 ni mmoja ambaye ni ameketi juu ya kiti cha mto zipitazo kuna 1146 00:50:20,620 --> 00:50:21,620 kwamba kanuni Coupon. 1147 00:50:21,620 --> 00:50:23,480 Unaweza sasa kuangalia chini ya kiti yako mto. 1148 00:50:23,480 --> 00:50:28,710 1149 00:50:28,710 --> 00:50:29,680 >> [Video avspelning] 1150 00:50:29,680 --> 00:50:31,620 >> -Moja, mbili, tatu. 1151 00:50:31,620 --> 00:50:35,015 >> [WAKIPIGA KELELE] 1152 00:50:35,015 --> 00:50:35,985 >> -Unaweza kupata gari! 1153 00:50:35,985 --> 00:50:36,670 Unaweza kupata gari! 1154 00:50:36,670 --> 00:50:37,970 >> DAVID Malan: Tutaona wewe juu ya Jumatano. 1155 00:50:37,970 --> 00:50:38,904 >> -Unaweza kupata gari! 1156 00:50:38,904 --> 00:50:39,371 Unaweza kupata gari! 1157 00:50:39,371 --> 00:50:40,305 Unaweza kupata gari! 1158 00:50:40,305 --> 00:50:41,706 Unaweza kupata gari! 1159 00:50:41,706 --> 00:50:43,107 Unaweza kupata gari! 1160 00:50:43,107 --> 00:50:45,530 >> DAVID Malan: Balcony folks, kuja chini hapa mbele, 1161 00:50:45,530 --> 00:50:46,866 ambapo tuna extras. 1162 00:50:46,866 --> 00:50:50,282 >> -Kila mtu anapata gari! 1163 00:50:50,282 --> 00:50:52,234 Kila mtu anapata gari! 1164 00:50:52,234 --> 00:50:52,722 >> [MWISHO video avspelning] 1165 00:50:52,722 --> 00:50:54,590 >> NARRATOR: CS50 ijayo - 1166 00:50:54,590 --> 00:51:00,374 >> SPIKA 5: Oh gosh wangu gosh gosh gosh gosh gosh gosh gosh gosh gosh - 1167 00:51:00,374 --> 00:51:02,106 >> [UKELELE ina]