1 00:00:00,000 --> 00:00:03,332 >> [Muzika] 2 00:00:03,332 --> 00:00:06,490 >> ANDI Peng: Mirë se vini në javën e 3 të seksionit. 3 00:00:06,490 --> 00:00:09,550 Thanks, ju djema, për të gjithë që vijnë në këtë kohë më parë të fillojë sot. 4 00:00:09,550 --> 00:00:11,466 Ne kemi marrë një e bukur, pak intime grup sot. 5 00:00:11,466 --> 00:00:14,570 Pra, shpresojmë se ne do të merrni për përfundojë, ndoshta, në fillim, 6 00:00:14,570 --> 00:00:15,780 pak më herët sot. 7 00:00:15,780 --> 00:00:22,057 Në mënyrë të shpejtë, vetëm disa njoftimet për rendin e ditës së sotme. 8 00:00:22,057 --> 00:00:23,890 Para se të fillojmë, ne jemi do të vetëm të shkuar mbi 9 00:00:23,890 --> 00:00:28,910 disa çështje shkurtër logjistike, pset pyetje, Debrief, gjëra të tilla si se. 10 00:00:28,910 --> 00:00:30,250 Dhe pastaj ne do të zhyten të drejtë në. 11 00:00:30,250 --> 00:00:34,710 Ne do të përdorim një Rregullues të quajtur Gdb të fillojnë hedhur poshtë kodin tonë, që Davidi 12 00:00:34,710 --> 00:00:36,550 shpjegohet në leksionin e të tjera ditore. 13 00:00:36,550 --> 00:00:39,420 Ne do të shkojnë mbi katër llojet e terezi. 14 00:00:39,420 --> 00:00:42,310 Ne do të shkoj për ta shumë shpejt pasi ata janë mjaft intensive. 15 00:00:42,310 --> 00:00:45,710 Por e di se të gjitha slides dhe Kodi burimor janë gjithmonë online. 16 00:00:45,710 --> 00:00:50,810 Pra mos ngurroni, në lexim tuaj, për të shkojnë prapa dhe të marrë një vështrim në atë. 17 00:00:50,810 --> 00:00:53,930 >> Ne do të kalojnë nëpër simbol asymptotic, e cila 18 00:00:53,930 --> 00:00:55,944 është vetëm një mënyrë e sofistikuar i thënë se "runtimes" 19 00:00:55,944 --> 00:00:58,360 ku ne kemi O madh, i cili David shpjegoi në leksion. 20 00:00:58,360 --> 00:01:01,550 Dhe ne gjithashtu kemi Omega, e cila është i detyruar Runtime të ulët. 21 00:01:01,550 --> 00:01:06,450 Dhe ne do të flasim pak më shumë në thellësi në lidhje me se si këto punë. 22 00:01:06,450 --> 00:01:10,160 Dhe në fund, ne do të shkojnë mbi kërkimin binar, sepse një shumë prej jush të cilët kanë tashmë 23 00:01:10,160 --> 00:01:15,190 lëshoi ​​në psets tuaj ndoshta e dini se kjo është një pyetje që është në pset tuaj. 24 00:01:15,190 --> 00:01:17,470 Pra, ju do të gjithë të jenë të lumtur që ne të mbuluar këtë sot. 25 00:01:17,470 --> 00:01:20,610 >> Dhe së fundi, për tuaj seksion reagime, unë në fakt 26 00:01:20,610 --> 00:01:23,000 lënë rreth 15 minuta në në fund të shkojnë vetëm mbi 27 00:01:23,000 --> 00:01:27,730 logjistika e pset3, ndonjë pyetje, ndoshta pak e udhëzimit, në qoftë se ju do të, 28 00:01:27,730 --> 00:01:28,990 para se të fillojmë programimin. 29 00:01:28,990 --> 00:01:30,890 Pra, le të përpiqen për të marrë me anë të materiali shumë shpejt. 30 00:01:30,890 --> 00:01:33,880 Dhe pastaj ne mund të kalojnë disa kohë duke marrë shumë pyetje për pset. 31 00:01:33,880 --> 00:01:35,230 NE RREGULL. 32 00:01:35,230 --> 00:01:39,570 >> Shpejt, kështu që vetëm disa Shpalljet e para se të fillojmë sot. 33 00:01:39,570 --> 00:01:45,410 Së pari, të mirëpritur për të bërë ajo përmes dy psets tuaj. 34 00:01:45,410 --> 00:01:49,432 Kam marrë një vështrim në your-- vërtet, le të marrë një raund të duartrokitje për këtë një të tillë. 35 00:01:49,432 --> 00:01:51,140 Në fakt, unë kam qenë me të vërtetë, impresionuar me të vërtetë. 36 00:01:51,140 --> 00:01:55,800 Unë vlerësohet pset parë për ju djema javë dhe ju djema e fundit bëri pabesueshme. 37 00:01:55,800 --> 00:01:58,290 >> Stil ishte në pikën përveç disa komente. 38 00:01:58,290 --> 00:02:00,660 Sigurohuni që ju jeni gjithmonë komentuar kodin tuaj. 39 00:02:00,660 --> 00:02:03,040 Por psets tuaja ishin në pikë. 40 00:02:03,040 --> 00:02:05,549 Dhe për të mbajtur atë lart. 41 00:02:05,549 --> 00:02:08,090 Dhe kjo është e mirë për grader në shihni se ju djema janë vënë 42 00:02:08,090 --> 00:02:10,704 në sa më shumë përpjekje në stilin tuaj dhe dizajni juaj në kodin tuaj 43 00:02:10,704 --> 00:02:12,120 që ne do të dëshironim për ju për të parë. 44 00:02:12,120 --> 00:02:16,450 Kështu që unë jam duke kaluar së bashku mirënjohjen time për pjesën tjetër të TAS. 45 00:02:16,450 --> 00:02:19,210 >> Megjithatë ka një Disa pyetje Debrief 46 00:02:19,210 --> 00:02:22,010 Unë vetëm dua të shkojë mbi atë do ta bënte edhe jetën time 47 00:02:22,010 --> 00:02:24,900 dhe shumë të tjera Tas 'jeton pak më e lehtë. 48 00:02:24,900 --> 00:02:28,220 Së pari, unë kam vënë re këtë e kaluara week-- sa prej jush 49 00:02:28,220 --> 00:02:32,301 kanë qenë në drejtimin check50 në Kodi tuaj para se të dorëzojnë? 50 00:02:32,301 --> 00:02:32,800 NE RREGULL. 51 00:02:32,800 --> 00:02:36,690 Kështu që të gjithë duhet të bëjnë check50, because-- një secret-- ne fakt 52 00:02:36,690 --> 00:02:41,540 drejtuar check50 si pjesë e saktësisë sonë Scripts për testimin kodin tuaj. 53 00:02:41,540 --> 00:02:45,480 Pra, në qoftë se kodi juaj është i dështuar check50, në të gjitha gjasat, 54 00:02:45,480 --> 00:02:47,570 kjo ndoshta do të dështojnë kontroll tonë si. 55 00:02:47,570 --> 00:02:49,320 Ndonjëherë ju djema kemi përgjigjet e duhura. 56 00:02:49,320 --> 00:02:52,200 Si, në babëzitur, disa prej ju keni numrat e duhur, 57 00:02:52,200 --> 00:02:53,960 ju vetëm të shtypura nga disa gjëra ekstra. 58 00:02:53,960 --> 00:02:55,940 Dhe kjo gjëra shtesë në fakt dështon kontrolloni, 59 00:02:55,940 --> 00:02:58,440 sepse kompjuteri nuk ka të vërtetë e di se çfarë është në kërkim për të. 60 00:02:58,440 --> 00:03:00,981 Dhe kështu ai thjesht do të kandidojë përmes, shihni se prodhimi juaj nuk ka 61 00:03:00,981 --> 00:03:03,810 përputhen me atë që ne presim përgjigje të jetë, dhe të shënojë atë është e gabuar. 62 00:03:03,810 --> 00:03:06,560 >> Dhe unë e di se ka ndodhur në disa prej rasteve tuaj këtë javë. 63 00:03:06,560 --> 00:03:09,870 Kështu që u ktheva dhe me dorë regraded kodin gjithëve. 64 00:03:09,870 --> 00:03:12,780 Në të ardhmen edhe pse, ju lutem, ju lutem sigurohuni 65 00:03:12,780 --> 00:03:14,570 që ju jeni duke shikoni 50 në kodin tuaj. 66 00:03:14,570 --> 00:03:17,970 Për shkak se ajo është lloj i një dhimbje për AT që të ketë për të shkuar mbrapa dhe me dorë regrade 67 00:03:17,970 --> 00:03:21,197 çdo pset vetme për çdo vetme, shembull i vogël humbi. 68 00:03:21,197 --> 00:03:22,530 Kështu që unë nuk heq asnjë pikë. 69 00:03:22,530 --> 00:03:25,210 Unë mendoj se unë u ngritën ndoshta një ose dy për dizajn. 70 00:03:25,210 --> 00:03:27,710 Në të ardhmen edhe pse, në qoftë se ju jeni dështuar check50, 71 00:03:27,710 --> 00:03:31,330 pikë do të merret off për korrektësinë. 72 00:03:31,330 --> 00:03:35,020 >> Për më tepër, psets janë për shkak premteve në mesditë. 73 00:03:35,020 --> 00:03:38,990 Unë mendoj se ka një-minuta shtatë Periudha e vonë hiri që ne të ju jap. 74 00:03:38,990 --> 00:03:42,434 Për kohën e Harvardit, ata janë të lejuar për të jetë shtatë minuta me vonesë për çdo gjë. 75 00:03:42,434 --> 00:03:44,350 Kështu që këtu në Yale, ne do të t'i përmbahen se si. 76 00:03:44,350 --> 00:03:47,910 Por shumë e shumë, në 12:07, nëse pset juaj nuk është në, 77 00:03:47,910 --> 00:03:49,720 ajo do të jetë e shënuar si vonë. 78 00:03:49,720 --> 00:03:53,160 Dhe kështu, ndërsa ajo është e shënuar si vonë, TA-- unë jam 79 00:03:53,160 --> 00:03:54,870 ende do të jenë të notimit psets tuaja. 80 00:03:54,870 --> 00:03:56,760 Pra, ju do të shihni ende një notë të shfaqet. 81 00:03:56,760 --> 00:03:58,820 Megjithatë, e di se në në fund të semestrit, 82 00:03:58,820 --> 00:04:02,270 Të gjitha psets vonë do të jetë vetëm zero automatikisht nga kompjuteri. 83 00:04:02,270 --> 00:04:04,490 >> Ne e bëjmë këtë për dy arsye. 84 00:04:04,490 --> 00:04:09,220 Një, ndonjëherë ne të merrni falur, si justifikime Dean, 85 00:04:09,220 --> 00:04:10,762 më vonë se unë nuk e di për akoma. 86 00:04:10,762 --> 00:04:13,761 Pra, ne si për t'u siguruar që ne jemi nota çdo gjë vetëm në rast, si, unë jam 87 00:04:13,761 --> 00:04:15,080 mungon një justifikim Dekanit. 88 00:04:15,080 --> 00:04:17,000 Dhe së dyti, të mbajtur në mendjen, ju prapë mund të 89 00:04:17,000 --> 00:04:19,370 bjerë një pset që ka pikë të plota fushëveprimi. 90 00:04:19,370 --> 00:04:21,430 Dhe kështu ne si të klasës së të gjitha psets tuaj vetëm 91 00:04:21,430 --> 00:04:24,730 për t'u siguruar që objekti suaj atje dhe ju jeni duke u përpjekur ato. 92 00:04:24,730 --> 00:04:29,150 Pra, edhe në qoftë se është vonë, ju do të ende të merrni kredi për pikë fushëveprimin, unë mendoj. 93 00:04:29,150 --> 00:04:33,730 >> Pra, morale e tregimit është, të bëjë i sigurt psets tuaja janë në në kohë. 94 00:04:33,730 --> 00:04:38,350 Dhe në qoftë se ata nuk janë në në kohë, e di se kjo nuk është e madhe. 95 00:04:38,350 --> 00:04:41,678 Po, para se të lëvizë, ka njeri të ketë ndonjë pyetje në lidhje me reagimet e pset? 96 00:04:41,678 --> 00:04:42,178 Po. 97 00:04:42,178 --> 00:04:43,630 >> Audienca: A ju thonë se ne mund të bjerë një nga psets? 98 00:04:43,630 --> 00:04:44,296 >> ANDI Peng: Po. 99 00:04:44,296 --> 00:04:47,050 Pra, ka nëntë psets përgjithshme gjatë semestrit. 100 00:04:47,050 --> 00:04:50,610 Dhe në qoftë se ju keni qëllimin points-- kështu Shtrirja është vetëm, 101 00:04:50,610 --> 00:04:53,567 shumë e shumë, po përpjekur Problemi, po vënë në kohë, 102 00:04:53,567 --> 00:04:56,150 po ju tregon se ju keni demonstruar keni lexuar spekulim. 103 00:04:56,150 --> 00:04:57,191 Kjo është shumë e shumë fushëveprimi. 104 00:04:57,191 --> 00:04:59,370 Dhe nëse ju jeni duke përmbushur Pikat fushëveprimi, ne 105 00:04:59,370 --> 00:05:03,360 mund të bjerë më të ulët një nga fushëveprimit të plotë. 106 00:05:03,360 --> 00:05:06,790 Pra, kjo është në avantazhin tuaj për të përfunduar dhe të përpiqemi çdo pset. 107 00:05:06,790 --> 00:05:10,320 >> Edhe upload-- qoftë se asnjë nga ato punë, ngarkoni atyre të gjithë. 108 00:05:10,320 --> 00:05:13,711 Dhe pastaj ne do të shpresojmë të jetë në gjendje për të ju jap disa nga këto pika prapa. 109 00:05:13,711 --> 00:05:14,210 Ftohtë. 110 00:05:14,210 --> 00:05:16,780 Ndonjë pyetje të tjera? 111 00:05:16,780 --> 00:05:17,840 I madh. 112 00:05:17,840 --> 00:05:21,960 >> Së dyti, zyra hours-- disa shënime të shpejtë rreth orarit të punës. 113 00:05:21,960 --> 00:05:24,300 Pra, së pari, të vijë në fillim të javës. 114 00:05:24,300 --> 00:05:26,909 Askush nuk është kurrë në orarit të punës të hënave. 115 00:05:26,909 --> 00:05:28,700 Christabel erdhi për orarit të punës natën e fundit. 116 00:05:28,700 --> 00:05:29,691 Po, Christabel. 117 00:05:29,691 --> 00:05:32,190 Dhe çfarë kemi në zyrën e orë mbrëmë, Christabel? 118 00:05:32,190 --> 00:05:33,020 >> Audienca: Ne kishim akullore. 119 00:05:33,020 --> 00:05:36,160 >> ANDI Peng: Pra, kjo është e drejtë, kemi pasur akullore në orarit të punës natën e fundit. 120 00:05:36,160 --> 00:05:39,390 Ndërsa unë nuk mund t'ju premtoj se ne do të kemi akullore në orarit të punës 121 00:05:39,390 --> 00:05:43,230 çdo javë, ajo që unë mund të ju premtojnë është se do të ketë një mënyrë të konsiderueshme 122 00:05:43,230 --> 00:05:45,380 Studenti më i mirë në raport AT. 123 00:05:45,380 --> 00:05:47,650 Si legit, kjo është si tre në një. 124 00:05:47,650 --> 00:05:50,350 Ndërsa, kontrast që me E enjte, ju keni marrë për 150 125 00:05:50,350 --> 00:05:52,830 vërtet theksoi fëmijët dhe nuk akullore. 126 00:05:52,830 --> 00:05:55,360 Dhe kjo nuk është vetëm produktiv për të gjithë. 127 00:05:55,360 --> 00:05:58,730 Pra, morale e tregimit është, erdhi në fillim të orarit të punës dhe gjëra të mira 128 00:05:58,730 --> 00:06:00,310 do të ndodhë. 129 00:06:00,310 --> 00:06:02,110 >> Gjithashtu, vijnë të përgatitur për të bërë pyetje. 130 00:06:02,110 --> 00:06:03,200 Ti e di? 131 00:06:03,200 --> 00:06:05,420 Pavarësisht nga ajo që Tas, unë mendoj, kanë qenë duke thënë: 132 00:06:05,420 --> 00:06:10,710 ne kemi qenë duke marrë një çift nxënës që vijnë në të enjten në, si, 10:50 133 00:06:10,710 --> 00:06:15,100 nuk ka lexuar spekulim duke qenë si më ndihmoni, më ndihmoni. 134 00:06:15,100 --> 00:06:18,200 Për fat të keq në atë pikë, nuk ka jo shumë mund të bëjmë për t'ju ndihmuar. 135 00:06:18,200 --> 00:06:19,590 Pra ju lutem të vijë në fillim të javës. 136 00:06:19,590 --> 00:06:22,040 Ejani në fillim të orarit të punës. 137 00:06:22,040 --> 00:06:23,350 Vijnë të përgatitur për të bërë pyetje. 138 00:06:23,350 --> 00:06:25,310 Sigurohuni që ju, si një student, ku janë 139 00:06:25,310 --> 00:06:27,620 duhet të jetë në mënyrë që Tas mund të ju udhëzojë gjatë, 140 00:06:27,620 --> 00:06:32,850 cila është ajo që orarit të punës duhet të jepen për të. 141 00:06:32,850 --> 00:06:37,380 >> Së dyti, kështu që unë e di profesorë si për të na habisin me teste. 142 00:06:37,380 --> 00:06:39,439 Unë kisha një profesor ato si, yo, nga rruga, 143 00:06:39,439 --> 00:06:41,230 mos harroni se afatmesëm ju keni të hënën e ardhshme. 144 00:06:41,230 --> 00:06:42,855 Po, unë nuk e di në lidhje me atë afatmesme. 145 00:06:42,855 --> 00:06:45,630 Kështu që unë jam duke shkuar të jetë se AT që ju kujton të gjithë se quiz 146 00:06:45,630 --> 00:06:47,270 0-- sepse, ju e dini, ne jemi CS. 147 00:06:47,270 --> 00:06:50,730 Tani që ne kemi bërë vargjeve, ju merrni pse kjo është quiz 0, nuk pyes 1, eh? 148 00:06:50,730 --> 00:06:51,320 NE RREGULL. 149 00:06:51,320 --> 00:06:52,490 Oh, kam marrë disa nënqesh në se një. 150 00:06:52,490 --> 00:06:53,120 NE RREGULL. 151 00:06:53,120 --> 00:06:59,710 >> Pra quiz 0 do të jetë më 14 tetor në qoftë se ju jeni në seksionin e hënë-e mërkurë 152 00:06:59,710 --> 00:07:02,920 dhe 15 tetorit në qoftë se ju jeni në seksioni e martë, të enjten. 153 00:07:02,920 --> 00:07:05,630 Kjo nuk vlen për ata prej jush në Harvard 154 00:07:05,630 --> 00:07:10,350 who-- Unë mendoj se ju do të jenë të gjithë duke marrë kuize tuaj në 14. 155 00:07:10,350 --> 00:07:13,560 >> Pra, vërtet, javën e ardhshme, në qoftë se Davidi, në leksionin, shkon, 156 00:07:13,560 --> 00:07:15,747 Yeah, kështu që për këtë quiz javën e ardhshme, ju të gjithë 157 00:07:15,747 --> 00:07:17,580 nuk do të tronditur për shkak ju erdhi në seksionin 158 00:07:17,580 --> 00:07:19,664 dhe ju e dini se juaj Quiz 0 është në dy javë. 159 00:07:19,664 --> 00:07:21,580 Dhe ne do të kemi shqyrtim seanca dhe çdo gjë. 160 00:07:21,580 --> 00:07:26,360 Kështu që nuk ka shqetësime në lidhje me duke u frikësuar për atë. 161 00:07:26,360 --> 00:07:29,890 Çdo pyetje më herët, ndonjë pyetje në të gjitha çështjet lidhur logjistike, 162 00:07:29,890 --> 00:07:32,591 nota, orarit të punës, seksione? 163 00:07:32,591 --> 00:07:33,090 Po. 164 00:07:33,090 --> 00:07:35,100 >> Audienca: Pra quiz është do të jetë i gjatë ligjëratës? 165 00:07:35,100 --> 00:07:35,766 >> ANDI Peng: Po. 166 00:07:35,766 --> 00:07:39,460 Pra quiz, unë mendoj, është 60 Në minutën e ranë në atë slot kohë 167 00:07:39,460 --> 00:07:42,240 që ju do të vetëm të marrë në sallën e leksionit. 168 00:07:42,240 --> 00:07:44,810 Pra, ju nuk keni për të ardhur në në, si, një të rastit 7:00 PM. 169 00:07:44,810 --> 00:07:46,140 Kjo është e gjitha e mirë. 170 00:07:46,140 --> 00:07:47,100 Po. 171 00:07:47,100 --> 00:07:50,060 Ftohtë. 172 00:07:50,060 --> 00:07:50,840 >> Në rregull. 173 00:07:50,840 --> 00:07:54,330 Pra, ne jemi duke shkuar për futur një koncept për ju 174 00:07:54,330 --> 00:08:00,760 këtë javë se Davidi tashmë ka lloj e preku në leksionin këtë javë të fundit. 175 00:08:00,760 --> 00:08:02,010 Ajo që quhet Gdb. 176 00:08:02,010 --> 00:08:05,570 Dhe sa prej jush, ndërsa në Kursi i shkrimit psets tuaja, 177 00:08:05,570 --> 00:08:09,981 kanë vënë re një buton i madh që thotë "Debug" në krye të IDE tuaj? 178 00:08:09,981 --> 00:08:10,480 NE RREGULL. 179 00:08:10,480 --> 00:08:13,770 Pra, tani ne do të vërtetë të merrni për të nxjerr në dritë misterin e asaj që atë buton në fakt 180 00:08:13,770 --> 00:08:14,270 bën. 181 00:08:14,270 --> 00:08:16,790 Dhe unë ju garantoj, kjo është një bukur, gjë e bukur. 182 00:08:16,790 --> 00:08:20,740 >> Pra, deri tani, unë mendoj ka pasur dy gjëra 183 00:08:20,740 --> 00:08:23,320 studentët kanë qenë në mënyrë tipike duke bërë kur debugging psets. 184 00:08:23,320 --> 00:08:27,635 Një, ata ose shtoni në printf () - kështu që çdo disa rreshta, 185 00:08:27,635 --> 00:08:29,760 ata shtojnë në një printf () - oh, çfarë është kjo e ndryshueshme? 186 00:08:29,760 --> 00:08:32,551 Oh, çfarë është kjo variabël now-- dhe ju lloj i shihni progresion 187 00:08:32,551 --> 00:08:33,940 e kodit tuaj si ajo shkon. 188 00:08:33,940 --> 00:08:37,030 Ose metoda e dytë fëmijët të bëni është se ata vetëm të shkruajnë të gjithë gjë 189 00:08:37,030 --> 00:08:38,610 dhe pastaj të shkojnë si kjo në fund. 190 00:08:38,610 --> 00:08:39,970 Shpresojmë ajo punon. 191 00:08:39,970 --> 00:08:44,851 Unë ju garantoj, Gdb është më e mirë se të dy këto metoda. 192 00:08:44,851 --> 00:08:45,350 Po. 193 00:08:45,350 --> 00:08:46,980 Pra, kjo do të jetë miku juaj i ri më i mirë. 194 00:08:46,980 --> 00:08:51,780 Sepse kjo është një gjë e bukur që vizualisht tregon dy 195 00:08:51,780 --> 00:08:54,850 çfarë kodi juaj është duke bërë në një pikë të veçantë 196 00:08:54,850 --> 00:08:57,486 si dhe atë të gjithë tuaj variabla janë të mbante, 197 00:08:57,486 --> 00:08:59,610 si ajo që vlerat e tyre janë, në atë pikë të veçantë. 198 00:08:59,610 --> 00:09:02,670 Dhe në këtë mënyrë, ju mund të vërtetë vendosur breakpoints në kodin tuaj. 199 00:09:02,670 --> 00:09:04,350 Ju mund të drejtuar përmes linjës nga linjë. 200 00:09:04,350 --> 00:09:07,324 Dhe GDB do të ketë vetëm për ju, shfaqet për ju, 201 00:09:07,324 --> 00:09:09,490 atë që të gjithë e variablave tuaj po, çfarë po bëjnë, 202 00:09:09,490 --> 00:09:10,656 çfarë po ndodh në kodin. 203 00:09:10,656 --> 00:09:13,240 Dhe në një mënyrë të tillë, është e aq shumë e lehtë për të parë 204 00:09:13,240 --> 00:09:17,120 çfarë po ndodh në vend të printf-ing ose shkruar deklaratat tuaja. 205 00:09:17,120 --> 00:09:19,160 >> Pra, ne do të bëjmë një shembull të kësaj më vonë. 206 00:09:19,160 --> 00:09:20,660 Pra, kjo duket pak abstrakt. 207 00:09:20,660 --> 00:09:23,490 Nuk shqetësohet, ne do të bëjmë shembuj. 208 00:09:23,490 --> 00:09:29,170 Dhe kështu në thelb, tre më të madhe, funksionet më të përdorura që ju do të duhet në GDB 209 00:09:29,170 --> 00:09:32,500 janë Tjetra, Hapi mbi, dhe Hapi në buttons. 210 00:09:32,500 --> 00:09:34,860 Unë jam duke shkuar për kokë atje, në të vërtetë, tani për tani. 211 00:09:34,860 --> 00:09:40,930 >> Kështu që mund të ju djema të gjitha të shihni se ose duhet të zoom në një grimë? 212 00:09:40,930 --> 00:09:43,220 213 00:09:43,220 --> 00:09:44,470 Në pjesën e pasme, ju mund të shihni se? 214 00:09:44,470 --> 00:09:45,730 A duhet të zmadhuar? 215 00:09:45,730 --> 00:09:46,480 Vetëm pak? 216 00:09:46,480 --> 00:09:49,390 OK, i ftohtë. 217 00:09:49,390 --> 00:09:50,280 Atje shkojmë. 218 00:09:50,280 --> 00:09:50,960 NE RREGULL. 219 00:09:50,960 --> 00:09:57,000 >> Kështu që unë kam, këtu, my Zbatimi për lakmitar. 220 00:09:57,000 --> 00:10:01,430 Dhe ndërsa një shumë e ju djema shkroi babëzitur në lak, ndërsa form-- se 221 00:10:01,430 --> 00:10:04,890 është një mënyrë krejtësisht e pranueshme për të bërë it-- një tjetër mënyrë për të bërë atë është thjesht 222 00:10:04,890 --> 00:10:06,280 të ndarë në modulo. 223 00:10:06,280 --> 00:10:09,290 Sepse atëherë ju mund të ketë tuaj Vlera dhe pastaj kanë mbetur tuaj. 224 00:10:09,290 --> 00:10:11,150 Dhe pastaj ju mund të vetëm shtoni atë të gjithë së bashku. 225 00:10:11,150 --> 00:10:13,390 A logjikën e asaj që unë jam duke bërë këtu kuptim për të gjithë, 226 00:10:13,390 --> 00:10:14,117 para se të fillojmë? 227 00:10:14,117 --> 00:10:16,760 228 00:10:16,760 --> 00:10:17,980 Lloji i? 229 00:10:17,980 --> 00:10:18,710 Ftohtë. 230 00:10:18,710 --> 00:10:19,210 I madh. 231 00:10:19,210 --> 00:10:21,290 Kjo është një pjesë e bukur sexy e kodit, unë do të thoja. 232 00:10:21,290 --> 00:10:23,502 Ashtu si thashë, David, në leksion, pas një kohe, 233 00:10:23,502 --> 00:10:25,960 ju do të të gjithë të fillojnë të shohim kodin si diçka që është e bukur. 234 00:10:25,960 --> 00:10:29,950 Dhe ndonjëherë kur ju shihni e bukur Kodi, kjo është e tillë një ndjenjë e mrekullueshme. 235 00:10:29,950 --> 00:10:35,410 >> Pra megjithatë, ndërsa ky kod është shumë e bukur, ajo nuk punon si duhet. 236 00:10:35,410 --> 00:10:37,750 Pra, le të kandidojë check50 për këtë. 237 00:10:37,750 --> 00:10:39,440 Kontrolloni 50 20-- OOP. 238 00:10:39,440 --> 00:10:43,221 239 00:10:43,221 --> 00:10:43,720 2? 240 00:10:43,720 --> 00:10:44,990 A është kjo pset2? 241 00:10:44,990 --> 00:10:46,870 Po. 242 00:10:46,870 --> 00:10:47,520 Oh, pset1. 243 00:10:47,520 --> 00:10:50,970 244 00:10:50,970 --> 00:10:52,890 NE RREGULL. 245 00:10:52,890 --> 00:10:53,900 Pra, ne të drejtuar check50. 246 00:10:53,900 --> 00:11:01,550 247 00:11:01,550 --> 00:11:07,170 >> Dhe si ju djema mund të shihni këtu, kjo është në mungesë të disa rasteve. 248 00:11:07,170 --> 00:11:10,165 Dhe për disa prej jush, në Sigurisht për të bërë grupe tuaj problem, 249 00:11:10,165 --> 00:11:11,110 ju jeni si, ah, pse nuk është ajo punon. 250 00:11:11,110 --> 00:11:13,318 Pse është duke punuar për disa Vlerat por jo për të tjerët? 251 00:11:13,318 --> 00:11:17,760 E pra, GDB do të ndihmojë të kuptoj se pse këto inpute nuk ishin duke punuar. 252 00:11:17,760 --> 00:11:18,320 >> NE RREGULL. 253 00:11:18,320 --> 00:11:21,640 Pra, le të shohim, një nga Kontrollet unë po dështonte në check50 254 00:11:21,640 --> 00:11:24,920 ishte vlera input e 0,41. 255 00:11:24,920 --> 00:11:27,830 Pra, përgjigja e saktë që ju duhet të marrë është një 4. 256 00:11:27,830 --> 00:11:33,090 Por në vend të kësaj ajo që unë jam printim është 3-n, i cili është i saktë. 257 00:11:33,090 --> 00:11:36,190 Pra, le të vetëm të drejtuar këtë me dorë, vetëm sigurohuni që check50 është duke punuar. 258 00:11:36,190 --> 00:11:36,940 Le të bëjmë ./greedy. 259 00:11:36,940 --> 00:11:40,130 260 00:11:40,130 --> 00:11:43,340 Na falni, unë kam për të bërë babëzitur. 261 00:11:43,340 --> 00:11:43,840 Atje shkojmë. 262 00:11:43,840 --> 00:11:44,381 Tani ./greedy. 263 00:11:44,381 --> 00:11:46,950 264 00:11:46,950 --> 00:11:47,670 >> Sa është borxh? 265 00:11:47,670 --> 00:11:49,550 Le të bëjmë 0,41. 266 00:11:49,550 --> 00:11:52,590 Dhe yep, ne shohim këtu se ajo është kompjuteri 3 267 00:11:52,590 --> 00:11:55,160 kur përgjigja e saktë, në fakt, duhet të jetë 4. 268 00:11:55,160 --> 00:12:01,460 Pra, le të hyjë GDB dhe të shohim se si ne mund të shkoni në lidhje me fiksimin e këtij problemi. 269 00:12:01,460 --> 00:12:03,992 >> Pra, hapi i parë në gjithmonë debugging kodin tuaj 270 00:12:03,992 --> 00:12:05,950 është për të vendosur një breakpoint, ose një pikë në të cilën ju 271 00:12:05,950 --> 00:12:09,079 dua kompjuter ose Rregullues të fillojmë të shikojmë. 272 00:12:09,079 --> 00:12:11,120 Pra, nëse ju nuk bëni me të vërtetë e di se çfarë problemi juaj është, 273 00:12:11,120 --> 00:12:14,670 zakonisht, gjë tipike që ne duam të bëni është për të vendosur breakpoint tonë në kryesore. 274 00:12:14,670 --> 00:12:18,520 Pra, në qoftë se ju djema mund të shihni këtë butonin e kuq të drejtë atje, 275 00:12:18,520 --> 00:12:22,860 yep, që ishte më vendosjen e një breakpoint për funksionin kryesor. 276 00:12:22,860 --> 00:12:24,130 Unë klikoni atë. 277 00:12:24,130 --> 00:12:26,130 >> Dhe pastaj unë mund të shkojnë deri në butonin tim Debug. 278 00:12:26,130 --> 00:12:27,036 Unë goditi butonin. 279 00:12:27,036 --> 00:12:31,710 280 00:12:31,710 --> 00:12:36,555 Më lejoni të zoom mbrapa në qoftë se unë mund. 281 00:12:36,555 --> 00:12:38,020 Atje shkojmë. 282 00:12:38,020 --> 00:12:40,730 Pra, ne kemi, këtu, një panel në të djathtë. 283 00:12:40,730 --> 00:12:43,680 Më vjen keq, djema në shpinë, ju nuk mund të vërtetë shoh me të vërtetë mirë. 284 00:12:43,680 --> 00:12:49,090 Por në thelb, të gjithë ky panel e drejtë është duke bërë 285 00:12:49,090 --> 00:12:53,130 është mbajtja e dy theksuar line, që është linjë e kodit 286 00:12:53,130 --> 00:12:56,640 se kompjuteri është aktualisht, si dhe të gjithë variablat tuaja 287 00:12:56,640 --> 00:12:57,600 këtu poshtë. 288 00:12:57,600 --> 00:13:00,487 >> Pra, ju keni marrë cent, monedha, n, gjithë deklaruar për gjëra të ndryshme 289 00:13:00,487 --> 00:13:01,070 në këtë pikë. 290 00:13:01,070 --> 00:13:04,850 Nuk shqetësohet, sepse ne nuk kemi në fakt initialized ata për çdo ndryshore ende. 291 00:13:04,850 --> 00:13:07,200 Pra, në kompjuterin tuaj, tuaj kompjuter është vetëm duke parë, 292 00:13:07,200 --> 00:13:14,376 oh, 32767 ishte funksioni i fundit i përdorur e atë hapësirë ​​e kujtesës në kompjuterin tim. 293 00:13:14,376 --> 00:13:16,000 Dhe kështu kjo është ajo ku cent aktualisht është. 294 00:13:16,000 --> 00:13:19,360 Por jo se një herë ju drejtuar kodin, ajo duhet të bëhet initialized. 295 00:13:19,360 --> 00:13:24,110 >> Pra, le të shkojnë nëpër, rresht pas line, çfarë po ndodh këtu. 296 00:13:24,110 --> 00:13:25,350 NE RREGULL. 297 00:13:25,350 --> 00:13:29,400 Kështu që këtu janë tre butonat që unë vetëm shpjegohet. 298 00:13:29,400 --> 00:13:34,090 Ju keni të riprodhimit ose funksionin Run, buton, ju keni hap mbi butonin, 299 00:13:34,090 --> 00:13:36,600 dhe ju gjithashtu keni Hapi në butonin. 300 00:13:36,600 --> 00:13:41,260 Dhe në thelb, të tre ata thjesht shkoni nëpër kodin tuaj 301 00:13:41,260 --> 00:13:42,690 dhe të bëjë gjëra të ndryshme. 302 00:13:42,690 --> 00:13:45,680 >> Pra në mënyrë tipike, kur ju jeni debugging, ne nuk duam të vetëm goditi Luaj, 303 00:13:45,680 --> 00:13:47,930 sepse Luaj vetëm do të kandidojë kodi juaj me fundin e saj. 304 00:13:47,930 --> 00:13:49,070 Dhe pastaj ju nuk do të vërtetë të e di se çfarë problemi juaj 305 00:13:49,070 --> 00:13:51,432 është nëse keni vendosur breakpoints shumta. 306 00:13:51,432 --> 00:13:53,890 Në qoftë se keni vendosur pikat e ndalimit të shumta, ajo thjesht do të automatikisht 307 00:13:53,890 --> 00:13:56,030 drejtuar nga një breakpoint, të ardhshëm, të ardhshëm. 308 00:13:56,030 --> 00:13:58,030 Por në këtë rast ne kemi vetëm se një, sepse ne 309 00:13:58,030 --> 00:13:59,970 duan të punojnë rrugën tonë nga lart poshtë e deri në fund. 310 00:13:59,970 --> 00:14:04,830 Pra, ne jemi duke shkuar për të injorojë atë buton tani për qëllime të këtij programi. 311 00:14:04,830 --> 00:14:08,230 >> Pra, Hapi mbi funksionin vetëm Hapat mbi çdo linjë të vetme 312 00:14:08,230 --> 00:14:11,510 dhe ju tregon se çfarë kompjuteri është duke bërë. 313 00:14:11,510 --> 00:14:14,630 Hapi në funksion shkon në funksion aktuale 314 00:14:14,630 --> 00:14:16,000 kjo është në linjë tuaj të kodit. 315 00:14:16,000 --> 00:14:19,070 Kështu për shembull, si printf (), që është një funksion, e drejtë? 316 00:14:19,070 --> 00:14:21,980 Në qoftë se unë të kërkuar për të fizikisht hap në printf () funksionin e, 317 00:14:21,980 --> 00:14:25,610 Unë në fakt do të shkoj në pjesë të Kodi ku printf () ishte shkruar dhe të shohim 318 00:14:25,610 --> 00:14:26,730 çfarë po ndodh atje. 319 00:14:26,730 --> 00:14:29,924 >> Por zakonisht, ne supozojmë se kodi që ne të ju jap punon. 320 00:14:29,924 --> 00:14:31,340 Supozojmë printf () është duke punuar. 321 00:14:31,340 --> 00:14:33,170 Ne supozojmë se GetInt () është duke punuar. 322 00:14:33,170 --> 00:14:35,170 Kështu që nuk ka nevojë për të futemi në këto funksione. 323 00:14:35,170 --> 00:14:37,170 Por në qoftë se ka funksione që ju të shkruani vetë 324 00:14:37,170 --> 00:14:39,060 që ju doni të kontrolloni se çfarë po ndodh, 325 00:14:39,060 --> 00:14:41,200 ju do të duan të hap në atë funksion. 326 00:14:41,200 --> 00:14:43,940 >> Deri tani ne jemi vetëm do të hap mbi këtë pjesë të kodit. 327 00:14:43,940 --> 00:14:44,485 Pra, le të shohim. 328 00:14:44,485 --> 00:14:46,547 Oh, të shtypura, "Oh hai, si ndryshim shumë është borxh? " 329 00:14:46,547 --> 00:14:47,130 Ne nuk e kujdesit. 330 00:14:47,130 --> 00:14:49,830 Ne e dimë se është duke punuar, kështu që ne hap mbi të. 331 00:14:49,830 --> 00:14:53,290 >> Pra n, e cila është noton ynë që ne kemi initialized-- ose declared-- 332 00:14:53,290 --> 00:14:56,810 deri në krye, ne jemi tani barazuar që të GetFloat (). 333 00:14:56,810 --> 00:14:57,810 Pra, le të hap mbi atë. 334 00:14:57,810 --> 00:14:59,580 Dhe ne shohim në nivel fund këtu, programi 335 00:14:59,580 --> 00:15:03,360 është duke bërë më të input një vlerë. 336 00:15:03,360 --> 00:15:08,580 Pra, le të vleren ne duam t'i fusë për të provuar këtu, e cila është 0.41. 337 00:15:08,580 --> 00:15:09,160 I madh. 338 00:15:09,160 --> 00:15:12,780 >> Deri tani n-- bëni ju djema të parë Këtu, në bottom-- është 339 00:15:12,780 --> 00:15:15,140 stored-- sepse ne nuk e kanë rrumbullakuar ende, kjo është 340 00:15:15,140 --> 00:15:19,540 ruhet në këtë si gjigant noton se është 0,4099999996, 341 00:15:19,540 --> 00:15:22,550 e cila është mjaft afër tonë qëllime, tani, në 0,41. 342 00:15:22,550 --> 00:15:26,090 Dhe pastaj ne do të shohim më vonë, si ne vazhdojnë shkelën mbi programin, 343 00:15:26,090 --> 00:15:29,850 pas këtu, është bërë n harmonishëm dhe cent ka bërë 41. 344 00:15:29,850 --> 00:15:30,350 I madh. 345 00:15:30,350 --> 00:15:32,230 Pra, ne e dimë se duke punuar arrestimi tonë. 346 00:15:32,230 --> 00:15:34,700 Ne e dimë se ne kemi Numri i saktë i cent, 347 00:15:34,700 --> 00:15:36,990 kështu që ne e dimë se kjo është jo të vërtetë problemi. 348 00:15:36,990 --> 00:15:40,050 >> Pra, ne vazhdojmë shkelën në këtë program. 349 00:15:40,050 --> 00:15:40,900 Ne do të shkojmë këtu. 350 00:15:40,900 --> 00:15:46,139 Dhe kështu pas këtë linjë të kodit, ne duhet të dinë se sa lagjet kemi. 351 00:15:46,139 --> 00:15:46,680 Ne hap mbi. 352 00:15:46,680 --> 00:15:52,040 Dhe ju shihni ne bëjmë, në fakt, kanë një të tillë e katërta, sepse ne kemi zbritur 25 353 00:15:52,040 --> 00:15:53,790 nga vlera tona fillestare prej 41. 354 00:15:53,790 --> 00:15:55,890 Dhe ne kemi 16 u nis për cent tona. 355 00:15:55,890 --> 00:15:58,830 >> A e kuptojnë të gjithë si programi po rrit përmes 356 00:15:58,830 --> 00:16:02,980 dhe pse cent është bërë tashmë 16 dhe pse, tani, monedha është bërë 1? 357 00:16:02,980 --> 00:16:04,610 Është e të gjithë pas se logjika? 358 00:16:04,610 --> 00:16:05,110 Ftohtë. 359 00:16:05,110 --> 00:16:07,860 Pra, si e këtë pikë, punës programit, e drejtë? 360 00:16:07,860 --> 00:16:09,797 Ne e dimë se është duke bërë pikërisht ajo që ne duam që ajo të. 361 00:16:09,797 --> 00:16:11,880 Dhe ne fakt nuk duhet të shtypura nga, oh, çfarë 362 00:16:11,880 --> 00:16:14,430 është cent në këtë pikë, ajo që është monedha në këtë pikë. 363 00:16:14,430 --> 00:16:17,170 >> Ne vazhdojmë duke shkuar përmes programit. 364 00:16:17,170 --> 00:16:18,100 Hapi mbi. 365 00:16:18,100 --> 00:16:18,620 Ftohtë. 366 00:16:18,620 --> 00:16:19,700 Ne do të shkojmë mbi dimes. 367 00:16:19,700 --> 00:16:20,200 I madh. 368 00:16:20,200 --> 00:16:22,367 Ne e shohim se ajo është marrë off $ 0,10 për një monedhë. 369 00:16:22,367 --> 00:16:23,450 Dhe tani ne kemi dy monedha. 370 00:16:23,450 --> 00:16:25,260 Kjo është e saktë. 371 00:16:25,260 --> 00:16:31,555 >> Ne do të shkojmë mbi pennies dhe ne e shohim që ne kemi mbeti mbi cent. 372 00:16:31,555 --> 00:16:32,680 Hmm, kjo është e çuditshme. 373 00:16:32,680 --> 00:16:37,540 Deri këtu në programin, unë është dashur që kanë zbritur pennies e mia. 374 00:16:37,540 --> 00:16:39,400 Ndoshta unë thjesht nuk ishte duke bërë këtë të drejtë line. 375 00:16:39,400 --> 00:16:42,190 Dhe mjerisht, ju mund të shihni këtu, sepse ne e dimë 376 00:16:42,190 --> 00:16:44,360 se ne jemi shkelën përmes linjave 32 dhe 33, 377 00:16:44,360 --> 00:16:50,560 kjo është ajo ku programi ynë në mënyrë të paligjshme kishte variabla të kandidojë. 378 00:16:50,560 --> 00:16:55,136 Pra, ne mund të shohim dhe të shohim, oh, Unë jam duke zbritur cent këtu, 379 00:16:55,136 --> 00:16:57,010 por unë nuk jam në të vërtetë duke shtuar me vlerën time monedhë. 380 00:16:57,010 --> 00:16:57,860 Unë jam duke shtuar në cent. 381 00:16:57,860 --> 00:17:00,234 Dhe unë nuk dua të shtoj në cent, unë dua të shtoj në monedha. 382 00:17:00,234 --> 00:17:05,420 Pra, nëse ne ndryshojmë që të monedhave, ne kemi marrë një program pune. 383 00:17:05,420 --> 00:17:06,730 Unë mund të kandidojë check50. 384 00:17:06,730 --> 00:17:11,063 Ju vetëm mund të dalë jashtë e të drejtës gdb këtu dhe pastaj të drejtuar check50 përsëri. 385 00:17:11,063 --> 00:17:11,938 Unë mund ta bëjë këtë vetëm. 386 00:17:11,938 --> 00:17:14,822 387 00:17:14,822 --> 00:17:18,480 Unë kam për të bërë babëzitur. 388 00:17:18,480 --> 00:17:19,940 0.41. 389 00:17:19,940 --> 00:17:22,819 Dhe këtu, kjo është shtypje jashtë përgjigje të drejtë. 390 00:17:22,819 --> 00:17:26,569 >> Pra, si ju djema mund të shihni, Gdb është një mjet të vërtetë të fuqishme 391 00:17:26,569 --> 00:17:29,940 sepse kur kemi kaq shumë kod në vazhdim e sipër dhe kaq shumë ndryshore 392 00:17:29,940 --> 00:17:32,510 se është e vështirë për ne, si një njeri, për të mbajtur gjurmët e. 393 00:17:32,510 --> 00:17:35,360 Kompjuter, në GDB Rregullues, ka aftësinë 394 00:17:35,360 --> 00:17:37,020 të mbajnë gjurmët e çdo gjë. 395 00:17:37,020 --> 00:17:40,480 Unë e di, në Visionaire, ju djema ndoshta mund të ketë goditur disa gabimet e segmentimit 396 00:17:40,480 --> 00:17:43,150 sepse keni qenë running jashtë caqeve të vektorit tuaj. 397 00:17:43,150 --> 00:17:46,510 Në shembullin e Cezarit, kjo është pikërisht ajo që unë kam zbatuar këtu. 398 00:17:46,510 --> 00:17:50,060 >> Kështu që kam harruar për të kontrolluar për Çfarë do të ndodhë nëse unë 399 00:17:50,060 --> 00:17:52,510 nuk kanë dy argumente command line. 400 00:17:52,510 --> 00:17:53,880 Unë thjesht nuk e vënë atë në kontroll. 401 00:17:53,880 --> 00:17:57,380 Dhe kështu që nëse unë të drejtuar Debug-- kam vendosur breakpoint im të drejtë atje. 402 00:17:57,380 --> 00:17:58,055 I drejtuar debug. 403 00:17:58,055 --> 00:18:15,880 404 00:18:15,880 --> 00:18:16,550 >> NE RREGULL. 405 00:18:16,550 --> 00:18:17,050 Po. 406 00:18:17,050 --> 00:18:20,350 Pra, në fakt, Gdb ishte menduar të ketë më tha atje 407 00:18:20,350 --> 00:18:22,300 ishte faji segmentimit atje. 408 00:18:22,300 --> 00:18:24,883 Unë nuk e di se çfarë po ndodhte ka të drejtë, por kur unë u zhvillua atë, 409 00:18:24,883 --> 00:18:25,590 ajo ishte duke punuar. 410 00:18:25,590 --> 00:18:29,410 Kur ju drejtuar rreshta të kodit dhe përmes GDB mund vetëm befas lënë në ty, 411 00:18:29,410 --> 00:18:31,540 shkojnë deri dhe të shohim se çfarë gabimi është i kuq. 412 00:18:31,540 --> 00:18:33,930 Ajo do t'ju them, hej, ju kishte një defekt segmentimit, 413 00:18:33,930 --> 00:18:38,550 që do të thotë se ju u përpoq për të hyrë hapësirë ​​në një grup që nuk ka ekzistuar. 414 00:18:38,550 --> 00:18:39,050 Po. 415 00:18:39,050 --> 00:18:43,280 >> Pra, në problemin e ardhshëm vendosur këtë javë, ju djema 416 00:18:43,280 --> 00:18:45,600 ndoshta do të ketë një shumë të variabla lundrues rreth. 417 00:18:45,600 --> 00:18:48,560 Ju nuk do të jetë i sigurt se çfarë ata të gjithë do të thotë në një pikë të caktuar. 418 00:18:48,560 --> 00:18:53,560 Pra, GDB të vërtetë do t'ju ndihmojë në zbulimin se çfarë ata janë të gjithë barabartë 419 00:18:53,560 --> 00:18:55,940 dhe duke qenë në gjendje për të parë se shikimi. 420 00:18:55,940 --> 00:19:01,995 A është ndokush hutuar se si ndonjë që ishte duke punuar? 421 00:19:01,995 --> 00:19:02,495 Ftohtë. 422 00:19:02,495 --> 00:19:10,121 423 00:19:10,121 --> 00:19:10,620 Në rregull. 424 00:19:10,620 --> 00:19:14,260 Pra, pas kësaj, ne jemi do të zhyten të drejtë 425 00:19:14,260 --> 00:19:17,562 në janë katër të ndryshme llojet e llojeve për këtë javë. 426 00:19:17,562 --> 00:19:19,520 Sa prej jush, së pari të gjitha, para se të fillojmë, 427 00:19:19,520 --> 00:19:23,020 e kanë lexuar të gjithë spekulim për pset3? 428 00:19:23,020 --> 00:19:23,824 NE RREGULL. 429 00:19:23,824 --> 00:19:24,740 Unë jam krenar për ju djema. 430 00:19:24,740 --> 00:19:29,110 Kjo është si gjysma e klasës, i cili është dukshëm më shumë se herën e fundit. 431 00:19:29,110 --> 00:19:33,950 >> Pra, kjo është e madhe, sepse kur ne flasim për përmbajtjen 432 00:19:33,950 --> 00:19:36,170 në lecture-- apo keq, në section-- Më pëlqen 433 00:19:36,170 --> 00:19:38,210 të bëjnë një shumë që prapa asaj që është pset 434 00:19:38,210 --> 00:19:40,210 dhe si ju doni të zbatuar që në pset tuaj. 435 00:19:40,210 --> 00:19:42,400 Pra, nëse ju vijnë të paturit lexoni spekulim, ajo do të 436 00:19:42,400 --> 00:19:45,510 të jetë shumë më e lehtë për ju për të kuptuar atë që unë jam duke folur për kur unë them, 437 00:19:45,510 --> 00:19:48,720 oh hej, kjo mund të jetë një të vërtetë të vend i mirë për të zbatuar këtë lloj. 438 00:19:48,720 --> 00:19:52,870 Pra, ata që e kanë lexuar spekulim di se, si pjesë e pset tuaj, 439 00:19:52,870 --> 00:19:54,900 ju jeni do të duhet të shkruaj një lloj lloji. 440 00:19:54,900 --> 00:19:58,670 Pra, kjo mund të jetë shumë e dobishme për një shumë prej jush sot. 441 00:19:58,670 --> 00:20:01,760 >> Pra, ne do të nisem me, në thelb, lloji më i thjeshtë 442 00:20:01,760 --> 00:20:04,580 e lloj, zgjedhja lloj. 443 00:20:04,580 --> 00:20:06,800 Algorithm tipike për se si ne do të shkoj në lidhje me këtë 444 00:20:06,800 --> 00:20:10,460 is-- Davidi shkoi nëpër të gjitha këto në leksion, kështu që unë do të lëvizin shpejt së bashku 445 00:20:10,460 --> 00:20:13,900 here-- është në thelb, ju kanë një rrjet të vlerave. 446 00:20:13,900 --> 00:20:17,170 Dhe pastaj ju të gjeni të Vlera më e vogël Unsorted 447 00:20:17,170 --> 00:20:20,200 dhe ju bie në ujdi se vlera me vlera e parë Unsorted. 448 00:20:20,200 --> 00:20:22,700 Dhe atëherë ju vetëm i mbajnë përsëritur me pjesën tjetër të listës suaj. 449 00:20:22,700 --> 00:20:25,740 >> Dhe këtu është një shpjegim vizual e se si do të punojë. 450 00:20:25,740 --> 00:20:30,460 Kështu për shembull, në qoftë se ne ishim për të filluar me një grup të pesë elemente, indeksi 451 00:20:30,460 --> 00:20:35,910 0 në 4, me 3, 5, 2, 6, dhe 4 vlerat vendosur në array-- në mënyrë të drejtë tani, 452 00:20:35,910 --> 00:20:38,530 ne jemi vetëm duke shkuar për të marrë se ata janë të gjithë Unsorted 453 00:20:38,530 --> 00:20:41,130 sepse ne nuk kemi testuar ndryshe. 454 00:20:41,130 --> 00:20:44,130 >> Pra, si një lloj përzgjedhje do Puna është se ajo do të për herë të parë 455 00:20:44,130 --> 00:20:46,800 drejtuar nëpër tërësinë e array pandara. 456 00:20:46,800 --> 00:20:49,120 Ajo do të marr nga vlerën më të vogël. 457 00:20:49,120 --> 00:20:51,750 Në këtë rast, 3, e drejtë tani, është më i vogël. 458 00:20:51,750 --> 00:20:52,680 Ajo merr të 5. 459 00:20:52,680 --> 00:20:55,620 Jo, 5 nuk është më i madh than-- apo vjen keq, është jo më pak than-- 3. 460 00:20:55,620 --> 00:20:57,779 Pra, vlera minimale është ende 3. 461 00:20:57,779 --> 00:20:58,695 Dhe pastaj ju merrni në 2. 462 00:20:58,695 --> 00:21:00,990 Kompjuteri sheh, oh, 2 është më pak se 3. 463 00:21:00,990 --> 00:21:02,750 2 tani duhet të jetë vlera minimale. 464 00:21:02,750 --> 00:21:06,630 Dhe kështu 2 këmbime me atë vlerë të parë. 465 00:21:06,630 --> 00:21:10,702 >> Kështu që pas një të kaluar, ne me të vërtetë shohim se 2 dhe 3 janë swapped. 466 00:21:10,702 --> 00:21:13,910 Dhe ne jemi vetëm do të vazhdojnë të bëjnë kjo përsëri me pjesën tjetër të vektorit. 467 00:21:13,910 --> 00:21:17,660 Pra, ne jemi duke shkuar për të vetëm të drejtuar përmes katër indekset e fundit të vektorit. 468 00:21:17,660 --> 00:21:20,670 Ne do të shohim se 3 është vlera e ardhshme minimale. 469 00:21:20,670 --> 00:21:23,240 Pra, ne jemi duke shkuar për të bie në ujdi që me 4. 470 00:21:23,240 --> 00:21:26,900 Dhe atëherë ne jemi vetëm duke shkuar për të mbajtur kalon nëpër derisa, në fund, ju 471 00:21:26,900 --> 00:21:33,730 të shkoj në një grup të renditura në të cilën 2, 3, 4, 5, 6 dhe janë të renditura. 472 00:21:33,730 --> 00:21:37,530 A e kuptojnë të gjithë logjikën se si punon një lloj përzgjedhje? 473 00:21:37,530 --> 00:21:39,669 >> Ju thjesht duhet disa lloj një vlerë minimale. 474 00:21:39,669 --> 00:21:41,210 Ju jeni mbajtja e asaj që është. 475 00:21:41,210 --> 00:21:45,170 Dhe sa herë që ju të gjeni atë, ju bie në ujdi atë me vlerën e parë në array-- 476 00:21:45,170 --> 00:21:48,740 apo, jo value-- parë vlera tjetër në rrjet. 477 00:21:48,740 --> 00:21:50,150 Ftohtë. 478 00:21:50,150 --> 00:21:55,460 >> Pra, si ju djema lloj i pa nga një paraqitje e shkurtër të shkurtër, 479 00:21:55,460 --> 00:21:58,450 ne jemi duke shkuar për pseudokod këtë. 480 00:21:58,450 --> 00:22:02,510 Pra, nëse ju djema në shpinë duan të formojnë një grup, të gjithë në një tabelë 481 00:22:02,510 --> 00:22:06,170 mund të formojnë një partner të vogël, unë jam duke shkuar për të ju jap djema si tre minuta 482 00:22:06,170 --> 00:22:08,190 për vetëm bisedoni me anë të logjika, në gjuhën angleze, 483 00:22:08,190 --> 00:22:14,161 se si mund të jemi në gjendje të zbatojë pseudokod për të shkruar një lloj përzgjedhjeje. 484 00:22:14,161 --> 00:22:14,910 Dhe nuk ka karamele. 485 00:22:14,910 --> 00:22:16,118 Ju lutemi të vijnë dhe për të marrë karamele. 486 00:22:16,118 --> 00:22:19,520 Nëse ju jeni në shpinë dhe ju doni karamele, unë mund të hedhin karamele në ju. 487 00:22:19,520 --> 00:22:22,850 Në fakt, të bëjë ftohtë ju, duke filluar. 488 00:22:22,850 --> 00:22:23,552 Oh me falni. 489 00:22:23,552 --> 00:22:26,751 490 00:22:26,751 --> 00:22:27,250 NE RREGULL. 491 00:22:27,250 --> 00:25:23,880 492 00:25:23,880 --> 00:25:27,140 >> Pra, nëse ne do të donim për të, si një klasë, shkruani pseudokod 493 00:25:27,140 --> 00:25:30,466 për mënyrën se si dikush mund të qasen ky problem, vetëm mos ngurroni. 494 00:25:30,466 --> 00:25:32,340 Unë vetëm do të shkoj përreth dhe, në mënyrë që, pyesni grupet 495 00:25:32,340 --> 00:25:35,065 për linjën e ardhshëm të çfarë ne duhet të bëjmë. 496 00:25:35,065 --> 00:25:37,840 Pra, nëse ju djema doni të filloni jashtë, çfarë është gjëja e parë 497 00:25:37,840 --> 00:25:40,600 duhet të bëni kur jeni duke u përpjekur për të zbatojë një mënyrë për të zgjidhur këtë program 498 00:25:40,600 --> 00:25:43,480 për të selektive të zgjidhur një listë? 499 00:25:43,480 --> 00:25:46,349 Le të vetëm të supozojmë ne kanë një grup, të gjithë të drejtë? 500 00:25:46,349 --> 00:25:49,088 >> Audienca: Ju doni të krijoni disa lloj [e padëgjueshme] që ju jeni 501 00:25:49,088 --> 00:25:50,420 që kalon nëpër të gjithë grup tuaj. 502 00:25:50,420 --> 00:25:51,128 >> ANDI Peng: E ​​drejta. 503 00:25:51,128 --> 00:25:54,100 Pra, ju jeni do të duan të iterate nëpër çdo hapësirë, e drejtë? 504 00:25:54,100 --> 00:26:05,490 Pra, i madh. 505 00:26:05,490 --> 00:26:08,600 Nëse ju djema doni të më jepte tjetër line-- yeah, në pjesën e prapme. 506 00:26:08,600 --> 00:26:11,414 507 00:26:11,414 --> 00:26:13,290 >> Audienca: Kontrolloni ata të gjitha për të vogël. 508 00:26:13,290 --> 00:26:14,248 >> ANDI Peng: Nuk shkojmë. 509 00:26:14,248 --> 00:26:17,438 Pra, ne duam të shkojnë nëpër dhe kontrolloni për të të shohim se çfarë vlera minimale është, e drejtë? 510 00:26:17,438 --> 00:26:22,110 511 00:26:22,110 --> 00:26:24,840 Unë do të shkurtoj se në "min." 512 00:26:24,840 --> 00:26:27,658 Çfarë bëni ju djema doni të bëni pas ju keni gjetur vlerën minimale? 513 00:26:27,658 --> 00:26:28,533 >> Audienca: [padëgjueshme] 514 00:26:28,533 --> 00:26:29,942 515 00:26:29,942 --> 00:26:33,150 ANDI Peng: Pra, ju jeni do të duan të kaloni atë me të parë të këtij grup, 516 00:26:33,150 --> 00:26:33,650 e drejtë? 517 00:26:33,650 --> 00:26:45,120 518 00:26:45,120 --> 00:26:46,850 Ky është fillimi, unë jam duke shkuar për të thënë. 519 00:26:46,850 --> 00:26:47,220 Në rregull. 520 00:26:47,220 --> 00:26:50,386 Pra, tani që ju keni swapped parë një, çfarë ju doni të bëni pas kësaj? 521 00:26:50,386 --> 00:26:54,840 Pra, tani ne e dimë se kjo këtu duhet të jetë vlera më të vogël, apo jo? 522 00:26:54,840 --> 00:26:58,310 Atëherë ju keni një pushim shtesë e vektorit që është Unsorted. 523 00:26:58,310 --> 00:27:01,569 Pra, çfarë ju doni të bëni këtu, në qoftë se ju djema duan të më jepni linjë tjetër? 524 00:27:01,569 --> 00:27:04,610 Audienca: Pra, atëherë ju doni të iterate përmes pjesës së mbetur të vektorit. 525 00:27:04,610 --> 00:27:05,276 ANDI Peng: Po. 526 00:27:05,276 --> 00:27:09,857 Dhe kështu çfarë iterating përmes lloj i thotë ne ndoshta do të duhet? 527 00:27:09,857 --> 00:27:10,440 Çfarë lloji of-- 528 00:27:10,440 --> 00:27:12,057 >> Audienca: Oh, një variabël shtesë? 529 00:27:12,057 --> 00:27:13,890 ANDI Peng: Ndoshta një tjetër për lak, e drejtë? 530 00:27:13,890 --> 00:27:28,914 Pra, ne jemi me siguri do të duan të iterate through-- madh. 531 00:27:28,914 --> 00:27:31,830 Dhe pastaj ju do të jeni për të shkuar mbrapa dhe ndoshta kontrolloni minimale përsëri, 532 00:27:31,830 --> 00:27:32,100 e drejtë? 533 00:27:32,100 --> 00:27:34,975 Dhe ju jeni do të vazhdojnë të përsërisin kjo, sepse sythe vetëm duke shkuar 534 00:27:34,975 --> 00:27:36,010 për të mbajtur drejtimin, e drejtë? 535 00:27:36,010 --> 00:27:39,190 >> Pra, si ju djema mund të shihni, ne vetëm një pseudokod të përgjithshme 536 00:27:39,190 --> 00:27:41,480 se si ne duam që ky program të duken. 537 00:27:41,480 --> 00:27:46,646 Kjo iterate këtu, çfarë bëjmë ne zakonisht duhet të shkruani në kodin tonë 538 00:27:46,646 --> 00:27:49,270 në qoftë se ne duam të iterate nëpër një array, çfarë lloji i strukturës së? 539 00:27:49,270 --> 00:27:51,030 Unë mendoj Christabel tashmë ka thënë këtë më parë. 540 00:27:51,030 --> 00:27:51,500 >> Audienca: një për lak. 541 00:27:51,500 --> 00:27:52,160 >> ANDI Peng: një për lak? 542 00:27:52,160 --> 00:27:52,770 Pikërisht. 543 00:27:52,770 --> 00:27:56,060 Pra, kjo është ndoshta do të jetë një për lak. 544 00:27:56,060 --> 00:27:59,240 Çfarë është një kontroll këtu do të thotë? 545 00:27:59,240 --> 00:28:02,536 Në mënyrë tipike, në qoftë se ju dëshironi të shikoni nëse diçka është diçka else-- 546 00:28:02,536 --> 00:28:03,270 >> Audienca: Në qoftë se. 547 00:28:03,270 --> 00:28:06,790 >> ANDI Peng: Një në qoftë se, e drejtë? 548 00:28:06,790 --> 00:28:10,790 Dhe pastaj swap këtu, ne do të shkoj për më vonë, sepse David 549 00:28:10,790 --> 00:28:12,770 shkoi nëpër atë në leksion si. 550 00:28:12,770 --> 00:28:14,580 Dhe pastaj iterate dytë implies-- 551 00:28:14,580 --> 00:28:15,120 >> Audienca: Një tjetër për lak. 552 00:28:15,120 --> 00:28:16,745 >> ANDI Peng: --another për lak, pikërisht. 553 00:28:16,745 --> 00:28:19,870 554 00:28:19,870 --> 00:28:22,000 Pra, në qoftë se ne jemi duke kërkuar në këtë të saktë, ne 555 00:28:22,000 --> 00:28:24,680 mund të shihni se ne jemi me siguri do të duhet një mbivendosur për lak 556 00:28:24,680 --> 00:28:28,330 me një deklaratë të kushtëzuar në atje dhe pastaj një pjesë aktuale e kodit që është 557 00:28:28,330 --> 00:28:31,360 do të bie në ujdi vlerat. 558 00:28:31,360 --> 00:28:35,980 Kështu që unë kam shkruar vetëm në përgjithësi një kod pseudokod këtu. 559 00:28:35,980 --> 00:28:38,910 Dhe pastaj ne jemi të vërtetë do për të fizikisht, si një klasë, 560 00:28:38,910 --> 00:28:40,700 përpiqen për të zbatuar këtë sot. 561 00:28:40,700 --> 00:28:42,486 Le të kthehemi në këtë IDE. 562 00:28:42,486 --> 00:28:49,243 563 00:28:49,243 --> 00:28:50,230 >> Uh-oh. 564 00:28:50,230 --> 00:28:51,754 Pse është se not-- nuk është. 565 00:28:51,754 --> 00:28:52,253 NE RREGULL. 566 00:28:52,253 --> 00:28:55,834 567 00:28:55,834 --> 00:28:57,500 Na vjen keq, më lejoni të përpiqen për të zoom në pak më shumë. 568 00:28:57,500 --> 00:28:59,310 Atje shkojmë. 569 00:28:59,310 --> 00:29:05,060 Të gjitha unë jam duke bërë këtu është që kam krijuar një program të quajtur "Zgjedhja / sort.c." 570 00:29:05,060 --> 00:29:10,860 Unë kam krijuar një grup të nëntë vlerat, 4, 8, 2, 1, 6, 7, 9, 5, 3. 571 00:29:10,860 --> 00:29:14,370 Aktualisht, si ju mund të shihni, ata janë të renditura. 572 00:29:14,370 --> 00:29:17,880 n do të jetë numri që ju tregon sasinë e vlerave 573 00:29:17,880 --> 00:29:18,920 ju keni në grup tuaj. 574 00:29:18,920 --> 00:29:20,670 Në këtë rast, ne kemi nëntë vlera. 575 00:29:20,670 --> 00:29:23,760 Dhe unë kam marrë vetëm një për lak këtu që printon nga array Unsorted. 576 00:29:23,760 --> 00:29:28,370 >> Dhe në fund, unë kam marrë edhe një për lak që vetëm printon atë përsëri. 577 00:29:28,370 --> 00:29:32,070 Pra teorikisht, nëse këtë program punon saktë, në fund, 578 00:29:32,070 --> 00:29:35,670 ju duhet të shihni një të shtypura për lak në të cilën 1, 2, 3, 4, 5, 6, 7, 8, 579 00:29:35,670 --> 00:29:39,310 9 janë të gjitha në mënyrë korrekte. 580 00:29:39,310 --> 00:29:43,410 >> Pra, ne kemi marrë pseudokod tonë këtu. 581 00:29:43,410 --> 00:29:46,090 A ka dikush doni to-- unë jam vetëm do të shkojnë të kërkojnë volunteers-- 582 00:29:46,090 --> 00:29:49,540 më thoni saktësisht se çfarë të shkruani në qoftë se ne duam të, së pari, vetëm iterate 583 00:29:49,540 --> 00:29:52,840 me fillim të këtij grup? 584 00:29:52,840 --> 00:29:55,204 Çfarë është linjë e kodit unë jam ndoshta do të duhet këtu? 585 00:29:55,204 --> 00:29:56,990 >> Audienca: [padëgjueshme] 586 00:29:56,990 --> 00:29:59,010 >> ANDI Peng: Po, të ndjehen të pa pagesë to-- vjen keq, ju 587 00:29:59,010 --> 00:30:02,318 nuk duhet të qëndrojë ndjehen up-- të lirë për të ngritur zërin tuaj pak. 588 00:30:02,318 --> 00:30:08,190 >> Audienca: Për int i barabartë 0-- 589 00:30:08,190 --> 00:30:10,690 >> ANDI Peng: Po, mirë. 590 00:30:10,690 --> 00:30:15,220 >> AUDIENCA: i është më pak se gjatësia vektorit. 591 00:30:15,220 --> 00:30:19,630 >> ANDI Peng: Pra, mbani në mendjen këtu, sepse ne 592 00:30:19,630 --> 00:30:23,060 nuk kanë një funksion që na tregon gjatësinë e një grup, 593 00:30:23,060 --> 00:30:25,790 ne tashmë kemi një Vlera që ruan atë. 594 00:30:25,790 --> 00:30:27,920 E drejtë? 595 00:30:27,920 --> 00:30:31,010 Një tjetër gjë për të mbajtur në mind-- në një grup 596 00:30:31,010 --> 00:30:33,940 e nëntë vlerave, cilat janë tregues? 597 00:30:33,940 --> 00:30:38,720 Le të thonë se ky grup ishte 0 në 3. 598 00:30:38,720 --> 00:30:41,500 Ju shihni se fundit indeksi është në fakt 3. 599 00:30:41,500 --> 00:30:45,530 Kjo nuk është 4, edhe pse nuk ka katër vlerat në grup. 600 00:30:45,530 --> 00:30:49,866 >> Kështu që këtu, ne duhet të jenë shumë të kujdesshëm e asaj gjendjen tonë për gjatësinë 601 00:30:49,866 --> 00:30:50,490 do te jete. 602 00:30:50,490 --> 00:30:51,948 >> Audienca: Nuk do të jetë n minus 1? 603 00:30:51,948 --> 00:30:54,440 ANDI Peng: Ajo do n minus 1, saktësisht. 604 00:30:54,440 --> 00:30:57,379 E bën këtë kuptim, pse kjo është n minus 1, të gjithë? 605 00:30:57,379 --> 00:30:58,920 Kjo është për shkak se vargjeve janë zero-indeksuar. 606 00:30:58,920 --> 00:31:02,010 Ata fillojnë me 0 dhe të drejtuar deri n minus 1. 607 00:31:02,010 --> 00:31:03,210 Po, kjo është pak e ndërlikuar. 608 00:31:03,210 --> 00:31:03,730 NE RREGULL. 609 00:31:03,730 --> 00:31:05,929 Dhe pastaj-- 610 00:31:05,929 --> 00:31:08,054 Audienca: Isnt'1 se marrë tashmë kujdesin e pse, 611 00:31:08,054 --> 00:31:11,400 nga vetëm të mos thënë "më pak se ose e barabartë me "dhe vetëm duke thënë se" më pak se? " 612 00:31:11,400 --> 00:31:13,108 >> ANDI Peng: Kjo është një pyetje me të vërtetë mirë. 613 00:31:13,108 --> 00:31:13,630 Pra, po. 614 00:31:13,630 --> 00:31:17,410 Por gjithashtu, në mënyrën që ne jemi zbatimin e drejtë rrjedhëse, 615 00:31:17,410 --> 00:31:19,120 ju duhet të krahasoni dy vlera. 616 00:31:19,120 --> 00:31:21,009 Kështu që ju të vërtetë duan të lënë "në" bosh. 617 00:31:21,009 --> 00:31:23,050 Sepse në qoftë se ju krahasoni kjo, ju nuk jeni duke shkuar 618 00:31:23,050 --> 00:31:25,530 kanë asgjë pas saj të krahasohet me, apo jo? 619 00:31:25,530 --> 00:31:27,460 Po. 620 00:31:27,460 --> 00:31:29,297 Kështu që unë ++. 621 00:31:29,297 --> 00:31:30,380 Le të shtoni kllapa tona në. 622 00:31:30,380 --> 00:31:30,880 Uh. 623 00:31:30,880 --> 00:31:33,950 624 00:31:33,950 --> 00:31:34,710 I madh. 625 00:31:34,710 --> 00:31:39,117 Kështu që ne kemi në fillim e lak sonë të jashtme. 626 00:31:39,117 --> 00:31:41,450 Deri tani ne ndoshta dëshironi të krijojë një ndryshore për mbajtjen e 627 00:31:41,450 --> 00:31:43,085 udhë të vlerës më të vogël, apo jo? 628 00:31:43,085 --> 00:31:45,751 A ka dikush duan të më jepte linjë e kodit që do ta bëjë këtë? 629 00:31:45,751 --> 00:31:48,700 630 00:31:48,700 --> 00:31:53,570 Çfarë na duhet në qoftë se ne jemi duke shkuar të duan për të ruajtur diçka? 631 00:31:53,570 --> 00:31:55,047 >> E drejtë. 632 00:31:55,047 --> 00:31:57,630 Ndoshta një emër të mirë për atë do be-- "temp" totalisht works-- 633 00:31:57,630 --> 00:32:00,655 ndoshta një të quajtur më me vend do të jetë, në qoftë se ne duam value-- më të vogël 634 00:32:00,655 --> 00:32:01,624 >> Audienca: Min. 635 00:32:01,624 --> 00:32:02,790 ANDI Peng: min, atje ne do të shkojmë. 636 00:32:02,790 --> 00:32:05,230 min do të ishte mirë. 637 00:32:05,230 --> 00:32:08,340 Dhe kështu këtu, çfarë të bëjmë ne dua të nisja atë në? 638 00:32:08,340 --> 00:32:09,620 Kjo është pak i ndërlikuar. 639 00:32:09,620 --> 00:32:13,580 Sepse tani më së fillimi i këtij grup, 640 00:32:13,580 --> 00:32:15,730 ju nuk e keni shikuar në asgjë, e drejtë? 641 00:32:15,730 --> 00:32:19,200 Pra, çfarë, automatikisht, nëse ne jemi vetëm në i barabartë me 0, 642 00:32:19,200 --> 00:32:22,302 çfarë duam të nisja Vlera jonë e parë minimale për të? 643 00:32:22,302 --> 00:32:22,802 Audienca: i. 644 00:32:22,802 --> 00:32:24,790 ANDI Peng: i, pikërisht. 645 00:32:24,790 --> 00:32:27,040 Christabel, pse duam të nisja atë për të i? 646 00:32:27,040 --> 00:32:28,510 >> Audienca: Sepse, mirë, ne jemi duke filluar me 0. 647 00:32:28,510 --> 00:32:31,660 Pra, sepse ne kemi asgjë për të krahasuar atë për të, minimumi do të përfundojë si 0. 648 00:32:31,660 --> 00:32:32,451 >> ANDI Peng: Pikërisht. 649 00:32:32,451 --> 00:32:34,400 Pra, ajo është saktësisht e drejtë. 650 00:32:34,400 --> 00:32:36,780 Sepse ne nuk kemi në fakt shikoi ende asgjë, 651 00:32:36,780 --> 00:32:38,680 ne nuk e dimë se çfarë vlera ynë minimal është. 652 00:32:38,680 --> 00:32:41,960 Ne duam të vetëm nisja atë për Unë, i cili, aktualisht, është e drejtë këtu. 653 00:32:41,960 --> 00:32:44,750 Dhe si ne vazhdojmë të lëvizur poshtë këtë koleksion, 654 00:32:44,750 --> 00:32:48,122 ne do të shohim se, me çdo kalojë shtesë, unë increments. 655 00:32:48,122 --> 00:32:49,830 Dhe kështu në këtë pikë, I është ndoshta do 656 00:32:49,830 --> 00:32:52,329 të duan të jenë minimale, sepse ajo do të jetë çdo gjë 657 00:32:52,329 --> 00:32:54,520 është fillimi i vektorit pandara. 658 00:32:54,520 --> 00:32:55,270 Ftohtë. 659 00:32:55,270 --> 00:32:58,720 >> Pra, tani ne duam të shtoni një për lak këtu që është 660 00:32:58,720 --> 00:33:03,225 do të iterate përmes Unsorted, ose pjesa tjetër e këtij grup. 661 00:33:03,225 --> 00:33:05,808 A ka dikush duan të më jepni një linjë e kodit që do ta bëjë këtë? 662 00:33:05,808 --> 00:33:08,870 663 00:33:08,870 --> 00:33:11,330 Hint-- çfarë kemi nevojë këtu poshtë? 664 00:33:11,330 --> 00:33:17,320 665 00:33:17,320 --> 00:33:18,820 Çfarë do të shkojë në këtë për lak? 666 00:33:18,820 --> 00:33:19,465 Po. 667 00:33:19,465 --> 00:33:21,590 Audienca: Pra, ne do të duan të kanë një numër i plotë ndryshme, 668 00:33:21,590 --> 00:33:25,080 sepse ne jemi që kalon nëpër pjesën tjetër e array në vend të I, kështu që ndoshta 669 00:33:25,080 --> 00:33:25,760 j. 670 00:33:25,760 --> 00:33:27,301 >> ANDI Peng: Po, j tingëllon mirë për mua. 671 00:33:27,301 --> 00:33:27,850 Është e barabartë? 672 00:33:27,850 --> 00:33:33,930 >> Audienca: Pra, do të jetë unë plus 1, për shkak se ju jeni duke filluar në vlerën e ardhshëm. 673 00:33:33,930 --> 00:33:40,395 Dhe pastaj në end-- Pra, përsëri, j është pak se n minus 1, dhe pastaj j ++. 674 00:33:40,395 --> 00:33:41,103 ANDI Peng: Great. 675 00:33:41,103 --> 00:33:48,510 676 00:33:48,510 --> 00:33:52,750 >> Dhe pastaj në këtu, ne do të duan për të kontrolluar për të parë nëse gjendja jonë është plotësuar, 677 00:33:52,750 --> 00:33:53,250 e drejtë? 678 00:33:53,250 --> 00:33:55,740 Për shkak se ju doni të ndryshoni vlerën minimale 679 00:33:55,740 --> 00:33:58,700 nëse kjo është në fakt më e vogël se ajo që ju jeni duke e krahasuar atë me, apo jo? 680 00:33:58,700 --> 00:34:01,146 Pra, çfarë do të shkojmë të duan në këtu? 681 00:34:01,146 --> 00:34:04,160 682 00:34:04,160 --> 00:34:04,897 Kontrollo për të parë. 683 00:34:04,897 --> 00:34:06,730 Çfarë lloji të deklaratës po ne ndoshta do 684 00:34:06,730 --> 00:34:08,389 TI doni të përdorni në qoftë se ne dëshironi të shikoni diçka? 685 00:34:08,389 --> 00:34:09,360 >> Audienca: Një rast deklaratë. 686 00:34:09,360 --> 00:34:10,485 >> ANDI Peng: Një në qoftë se deklarata. 687 00:34:10,485 --> 00:34:13,155 Pra if-- dhe çfarë do të jetë kushti që ne duam brenda 688 00:34:13,155 --> 00:34:13,988 e në qoftë se deklarata tonë? 689 00:34:13,988 --> 00:34:18,255 690 00:34:18,255 --> 00:34:22,960 >> Audienca: Nëse vlera e j është më e vogël se vlera e i-- 691 00:34:22,960 --> 00:34:24,600 >> ANDI Peng: Pikërisht. 692 00:34:24,600 --> 00:34:27,480 Pra if-- kështu që ky grup quhet "array". 693 00:34:27,480 --> 00:34:27,980 I madh. 694 00:34:27,980 --> 00:34:30,465 Pra, nëse array-- çfarë ishte kjo? 695 00:34:30,465 --> 00:34:31,090 Thuaj se përsëri. 696 00:34:31,090 --> 00:34:39,590 >> Audienca: Nëse array-j është më pak se array-i, atëherë ne do të ndryshojë min. 697 00:34:39,590 --> 00:34:41,590 Pra min do të j. 698 00:34:41,590 --> 00:34:44,590 699 00:34:44,590 --> 00:34:47,249 >> ANDI Peng: ka që e bëjnë kuptim? 700 00:34:47,249 --> 00:34:48,670 NE RREGULL. 701 00:34:48,670 --> 00:34:52,929 Dhe tani këtu poshtë, ne fakt duan për të zbatuar shkëmbim, e drejtë? 702 00:34:52,929 --> 00:34:58,285 Pra kujtojnë, në leksionin, që Davidi, kur ai ishte duke u përpjekur për të bie në ujdi the-- çfarë ishte 703 00:34:58,285 --> 00:34:59,996 lëng portokalli dhe milk-- it-- 704 00:34:59,996 --> 00:35:01,150 >> Audienca: Kjo ishte bruto. 705 00:35:01,150 --> 00:35:02,816 >> ANDI Peng: Po, ajo ishte lloj i bruto. 706 00:35:02,816 --> 00:35:05,310 Por kjo ishte një e mirë goxha Koncepti demonstruar kohë. 707 00:35:05,310 --> 00:35:08,430 Pra, mendoni për vlerat tuaja këtu. 708 00:35:08,430 --> 00:35:10,794 Ju keni marrë një grup i min, një grup i I, 709 00:35:10,794 --> 00:35:12,460 apo çfarëdo ne ishim duke u përpjekur për shkëmbim këtu. 710 00:35:12,460 --> 00:35:15,310 Dhe ju ndoshta nuk mund të derdh ato në njëri-tjetrin në të njëjtën kohë, e drejtë? 711 00:35:15,310 --> 00:35:17,180 Pra, çfarë po shkojmë të duhet për të krijuar këtu 712 00:35:17,180 --> 00:35:19,126 në mënyrë për shkëmbim vlerat saktë? 713 00:35:19,126 --> 00:35:19,820 >> Audienca: Një variabël e përkohshme. 714 00:35:19,820 --> 00:35:21,370 >> ANDI Peng: Një variabël e përkohshme. 715 00:35:21,370 --> 00:35:22,570 Pra, le të bëjë int temp. 716 00:35:22,570 --> 00:35:25,681 Ja, kjo do të jetë një më të mirë kohë to-- ee, çfarë ishte kjo? 717 00:35:25,681 --> 00:35:26,180 NE RREGULL. 718 00:35:26,180 --> 00:35:29,800 Pra, kjo do të kishte qenë një më të mirë koha për emrin e ndryshueshme "temp." 719 00:35:29,800 --> 00:35:30,730 Pra, le të bëjë int temp. 720 00:35:30,730 --> 00:35:32,563 Çfarë do të shkojmë për vendosur temp të barabartë këtu? 721 00:35:32,563 --> 00:35:34,752 722 00:35:34,752 --> 00:35:35,335 Audienca: Min? 723 00:35:35,335 --> 00:35:38,508 724 00:35:38,508 --> 00:35:39,716 ANDI Peng: Kjo është pak i ndërlikuar. 725 00:35:39,716 --> 00:35:43,110 726 00:35:43,110 --> 00:35:44,880 Ajo në fakt nuk ka rëndësi në fund. 727 00:35:44,880 --> 00:35:47,690 Nuk ka rëndësi se çfarë mënyrë që ju zgjidhni për të bie në ujdi në 728 00:35:47,690 --> 00:35:50,862 sa kohë që ju jeni duke e bërë të sigurt që ju jeni mbajtja e asaj që ju po shkëmbejnë. 729 00:35:50,862 --> 00:35:52,250 >> Audienca: Kjo mund të jetë array-i. 730 00:35:52,250 --> 00:35:53,666 >> ANDI Peng: Po, le ta bëjmë array-i. 731 00:35:53,666 --> 00:35:55,950 732 00:35:55,950 --> 00:35:59,305 Dhe pastaj çfarë është vija e ardhshme i kodit ne duam të kemi këtu? 733 00:35:59,305 --> 00:36:00,680 Audienca: array-i barabartë array-J. 734 00:36:00,680 --> 00:36:07,154 735 00:36:07,154 --> 00:36:08,070 ANDI Peng: Dhe së fundi? 736 00:36:08,070 --> 00:36:12,070 Audienca: array-j është e barabartë array-i. 737 00:36:12,070 --> 00:36:14,525 Audienca: Ose array-j barabartë array-temp-- ose, temp. 738 00:36:14,525 --> 00:36:17,135 739 00:36:17,135 --> 00:36:19,430 >> ANDI Peng: OK. 740 00:36:19,430 --> 00:36:21,510 Pra, le të drejtuar këtë dhe të shohim nëse ajo do të punojë. 741 00:36:21,510 --> 00:36:37,520 742 00:36:37,520 --> 00:36:39,335 Ku kjo ndodh? 743 00:36:39,335 --> 00:36:40,210 Oh, kjo është një problem. 744 00:36:40,210 --> 00:36:44,320 Shih, në linjë 40, ne jemi duke u përpjekur për të përdorur array-J? 745 00:36:44,320 --> 00:36:47,022 Por aty ku nuk j ekzistojnë vetëm në? 746 00:36:47,022 --> 00:36:48,402 >> Audienca: Në për lak. 747 00:36:48,402 --> 00:36:49,110 ANDI Peng: E ​​drejta. 748 00:36:49,110 --> 00:36:51,730 Pra, çfarë do të shkojmë të duhet të bëjmë? 749 00:36:51,730 --> 00:36:53,170 >> Audienca: Define atë jashtë the-- 750 00:36:53,170 --> 00:36:57,777 751 00:36:57,777 --> 00:37:00,610 Audienca: Po, unë mendoj se ju keni për të përdorur një tjetër nëse deklarata, e drejtë? 752 00:37:00,610 --> 00:37:05,230 Pra si, në qoftë se minimum-- të gjithë të drejtë, më lejoni të mendoj. 753 00:37:05,230 --> 00:37:08,170 754 00:37:08,170 --> 00:37:09,990 >> ANDI peng: Guys, provoni për të marrë një vështrim Le të 755 00:37:09,990 --> 00:37:11,270 shih, çfarë është diçka që ne mund të bëjmë këtu? 756 00:37:11,270 --> 00:37:11,811 >> Audienca: OK. 757 00:37:11,811 --> 00:37:15,900 Pra, nëse minimale nuk i barabartë j-- kështu që nëse minimumi është ende i-- 758 00:37:15,900 --> 00:37:17,570 atëherë ne nuk do të duhet të bie në ujdi. 759 00:37:17,570 --> 00:37:22,450 760 00:37:22,450 --> 00:37:24,712 >> ANDI Peng: A do të barabartë unë? 761 00:37:24,712 --> 00:37:25,920 Çfarë doni të thoni këtu? 762 00:37:25,920 --> 00:37:30,494 >> Audienca: Ose po, në qoftë se minimale nuk Unë nuk të barabartë, po. 763 00:37:30,494 --> 00:37:39,627 764 00:37:39,627 --> 00:37:40,210 ANDI Peng: OK. 765 00:37:40,210 --> 00:37:42,040 Mirë që zgjidh, lloj, problemet tona. 766 00:37:42,040 --> 00:37:47,265 Por që ende nuk e zgjidh Problemi i se çfarë ndodh në qoftë se j-- që j 767 00:37:47,265 --> 00:37:49,890 nuk ekziston jashtë saj, çfarë nuk ju duam të bëjmë me të? 768 00:37:49,890 --> 00:37:50,698 Shpallë jashtë? 769 00:37:50,698 --> 00:37:59,410 770 00:37:59,410 --> 00:38:02,730 Le të provoni drejtimin këtë. 771 00:38:02,730 --> 00:38:04,435 Uh-oh. 772 00:38:04,435 --> 00:38:06,200 Lloj jonë nuk është duke punuar. 773 00:38:06,200 --> 00:38:10,060 >> Siç mund ta shikoni, fillestar ynë array kishte këto vlera. 774 00:38:10,060 --> 00:38:14,800 Dhe pastaj ajo duhet të ketë qenë në 1, 2, 3, 4, 5, 6, 7, 8, 9. 775 00:38:14,800 --> 00:38:15,530 Kjo nuk është duke punuar. 776 00:38:15,530 --> 00:38:16,030 AHH. 777 00:38:16,030 --> 00:38:17,184 Çfarë bëjmë ne? 778 00:38:17,184 --> 00:38:17,850 Audienca: Debug. 779 00:38:17,850 --> 00:38:21,787 780 00:38:21,787 --> 00:38:23,370 ANDI Peng: Në rregull, ne mund të provoni se. 781 00:38:23,370 --> 00:38:25,030 Ne mund të debug. 782 00:38:25,030 --> 00:38:26,042 Zoom out pak. 783 00:38:26,042 --> 00:38:31,177 784 00:38:31,177 --> 00:38:33,656 Le të vendosur breakpoint tonë. 785 00:38:33,656 --> 00:38:37,280 Le të shkojmë OK like--. 786 00:38:37,280 --> 00:38:40,444 >> Pra, sepse ne tashmë e dimë se këto rreshta, 15 deri 22, 787 00:38:40,444 --> 00:38:43,610 janë working-- sepse të gjitha unë jam duke bërë është vetëm iterating përmes dhe printing-- 788 00:38:43,610 --> 00:38:45,406 Unë mund të shkoj përpara dhe të kaloni atë. 789 00:38:45,406 --> 00:38:47,280 Le të fillojmë në linjë 25. 790 00:38:47,280 --> 00:38:48,712 OOP, më lejoni të shpëtoj nga kjo. 791 00:38:48,712 --> 00:38:51,598 792 00:38:51,598 --> 00:38:54,057 >> Audienca: Pra breakpoint-së ku debugging fillon? 793 00:38:54,057 --> 00:38:54,890 ANDI Peng: ose ndalon. 794 00:38:54,890 --> 00:38:55,670 Audienca: Ose ndalesa. 795 00:38:55,670 --> 00:38:55,930 ANDI Peng: Po. 796 00:38:55,930 --> 00:38:58,640 Ju mund të vendosni breakpoints shumta dhe ajo vetëm mund të kërcejnë nga njëri në tjetrin. 797 00:38:58,640 --> 00:39:01,590 Por në këtë rast ne nuk e dimë ku gabimi ndodh. 798 00:39:01,590 --> 00:39:03,780 Pra, ne vetëm duam të të fillojë nga lart poshtë. 799 00:39:03,780 --> 00:39:05,020 Yep. 800 00:39:05,020 --> 00:39:05,550 NE RREGULL. 801 00:39:05,550 --> 00:39:08,460 >> Pra, kjo vijë këtu, ne mund të hap në. 802 00:39:08,460 --> 00:39:11,499 Ju mund të shihni këtu poshtë, ne kemi marrë një grup. 803 00:39:11,499 --> 00:39:13,290 Ata janë vlerat që janë në rrjet. 804 00:39:13,290 --> 00:39:16,360 A e shihni se, si indeksi 0, ajo korrespondon me value-- oh, 805 00:39:16,360 --> 00:39:17,526 Unë do të përpiqet për të zmadhuar. 806 00:39:17,526 --> 00:39:20,650 Na vjen keq, është e vërtetë e vështirë të see-- në indeksin e array 0, 807 00:39:20,650 --> 00:39:24,090 ne kemi një vlerë prej 4 dhe pastaj kështu me radhë e kështu me radhë. 808 00:39:24,090 --> 00:39:25,670 Ne kemi variablave tona lokale. 809 00:39:25,670 --> 00:39:28,570 Tani për tani i është i barabartë me 0, të cilat ne duam që ajo të jetë. 810 00:39:28,570 --> 00:39:31,540 811 00:39:31,540 --> 00:39:33,690 >> Dhe kështu që le të mbajë shkelën përmes. 812 00:39:33,690 --> 00:39:36,850 Minimum ynë është i barabartë me 0, të cilat ne gjithashtu duam që ajo të jetë. 813 00:39:36,850 --> 00:39:39,470 814 00:39:39,470 --> 00:39:45,560 Dhe pastaj hyjmë dytë tonë për lak, nëse grup-j është më pak se vargut-I, 815 00:39:45,560 --> 00:39:46,380 që nuk ishte. 816 00:39:46,380 --> 00:39:48,130 Kështu që e keni parë se si se anashkaluar kjo? 817 00:39:48,130 --> 00:39:52,430 >> Audienca: Pra, duhet që, nëse minimum, të gjitha that-- nuk duhet që 818 00:39:52,430 --> 00:39:55,424 të jetë brenda të parët për lak? 819 00:39:55,424 --> 00:39:57,340 ANDI Peng: Jo, sepse ju ende duan për të provuar. 820 00:39:57,340 --> 00:40:00,329 Ju dëshironi të bëni një krahasim çdo kohë, edhe pasi ju drejtuar nëpërmjet saj. 821 00:40:00,329 --> 00:40:02,620 Ju nuk duan vetëm për të bërë atë në e parë përçimit. 822 00:40:02,620 --> 00:40:05,240 Ju doni të bëni atë me çdo kalojë shtesë përsëri. 823 00:40:05,240 --> 00:40:07,198 Pra, ju doni të kontrolloni për gjendja juaj brenda. 824 00:40:07,198 --> 00:40:11,610 825 00:40:11,610 --> 00:40:13,746 Pra, ne jemi vetëm duke shkuar për të mbajtur drejtimin përmes këtu. 826 00:40:13,746 --> 00:40:17,337 827 00:40:17,337 --> 00:40:18,420 Unë do të ju jap djema një aluzion. 828 00:40:18,420 --> 00:40:23,910 Ajo ka të bëjë me faktin se kur ju jeni duke kontrolluar kushtëzuar juaj, 829 00:40:23,910 --> 00:40:26,600 ju nuk jeni duke kontrolluar për indeksin e saktë. 830 00:40:26,600 --> 00:40:32,510 Kështu që tani ju jeni duke kontrolluar për indeks grup i j është më pak se grup 831 00:40:32,510 --> 00:40:33,970 indeksi i i. 832 00:40:33,970 --> 00:40:36,580 Por, çfarë jeni duke bërë në fillimi i për lak? 833 00:40:36,580 --> 00:40:38,260 A nuk jeni vendosjen J barabartë për të i? 834 00:40:38,260 --> 00:40:41,260 835 00:40:41,260 --> 00:40:45,415 >> Yeah, kështu që ne mund të vërtetë të dalë nga Rregullues këtu. 836 00:40:45,415 --> 00:40:47,040 Pra, le të marrin një vështrim në pseudokod tonë. 837 00:40:47,040 --> 00:40:50,070 838 00:40:50,070 --> 00:40:52,580 For-- ne jemi duke shkuar për të fillojë në i barabartë me 0. 839 00:40:52,580 --> 00:40:54,760 Ne jemi duke shkuar për të shkuar deri në minus 1 n. 840 00:40:54,760 --> 00:40:58,040 Le të kontrolloni, nuk kemi atë të drejtë? 841 00:40:58,040 --> 00:40:59,580 Po, kjo ishte e drejtë. 842 00:40:59,580 --> 00:41:02,080 >> Kështu pra brenda këtu, ne jemi do të krijojë një vlerë minimale 843 00:41:02,080 --> 00:41:03,630 dhe të vendosur që të barabartë me i. 844 00:41:03,630 --> 00:41:04,950 A e bëjmë këtë? 845 00:41:04,950 --> 00:41:06,270 Po, e bëri atë. 846 00:41:06,270 --> 00:41:10,430 Tani në brendshme për lak tonë, ne jemi shkuar për të bërë j barabartë i të n minus 1. 847 00:41:10,430 --> 00:41:11,950 A e bëjmë këtë? 848 00:41:11,950 --> 00:41:15,540 Në të vërtetë, ne e bëmë atë. 849 00:41:15,540 --> 00:41:19,922 >> Pra megjithatë, çfarë jemi duke krahasuar këtu? 850 00:41:19,922 --> 00:41:20,925 >> Audienca: j plus 1. 851 00:41:20,925 --> 00:41:21,716 ANDI Peng: Pikërisht. 852 00:41:21,716 --> 00:41:24,184 853 00:41:24,184 --> 00:41:27,350 Dhe pastaj ju jeni do të duan për të vendosur minimale juaj barabartë me j plus 1, si dhe. 854 00:41:27,350 --> 00:41:31,057 855 00:41:31,057 --> 00:41:32,640 Kështu që unë shkova me atë të vërtetë shpejt. 856 00:41:32,640 --> 00:41:36,190 A e kuptoni ju djema pse kjo është j plus 1? 857 00:41:36,190 --> 00:41:36,890 NE RREGULL. 858 00:41:36,890 --> 00:41:40,700 >> Pra, në grup tuaj, në kalojë juaj e parë përmes, 859 00:41:40,700 --> 00:41:44,850 juaj për lak, për int i barabartë me 0, le të vetëm 860 00:41:44,850 --> 00:41:46,740 supozojmë kjo nuk ka ndryshuar ende. 861 00:41:46,740 --> 00:41:53,180 862 00:41:53,180 --> 00:41:56,760 Ne kemi një grup të, krejtësisht, vetëm katër elemente Unsorted, e drejtë? 863 00:41:56,760 --> 00:42:00,760 Pra, ne duam të iniciojnë i barabartë me 0. 864 00:42:00,760 --> 00:42:03,650 Dhe unë do të vetëm drejtuar nëpër këtë lak. 865 00:42:03,650 --> 00:42:08,560 Dhe kështu në kalimin e parë, ne jemi duke shkuar të nisja një ndryshore të quajtur "min" 866 00:42:08,560 --> 00:42:11,245 që gjithashtu është e barabartë unë, sepse ne nuk kemi një vlerë minimale. 867 00:42:11,245 --> 00:42:12,870 Pra, kjo është aktualisht e barabartë me 0 si. 868 00:42:12,870 --> 00:42:16,182 869 00:42:16,182 --> 00:42:17,640 Dhe pastaj ne jemi duke shkuar për të shkuar deri. 870 00:42:17,640 --> 00:42:19,270 Dhe ne duam të iterate përsëri. 871 00:42:19,270 --> 00:42:22,900 Tani që ne kemi gjetur se çfarë minimale ynë është, ne duam të iterate nëpër 872 00:42:22,900 --> 00:42:25,190 përsëri për të parë nëse ajo është krahasuar, e drejtë? 873 00:42:25,190 --> 00:42:40,440 Kështu j, këtu, do tek i barabartë, e cila është 0. 874 00:42:40,440 --> 00:42:46,320 Dhe pastaj, nëse array j Plus, unë, e cila është ai që më tej mbi, si më pak 875 00:42:46,320 --> 00:42:49,270 se çfarë minimum juaj e tanishme vlerë është, ju doni të bie në ujdi. 876 00:42:49,270 --> 00:42:56,850 >> Pra, le të them vetëm ne kemi mori, si, 2, 5, 1, 8. 877 00:42:56,850 --> 00:43:01,610 Tani për tani, unë është e barabartë me 0 dhe j eshte e barabarte me 0. 878 00:43:01,610 --> 00:43:05,210 Dhe kjo është vlera jonë minimale. 879 00:43:05,210 --> 00:43:09,950 Nëse array-J plus i-- kështu që nëse një kjo është pas atij ne jemi duke kërkuar në 880 00:43:09,950 --> 00:43:13,450 është më e madhe se ajo e para saj, ajo do të bëhet minimale. 881 00:43:13,450 --> 00:43:18,120 >> Pra, këtu ne shohim se 5 është jo më pak se. 882 00:43:18,120 --> 00:43:19,730 Kështu ajo do të mos jetë 5. 883 00:43:19,730 --> 00:43:23,580 Ne e shohim se 1 është më pak se 2, e drejtë? 884 00:43:23,580 --> 00:43:32,970 Pra, tani ne e dimë se minimale ynë është do të jetë vlera indeks në 0, 1, 2. 885 00:43:32,970 --> 00:43:34,030 Po? 886 00:43:34,030 --> 00:43:39,170 Dhe pastaj kur ju merrni poshtë këtu, ju mund të bie në ujdi vlerat e sakta. 887 00:43:39,170 --> 00:43:42,610 >> Pra, kur ju djema janë vetëm duke pasur j para, ju nuk ishin në kërkim në një 888 00:43:42,610 --> 00:43:43,260 pas saj. 889 00:43:43,260 --> 00:43:44,520 Ju keni qenë në kërkim në njëjtë vlerë që 890 00:43:44,520 --> 00:43:46,290 është arsyeja pse ai thjesht nuk është bërë asgjë. 891 00:43:46,290 --> 00:43:49,721 A ka që e bëjnë kuptim për të gjithë, pse kishim nevojë se plus 1 atje? 892 00:43:49,721 --> 00:43:50,220 NE RREGULL. 893 00:43:50,220 --> 00:43:53,345 Tani le të vetëm të drejtuar nëpërmjet saj për të bërë Sigurohuni që pjesa tjetër e kodit është e saktë. 894 00:43:53,345 --> 00:44:04,424 895 00:44:04,424 --> 00:44:05,340 Pse është kjo ndodh? 896 00:44:05,340 --> 00:44:14,780 897 00:44:14,780 --> 00:44:16,364 Ah, kjo është e drejtë këtu min. 898 00:44:16,364 --> 00:44:17,780 Ne ishim duke krahasuar vlerën e gabuar. 899 00:44:17,780 --> 00:44:24,944 900 00:44:24,944 --> 00:44:25,906 Oh no. 901 00:44:25,906 --> 00:44:30,720 902 00:44:30,720 --> 00:44:33,482 >> Oh yeah, këtu poshtë ne kemi qenë shkëmbejnë vlerat gabuar si edhe. 903 00:44:33,482 --> 00:44:34,940 Sepse ne kemi qenë në kërkim në i dhe j. 904 00:44:34,940 --> 00:44:36,440 Ata janë ato që ne u kontrolluar. 905 00:44:36,440 --> 00:44:39,160 Ne të vërtetë duan të bie në ujdi minimale, minimumi i tanishëm, 906 00:44:39,160 --> 00:44:40,550 me çfarëdo një jashtë është. 907 00:44:40,550 --> 00:44:59,510 908 00:44:59,510 --> 00:45:05,402 Dhe si ju djema mund të shihni poshtë këtu, ne kemi një rrjet të renditura. 909 00:45:05,402 --> 00:45:07,110 Ajo vetëm kishte të bënte me fakti se kur 910 00:45:07,110 --> 00:45:09,350 ne ishim kontrollin e zyrave Vlerat ne u krahasuar, 911 00:45:09,350 --> 00:45:11,226 ne nuk ishin në kërkim në vlerat e duhura. 912 00:45:11,226 --> 00:45:13,850 Ne ishim duke kërkuar në të njëjtën një këtu, jo në fakt shkëmbejnë atë. 913 00:45:13,850 --> 00:45:17,135 Ju duhet të shikoni në një tjetër për atë dhe pastaj ju mund të bie në ujdi. 914 00:45:17,135 --> 00:45:19,260 Pra, kjo është ajo që ishte lloj i përgjimi kodin tonë përpara. 915 00:45:19,260 --> 00:45:22,460 Dhe çfarë kam bërë këtu është gjithçka debugger mund të ketë bërë për ju 916 00:45:22,460 --> 00:45:23,810 Unë vetëm e bëri atë në bordi, sepse është më e lehtë 917 00:45:23,810 --> 00:45:26,320 për të parë jo duke u përpjekur për të zoom në në Rregullues. 918 00:45:26,320 --> 00:45:29,391 A ka që e bëjnë kuptim për të gjithë? 919 00:45:29,391 --> 00:45:29,890 Ftohtë. 920 00:45:29,890 --> 00:45:34,800 921 00:45:34,800 --> 00:45:35,410 >> Në rregull. 922 00:45:35,410 --> 00:45:41,070 Ne mund të lëvizin për folur për simbol asymptotic, e cila 923 00:45:41,070 --> 00:45:44,580 është vetëm një mënyrë e sofistikuar për të thënë se runtimes të gjitha këto llojet. 924 00:45:44,580 --> 00:45:47,650 Kështu që unë e di Davidin, në leksion, preken runtimes. 925 00:45:47,650 --> 00:45:52,124 Dhe ai kalonte nëpër tërë formule se si për të llogaritur runtimes. 926 00:45:52,124 --> 00:45:53,040 Nuk shqetësohet për këtë. 927 00:45:53,040 --> 00:45:54,660 Nëse jeni të vërtetë kurioz se si funksionon kjo, 928 00:45:54,660 --> 00:45:55,810 të ndjehen të lirë për të biseduar me mua pas seksion. 929 00:45:55,810 --> 00:45:57,560 Ne mund të ecin nëpër formula së bashku. 930 00:45:57,560 --> 00:46:00,689 Por të gjithë ju djema duhet të vërtetë di është se n katror mbi 2 931 00:46:00,689 --> 00:46:01,980 është e njëjta gjë si n katror. 932 00:46:01,980 --> 00:46:04,710 Për shkak të numrit më të madh, eksponenti, rritet më. 933 00:46:04,710 --> 00:46:06,590 Dhe kështu për qëllimet tona, të gjithë ne lidhje me kujdes 934 00:46:06,590 --> 00:46:09,470 është se numri gjigant që është në rritje. 935 00:46:09,470 --> 00:46:13,340 >> Pra, çfarë është rasti më i mirë Runtime e përzgjedhjes lloj? 936 00:46:13,340 --> 00:46:15,830 Nëse ju jeni do të ketë të iterate nëpër një listë 937 00:46:15,830 --> 00:46:18,712 dhe pastaj iterate nëpër pjesa tjetër e kësaj liste, 938 00:46:18,712 --> 00:46:20,420 Sa herë janë ju do të ndoshta, 939 00:46:20,420 --> 00:46:24,612 në case-- më e keqe në më të mirë rast, sorry-- drejtuar përmes? 940 00:46:24,612 --> 00:46:27,070 Ndoshta pyetja më e mirë është të pyesni, çfarë është rasti më i keq 941 00:46:27,070 --> 00:46:28,153 Runtime e përzgjedhjes lloji. 942 00:46:28,153 --> 00:46:29,366 Audienca: katror n. 943 00:46:29,366 --> 00:46:30,740 ANDI Peng: Është katror n, e drejtë. 944 00:46:30,740 --> 00:46:36,986 Pra, një mënyrë e thjeshtë për të menduar e kjo është si, çdo herë që ju keni dy mbivendosur për sythe, 945 00:46:36,986 --> 00:46:38,110 ajo do të jetë katror n. 946 00:46:38,110 --> 00:46:40,386 Sepse jo vetëm që janë të kalon nëpër një herë, 947 00:46:40,386 --> 00:46:42,260 ju keni për të shkuar mbrapa përreth dhe të drejtuar nëpërmjet saj 948 00:46:42,260 --> 00:46:44,980 edhe një herë brenda për çdo vlerë. 949 00:46:44,980 --> 00:46:48,640 Pra, në këtë rast, ju jeni duke n herë n katror, ​​e cila is-- vjen keq, 950 00:46:48,640 --> 00:46:50,505 n herë n, e cila është e barabartë me katror n. 951 00:46:50,505 --> 00:46:53,230 952 00:46:53,230 --> 00:46:56,360 >> Dhe lloj është edhe pak unik në kuptimin 953 00:46:56,360 --> 00:46:59,774 se kjo nuk ka rëndësi nëse këto Vlerat janë tashmë në mënyrë. 954 00:46:59,774 --> 00:47:01,440 Është ende do të vazhdojë deri anyways. 955 00:47:01,440 --> 00:47:03,872 Le të thonë se kjo ishte 1, 2, 3, 4. 956 00:47:03,872 --> 00:47:07,080 Pavarësisht nëse apo jo ajo ishte në mënyrë, ai ende do të kishte vrapoi nëpër 957 00:47:07,080 --> 00:47:08,620 dhe ende kontrolluar vlerën minimale. 958 00:47:08,620 --> 00:47:10,100 Ajo do të kishte bërë Numri i njëjtë i kontrolleve 959 00:47:10,100 --> 00:47:12,780 çdo herë të vetme, edhe në qoftë se ajo ka të vërtetë nuk prek asgjë. 960 00:47:12,780 --> 00:47:16,940 >> Pra, në një rast të tillë, më të mirë dhe më të keq runtimes të vërtetë janë ekuivalente. 961 00:47:16,940 --> 00:47:19,160 Pra, runtime pritet e përzgjedhjes lloji, 962 00:47:19,160 --> 00:47:23,790 të cilat ne të caktojë nga simboli i theta, theta, në këtë rast, 963 00:47:23,790 --> 00:47:24,790 gjithashtu do të jetë katror n. 964 00:47:24,790 --> 00:47:26,480 Të tre këto do të jetë katror n. 965 00:47:26,480 --> 00:47:29,653 Është kushdo qartë pse runtime është katror n? 966 00:47:29,653 --> 00:47:33,360 967 00:47:33,360 --> 00:47:33,980 >> Në rregull. 968 00:47:33,980 --> 00:47:39,120 Kështu që unë jam vetëm do të shpejt të drejtuar përmes pjesës tjetër të llojet. 969 00:47:39,120 --> 00:47:41,137 Algorithm për flluskë sort-- kujtohet, 970 00:47:41,137 --> 00:47:43,220 kjo ishte e para Davidi kaloi në leksion. 971 00:47:43,220 --> 00:47:46,000 Në thelb, ju hap me anë të të gjithë lista 972 00:47:46,000 --> 00:47:48,950 dhe ju swap-- ju vetëm krahasuar dy në një kohë. 973 00:47:48,950 --> 00:47:51,350 Dhe në qoftë se një është më e madhe, se ju vetëm të bie në ujdi tyre. 974 00:47:51,350 --> 00:47:53,590 Pra, nëse këto janë më të mëdha, ju do të bie në ujdi. 975 00:47:53,590 --> 00:47:56,180 Kam zyrtar të drejtë këtu. 976 00:47:56,180 --> 00:47:59,100 >> Pra, le të them vetëm ju kishte 8, 6, 4, 2. 977 00:47:59,100 --> 00:48:00,571 Ju do të krahasoni 8 dhe një 6. 978 00:48:00,571 --> 00:48:01,570 Ju do të duhet të bie në ujdi tyre. 979 00:48:01,570 --> 00:48:02,610 Ju do të krahasoni 8 dhe një 4. 980 00:48:02,610 --> 00:48:03,609 Ju do të duhet të bie në ujdi tyre. 981 00:48:03,609 --> 00:48:07,000 Nëse ju duhet të bie në ujdi 8 dhe 2, të ndryshuar ato si. 982 00:48:07,000 --> 00:48:10,760 Pra, në një kuptim të tillë, ju mund të shihni, luajtur gjatë një periudhe të gjatë kohore, 983 00:48:10,760 --> 00:48:13,730 si lloj vlerat e flluskë në fundet, e cila është arsyeja pse ne e quajmë atë 984 00:48:13,730 --> 00:48:15,320 lloj flluskë. 985 00:48:15,320 --> 00:48:19,950 >> Ne vetëm do të drejtuar përmes përsëri në kalojë jonë e dytë, dhe të kalojë ynë i tretë, 986 00:48:19,950 --> 00:48:21,150 dhe të kalojë ynë i katërt. 987 00:48:21,150 --> 00:48:25,820 Në thelb, flluskë lloj vetëm shkon derisa ju nuk do të bëjë ndonjë këmbime më shumë. 988 00:48:25,820 --> 00:48:31,109 Pra, në këtë kuptim, kjo është vetëm pseudokod i përgjithshëm për të. 989 00:48:31,109 --> 00:48:32,650 Nuk shqetësohet, të gjitha këto do të jetë online. 990 00:48:32,650 --> 00:48:34,990 Ne nuk duhet të vërtetë të shkuar mbi këtë. 991 00:48:34,990 --> 00:48:38,134 >> Ne vetëm nisja një kundër variabël që fillon në 0. 992 00:48:38,134 --> 00:48:39,800 Dhe ne iterate nëpër tërë rrjet. 993 00:48:39,800 --> 00:48:43,420 Dhe në qoftë se një vlerë is-- nëse kjo vlerë është më e madhe se vlera, 994 00:48:43,420 --> 00:48:44,610 ju jeni do të bie në ujdi tyre. 995 00:48:44,610 --> 00:48:46,860 Dhe atëherë ju jeni vetëm duke shkuar për të do të mbajë. 996 00:48:46,860 --> 00:48:47,970 Dhe ju jeni duke shkuar për të numëruar. 997 00:48:47,970 --> 00:48:50,845 Dhe ju jeni vetëm do të vazhdojmë të bëjmë kjo ndërsa counter është më i madh 998 00:48:50,845 --> 00:48:53,345 se 0, që do të thotë se çdo herë që ju duhet të bie në ujdi, 999 00:48:53,345 --> 00:48:55,220 ju e dini që ju doni të shkoni mbrapa dhe kontrolloni përsëri. 1000 00:48:55,220 --> 00:48:59,510 Ju dëshironi të mbani kontrollin deri sa ju e dini që ju nuk duhet të bie në ujdi më. 1001 00:48:59,510 --> 00:49:05,570 >> Pra, çfarë janë më të mirë dhe më të keq Rasti runtimes për flluskë lloj? 1002 00:49:05,570 --> 00:49:09,300 Dhe hint-- kjo është në fakt e ndryshme nga lloji përzgjedhjes në kuptimin 1003 00:49:09,300 --> 00:49:11,810 që këto dy përgjigjet nuk janë të njëjta. 1004 00:49:11,810 --> 00:49:14,709 Mendoni se çfarë do të ndodhte në një rast në qoftë se ajo është renditur tashmë. 1005 00:49:14,709 --> 00:49:16,500 Dhe mendoni se çka do të ndodhte në qoftë se ajo ishte e 1006 00:49:16,500 --> 00:49:18,372 ne rastin ku nuk është renditura. 1007 00:49:18,372 --> 00:49:20,580 Dhe ju mund të lloj të kandidojë përmes pse kjo po ndodh. 1008 00:49:20,580 --> 00:49:22,954 Unë do të ju jap djema, si, 30 sekonda për të menduar për këtë. 1009 00:49:22,954 --> 00:49:52,330 1010 00:49:52,330 --> 00:49:53,540 >> NE RREGULL. 1011 00:49:53,540 --> 00:49:57,462 A ka dikush me mend në çfarë Rasti Runtime keqja e flluskë lloj është? 1012 00:49:57,462 --> 00:49:57,962 Po. 1013 00:49:57,962 --> 00:50:07,810 >> Audienca: A do të jetë, si, n herë n minus 1 ose diçka të tillë? 1014 00:50:07,810 --> 00:50:10,650 Si, sa herë që shkon, kjo është vetëm, si, një shkëmbim më pak 1015 00:50:10,650 --> 00:50:10,960 se çfarëdo qoftë ajo ishte. 1016 00:50:10,960 --> 00:50:12,668 >> ANDI Peng: Yeah, kështu që ju jeni plotësisht të drejtë. 1017 00:50:12,668 --> 00:50:15,940 Dhe ky është një rast në të cilin tuaj Përgjigja ishte në fakt më komplekse 1018 00:50:15,940 --> 00:50:17,240 se ajo duhet të japë. 1019 00:50:17,240 --> 00:50:19,772 Kështu ajo do të run-- unë jam duke shkuar për të fshirë të gjitha këto këtu. 1020 00:50:19,772 --> 00:50:20,480 Është e të gjithë mirë? 1021 00:50:20,480 --> 00:50:21,869 A mund të fshihet kjo? 1022 00:50:21,869 --> 00:50:22,368 NE RREGULL. 1023 00:50:22,368 --> 00:50:27,904 1024 00:50:27,904 --> 00:50:30,320 Ju jeni do të vazhdojë deri n herë herë të parë, e drejtë? 1025 00:50:30,320 --> 00:50:33,200 Dhe ata do të vazhdojë deri n minus 1 për herë të dytë, e drejtë? 1026 00:50:33,200 --> 00:50:37,130 Dhe pastaj ju do të jeni për të mbajtur shkuar, n miniera 2, e të tjera. 1027 00:50:37,130 --> 00:50:40,210 Davidi e bëri këtë në një leksion, ku, në qoftë se ju shtuar të gjitha këto vlera, 1028 00:50:40,210 --> 00:50:48,080 që ju të merrni diçka që është like-- yeah-- mbi 2, e cila në thelb vetëm zvogëlon 1029 00:50:48,080 --> 00:50:49,784 deri n katror. 1030 00:50:49,784 --> 00:50:51,700 Ju jeni do të merrni një fraksion i çuditshëm në atje. 1031 00:50:51,700 --> 00:50:53,892 Dhe kështu vetëm e di se n katror gjithmonë 1032 00:50:53,892 --> 00:50:55,350 merr përparësi mbi fraksionin. 1033 00:50:55,350 --> 00:50:58,450 Dhe kështu në këtë rast, më e keqja Runtime do të jetë katror n. 1034 00:50:58,450 --> 00:51:00,210 Në qoftë se kjo ishte në rend zbritës rendit, mendoni, ju 1035 00:51:00,210 --> 00:51:02,530 duhet të bëjë një shkëmbim çdo herë të vetme. 1036 00:51:02,530 --> 00:51:05,170 >> Çfarë do të jetë, potencialisht, rasti më i mirë runtime? 1037 00:51:05,170 --> 00:51:08,580 Le të them vetëm, në qoftë se lista ishte tashmë në mënyrë që, çfarë do të jetë runtime? 1038 00:51:08,580 --> 00:51:09,565 >> Audienca: n. 1039 00:51:09,565 --> 00:51:10,690 ANDI Peng: Është n, pikërisht. 1040 00:51:10,690 --> 00:51:11,600 Dhe pse është kjo n? 1041 00:51:11,600 --> 00:51:13,850 Audienca: sepse ju vetëm duhet të kontrolloni në çdo herë. 1042 00:51:13,850 --> 00:51:14,770 ANDI Peng: Pikërisht. 1043 00:51:14,770 --> 00:51:17,150 Pra, në kohën e duhur të mirë të mundshme, në qoftë se kjo listë ishte tashmë 1044 00:51:17,150 --> 00:51:20,270 sorted-- le të themi 1, 2, 3, 4-- ju thjesht do të shkojnë nëpër, ju do të shikoni, 1045 00:51:20,270 --> 00:51:21,720 ju do të shihni, oh, ata të gjithë nxjerr. 1046 00:51:21,720 --> 00:51:22,636 Unë nuk duhet të bie në ujdi. 1047 00:51:22,636 --> 00:51:23,370 Mbarova. 1048 00:51:23,370 --> 00:51:26,500 Pra, në këtë rast, kjo është vetëm n ose numri i hapave ju vetëm 1049 00:51:26,500 --> 00:51:29,870 kishte për të kontrolluar në listën e parë. 1050 00:51:29,870 --> 00:51:33,990 >> Dhe pas, ne tani hit lloj futje, ku 1051 00:51:33,990 --> 00:51:39,260 algoritmi është në thelb për të ndarë ajo në një pjesë të renditura dhe të pandara. 1052 00:51:39,260 --> 00:51:42,810 Dhe pastaj një nga një, vlerat Unsorted janë 1053 00:51:42,810 --> 00:51:46,880 futen në të përshtatshme të tyre pozitat në fillim të listës. 1054 00:51:46,880 --> 00:51:52,120 >> Kështu për shembull, ne kemi një lista e 3, 5, 2, 6, 4 herë. 1055 00:51:52,120 --> 00:51:54,750 Ne e dimë se kjo është aktualisht Unsorted sepse ne kemi vetëm 1056 00:51:54,750 --> 00:51:57,030 filloi duke kërkuar në atë. 1057 00:51:57,030 --> 00:52:00,610 Ne kemi marrë një sy dhe ne e dimë se vlera e parë është renditur, e drejtë? 1058 00:52:00,610 --> 00:52:04,190 Në qoftë se ju jeni vetëm në kërkim në një grup të një madhësi, ju e dini se është e renditura. 1059 00:52:04,190 --> 00:52:08,230 >> Pra, atëherë ne e dimë se katër të tjera janë Unsorted. 1060 00:52:08,230 --> 00:52:10,980 Ne do të shkojmë nëpër dhe ne e shohim këtë vlerë. 1061 00:52:10,980 --> 00:52:11,730 Le të kthehemi. 1062 00:52:11,730 --> 00:52:13,130 Shih se vlera e 5? 1063 00:52:13,130 --> 00:52:14,110 Ne kemi marrë një vështrim në atë. 1064 00:52:14,110 --> 00:52:15,204 Ne krahasojnë atë me 3. 1065 00:52:15,204 --> 00:52:17,870 Ne e dimë se kjo është më e madhe se 3, kështu që ne e dimë se kjo është renditura. 1066 00:52:17,870 --> 00:52:22,940 Pra, ne tani e dimë se dy të parat janë të renditura dhe tre të fundit nuk janë. 1067 00:52:22,940 --> 00:52:24,270 >> Ne kemi marrë një vështrim në 2. 1068 00:52:24,270 --> 00:52:25,720 Ne së pari të kontrolloni atë me 5. 1069 00:52:25,720 --> 00:52:26,700 A është më pak se 5? 1070 00:52:26,700 --> 00:52:27,240 Nuk është. 1071 00:52:27,240 --> 00:52:29,510 Pra, ne duhet të mbajnë në kërkim poshtë. 1072 00:52:29,510 --> 00:52:30,940 Pastaj ju shikoni 2 off 3. 1073 00:52:30,940 --> 00:52:31,850 A është më pak se? 1074 00:52:31,850 --> 00:52:32,350 Jo. 1075 00:52:32,350 --> 00:52:35,430 Pra, ju e dini se një 2 duhet të futet në pjesën e përparme dhe 3 dhe 5 1076 00:52:35,430 --> 00:52:38,200 të dy duhet të jetë shtyrë jashtë. 1077 00:52:38,200 --> 00:52:42,190 A kjo përsëri me 6 dhe 4. 1078 00:52:42,190 --> 00:52:48,962 Dhe ne vetëm i mbajnë kontrollin në thelb, ku ne vetëm kontrolloni, kontrolloni, kontrolloni. 1079 00:52:48,962 --> 00:52:51,170 Dhe derisa kjo është në të djathtë pozicion, ne lloj i vetëm 1080 00:52:51,170 --> 00:52:54,890 futur atë në pozitën e drejtë, i cili është ku emri i saj erdhi nga. 1081 00:52:54,890 --> 00:52:59,830 >> Pra, kjo është vetëm algorithm, pseudokod në vetvete, lloj, 1082 00:52:59,830 --> 00:53:04,990 se si ne do të zbatojë një lloj futje. 1083 00:53:04,990 --> 00:53:05,954 Pseudokod është këtu. 1084 00:53:05,954 --> 00:53:06,620 Kjo është e gjitha në internet. 1085 00:53:06,620 --> 00:53:10,720 Nuk shqetësohet nëse ju djema janë duke u përpjekur të kopjoni këtë poshtë. 1086 00:53:10,720 --> 00:53:14,500 Pra edhe një herë, njëjtë question-- çfarë do të jetë më e mirë dhe më të këqija runtimes 1087 00:53:14,500 --> 00:53:16,120 për futje lloj? 1088 00:53:16,120 --> 00:53:17,750 Është shumë e ngjashme me pyetjen e fundit. 1089 00:53:17,750 --> 00:53:20,479 Unë do të ju jap djema, si, 30 sekonda për të menduar për këtë si edhe. 1090 00:53:20,479 --> 00:53:47,150 1091 00:53:47,150 --> 00:53:50,071 >> OK A ka dikush doni të më jep Runtime të keq? 1092 00:53:50,071 --> 00:53:50,570 Po. 1093 00:53:50,570 --> 00:53:51,490 >> Audienca: katror n. 1094 00:53:51,490 --> 00:53:52,573 >> ANDI Peng: Është katror n. 1095 00:53:52,573 --> 00:53:53,730 Dhe pse është katror n? 1096 00:53:53,730 --> 00:53:57,562 >> Audienca: Sepse në mënyrë të kundërt, ju keni 1097 00:53:57,562 --> 00:54:02,619 për të shkuar nëpër kohë n n, e cila is-- 1098 00:54:02,619 --> 00:54:03,660 ANDI Peng: Po, pikërisht. 1099 00:54:03,660 --> 00:54:06,610 Pra, e njëjta gjë si në lloj flluskë. 1100 00:54:06,610 --> 00:54:08,720 Nëse kjo listë është në rend zbritës, ju jeni 1101 00:54:08,720 --> 00:54:11,240 do të duhet të kontrolloni herë të parë. 1102 00:54:11,240 --> 00:54:13,470 Dhe pastaj me çdo Vlera shtesë, ju jeni 1103 00:54:13,470 --> 00:54:16,390 do të duhet për të kontrolluar atë kundër çdo vlerë e vetme, e drejtë? 1104 00:54:16,390 --> 00:54:20,290 Dhe kështu krejt, ju do të jeni për të bërë Pasimi n herë tjetër n kalojnë, e cila 1105 00:54:20,290 --> 00:54:21,750 është katror n. 1106 00:54:21,750 --> 00:54:22,860 Po në lidhje me rastin më të mirë? 1107 00:54:22,860 --> 00:54:24,360 Po. 1108 00:54:24,360 --> 00:54:28,840 >> Audienca: n minus 1, sepse i pari është katror tashmë. 1109 00:54:28,840 --> 00:54:30,270 >> ANDI Peng: Pra, të ngushtë. 1110 00:54:30,270 --> 00:54:31,850 Përgjigja është në fakt n. 1111 00:54:31,850 --> 00:54:37,189 Sepse, ndërsa i pari është renditura, ajo nuk mund të actually-- atë 1112 00:54:37,189 --> 00:54:38,980 ne vetëm pati fatin që, në se shembulli, se 2 1113 00:54:38,980 --> 00:54:40,930 ka ndodhur të jetë numër më i vogël. 1114 00:54:40,930 --> 00:54:43,680 Por kjo nuk do të jetë gjithmonë rasti. 1115 00:54:43,680 --> 00:54:48,040 Nëse 2 është renditur tashmë në fillim por ju shikoni dhe ka një 1 këtu, 1116 00:54:48,040 --> 00:54:49,144 në 1 do të përplasem atë. 1117 00:54:49,144 --> 00:54:51,060 Dhe kjo do të përfundojë duke u bumped anyways. 1118 00:54:51,060 --> 00:54:56,250 >> Pra, në rastin më të mirë, kjo është në fakt vetëm do të jetë n. 1119 00:54:56,250 --> 00:54:59,090 Nëse kanë 1, 2, 3, 4, 5, 6, 7, 8, ju jeni 1120 00:54:59,090 --> 00:55:00,940 duke shkuar për të drejtuar përmes se gjithë listën dikur 1121 00:55:00,940 --> 00:55:03,430 për të kontrolluar për të parë nëse çdo gjë gjobës së. 1122 00:55:03,430 --> 00:55:07,390 Është e të gjithë të qartë në drejtimin kohët e përzgjedhjes si? 1123 00:55:07,390 --> 00:55:09,960 Unë e di unë jam duke shkuar nëpër këto të vërtetë të shpejtë. 1124 00:55:09,960 --> 00:55:13,330 Por vetëm e di se në qoftë se ju e dini koncepte të përgjithshme, ju duhet të jetë mirë. 1125 00:55:13,330 --> 00:55:16,070 NE RREGULL. 1126 00:55:16,070 --> 00:55:19,790 Kështu që unë vetëm do të ju jap djema ndoshta, si, një minutë për të biseduar me fqinjët tuaj 1127 00:55:19,790 --> 00:55:21,890 në atë që janë vetëm disa nga dallimet kryesore 1128 00:55:21,890 --> 00:55:23,540 në mes të këtyre llojeve të terezi. 1129 00:55:23,540 --> 00:56:24,571 1130 00:56:24,571 --> 00:56:25,570 Ne do të shkojnë mbi atë së shpejti. 1131 00:56:25,570 --> 00:56:26,444 Audienca: Oh, OK. 1132 00:56:26,444 --> 00:56:27,320 ANDI Peng: Po. 1133 00:56:27,320 --> 00:56:28,380 NE RREGULL. 1134 00:56:28,380 --> 00:56:33,420 Cool, le të mblidhen si një klasë. 1135 00:56:33,420 --> 00:56:34,330 NE RREGULL. 1136 00:56:34,330 --> 00:56:37,579 Pra, kjo ishte lloj i një pyetje me fund të hapur, në kuptimin 1137 00:56:37,579 --> 00:56:39,120 se ka shumë përgjigje për to. 1138 00:56:39,120 --> 00:56:40,746 Dhe ne do të shkoj për disa prej tyre shkurtimisht. 1139 00:56:40,746 --> 00:56:43,411 Unë vetëm të kërkuar për të marrë ju djema duke menduar për atë diferencuar 1140 00:56:43,411 --> 00:56:44,530 të tre llojet e llojeve. 1141 00:56:44,530 --> 00:56:47,440 Dhe dëgjova, gjithashtu, një i madh question-- çfarë do të bashkojë lloj bëj? 1142 00:56:47,440 --> 00:56:50,110 Pyetje e madhe, sepse kjo është ajo që ne jemi duke mbuluar të ardhshëm. 1143 00:56:50,110 --> 00:56:52,850 >> Pra bashkojë lloj është një lloj që funksionon 1144 00:56:52,850 --> 00:56:56,100 shumë ndryshe nga llojet e tjera. 1145 00:56:56,100 --> 00:56:58,180 Siç ju djema mund të see-- bëri Davidi bërë këtë demo 1146 00:56:58,180 --> 00:57:01,130 ku ai kishte të gjitha të ftohur zhurmat e duke parë se si të bashkohen 1147 00:57:01,130 --> 00:57:04,010 lloj vrapoi, si, pafundësisht më shpejt se të dy llojet e tjera? 1148 00:57:04,010 --> 00:57:04,510 NE RREGULL. 1149 00:57:04,510 --> 00:57:07,580 Pra, kjo është për shkak shkrihen lloj zbaton që ndajnë 1150 00:57:07,580 --> 00:57:11,020 dhe të pushtuar konceptin që ne kemi biseduar rreth një shumë në leksion. 1151 00:57:11,020 --> 00:57:14,550 Në këtë kuptim që ne si të punojmë zgjuar, jo më shumë, kur ju ndani 1152 00:57:14,550 --> 00:57:18,120 dhe të pushtuar probleme, dhe thyejnë ato poshtë, dhe pastaj të vënë ata së bashku, 1153 00:57:18,120 --> 00:57:19,930 gjërat e mira ndodhin gjithmonë. 1154 00:57:19,930 --> 00:57:21,960 >> Kështu mënyrë që bashkohen lloj thelb punon 1155 00:57:21,960 --> 00:57:24,660 është se ajo ndan një array Unsorted në gjysmë. 1156 00:57:24,660 --> 00:57:26,500 Dhe pastaj ai e mori dy gjysmave të vargjeve. 1157 00:57:26,500 --> 00:57:28,220 Dhe vetëm ajo i klasifikon ato dy pjesët. 1158 00:57:28,220 --> 00:57:31,750 Vetëm ajo mban e ndarë në gjysmë, në gjysmë, në gjysmë derisa çdo gjë është renditur 1159 00:57:31,750 --> 00:57:33,680 dhe pastaj Recursively vë atë të gjithë së bashku. 1160 00:57:33,680 --> 00:57:36,550 >> Pra, kjo është me të vërtetë abstrakte. 1161 00:57:36,550 --> 00:57:38,750 Pra, kjo është vetëm një grimë e pseudokod. 1162 00:57:38,750 --> 00:57:41,040 A ka kuptim që në mënyrën se si ajo është drejtimin? 1163 00:57:41,040 --> 00:57:43,870 Pra, le të them vetëm se ju keni një sërë elementesh n, e drejtë? 1164 00:57:43,870 --> 00:57:45,450 Nëse n është më pak se 2, ju mund të kthehet. 1165 00:57:45,450 --> 00:57:49,040 Sepse ju e dini se në qoftë se ka vetëm një gjë, ajo duhet të ndahen. 1166 00:57:49,040 --> 00:57:52,600 Tjetër, ju lloj gjysmën e majtë, dhe pastaj ju lloj gjysmën e djathtë, 1167 00:57:52,600 --> 00:57:54,140 dhe pastaj ju bashkojë. 1168 00:57:54,140 --> 00:57:56,979 >> Kështu, ndërsa kjo duket me të vërtetë e lehtë, në të vërtetë, duke menduar në lidhje me të është 1169 00:57:56,979 --> 00:58:00,270 lloj i vështirë. Sepse ju jeni si, pra, kjo është lloj i konkurrojnë në vetvete. 1170 00:58:00,270 --> 00:58:00,769 E drejtë? 1171 00:58:00,769 --> 00:58:02,430 Është kandidon për vete. 1172 00:58:02,430 --> 00:58:05,479 Pra, në këtë kuptim, David prekur mbi recursion në klasë. 1173 00:58:05,479 --> 00:58:07,270 Dhe kjo është një koncept ne do të flasim më shumë. 1174 00:58:07,270 --> 00:58:11,430 Është se kjo, këto dy linja këtu, në fakt është vetëm programi 1175 00:58:11,430 --> 00:58:13,860 thënë atë për të kandiduar vetë me të dhëna të ndryshme. 1176 00:58:13,860 --> 00:58:17,230 Pra, në vend se të kandidojë vetë me tërësia e elementeve n, 1177 00:58:17,230 --> 00:58:20,530 ju mund të thyejnë atë poshtë në gjysma e majtë dhe gjysma e drejtë 1178 00:58:20,530 --> 00:58:22,680 dhe pastaj të drejtuar atë përsëri. 1179 00:58:22,680 --> 00:58:26,050 >> Dhe pastaj ne do të shohim në atë shikimi, sepse unë jam një nxënës vizual. 1180 00:58:26,050 --> 00:58:27,270 Ajo punon më mirë për mua. 1181 00:58:27,270 --> 00:58:29,890 Pra, ne do të shikojmë një shembull vizual këtu. 1182 00:58:29,890 --> 00:58:36,237 >> Le të themi se kemi një rrjet, gjashtë elemente, 3, 5, 2, 6, 4, 1, jo renditura. 1183 00:58:36,237 --> 00:58:37,820 Të gjithë të drejtë, nuk është një shumë në këtë faqe. 1184 00:58:37,820 --> 00:58:43,179 Pra, në qoftë se ju djema mund të shikoni në hapi i parë këtu, 3, 5, 2, 6, 4, 1, 1185 00:58:43,179 --> 00:58:44,220 ju mund të ndarë atë në gjysmë. 1186 00:58:44,220 --> 00:58:45,976 Të ketë 3, 5, 2, 6, 4, 1. 1187 00:58:45,976 --> 00:58:48,850 Ju e dini se këto aren't-- ju nuk e di nëse ata janë të renditura ose jo, 1188 00:58:48,850 --> 00:58:52,517 kështu që ju mbani thyer ato, në gjysmë, në gjysmë, në gjysmë, deri në fund, 1189 00:58:52,517 --> 00:58:53,600 ju keni vetëm një element. 1190 00:58:53,600 --> 00:58:56,790 Dhe një element është renditur gjithmonë, e drejtë? 1191 00:58:56,790 --> 00:59:01,560 >> Në mënyrë që të di se 3, 5, 2, 4, 6, 1, me veten e tyre, janë të renditura. 1192 00:59:01,560 --> 00:59:05,870 Dhe tani ne mund të vënë ato përsëri së bashku. 1193 00:59:05,870 --> 00:59:07,510 Pra, ne e dimë 3, 5. 1194 00:59:07,510 --> 00:59:08,510 Ne kemi vënë ata së bashku. 1195 00:59:08,510 --> 00:59:09,617 Ne e dimë se është e renditura. 1196 00:59:09,617 --> 00:59:10,450 Të 2 është ende atje. 1197 00:59:10,450 --> 00:59:11,830 Ne mund të vënë 4 dhe 6 së bashku. 1198 00:59:11,830 --> 00:59:13,996 Ne e dimë se kjo është renditura, kështu që ne kemi vënë së bashku se. 1199 00:59:13,996 --> 00:59:14,940 Dhe 1 është atje. 1200 00:59:14,940 --> 00:59:18,720 >> Dhe pastaj ju vetëm shikoni në këto dy gjysmat e drejtë këtu. 1201 00:59:18,720 --> 00:59:21,300 Ke 3, 5, 2, 2, 3, 5. 1202 00:59:21,300 --> 00:59:23,465 Ju mund të krahasoni vetëm fillimi i çdo gjëje. 1203 00:59:23,465 --> 00:59:26,340 Sepse ju e dini se kjo është renditur dhe ju e dini se që është renditura. 1204 00:59:26,340 --> 00:59:29,360 Pra, atëherë ju nuk duhet edhe të krahasoni 5, ju vetëm krahasoni 3. 1205 00:59:29,360 --> 00:59:32,070 Dhe 2 është më pak se 3, kështu që ju e dini se 2 duhet të shkoni në fund. 1206 00:59:32,070 --> 00:59:33,120 >> E njëjta gjë atje. 1207 00:59:33,120 --> 00:59:34,740 Në 1 duhet të shkoni këtu. 1208 00:59:34,740 --> 00:59:37,330 Dhe pastaj kur ju shkoni për të vënë këto dy vlera së bashku, 1209 00:59:37,330 --> 00:59:39,950 ju e dini se kjo është renditur dhe ju e dini se kjo është e renditura. 1210 00:59:39,950 --> 00:59:43,240 Pra, atëherë 1 dhe 2, 1 është më pak se 2. 1211 00:59:43,240 --> 00:59:45,570 Kjo ju tregon se 1 duhet të shkojnë në fund të kësaj 1212 00:59:45,570 --> 00:59:47,480 edhe pa e kërkuar në 3 ose 5. 1213 00:59:47,480 --> 00:59:50,100 Dhe pastaj 4, ju mund vetëm kontrolloni, ajo shkon drejtë në këtu. 1214 00:59:50,100 --> 00:59:51,480 Ju nuk duhet të shikoni në 5. 1215 00:59:51,480 --> 00:59:52,570 E njëjta gjë me 6. 1216 00:59:52,570 --> 00:59:55,860 Ju e dini që 6-- ajo vetëm nuk ka nevojë që të shikohen. 1217 00:59:55,860 --> 00:59:57,870 >> Dhe kështu në këtë mënyrë, ju jeni vetëm kursim veten 1218 00:59:57,870 --> 00:59:59,526 shumë hapa, kur ju jeni duke krahasuar. 1219 00:59:59,526 --> 01:00:02,150 Ju nuk keni për të krahasuar çdo element kundër elementeve të tjera. 1220 01:00:02,150 --> 01:00:05,230 Ju vetëm krahasoni kundër atyre se ju duhet të krahasojnë atë kundër. 1221 01:00:05,230 --> 01:00:06,870 Pra, kjo është lloj i një koncept abstrakt. 1222 01:00:06,870 --> 01:00:10,540 Nuk shqetësohet nëse kjo nuk është mjaft të goditur të drejtë ende. 1223 01:00:10,540 --> 01:00:14,740 Por në përgjithësi, kjo është si një lloj bashkojë punon. 1224 01:00:14,740 --> 01:00:17,750 Pyetje, pyetje të shpejtë, para se të lëvizë? 1225 01:00:17,750 --> 01:00:18,550 Po. 1226 01:00:18,550 --> 01:00:22,230 >> Audienca: Pra, ju tha se ju merrni 1, dhe pastaj 4 dhe 6 1227 01:00:22,230 --> 01:00:23,860 dhe vënë ato në. 1228 01:00:23,860 --> 01:00:26,800 Pra, nuk janë those-- nuk janë ju në kërkim të tyre 1229 01:00:26,800 --> 01:00:28,544 si elemente të veçanta, jo si tërësi? 1230 01:00:28,544 --> 01:00:29,210 ANDI Peng: Po. 1231 01:00:29,210 --> 01:00:32,020 Pra, çfarë po ndodh është se ju në thelb 1232 01:00:32,020 --> 01:00:33,650 janë duke krijuar një koleksion të ri fringo. 1233 01:00:33,650 --> 01:00:36,690 Pra, ju e dini se, këtu, unë kam dy vargjeve të madhësisë 3, e drejtë? 1234 01:00:36,690 --> 01:00:39,600 Pra, ju e dini se array tim renditura duhet të ketë gjashtë elemente. 1235 01:00:39,600 --> 01:00:42,270 Kështu që ju vetëm të krijojë një Shuma e re e kujtesës. 1236 01:00:42,270 --> 01:00:44,270 Pra, ju jeni lloj i si duke qenë të kota e kujtesës, 1237 01:00:44,270 --> 01:00:46,186 por kjo nuk ka rëndësi sepse është kaq i vogël. 1238 01:00:46,186 --> 01:00:48,590 Kështu që ju shikoni në 1 dhe ju shikoni në 2. 1239 01:00:48,590 --> 01:00:50,770 Dhe ju e dini se 1 është më pak se 2. 1240 01:00:50,770 --> 01:00:53,840 Pra, ju e dini se 1 duhet të shkojnë në fillimi i të gjithë atyre. 1241 01:00:53,840 --> 01:00:55,850 >> Ju nuk keni nevojë edhe për të shikoni në 3 dhe 5. 1242 01:00:55,850 --> 01:00:57,400 Pra, ju e dini se 1 shkon atje. 1243 01:00:57,400 --> 01:00:59,300 Pastaj ju në thelb pres off 1. 1244 01:00:59,300 --> 01:01:00,370 Është, si, të vdekur për ne. 1245 01:01:00,370 --> 01:01:03,690 Atëherë ne vetëm duhet 2, 3, 5, dhe pastaj 4 dhe 6. 1246 01:01:03,690 --> 01:01:06,270 Dhe pastaj ju e dini se, ju krahasojnë 4 dhe 2, 1247 01:01:06,270 --> 01:01:07,560 oh, e 2 duhet të shkojnë në atje. 1248 01:01:07,560 --> 01:01:09,685 Pra, ju pllum e 2 poshtë, ju pres atë. 1249 01:01:09,685 --> 01:01:12,060 Pra, atëherë ju vetëm duhet të 3 dhe 5 në 4 dhe 6. 1250 01:01:12,060 --> 01:01:14,650 Dhe ju vetëm i mbajnë shëndoshë atë deri sa ju vënë ato në rrjet. 1251 01:01:14,650 --> 01:01:17,110 >> Audienca: Pra, ju jeni vetëm gjithmonë krahasuar [e padëgjueshme]? 1252 01:01:17,110 --> 01:01:17,710 >> ANDI Peng: Pikërisht. 1253 01:01:17,710 --> 01:01:19,590 Pra, në këtë kuptim, ju jeni vetëm krahasuar, në thelb, 1254 01:01:19,590 --> 01:01:21,240 një numër kundrejt numrit tjetër. 1255 01:01:21,240 --> 01:01:22,990 Dhe për shkak se ju e dini se ajo është renditur, ju 1256 01:01:22,990 --> 01:01:24,350 nuk kanë për të parë përmes të gjithë numrat. 1257 01:01:24,350 --> 01:01:25,870 Ju vetëm duhet të shikoni në një të parë. 1258 01:01:25,870 --> 01:01:27,582 Dhe atëherë ju vetëm mund të pllum ata poshtë, sepse ju e dini 1259 01:01:27,582 --> 01:01:29,640 ata i përkasin, ku ata duhet të takojnë. 1260 01:01:29,640 --> 01:01:31,030 Po. 1261 01:01:31,030 --> 01:01:32,920 Pyetje e mirë. 1262 01:01:32,920 --> 01:01:35,290 >> Dhe pastaj në qoftë se ndonjë nga ju janë pak ambicioz, 1263 01:01:35,290 --> 01:01:38,660 të ndjehen të lirë për të parë në këtë kod. 1264 01:01:38,660 --> 01:01:40,680 Kjo është në fakt zbatimi fizik 1265 01:01:40,680 --> 01:01:42,150 se si ne do të shkruaj bashkojë lloj. 1266 01:01:42,150 --> 01:01:44,070 Dhe ju mund të shihni, kjo është shumë e shkurtër. 1267 01:01:44,070 --> 01:01:46,310 Por idetë prapa ajo janë mjaft komplekse. 1268 01:01:46,310 --> 01:01:50,865 Pra, nëse ju ndjeheni si duke tërhequr këtë jashtë në sonte tuaj detyrave të shtëpisë, të ndjehen të lirë për të. 1269 01:01:50,865 --> 01:01:54,050 1270 01:01:54,050 --> 01:01:54,740 >> NE RREGULL. 1271 01:01:54,740 --> 01:01:58,070 Kështu Davidi shkoi mbi këtë në leksion. 1272 01:01:58,070 --> 01:02:00,660 Cilat janë rasti më i mirë runtimes, runtimes më të keq, 1273 01:02:00,660 --> 01:02:05,680 dhe runtimes pritshme të merge lloji? 1274 01:02:05,680 --> 01:02:07,260 Një çift sekonda për të menduar. 1275 01:02:07,260 --> 01:02:11,198 Kjo është shumë e vështirë, por lloji i intuitive në qoftë se ju mendoni rreth saj. 1276 01:02:11,198 --> 01:02:20,090 1277 01:02:20,090 --> 01:02:23,054 Në rregull. 1278 01:02:23,054 --> 01:02:25,269 >> Audienca: A është rasti më i keq n log n? 1279 01:02:25,269 --> 01:02:26,060 ANDI Peng: Pikërisht. 1280 01:02:26,060 --> 01:02:29,380 Dhe pse është n log n. 1281 01:02:29,380 --> 01:02:32,230 >> Audienca: Nuk është kjo për shkak të bëhet në mënyrë eksponenciale më të shpejtë, 1282 01:02:32,230 --> 01:02:35,390 kështu që është si një funksion të që në vend që thjesht të qenit n 1283 01:02:35,390 --> 01:02:37,529 katror apo diçka? 1284 01:02:37,529 --> 01:02:38,320 ANDI Peng: Pikërisht. 1285 01:02:38,320 --> 01:02:40,750 Pra, arsyeja pse Runtime për këtë është log n 1286 01:02:40,750 --> 01:02:44,310 n është because-- çfarë jeni bërë në të gjitha këto hapa? 1287 01:02:44,310 --> 01:02:46,190 Ju jeni vetëm i shëndoshë atë në gjysmë, e drejtë? 1288 01:02:46,190 --> 01:02:48,750 Dhe kështu, kur ne jemi duke bërë log, të gjitha që është e bërë 1289 01:02:48,750 --> 01:02:53,150 është duke e ndarë një problem në gjysmë, në gjysmë, në gjysmë, në më shumë pjesë. 1290 01:02:53,150 --> 01:02:56,430 Dhe në këtë kuptim, ju mund të lloj të eliminuar modelin linear 1291 01:02:56,430 --> 01:02:57,510 që ne kemi qenë duke përdorur. 1292 01:02:57,510 --> 01:03:00,254 Sepse kur ju pres gjërat në gjysmë, kjo është një log. 1293 01:03:00,254 --> 01:03:02,420 Kjo është vetëm matematikore Mënyra e përfaqëson atë. 1294 01:03:02,420 --> 01:03:06,310 >> Dhe pastaj në fund, në fund, ju jeni vetëm duke bërë një të kalojë përmes të fundit 1295 01:03:06,310 --> 01:03:07,930 për të vënë të gjitha prej tyre në mënyrë, e drejtë? 1296 01:03:07,930 --> 01:03:10,330 Dhe kështu që në qoftë se ju vetëm duhet të kontrolloni një gjë, kjo është n. 1297 01:03:10,330 --> 01:03:13,420 Dhe kështu që ju jeni lloj i shumëzuar dy së ​​bashku. 1298 01:03:13,420 --> 01:03:17,660 Pra, kjo është si ju keni marrë atë përfundimtar kontrolloni për N poshtë këtu me një regjistër të n 1299 01:03:17,660 --> 01:03:18,390 deri këtu. 1300 01:03:18,390 --> 01:03:21,060 Dhe nëse ju shumohen ata, që është n log n. 1301 01:03:21,060 --> 01:03:26,100 >> Dhe kështu rasti më i mirë dhe më të keq rast dhe pritet që janë të gjithë n log n. 1302 01:03:26,100 --> 01:03:27,943 Është gjithashtu si një tjetër lloji. 1303 01:03:27,943 --> 01:03:30,090 Është si përzgjedhjes lloj në kuptimin që ajo 1304 01:03:30,090 --> 01:03:32,131 nuk ka rëndësi se çfarë tuaj Lista është, ajo është vetëm duke shkuar 1305 01:03:32,131 --> 01:03:34,801 për të bërë të njëjtën gjë çdo herë të vetme. 1306 01:03:34,801 --> 01:03:35,300 NE RREGULL. 1307 01:03:35,300 --> 01:03:39,950 Pra, si ju djema mund të shohim, edhe pse Llojet që ne kemi shkuar through-- n 1308 01:03:39,950 --> 01:03:41,660 katror, ​​kjo nuk është shumë efikas. 1309 01:03:41,660 --> 01:03:47,060 Dhe, edhe kjo log n n është jo më efikase. 1310 01:03:47,060 --> 01:03:49,720 Nëse ju djema janë kurioz, nuk ka mekanizma lloj 1311 01:03:49,720 --> 01:03:54,310 që janë aq të efektshme që ata janë pothuajse në thelb banesë në kohën e duhur. 1312 01:03:54,310 --> 01:03:55,420 >> Ju keni marrë disa log n-së. 1313 01:03:55,420 --> 01:03:58,190 Ju keni marrë disa log n log. 1314 01:03:58,190 --> 01:04:00,330 Ne nuk prek mbi ta në këtë klasë të drejtë tani. 1315 01:04:00,330 --> 01:04:02,663 Por në qoftë se ju djema janë kurioz, të ndjehen të lirë për të google, çfarë është 1316 01:04:02,663 --> 01:04:04,392 mekanizmat më efikase klasifikim. 1317 01:04:04,392 --> 01:04:06,350 Unë nuk e di, ka disa nga ato me të vërtetë qesharake, 1318 01:04:06,350 --> 01:04:09,860 like-- ka disa me të vërtetë ato qesharake që njerëzit bëjnë. 1319 01:04:09,860 --> 01:04:12,210 Dhe ju pyes veten se si ata menduar ndonjëherë për këtë. 1320 01:04:12,210 --> 01:04:15,730 Pra google, në qoftë se ju keni disa rezervë kohë, në, çfarë janë disa mënyra qesharake 1321 01:04:15,730 --> 01:04:17,730 që people-- si edhe njerëz efikase ways-- 1322 01:04:17,730 --> 01:04:20,371 kanë qenë në gjendje të zbatojë llojet. 1323 01:04:20,371 --> 01:04:20,870 NE RREGULL. 1324 01:04:20,870 --> 01:04:22,880 Dhe këtu është vetëm një tabelë dobishëm pak. 1325 01:04:22,880 --> 01:04:26,850 Unë e di se të gjithë ju, para se të quiz 0, do të jetë në dhomën tuaj ndoshta duke u përpjekur 1326 01:04:26,850 --> 01:04:27,960 për të mësuar përmendësh atë. 1327 01:04:27,960 --> 01:04:30,940 Pra, kjo është e bukur në atje për ju djema. 1328 01:04:30,940 --> 01:04:37,120 Vetëm mos harroni logjikën që made-- pse ato numra ishin ndodhin. 1329 01:04:37,120 --> 01:04:39,870 Nëse ju jeni të humbur gjithmonë, vetëm të bëjë i sigurt që ju e dini se çfarë llojet janë. 1330 01:04:39,870 --> 01:04:40,820 Dhe ju mund të vazhdojë deri ata në mendjen tuaj 1331 01:04:40,820 --> 01:04:42,903 të kuptoj se pse ata Përgjigjet janë këto përgjigje. 1332 01:04:42,903 --> 01:04:46,250 1333 01:04:46,250 --> 01:04:47,600 >> Në rregull. 1334 01:04:47,600 --> 01:04:49,680 Pra, ne jemi duke shkuar për të lëvizur në, më në fund, në kërkim. 1335 01:04:49,680 --> 01:04:51,638 Sepse si ato prej jush të cilët e kanë lexuar pset, 1336 01:04:51,638 --> 01:04:55,175 kërkim është edhe pjesë e Problemi kësaj jave përcakton. 1337 01:04:55,175 --> 01:04:57,300 Ju do të kërkohet për të zbatuar dy lloje të kërkimeve. 1338 01:04:57,300 --> 01:05:00,070 Njëra është një kërkim linear dhe një është një kërkim binar. 1339 01:05:00,070 --> 01:05:01,760 >> Pra, kërkimi linear është mjaft e lehtë. 1340 01:05:01,760 --> 01:05:04,070 Ju vetëm dëshironi të kërkoni element e një liste për të parë nëse ju merrni atë. 1341 01:05:04,070 --> 01:05:05,444 Ju thjesht duhet të iterate nëpër. 1342 01:05:05,444 --> 01:05:08,170 Dhe në qoftë se ajo është e barabartë me diçka, ju vetëm mund të kthejë atë, e drejtë? 1343 01:05:08,170 --> 01:05:10,890 Por ai që ne jemi më të interesuar në duke folur për 1344 01:05:10,890 --> 01:05:14,550 është search binar, e drejtë, që është të ndarë dhe të mekanizmit të pushtuar që 1345 01:05:14,550 --> 01:05:18,190 Davidi u demonstruar në leksion. 1346 01:05:18,190 --> 01:05:20,810 >> Mos harroni shembullin librin e telefonit se ai vazhdon të sjellë lart, 1347 01:05:20,810 --> 01:05:23,960 ai që ai lloj i luftuan pak në këtë vit të kaluar, 1348 01:05:23,960 --> 01:05:27,530 ku ju ndani problemin në gjysmë, në gjysmë, në gjysmë, përsëri dhe përsëri, 1349 01:05:27,530 --> 01:05:30,730 derisa ju të gjeni atë që ju po kërkoni? 1350 01:05:30,730 --> 01:05:33,727 Dhe ju keni marrë Runtime e se si. 1351 01:05:33,727 --> 01:05:35,810 Dhe ju mund të shihni, është në mënyrë të konsiderueshme më të efektshme 1352 01:05:35,810 --> 01:05:39,080 se çdo lloj tjetër të kërkimit. 1353 01:05:39,080 --> 01:05:41,880 >> Pra, mënyra se si ne do të shkojnë për zbatimin e një kërkim binar 1354 01:05:41,880 --> 01:05:46,510 është, nëse do të kishim një rrjet, indeks 0 në 6, shtatë elementë, 1355 01:05:46,510 --> 01:05:49,790 ne mund të shikojmë në mes, right-- keq, në qoftë se pyetjes sonë first-- 1356 01:05:49,790 --> 01:05:53,840 në qoftë se ne duam të kërkojë pyetjen e, bën array përmbajnë elementin e 7, 1357 01:05:53,840 --> 01:05:56,840 natyrisht, duke qenë njerëzit, dhe duke pasur tillë një grup i vogël, është e lehtë për ne 1358 01:05:56,840 --> 01:05:58,210 për të thënë po. 1359 01:05:58,210 --> 01:06:05,750 Por mënyra për të zbatuar një binar Kërkimi do të jetë për të parë në mes. 1360 01:06:05,750 --> 01:06:08,020 >> Ne e dimë se indeksi 3 është e mesme, sepse ne 1361 01:06:08,020 --> 01:06:09,270 e di se ka shtatë elemente. 1362 01:06:09,270 --> 01:06:10,670 Çfarë 7 ndarë nga 2? 1363 01:06:10,670 --> 01:06:12,850 Ju mund të pres jashtë se Extra 1. 1364 01:06:12,850 --> 01:06:14,850 Ju keni marrë 3 në mes. 1365 01:06:14,850 --> 01:06:17,590 Pra, është grup i 3 barabartë me 7? 1366 01:06:17,590 --> 01:06:18,900 Kjo nuk është, apo jo? 1367 01:06:18,900 --> 01:06:21,050 Por ne mund të bëjë një çift të kontrolleve. 1368 01:06:21,050 --> 01:06:25,380 Është grup i 3 më pak se 7 ose është grup i 3 më i madh se 7? 1369 01:06:25,380 --> 01:06:27,240 >> Dhe ne e dimë se kjo është më pak se 7. 1370 01:06:27,240 --> 01:06:30,259 Pra, ne e dimë se, oh, ajo duhet të të mos jetë në gjysmën e majtë. 1371 01:06:30,259 --> 01:06:32,300 Ne e dimë se ajo duhet të jetë në gjysmën e djathtë, e drejtë? 1372 01:06:32,300 --> 01:06:34,662 Pra, ne vetëm mund të pres jashtë gjysmën e array. 1373 01:06:34,662 --> 01:06:36,370 Ne nuk kemi as të shikojnë atë më. 1374 01:06:36,370 --> 01:06:38,711 Sepse ne e dimë se gjysma e problem-- tonë 1375 01:06:38,711 --> 01:06:41,210 ne e dimë se përgjigja është në gjysma e drejta e problemit tonë. 1376 01:06:41,210 --> 01:06:42,580 Pra, ne vetëm shikoni në atë tani. 1377 01:06:42,580 --> 01:06:44,860 >> Deri tani ne shikojmë në mes të asaj që ka mbetur. 1378 01:06:44,860 --> 01:06:46,880 Se indeksi 5. 1379 01:06:46,880 --> 01:06:50,200 Ne bëjmë të njëjtën kontroll përsëri dhe ne e shohim se kjo është më e vogël. 1380 01:06:50,200 --> 01:06:52,050 Pra, ne shikojmë në të majtë të kësaj. 1381 01:06:52,050 --> 01:06:53,430 Dhe pastaj ne e shohim këtë kontroll. 1382 01:06:53,430 --> 01:06:57,600 Është vlera array në indeks 4 barabartë me 7? 1383 01:06:57,600 --> 01:06:58,260 Eshte. 1384 01:06:58,260 --> 01:07:03,580 Pra, ne mund të kthehen vërtetë, sepse kemi gjetur vlerën në listën tonë. 1385 01:07:03,580 --> 01:07:06,738 A mënyrën se unë shkova me që kanë kuptim për të gjithë? 1386 01:07:06,738 --> 01:07:08,760 NE RREGULL. 1387 01:07:08,760 --> 01:07:11,670 Unë do të ju jap djema ndoshta, si, tre, katër minuta për të kuptoj se 1388 01:07:11,670 --> 01:07:13,270 si ta pseudokod këtë në. 1389 01:07:13,270 --> 01:07:18,070 >> Pra, imagjinoni I pyetur ju për të shkruar një Funksioni i quajtur kërkimit () që u kthye 1390 01:07:18,070 --> 01:07:20,640 një vlerë, një vlerë Boolean, kjo ishte e vërtetë apo false-- si, 1391 01:07:20,640 --> 01:07:22,970 e vërtetë në qoftë se ju gjetur Vlera, false në qoftë se ju nuk e keni. 1392 01:07:22,970 --> 01:07:25,230 Dhe pastaj ju ishit kaloi në vlerën e ju 1393 01:07:25,230 --> 01:07:28,410 janë në kërkim për në vlera, të cilat është array-- oh, unë patjetër vënë 1394 01:07:28,410 --> 01:07:29,410 që në vendin e gabuar. 1395 01:07:29,410 --> 01:07:29,580 NE RREGULL. 1396 01:07:29,580 --> 01:07:31,829 Anyways, që duhet të ketë qenë në të djathtë e vlerave. 1397 01:07:31,829 --> 01:07:36,280 Dhe pastaj int n është numri i elementeve në atë rrjet. 1398 01:07:36,280 --> 01:07:39,430 Si do të ju shkoni në lidhje me duke u përpjekur të pseudokod këtë problem në? 1399 01:07:39,430 --> 01:07:41,630 Unë do të ju jap djema si tre minuta për të bërë këtë. 1400 01:07:41,630 --> 01:08:00,137 1401 01:08:00,137 --> 01:08:02,595 Jo, unë mendoj se ka only-- Po, ka një të drejtë deri këtu. 1402 01:08:02,595 --> 01:08:03,261 Audienca: A mund unë? 1403 01:08:03,261 --> 01:08:04,388 ANDI Peng: Po, kam marrë ju. 1404 01:08:04,388 --> 01:08:09,410 1405 01:08:09,410 --> 01:08:11,050 A është kjo pune? 1406 01:08:11,050 --> 01:08:12,290 OK, i ftohtë. 1407 01:08:12,290 --> 01:10:43,590 1408 01:10:43,590 --> 01:10:44,720 >> NE RREGULL. 1409 01:10:44,720 --> 01:10:47,630 Të gjitha djema drejtë, ne jemi duke shkuar për të frenuar atë në. 1410 01:10:47,630 --> 01:10:49,730 NE RREGULL. 1411 01:10:49,730 --> 01:10:54,020 Pra, supozojmë ne kemi marrë kjo bukuroshe pak grup me vlerat n në të. 1412 01:10:54,020 --> 01:10:55,170 Unë nuk e kam nxjerrë linja. 1413 01:10:55,170 --> 01:10:58,649 Por si do të shkojmë në lidhje duke u përpjekur për të shkruar këtë? 1414 01:10:58,649 --> 01:11:00,440 A ka dikush duan të më jep vijën e parë? 1415 01:11:00,440 --> 01:11:02,814 Nëse ju doni të jepni vija e parë e këtij pseudokod. 1416 01:11:02,814 --> 01:11:06,563 1417 01:11:06,563 --> 01:11:08,430 >> Audienca: [padëgjueshme] 1418 01:11:08,430 --> 01:11:10,138 Audienca: Ju do të doni të iterate through-- 1419 01:11:10,138 --> 01:11:11,094 Audienca: Vetëm një tjetër për lak? 1420 01:11:11,094 --> 01:11:11,760 Audienca: --for. 1421 01:11:11,760 --> 01:11:15,880 1422 01:11:15,880 --> 01:11:17,780 >> ANDI Peng: Pra, kjo është pak i ndërlikuar. 1423 01:11:17,780 --> 01:11:23,130 Mendoni? Për ju doni për të mbajtur drejtimin e këtij loop 1424 01:11:23,130 --> 01:11:27,950 pa pushim deri kur? 1425 01:11:27,950 --> 01:11:30,819 >> Audienca: Deri në [e padëgjueshme] vlerë është e barabartë me atë vlerë. 1426 01:11:30,819 --> 01:11:31,610 ANDI Peng: Pikërisht. 1427 01:11:31,610 --> 01:11:33,900 Kështu që ju mund të vërtetë vetëm write-- ne mund edhe të thjeshtojë atë më. 1428 01:11:33,900 --> 01:11:35,630 Ne mund të bëjë vetëm një lak, ndërsa, e drejtë? 1429 01:11:35,630 --> 01:11:39,380 Kështu që ju mund të ketë vetëm loop-- ne e dimë se kjo është një kohë. 1430 01:11:39,380 --> 01:11:42,850 Por për tani, unë jam duke shkuar të thonë "lak" - me çfarë? 1431 01:11:42,850 --> 01:11:46,640 Loop until-- ajo që është gjendja jonë i dhënë fund? 1432 01:11:46,640 --> 01:11:47,510 Unë mendoj se kam dëgjuar atë. 1433 01:11:47,510 --> 01:11:48,530 Kam dëgjuar dikë të thotë atë. 1434 01:11:48,530 --> 01:11:51,255 >> Audienca: Vlerat e barabartë qendër. 1435 01:11:51,255 --> 01:11:52,255 ANDI Peng: Thuaj atë përsëri. 1436 01:11:52,255 --> 01:11:54,470 Audienca: Ose, derisa Vlera e ju jeni në kërkim 1437 01:11:54,470 --> 01:11:58,470 për të është e barabartë me vlerën e mesme. 1438 01:11:58,470 --> 01:12:00,280 >> ANDI Peng: Çfarë ndodh nëse nuk është në atje? 1439 01:12:00,280 --> 01:12:03,113 Çfarë nëse vlera ju jeni në kërkim sepse nuk është në fakt në këtë grup? 1440 01:12:03,113 --> 01:12:05,890 Audienca: Ti kthehen 1. 1441 01:12:05,890 --> 01:12:08,850 >> ANDI Peng: Por ajo që duam të lak derisa në qoftë se ne kemi një gjendje? 1442 01:12:08,850 --> 01:12:09,350 Po. 1443 01:12:09,350 --> 01:12:11,239 >> Audienca: Derisa ka vetëm një vlerë? 1444 01:12:11,239 --> 01:12:13,530 ANDI Peng: Ju mund të loop until-- kështu që ju e dini që ju jeni 1445 01:12:13,530 --> 01:12:15,714 do të ketë një vlerë max, e drejtë? 1446 01:12:15,714 --> 01:12:18,130 Dhe ju e dini se ju do të jeni të ketë një vlerë min, apo jo? 1447 01:12:18,130 --> 01:12:20,379 Sepse ashtu, kjo është diçka Kam harruar të them më parë, 1448 01:12:20,379 --> 01:12:22,640 kjo diçka që është kritik për kërkimin binar 1449 01:12:22,640 --> 01:12:24,182 është se grup juaj është renditur tashmë. 1450 01:12:24,182 --> 01:12:26,973 Sepse nuk ka asnjë mënyrë për të bërë kjo nëse ata janë vlera të vetëm të rastit. 1451 01:12:26,973 --> 01:12:29,190 Ju nuk e dini nëse dikush është më i madh se tjetri, e drejtë? 1452 01:12:29,190 --> 01:12:32,720 >> Pra, ju e dini se max tuaj dhe min tuaj këtu, apo jo? 1453 01:12:32,720 --> 01:12:35,590 Nëse ju do të jeni të përshtatur max juaj në minuta tuaja dhe mid-- 1454 01:12:35,590 --> 01:12:38,470 le të supozojmë tuaj Vlera e mesit është here-- e drejtë 1455 01:12:38,470 --> 01:12:43,910 ju jeni do të në thelb lak deri minimale juaj është 1456 01:12:43,910 --> 01:12:47,510 pothuajse i njëjtë si max juaj, të drejtë, ose nëse max juaj nuk është i njëjtë si min tuaj. 1457 01:12:47,510 --> 01:12:48,040 E drejtë? 1458 01:12:48,040 --> 01:12:51,340 Sepse kur kjo ndodh, ju e dini se ju përfundimisht keni goditur të njëjtën vlerë. 1459 01:12:51,340 --> 01:12:59,135 Pra, ju doni të lak deri min tuaj është më pak se ose e barabartë to-- Oops, 1460 01:12:59,135 --> 01:13:01,510 jo me pak se ose te barabarte me, mënyra të tjera around-- max është. 1461 01:13:01,510 --> 01:13:15,110 1462 01:13:15,110 --> 01:13:16,160 >> E që të bëjnë kuptim? 1463 01:13:16,160 --> 01:13:18,810 Kam marrë një përpiqet pak për të marrë atë të drejtë. 1464 01:13:18,810 --> 01:13:21,869 Por lak deri vlerën tuaj max është në thelb pothuajse më pak 1465 01:13:21,869 --> 01:13:23,410 se ose e barabartë me minimum tuaj, apo jo? 1466 01:13:23,410 --> 01:13:25,201 Kjo është kur ju e dini që e keni converged. 1467 01:13:25,201 --> 01:13:29,290 Audienca: Kur do maksimale juaj Vlera të jetë më pak se minimumi? 1468 01:13:29,290 --> 01:13:31,040 ANDI Peng: Në qoftë se ju mbani përshtatur atë që 1469 01:13:31,040 --> 01:13:32,380 është ajo që ne jemi duke shkuar të jetë bërë në këtë. 1470 01:13:32,380 --> 01:13:33,460 A ka kjo kuptim? 1471 01:13:33,460 --> 01:13:35,750 Minimale dhe max janë vetëm integers se ne jemi ndoshta 1472 01:13:35,750 --> 01:13:39,260 do të duan të krijojnë të mbajnë gjurmët e ku ne jemi duke kërkuar. 1473 01:13:39,260 --> 01:13:41,790 Sepse array ekziston pavarësisht se çfarë jemi duke bërë. 1474 01:13:41,790 --> 01:13:45,030 Si, ne nuk jemi në fakt fizikisht kishte prerë grup, e drejtë? 1475 01:13:45,030 --> 01:13:47,261 Ne jemi vetëm rregullimin ku ne jemi duke kërkuar. 1476 01:13:47,261 --> 01:13:48,136 A ka kjo kuptim? 1477 01:13:48,136 --> 01:13:48,472 >> Audienca: Po. 1478 01:13:48,472 --> 01:13:49,110 >> ANDI Peng: OK. 1479 01:13:49,110 --> 01:13:57,090 Pra, nëse kjo është kusht për lak tonë, Çfarë duam brenda këtij lak? 1480 01:13:57,090 --> 01:13:58,700 Çfarë do të shkojmë për të dashur për të bërë? 1481 01:13:58,700 --> 01:14:02,390 Deri tani, ne kemi marrë një max dhe një min, e drejtë, 1482 01:14:02,390 --> 01:14:04,962 ndoshta e krijuar deri këtu diku. 1483 01:14:04,962 --> 01:14:07,170 Ne jemi duke shkuar për të ndoshta dëshironi për të gjetur një e mesme, të drejtë? 1484 01:14:07,170 --> 01:14:08,450 Si do të jetë gjendje për të gjetur e mesme? 1485 01:14:08,450 --> 01:14:09,491 Çfarë është mathematical-- 1486 01:14:09,491 --> 01:14:11,079 Audienca: Max Plus min ndarë nga 2. 1487 01:14:11,079 --> 01:14:11,870 ANDI Peng: Pikërisht. 1488 01:14:11,870 --> 01:14:20,300 1489 01:14:20,300 --> 01:14:21,620 A ka kjo kuptim? 1490 01:14:21,620 --> 01:14:25,780 Dhe ju djema shoh pse ne nuk ka vetëm use-- pse ne e bëmë këtë 1491 01:14:25,780 --> 01:14:27,850 në vend të bërë vetëm n ndarë nga 2? 1492 01:14:27,850 --> 01:14:30,310 Kjo është për shkak se n është një vlerë që do të mbetet e njëjtë. 1493 01:14:30,310 --> 01:14:30,979 E drejtë? 1494 01:14:30,979 --> 01:14:34,020 Por si ne të rregullojë minimale tonë dhe Vlerat maksimale, ata do të ndryshojë. 1495 01:14:34,020 --> 01:14:36,040 Dhe si rezultat, të mesëm ynë do të ndryshojë shumë. 1496 01:14:36,040 --> 01:14:37,873 Pra, kjo është arsyeja pse ne duam për të bërë këtë të drejtë këtu. 1497 01:14:37,873 --> 01:14:38,510 NE RREGULL. 1498 01:14:38,510 --> 01:14:41,600 >> Dhe pastaj, tani që ne kemi gjetur our-- vërtet. 1499 01:14:41,600 --> 01:14:44,270 >> Audienca: Vetëm një question-- shpejtë kur ju thoni min dhe max, 1500 01:14:44,270 --> 01:14:46,410 jemi duke supozuar se kjo është renditur tashmë? 1501 01:14:46,410 --> 01:14:48,400 >> ANDI Peng: Po, kjo është në fakt një parakusht për një kërkim binar, 1502 01:14:48,400 --> 01:14:49,816 që ju duhet të dini është e renditura. 1503 01:14:49,816 --> 01:14:53,660 Cila është arsyeja pse lloj, ju shkruani në tuaj Problemi vënë përpara kërkimin tuaj binar. 1504 01:14:53,660 --> 01:14:55,910 NE RREGULL. 1505 01:14:55,910 --> 01:14:58,876 Pra, tani që ne e dimë se ku midpoint ynë po, çfarë ju doni të bëni këtu? 1506 01:14:58,876 --> 01:15:01,789 1507 01:15:01,789 --> 01:15:04,319 >> Audienca: Ne duam për të krahasuar që në një tjetër. 1508 01:15:04,319 --> 01:15:05,110 ANDI Peng: Pikërisht. 1509 01:15:05,110 --> 01:15:12,280 Pra, ju jeni duke shkuar për të krahasuar në mes të vlerës, e drejtë? 1510 01:15:12,280 --> 01:15:14,900 1511 01:15:14,900 --> 01:15:18,670 Dhe çfarë do të thoni Na kur krahasojmë? 1512 01:15:18,670 --> 01:15:22,226 Çfarë duam të bëjmë më pas? 1513 01:15:22,226 --> 01:15:25,389 >> Audienca: Nëse vlera është më e madhe sesa mesi, ne duam ta preje. 1514 01:15:25,389 --> 01:15:26,180 ANDI Peng: Pikërisht. 1515 01:15:26,180 --> 01:15:33,940 Pra, nëse vlera është më e madhe sesa mesi, ne jemi 1516 01:15:33,940 --> 01:15:36,550 do të duan të ndryshojnë këto maxes minimale dhe, e drejtë? 1517 01:15:36,550 --> 01:15:38,980 Çfarë duam të ndryshojë? 1518 01:15:38,980 --> 01:15:42,145 Pra, nëse ne e dimë se vlera është diku në këtu, çfarë ju që të ndryshojë? 1519 01:15:42,145 --> 01:15:44,758 Ne duam të ndryshojmë tonë minimale të jetë në mes, e drejtë? 1520 01:15:44,758 --> 01:15:49,420 1521 01:15:49,420 --> 01:15:54,292 Dhe pastaj tjetër, në qoftë se është në këtë gjysmë, çfarë ne duam të ndryshojmë? 1522 01:15:54,292 --> 01:15:55,306 >> Audienca: maksimumi juaj. 1523 01:15:55,306 --> 01:15:55,972 ANDI Peng: Po. 1524 01:15:55,972 --> 01:16:02,597 1525 01:16:02,597 --> 01:16:04,680 Dhe pastaj ju jeni vetëm duke shkuar për të mbajtur looping, e drejtë? 1526 01:16:04,680 --> 01:16:08,920 Sepse tani, pas një përsëritje përmes, ju keni marrë një max këtu. 1527 01:16:08,920 --> 01:16:10,760 Dhe pastaj ju mund të rillogarisë një mesi. 1528 01:16:10,760 --> 01:16:11,990 Dhe pastaj ju mund të krahasohen. 1529 01:16:11,990 --> 01:16:14,766 Dhe ju jeni duke shkuar për të mbajtur vazhdim e sipër deri në minuta dhe maxes 1530 01:16:14,766 --> 01:16:15,890 kanë konverguar në thelb. 1531 01:16:15,890 --> 01:16:17,890 Dhe kjo është kur ju e dini se ju keni goditur në fund të tij. 1532 01:16:17,890 --> 01:16:20,280 Dhe as që ju keni gjetur atë apo ju nuk e keni në atë pikë. 1533 01:16:20,280 --> 01:16:23,170 >> A ka kjo kuptim për të gjithë? 1534 01:16:23,170 --> 01:16:26,020 1535 01:16:26,020 --> 01:16:26,770 NE RREGULL. 1536 01:16:26,770 --> 01:16:27,900 Kjo është shumë e rëndësishme, sepse ju do të keni 1537 01:16:27,900 --> 01:16:29,760 për të shkruar këtë në kodin sonte tuaj. 1538 01:16:29,760 --> 01:16:32,660 Por ju djema keni një mjaft të mirë kuptim të asaj që ju duhet të bëni, 1539 01:16:32,660 --> 01:16:34,051 e cila është e mirë. 1540 01:16:34,051 --> 01:16:34,550 NE RREGULL. 1541 01:16:34,550 --> 01:16:38,840 Pra, ne kemi marrë për shtatë minuta largua seksion. 1542 01:16:38,840 --> 01:16:43,170 Pra, ne jemi duke shkuar për të folur për kjo pset që ne do të bëjmë. 1543 01:16:43,170 --> 01:16:46,410 Pra pset është i ndarë në dy gjysma. 1544 01:16:46,410 --> 01:16:50,230 Gjysma e parë përfshin zbatimin e një gjeni 1545 01:16:50,230 --> 01:16:54,210 në të cilën ju shkruani një kërkim linear, një kërko binar, dhe një algoritmi klasifikim. 1546 01:16:54,210 --> 01:16:56,690 >> Pra, kjo është e para kohë në një pset ku 1547 01:16:56,690 --> 01:17:00,050 ne do të jetë duke ju djema atë që e quajti Kodin e Shpërndarjes, e cila është kodi 1548 01:17:00,050 --> 01:17:02,740 që kemi para-shkruar, por vetëm lënë disa pjesë jashtë 1549 01:17:02,740 --> 01:17:04,635 për ju për të përfunduar shkrimin. 1550 01:17:04,635 --> 01:17:07,510 Pra, ju djema, kur ju shikoni në këtë Kodi, ju mund të merrni frikësuar me të vërtetë. 1551 01:17:07,510 --> 01:17:08,630 Nëse ju jeni vetëm pëlqen, Ahh, unë nuk e di se çka e bën, 1552 01:17:08,630 --> 01:17:11,670 Unë nuk e di, si, që duket aq e komplikuar, AHH, relaksohuni. 1553 01:17:11,670 --> 01:17:12,170 Eshte mire. 1554 01:17:12,170 --> 01:17:12,930 Lexoni spekulim. 1555 01:17:12,930 --> 01:17:16,920 Spekulim do të shpjegojë për ju saktësisht Çfarë të gjitha këto programe janë duke bërë. 1556 01:17:16,920 --> 01:17:20,560 >> Për shembull, generate.c është një program që do të vijë me pset tuaj. 1557 01:17:20,560 --> 01:17:24,060 Ju në fakt nuk duhet të prekë atë, por ju duhet të kuptoni se çfarë është bërë. 1558 01:17:24,060 --> 01:17:28,550 Dhe generate.c, gjithë kjo e bën është ose gjeneruar numra të rastit 1559 01:17:28,550 --> 01:17:32,400 ose ju mund t'i jepte një farë, si një Numri i paracaktuar që ajo merr, 1560 01:17:32,400 --> 01:17:34,140 dhe ajo gjeneron më shumë numra. 1561 01:17:34,140 --> 01:17:37,170 Pra, ka një mënyrë të veçantë për të zbatojnë generate.c në të cilën 1562 01:17:37,170 --> 01:17:42,760 ju mund të bëni vetëm një bandë e numrave për ju për të testuar metodat tuaja të tjera me radhë. 1563 01:17:42,760 --> 01:17:45,900 >> Pra, nëse ju të kërkuar për të, për shembull, provoni të gjeni tuaj, 1564 01:17:45,900 --> 01:17:48,970 ju do të duan për të drejtuar generate.c, të gjenerojë një bandë të numrave, 1565 01:17:48,970 --> 01:17:50,880 dhe pastaj të drejtuar ndihmues funksionin tuaj. 1566 01:17:50,880 --> 01:17:53,930 Funksioni i ndihmësit juaj është ajo ku ju jeni në fakt fizikisht shkruar kodin. 1567 01:17:53,930 --> 01:17:59,330 Dhe të mendojnë për ndihmësve si një file bibliotekës ju jeni me shkrim se gjeni është thirrje. 1568 01:17:59,330 --> 01:18:02,950 Dhe kështu brenda helpers.c, ju do të të bëjë kërkimin dhe klasifikim. 1569 01:18:02,950 --> 01:18:06,500 >> Dhe pastaj ju do të jeni në thelb vetëm vënë të gjithë së bashku. 1570 01:18:06,500 --> 01:18:10,350 Spekulim do të ju tregojnë se si për të vënë atë në rreshtin e komandave. 1571 01:18:10,350 --> 01:18:14,880 Dhe ju do të jetë në gjendje për të provuar nëse janë apo Nuk lloj juaj dhe kërkimit janë duke punuar. 1572 01:18:14,880 --> 01:18:15,870 Ftohtë. 1573 01:18:15,870 --> 01:18:18,720 Ka tashmë ka filluar dikush dhe problemet e hasura ose pyetje 1574 01:18:18,720 --> 01:18:20,520 ata kanë të drejtë tani me këtë? 1575 01:18:20,520 --> 01:18:21,020 NE RREGULL. 1576 01:18:21,020 --> 01:18:21,476 >> Audienca: Prisni. 1577 01:18:21,476 --> 01:18:21,932 Kam një pyetje. 1578 01:18:21,932 --> 01:18:22,844 >> ANDI Peng: Po. 1579 01:18:22,844 --> 01:18:28,390 >> Audienca: Kështu që kam filluar duke bërë Kërkimi lineare në helpers.c 1580 01:18:28,390 --> 01:18:29,670 dhe kjo nuk ishte me të vërtetë duke punuar. 1581 01:18:29,670 --> 01:18:34,590 Por pastaj më vonë, unë kuptova që ne vetëm duhet të fshini atë dhe të bëni kërkimin binar. 1582 01:18:34,590 --> 01:18:36,991 Pra, nuk ka rëndësi nëse ajo nuk punon? 1583 01:18:36,991 --> 01:18:39,700 1584 01:18:39,700 --> 01:18:41,510 >> ANDI Peng: Përgjigje të shkurtër është jo. 1585 01:18:41,510 --> 01:18:42,642 Por, pasi që ne jemi not-- 1586 01:18:42,642 --> 01:18:44,350 Audienca: Por askush nuk e në fakt kontrolluar. 1587 01:18:44,350 --> 01:18:46,058 ANDI Peng: Ne kurrë nuk jemi do të shohim se. 1588 01:18:46,058 --> 01:18:49,590 Por ju ndoshta dëshironi të bëni i sigurt Kërkimi juaj është duke punuar. 1589 01:18:49,590 --> 01:18:51,700 Sepse në qoftë se linear juaj Kërkimi nuk funksionon, 1590 01:18:51,700 --> 01:18:54,410 atëherë shanset janë binare tuaj Kërkimi nuk do të punojë si edhe. 1591 01:18:54,410 --> 01:18:56,646 Sepse ju keni ngjashme logjikë në dy prej tyre. 1592 01:18:56,646 --> 01:18:58,020 Dhe jo, kjo nuk ka rëndësi. 1593 01:18:58,020 --> 01:19:01,300 Pra, të vetmit që do të kthehet në janë lloj dhe kërkimi binar. 1594 01:19:01,300 --> 01:19:02,490 Po. 1595 01:19:02,490 --> 01:19:06,610 >> Dhe gjithashtu, shumë fëmijë ishin duke u përpjekur për të hartuar helpers.c. 1596 01:19:06,610 --> 01:19:09,550 Ju nuk jeni i lejuar në fakt për të bërë këtë, sepse helpers.c 1597 01:19:09,550 --> 01:19:11,200 nuk kanë një funksion kryesor. 1598 01:19:11,200 --> 01:19:13,550 Dhe kështu që ju duhet vetëm jetë në të vërtetë përpilimin 1599 01:19:13,550 --> 01:19:18,670 të gjenerojë dhe për të gjetur, sepse gjeni thirrjet helpers.c dhe funksionet brenda tij. 1600 01:19:18,670 --> 01:19:20,790 Kështu që e bën debugging një dhimbje në prapanicë. 1601 01:19:20,790 --> 01:19:22,422 Por kjo është ajo që ne duhet të bëjmë. 1602 01:19:22,422 --> 01:19:23,880 Audienca: Ju vetëm të bëjë të gjitha, apo jo? 1603 01:19:23,880 --> 01:19:27,290 ANDI Peng: Ju mund të vetëm të bërë të gjithë si dhe, po. 1604 01:19:27,290 --> 01:19:28,060 NE RREGULL. 1605 01:19:28,060 --> 01:19:32,570 Pra, kjo është ajo në drejtim të asaj pset është duke kërkuar që të gjithë ju të bëni. 1606 01:19:32,570 --> 01:19:35,160 Nëse keni ndonjë pyetje, mos të lirë të pyesni mua pas seksion. 1607 01:19:35,160 --> 01:19:37,580 Unë do të jem këtu për, si, 20 minuta. 1608 01:19:37,580 --> 01:19:40,500 >> Dhe vërtet, pset-së me të vërtetë nuk është se e keqe. 1609 01:19:40,500 --> 01:19:41,680 Ju djema duhet të jetë në rregull. 1610 01:19:41,680 --> 01:19:43,250 Këto, thjesht ndiqni udhëzimet. 1611 01:19:43,250 --> 01:19:47,840 Lloji i kanë një ndjenjë të, logjikisht, çfarë duhet të ndodhë dhe ju do të jetë në rregull. 1612 01:19:47,840 --> 01:19:48,690 Mos të jetë shumë i frikësuar. 1613 01:19:48,690 --> 01:19:50,220 Nuk është një shumë e kodit shkruar tashmë atje. 1614 01:19:50,220 --> 01:19:53,011 Mos të jetë shumë i frikësuar në qoftë se ju nuk e bëni të kuptojnë atë që të gjithë e që do të thotë. 1615 01:19:53,011 --> 01:19:54,749 Në qoftë se kjo është një shumë, kjo është krejtësisht në rregull. 1616 01:19:54,749 --> 01:19:55,790 Dhe të vijnë në orarit të punës. 1617 01:19:55,790 --> 01:19:57,520 Ne do të ju ndihmojë të marrë një sy. 1618 01:19:57,520 --> 01:20:00,810 >> Audienca: Me shtesë funksionet, nuk shohim ato lart? 1619 01:20:00,810 --> 01:20:03,417 >> ANDI Peng: Po, ata janë në kodin. 1620 01:20:03,417 --> 01:20:05,750 Në ndeshjen e 15, gjysma e është e shkruar tashmë për ju. 1621 01:20:05,750 --> 01:20:09,310 Pra, ato funksione janë tashmë në kodin. 1622 01:20:09,310 --> 01:20:12,020 Yep. 1623 01:20:12,020 --> 01:20:12,520 Në rregull. 1624 01:20:12,520 --> 01:20:14,000 E pra, mirë e fat. 1625 01:20:14,000 --> 01:20:15,180 Kjo është një ditë e pështirë. 1626 01:20:15,180 --> 01:20:19,370 Pra, shpresojmë se ju djema nuk do të ndjehen shumë keq për të qëndruar brenda dhe kodim. 1627 01:20:19,370 --> 01:20:22,133