1 00:00:00,000 --> 00:00:11,100 2 00:00:11,100 --> 00:00:12,300 >> Gjuha 1: Hey të gjithë! 3 00:00:12,300 --> 00:00:13,890 Mirë se vini përsëri në seksion. 4 00:00:13,890 --> 00:00:17,480 Aq i kënaqur për të parë kaq shumë nga ju të dy këtu, dhe të gjithë ata që është shikuar online. 5 00:00:17,480 --> 00:00:18,760 6 00:00:18,760 --> 00:00:20,920 Pra, si zakonisht mirëpritur mbrapa. 7 00:00:20,920 --> 00:00:24,360 Unë shpresoj se ju të gjithë e kishin një bukuroshe fundjavë, plot pushim, relaksim. 8 00:00:24,360 --> 00:00:26,026 Ajo ishte e bukur nga dje. 9 00:00:26,026 --> 00:00:27,525 Pra, unë shpresoj se ju ka gëzuar jashtë. 10 00:00:27,525 --> 00:00:28,840 11 00:00:28,840 --> 00:00:30,610 >> Pra, së pari disa njoftimeve. 12 00:00:30,610 --> 00:00:31,920 13 00:00:31,920 --> 00:00:32,700 Nota. 14 00:00:32,700 --> 00:00:37,350 Pra, shumica prej jush duhet të ketë marrë një email nga unë në lidhje me Pset tuaj Scratch, 15 00:00:37,350 --> 00:00:39,920 si dhe vlerësimi për Pset 1. 16 00:00:39,920 --> 00:00:41,000 17 00:00:41,000 --> 00:00:42,220 Pra, vetëm një disa gjëra. 18 00:00:42,220 --> 00:00:45,150 Jetë i sigurt për të përdorur check50 në style50. 19 00:00:45,150 --> 00:00:47,250 Këto janë menduar të jenë të Burimet për ju djema, 20 00:00:47,250 --> 00:00:50,660 për t'u siguruar që ju jeni duke marrë sa më shumë pikë si ju mund të 21 00:00:50,660 --> 00:00:52,390 pa pa nevojë humbur ato. 22 00:00:52,390 --> 00:00:54,407 Pra, gjëra të tilla si stil janë shumë të rëndësishme. 23 00:00:54,407 --> 00:00:55,740 Ne jemi duke shkuar për të marrë jashtë për të. 24 00:00:55,740 --> 00:00:58,115 Disa prej jush mund të kenë tashmë vënë re se nga Pset tuaj. 25 00:00:58,115 --> 00:00:58,920 26 00:00:58,920 --> 00:01:01,450 Dhe check50 është vetëm një mënyrë me të vërtetë e lehtë për të bërë të sigurtë 27 00:01:01,450 --> 00:01:05,050 që ne jemi në fakt kthehej çfarë duhet të kthehen për të përdoruesit, 28 00:01:05,050 --> 00:01:06,690 dhe se çdo gjë është duke punuar si duhet. 29 00:01:06,690 --> 00:01:08,690 30 00:01:08,690 --> 00:01:12,040 >> Në shënim të dytë, sigurohuni që tuaj ngarkimi gjëra në dosje korrekt. 31 00:01:12,040 --> 00:01:14,470 Kjo e bën jetën time të drejtë a pak më e vështirë 32 00:01:14,470 --> 00:01:18,836 në qoftë se ju të ngarkoni Pset 2 në Pset 1 sepse kur kam shkarkuar gjëra, 33 00:01:18,836 --> 00:01:20,085 ata nuk shkarkohet saktë. 34 00:01:20,085 --> 00:01:21,690 35 00:01:21,690 --> 00:01:24,560 Dhe unë e di se është një tundet pak në një sistem për t'u përdorur për të, 36 00:01:24,560 --> 00:01:26,950 por vetëm të jetë super kujdesshëm, në qoftë se vetëm për mua, 37 00:01:26,950 --> 00:01:30,080 kështu që kur ju jeni duke marrë email në si 02:00 dhe unë jam i gradimit. 38 00:01:30,080 --> 00:01:33,710 Nëse jo të shkaktojë unë duhet të shikoni të gjithë rreth e rrotull për Pset tuaj. 39 00:01:33,710 --> 00:01:34,440 Ftohtë. 40 00:01:34,440 --> 00:01:37,270 >> Unë e di se është herët, por unë krejtësisht u marrë off roje 41 00:01:37,270 --> 00:01:40,800 nga një ese që është për shkak se këtë të premte, Profesorët e mi ishin ashtu si, oh yeah. 42 00:01:40,800 --> 00:01:42,550 Mbani mend, ju keni një ese për shkak të premten. 43 00:01:42,550 --> 00:01:45,780 Kështu që, unë e di se askush nuk i pëlqen të mendojnë për midterms, 44 00:01:45,780 --> 00:01:50,620 por quiz juaj e parë është në 15 tetor, e cila tetori filluar nga kjo javë. 45 00:01:50,620 --> 00:01:53,290 Pra, ajo mund të jetë më shpejt se ju pritur është mbi të gjitha. 46 00:01:53,290 --> 00:01:57,510 Kështu që ju nuk jeni duke hedhur off roje kur I përmend seksionin e javës së ardhshme që oh, 47 00:01:57,510 --> 00:02:00,560 quiz javën e tuaj të ardhshëm, mendova Unë do të ju jap një pak më shumë 48 00:02:00,560 --> 00:02:01,500 nga një kokat deri tani. 49 00:02:01,500 --> 00:02:02,970 50 00:02:02,970 --> 00:02:04,660 >> Pra, problemi juaj vendosur, numri tre. 51 00:02:04,660 --> 00:02:07,070 Sa njerëz e kanë lexuar spekulim nga kurioziteti? 52 00:02:07,070 --> 00:02:08,560 53 00:02:08,560 --> 00:02:09,199 OK. 54 00:02:09,199 --> 00:02:10,229 Ne morëm një çift. 55 00:02:10,229 --> 00:02:12,320 Lloji i zbritur nga të fundit javë, por kjo është në rregull. 56 00:02:12,320 --> 00:02:13,650 Unë e di se ishte jashtë bukur. 57 00:02:13,650 --> 00:02:15,120 58 00:02:15,120 --> 00:02:16,660 Pra Break Out. 59 00:02:16,660 --> 00:02:21,010 Definitely pasi ju merrni bërë sot lexuar spekulim tuaj të paktën 60 00:02:21,010 --> 00:02:25,240 provoni si shkarkimit Kodi i shpërndarjes dhe drejtimin 61 00:02:25,240 --> 00:02:27,430 si fillestar parë gjë që ata të ju pyes për të. 62 00:02:27,430 --> 00:02:28,681 63 00:02:28,681 --> 00:02:32,590 Sepse ne jemi duke përdorur Kodi i shpërndarjes dhe një bibliotekë 64 00:02:32,590 --> 00:02:36,790 se ne kemi qenë vetëm using-- --It vetëm hera e dytë që ne kemi bërë këtë Pset, 65 00:02:36,790 --> 00:02:38,650 gjëra të çmendur mund të ndodhë me pajisjen tuaj, 66 00:02:38,650 --> 00:02:41,370 dhe ju doni të gjeni se më tani kundrejt vonë. 67 00:02:41,370 --> 00:02:45,570 >> Sepse në qoftë se është e natën e të enjtes, ose është E mërkurë natë dhe për disa arsye 68 00:02:45,570 --> 00:02:48,912 pajisja juaj thjesht nuk doni të dalë me bibliotekë 69 00:02:48,912 --> 00:02:50,620 ose me shpërndarje kodin, kjo do të thotë 70 00:02:50,620 --> 00:02:52,309 ju nuk mund edhe të fillojnë të bëjnë coding. 71 00:02:52,309 --> 00:02:54,100 Sepse ju nuk mund të kontrolloni për të parë nëse ajo punon. 72 00:02:54,100 --> 00:02:55,975 Nuk gonna të tuaj të jetë në gjendje për të parë nëse ajo harton. 73 00:02:55,975 --> 00:03:00,500 Ju dëshironi të kujdeset për ata në fillim javë, kur ju ende mund të email mua 74 00:03:00,500 --> 00:03:03,100 ose njëri prej TFS tjera, dhe ne mund të merrni ato fikse. 75 00:03:03,100 --> 00:03:05,410 Sepse ato janë çështje që do të ndalojë ty 76 00:03:05,410 --> 00:03:07,120 nga bërja e ndonjë përparim të vërtetë. 77 00:03:07,120 --> 00:03:10,055 Ajo nuk është si një bug, se ju mund vetëm lloj të kaloni mbi të. 78 00:03:10,055 --> 00:03:10,712 79 00:03:10,712 --> 00:03:13,420 Nëse ju jeni ka probleme me tuaj aplikim apo kodin e shpërndarjes, 80 00:03:13,420 --> 00:03:16,211 ju doni me të vërtetë të merrni atë bërë kujdeset më shpejt se sa më vonë. 81 00:03:16,211 --> 00:03:20,410 Pra, edhe në qoftë se ju nuk jeni gonna të vërtetë fillojnë coding, shkarko shpërndarjes 82 00:03:20,410 --> 00:03:24,040 Kodi, lexoni spekulim, sigurohuni çdo gjë është duke punuar atje. 83 00:03:24,040 --> 00:03:25,134 OK? 84 00:03:25,134 --> 00:03:27,675 Nëse ju mund të bëni vetëm se, unë premtoj jetën tuaj do të jetë më e lehtë. 85 00:03:27,675 --> 00:03:28,800 86 00:03:28,800 --> 00:03:31,410 Dhe kështu që ju jeni me siguri do për të bërë atë të drejtë tani të drejtë? 87 00:03:31,410 --> 00:03:32,100 OK. 88 00:03:32,100 --> 00:03:33,950 Pra, ndonjë pyetje atje? 89 00:03:33,950 --> 00:03:35,850 Çdo gjërat logjistike? 90 00:03:35,850 --> 00:03:36,910 Gjithkush është e mirë? 91 00:03:36,910 --> 00:03:38,270 OK. 92 00:03:38,270 --> 00:03:41,700 >> Disclaimer për ata të ju në dhomë dhe online. 93 00:03:41,700 --> 00:03:45,437 Unë jam duke shkuar të jetë duke u përpjekur për të kaluar midis PowerPoint në aplikim 94 00:03:45,437 --> 00:03:47,270 sepse ne jemi duke shkuar të jetë bërë disa kodim 95 00:03:47,270 --> 00:03:53,630 sot nga kërkesa popullore anonim Sondazhi sugjerim I dërguar javën e kaluar. 96 00:03:53,630 --> 00:03:55,480 Pra, ne do të bëjmë disa coding. 97 00:03:55,480 --> 00:03:57,800 Pra, në qoftë se ju djema të doni të zjarrit deri pajisje tuaj, 98 00:03:57,800 --> 00:04:02,910 dhe ju duhet të keni marrë një email nga unë, me një fotografi mostër. 99 00:04:02,910 --> 00:04:04,310 Ju lutem mos ngurroni për të bërë këtë. 100 00:04:04,310 --> 00:04:07,340 >> Pra, ne do të flasim për GDB, e cila është një debugger. 101 00:04:07,340 --> 00:04:09,970 Kjo do të ju ndihmojë lloj të kuptoj se ku 102 00:04:09,970 --> 00:04:11,860 gjërat janë duke shkuar keq në kodin tuaj. 103 00:04:11,860 --> 00:04:15,370 Kjo është me të vërtetë vetëm një mënyrë për ju për të rritur me kodin tuaj si kjo po ndodh, 104 00:04:15,370 --> 00:04:19,100 dhe të jetë në gjendje për të shkruar jashtë variablave ose të shohim se çfarë është në të vërtetë ndodh 105 00:04:19,100 --> 00:04:22,980 nën kapuç vargjet programin tuaj vetëm drejtimin, kjo është si përgënjeshtrojnë, 106 00:04:22,980 --> 00:04:25,030 dhe ju jeni si, asnjë ide çfarë ka ndodhur vetëm këtu. 107 00:04:25,030 --> 00:04:26,730 Unë nuk e di se çfarë linjë dështoi në. 108 00:04:26,730 --> 00:04:29,040 Unë nuk e di ku shkoi keq. 109 00:04:29,040 --> 00:04:31,280 Pra, GDB do të ju ndihmojë me këtë. 110 00:04:31,280 --> 00:04:35,240 Gjithashtu, në qoftë se ju vendosni për të vazhdojnë po, dhe për të marrë 61, 111 00:04:35,240 --> 00:04:38,430 ajo do të me të vërtetë, të vërtetë të jetë tuaj shoku më i mirë, shkaku unë mund t'ju them 112 00:04:38,430 --> 00:04:40,840 sepse unë jam duke shkuar nëpër atë klasë. 113 00:04:40,840 --> 00:04:43,620 >> Ne jemi duke shkuar për të parë në binar kërko, e cila në qoftë se ju djema mbani mend 114 00:04:43,620 --> 00:04:47,540 i madh shembull librin e telefonit spektakël nga klasa. 115 00:04:47,540 --> 00:04:50,620 Ne do ta zbatojë atë, dhe ecin nëpër atë pak më shumë, 116 00:04:50,620 --> 00:04:54,650 dhe pastaj ne jemi duke shkuar nëpër katër llojet e ndryshme, të cilat janë Bubble, 117 00:04:54,650 --> 00:04:56,285 Përzgjedhja, hyrjes, dhe bashkojë. 118 00:04:56,285 --> 00:04:57,830 119 00:04:57,830 --> 00:04:58,330 Ftohtë. 120 00:04:58,330 --> 00:05:00,390 Pra, GDB siç thashë, është një Rregullues. 121 00:05:00,390 --> 00:05:01,400 122 00:05:01,400 --> 00:05:09,370 Dhe këto janë lloj i madh gjërat, funksionet mëdha apo komandat 123 00:05:09,370 --> 00:05:13,240 që ju përdorni në GDB, dhe unë do të ec ju nëpërmjet një demo e saj në një të dytë. 124 00:05:13,240 --> 00:05:15,360 >> Pra, kjo nuk është vetëm do të qëndrojë abstrakte. 125 00:05:15,360 --> 00:05:18,000 Unë do të përpiqet dhe të bëjë atë si beton të jetë e mundur për ju djema. 126 00:05:18,000 --> 00:05:19,870 Pra, pushim. 127 00:05:19,870 --> 00:05:22,200 Ajo do të jetë ose pushim si, disa numër, i cili 128 00:05:22,200 --> 00:05:26,900 përfaqëson një linjë në programin tuaj, ose ju mund të emërojë një funksion. 129 00:05:26,900 --> 00:05:30,150 Pra, nëse ju thoni pushim kryesor, ai do të ndalet në kryesore, 130 00:05:30,150 --> 00:05:32,400 dhe le të ecin nëpër atë funksion. 131 00:05:32,400 --> 00:05:36,350 >> Gjithashtu, në qoftë se ju keni disa të jashtëm të funksionojë si Swap apo Cube, 132 00:05:36,350 --> 00:05:38,450 që ne të shikuar në javën e kaluar. 133 00:05:38,450 --> 00:05:41,780 Në qoftë se ju thoni të shkelë një nga këto, kur programi juaj godet atë, 134 00:05:41,780 --> 00:05:44,290 ajo do të presë për ju për të tregoni se çfarë të bëni. 135 00:05:44,290 --> 00:05:47,860 Para se ai thjesht do të ekzekutojë në mënyrë të në fakt mund të hap brenda funksionit 136 00:05:47,860 --> 00:05:49,020 dhe të shohim se çfarë po ndodh. 137 00:05:49,020 --> 00:05:50,370 138 00:05:50,370 --> 00:05:53,515 Pra, Next, vetëm skips gjatë Linja tjetër, shkon mbi funksionet. 139 00:05:53,515 --> 00:05:54,730 140 00:05:54,730 --> 00:05:55,560 Hapi. 141 00:05:55,560 --> 00:05:56,810 Këto janë të gjitha abstrakte pak. 142 00:05:56,810 --> 00:06:00,530 Pra, unë jam vetëm duke shkuar për të drejtuar nëpërmjet tyre, por ju do të shihni ato në përdorim në një të dytë. 143 00:06:00,530 --> 00:06:01,810 >> Hapi në një funksion. 144 00:06:01,810 --> 00:06:04,170 Pra, siç po thosha, si me Swap, ajo do të 145 00:06:04,170 --> 00:06:07,110 ju lejojnë të vërtetë si në qoftë se ju jeni si fizikisht shkelën brenda, 146 00:06:07,110 --> 00:06:10,990 ju mund të luajnë me këto variabla, print se çfarë ata janë, shohin se çfarë po ndodh. 147 00:06:10,990 --> 00:06:12,140 148 00:06:12,140 --> 00:06:14,830 Lista do të fjalë për fjalë vetëm të shtypura out kodin përreth. 149 00:06:14,830 --> 00:06:17,570 Pra, në qoftë se ju lloj i harrojmë ku ju jeni në programin tuaj, 150 00:06:17,570 --> 00:06:19,880 ose ju jeni të pyesin çfarë po ndodh rreth tij, 151 00:06:19,880 --> 00:06:23,790 kjo vetëm do të shtypura nga një segment i pëlqen pesë ose gjashtë rreshta rreth tij. 152 00:06:23,790 --> 00:06:26,080 Pra, ju mund të merrni të orientuar se ku je. 153 00:06:26,080 --> 00:06:27,230 154 00:06:27,230 --> 00:06:28,650 >> Print disa ndryshore. 155 00:06:28,650 --> 00:06:34,590 Pra, nëse ju keni çelësin si në Cezarit, që ne do të shikojmë në të. 156 00:06:34,590 --> 00:06:36,220 Ju mund të thoni Shtyp Key në çdo pikë. 157 00:06:36,220 --> 00:06:40,070 Ajo do të ju tregojnë se çfarë vlera është aq se, ndoshta diku përgjatë rrugës, 158 00:06:40,070 --> 00:06:42,070 ju mbikaloi kyç tuaj. 159 00:06:42,070 --> 00:06:45,495 Ju në fakt mund të them se për shkak se ju në fakt mund të vëzhgojnë atë vlerë. 160 00:06:45,495 --> 00:06:46,500 161 00:06:46,500 --> 00:06:48,780 >> Në vendasit, vetëm shtyp out variablave tuaj lokale. 162 00:06:48,780 --> 00:06:53,120 Pra, në çdo kohë që ju jeni në një lak, dhe ju vetëm duan të shohin si, oh. 163 00:06:53,120 --> 00:06:54,270 Çka është e mia unë? 164 00:06:54,270 --> 00:06:57,020 Çfarë është kjo vlerë kryesore që unë nisja këtu? 165 00:06:57,020 --> 00:06:58,537 Cili është mesazhi në këtë pikë? 166 00:06:58,537 --> 00:07:00,370 Ajo thjesht do të shtypura të gjitha e atyre, në mënyrë që të ju 167 00:07:00,370 --> 00:07:04,330 nuk kanë individualisht thonë, Print I. Print mesazh. 168 00:07:04,330 --> 00:07:04,970 Print Key. 169 00:07:04,970 --> 00:07:06,190 170 00:07:06,190 --> 00:07:07,700 Dhe pastaj Display. 171 00:07:07,700 --> 00:07:10,370 Çfarë kjo nuk është si ti hap përmes programit, 172 00:07:10,370 --> 00:07:13,980 ajo vetëm do të bëni të sigurtë që kjo është shfaqur disa ndryshore të caktuar 173 00:07:13,980 --> 00:07:14,780 në çdo pikë. 174 00:07:14,780 --> 00:07:17,160 Kështu që ju also-- --it e lloj i një shkurtore ku 175 00:07:17,160 --> 00:07:19,530 ju nuk keni për të mbajtur vazhdim e sipër si, oh. 176 00:07:19,530 --> 00:07:23,150 Key Print ose Print I. Ajo vetëm automatikisht do të bëjë atë për ju. 177 00:07:23,150 --> 00:07:25,959 >> Pra, me këtë, ne jemi duke shkuar për të parë se si kjo shkon. 178 00:07:25,959 --> 00:07:28,000 Unë jam duke shkuar për të përpiqen dhe të kaloni mbi të aparatit tim. 179 00:07:28,000 --> 00:07:30,200 180 00:07:30,200 --> 00:07:31,271 Shih nëse unë mund ta bëjë këtë. 181 00:07:31,271 --> 00:07:31,770 Të gjithë. 182 00:07:31,770 --> 00:07:40,970 183 00:07:40,970 --> 00:07:42,370 Ne jemi vetëm duke shkuar për të pasqyruar atë. 184 00:07:42,370 --> 00:07:44,530 Nuk ka asgjë të çmendur në laptop tim anyways. 185 00:07:44,530 --> 00:07:49,600 186 00:07:49,600 --> 00:07:50,100 OK. 187 00:07:50,100 --> 00:07:57,030 188 00:07:57,030 --> 00:08:01,054 Kjo duhet të jetë kjo. 189 00:08:01,054 --> 00:08:01,795 Është kaq e vogël. 190 00:08:01,795 --> 00:08:03,730 191 00:08:03,730 --> 00:08:05,120 Le të shohim nëse ne mund të bëjmë këtë. 192 00:08:05,120 --> 00:08:09,970 193 00:08:09,970 --> 00:08:10,940 >> OK. 194 00:08:10,940 --> 00:08:15,305 Alice është padyshim duke luftuar këtu vetëm pak, 195 00:08:15,305 --> 00:08:17,995 por ne do të merrni atë në një momento. 196 00:08:17,995 --> 00:08:20,810 197 00:08:20,810 --> 00:08:22,020 OK. 198 00:08:22,020 --> 00:08:25,900 Ne jemi vetëm duke shkuar për të rritur këtë. 199 00:08:25,900 --> 00:08:28,770 200 00:08:28,770 --> 00:08:29,380 OK. 201 00:08:29,380 --> 00:08:31,679 Të gjithë mund të lloj të shihni se? 202 00:08:31,679 --> 00:08:32,470 Ndoshta pak? 203 00:08:32,470 --> 00:08:33,594 Unë e di se është pak e vogël. 204 00:08:33,594 --> 00:08:34,570 205 00:08:34,570 --> 00:08:37,530 Ju nuk mund të mjaft të kuptoj se si për të bërë këtë më të mëdha. 206 00:08:37,530 --> 00:08:38,350 Nëse dikush e di. 207 00:08:38,350 --> 00:08:40,309 A di ndokush se si për ta bërë atë të mëdha? 208 00:08:40,309 --> 00:08:40,932 OK. 209 00:08:40,932 --> 00:08:42,140 Ne jemi duke shkuar për të rrokulliset me të. 210 00:08:42,140 --> 00:08:45,801 Nuk ka rëndësi anyways, sepse kjo është vetëm kjo është kodi që ju djema duhet 211 00:08:45,801 --> 00:08:46,300 kanë. 212 00:08:46,300 --> 00:08:48,310 >> Çfarë është më e rëndësishme është terminal këtu. 213 00:08:48,310 --> 00:08:52,840 214 00:08:52,840 --> 00:08:58,690 Dhe ne kemi këtu Pse është kaq i vogël? 215 00:08:58,690 --> 00:09:02,325 216 00:09:02,325 --> 00:09:02,825 Cilësimet. 217 00:09:02,825 --> 00:09:07,920 218 00:09:07,920 --> 00:09:08,420 Oh. 219 00:09:08,420 --> 00:09:09,500 Vërtetë Ike. 220 00:09:09,500 --> 00:09:10,880 Si është kjo? 221 00:09:10,880 --> 00:09:11,770 Nga atje. 222 00:09:11,770 --> 00:09:19,370 223 00:09:19,370 --> 00:09:21,810 A është kjo më e mirë për të gjithë? 224 00:09:21,810 --> 00:09:22,525 OK ,. 225 00:09:22,525 --> 00:09:23,025 Ftohtë. 226 00:09:23,025 --> 00:09:25,830 227 00:09:25,830 --> 00:09:28,220 >> Ti e di kur ju jeni në një CS Vështirësitë teknike e klasës 228 00:09:28,220 --> 00:09:32,971 janë lloj i pjesë e the-- Pra, le të qartë këtë. 229 00:09:32,971 --> 00:09:33,470 OK. 230 00:09:33,470 --> 00:09:38,060 Pra, të drejtë këtu në seksionin, të cilin kemi pasur këtu. 231 00:09:38,060 --> 00:09:40,830 Caesar është një file e ekzekutueshme. 232 00:09:40,830 --> 00:09:41,800 Kështu që unë e bëri atë. 233 00:09:41,800 --> 00:09:46,370 Pra, një gjë për të realizuar me GDB është se ajo punon vetëm në fotografi ekzekutueshme. 234 00:09:46,370 --> 00:09:48,040 Pra, ju nuk mund të kandidojë atë në një dotsy. 235 00:09:48,040 --> 00:09:50,532 Ju duhet të bëjë në fakt Sigurohuni që kodi juaj përpilon, 236 00:09:50,532 --> 00:09:51,865 dhe se kjo në fakt mund të drejtohet. 237 00:09:51,865 --> 00:09:52,970 238 00:09:52,970 --> 00:09:56,186 >> Pra, sigurohuni se në qoftë se ajo nuk ka të hartojë, të marrë atë për të hartuar, 239 00:09:56,186 --> 00:09:57,810 kështu që ju mund të lloj të kandidojë nëpërmjet saj. 240 00:09:57,810 --> 00:10:04,590 Pra, për të filluar GDB, të gjithë ju të bëni, Gloria lloji GDB, dhe pastaj vetëm 241 00:10:04,590 --> 00:10:06,250 parashtrojë që ju dëshironi. 242 00:10:06,250 --> 00:10:08,240 Unë gjithmonë misspell Cezarin. 243 00:10:08,240 --> 00:10:11,730 Por ju doni të bëni të sigurtë pasi ajo është një ekzekutueshme, 244 00:10:11,730 --> 00:10:14,210 TI dot flash në mënyrë që të do të thotë që ju do të jeni 245 00:10:14,210 --> 00:10:19,240 për të drejtuar CSI ju jeni duke shkuar për të ekzekutuar kjo fotografi ose me Rregullues. 246 00:10:19,240 --> 00:10:19,910 OK. 247 00:10:19,910 --> 00:10:22,885 Pra, ju bëni këtë, ju merrni ky lloj i dërdëllisje. 248 00:10:22,885 --> 00:10:24,250 249 00:10:24,250 --> 00:10:25,750 Kjo është vetëm të gjitha gjërat në lidhje Rregullues. 250 00:10:25,750 --> 00:10:28,200 Ju nuk mund të vërtetë kanë për të merak për këtë tani. 251 00:10:28,200 --> 00:10:31,460 Dhe, siç e shihni, ne kemi këtë parens hapur, GDP, parens ngushtë, 252 00:10:31,460 --> 00:10:34,690 dhe vetëm lloj i duket si linjë tonë të komandës, e drejtë? 253 00:10:34,690 --> 00:10:37,010 >> Pra, ajo që ne duam të do-- --So, Gjëja e parë 254 00:10:37,010 --> 00:10:39,570 është që ne duam të zgjidhni një vend për të prishur atë. 255 00:10:39,570 --> 00:10:42,332 Pra, nuk është një bug në këtë program Caesar 256 00:10:42,332 --> 00:10:44,290 që unë prezantoj se ne jemi duke shkuar për të gjetur jashtë. 257 00:10:44,290 --> 00:10:45,330 258 00:10:45,330 --> 00:10:56,350 Ajo Çfarë ajo nuk është ajo merr të dhëna Barfoo në të gjitha shkronja kapitale, dhe për disa arsye 259 00:10:56,350 --> 00:11:01,950 kjo nuk do të ndryshojë A. Kjo thjesht lë vetëm kjo, është çdo gjë tjetër e saktë, 260 00:11:01,950 --> 00:11:03,980 por letra e dytë A mbetet i pandryshuar. 261 00:11:03,980 --> 00:11:07,120 Pra, ne jemi duke shkuar për të përpiqen dhe të kuptoj se pse kjo është. 262 00:11:07,120 --> 00:11:10,440 Pra, gjëja e parë që ju zakonisht doni të bëni kur ju filloni të GDB 263 00:11:10,440 --> 00:11:12,010 është të kuptoj se ku për të prishur atë. 264 00:11:12,010 --> 00:11:14,956 >> Pra Caesar është një program mjaft të shkurtër. 265 00:11:14,956 --> 00:11:16,330 Ne vetëm kemi një funksion, e drejtë? 266 00:11:16,330 --> 00:11:18,520 Cili ishte funksioni ynë në Cezarit? 267 00:11:18,520 --> 00:11:19,590 268 00:11:19,590 --> 00:11:24,350 Ka vetëm një funksion, e drejtë kryesore? 269 00:11:24,350 --> 00:11:26,490 Kryesor është një funksion për të gjitha programet tuaja. 270 00:11:26,490 --> 00:11:29,230 Nëse ju nuk keni Main, unë mund të të jetë pak i shqetësuar tani, 271 00:11:29,230 --> 00:11:31,000 por unë shpresoj që ju të gjithë e kishin Main në atje. 272 00:11:31,000 --> 00:11:34,150 Pra, ajo që ne mund të bëjmë është që ne mund të vetëm pushim Main, tamam si kjo. 273 00:11:34,150 --> 00:11:35,190 Kështu, ajo thotë, OK. 274 00:11:35,190 --> 00:11:37,430 Ne kemi vendosur një tonë Breakpoint atje. 275 00:11:37,430 --> 00:11:42,870 >> Pra, tani Gjë për të kujtuar është e Cezarit merr një komandë të drejtë argumenti linjë 276 00:11:42,870 --> 00:11:45,150 dhe ne nuk e kemi bërë këtë kudo ende. 277 00:11:45,150 --> 00:11:47,560 Pra, çfarë ju bëni është kur ju në fakt shkojnë për të kandiduar 278 00:11:47,560 --> 00:11:51,540 program, çdo program që ju jeni drejtimin në GDB që duhet command line 279 00:11:51,540 --> 00:11:55,010 argumente, ju do të jeni të dhëna kur ju së pari të fillojë drejtimin e tij. 280 00:11:55,010 --> 00:11:59,280 Pra, në këtë rast, kemi të bëjmë Drejtuar me një çelës të tre. 281 00:11:59,280 --> 00:12:00,770 282 00:12:00,770 --> 00:12:02,040 Dhe ai në fakt do të fillojë. 283 00:12:02,040 --> 00:12:08,480 >> Pra, nëse ju shihni këtu, ne kemi RC nëse nuk është e barabartë me 2. 284 00:12:08,480 --> 00:12:12,210 Pra, në qoftë se ju djema të gjithë e kanë kjo fotografi që kam dërguar jashtë up 285 00:12:12,210 --> 00:12:15,100 ju do të shihni se kjo është si Linja e parë funksioni ynë kryesor, e drejtë? 286 00:12:15,100 --> 00:12:17,890 Është kontrolluar për të parë nëse ne kemi numri i saktë i argumenteve. 287 00:12:17,890 --> 00:12:20,620 Pra, nëse ju jeni të pyesin nëse RC është e saktë, 288 00:12:20,620 --> 00:12:23,250 ju mund të bëni diçka vetëm si Print RC. 289 00:12:23,250 --> 00:12:24,380 290 00:12:24,380 --> 00:12:28,640 RC është dy, i cili është ajo që ne prisnim, e drejtë? 291 00:12:28,640 --> 00:12:32,010 >> Pra, ne mund të shkojmë Next, dhe të vazhdojë përmes. 292 00:12:32,010 --> 00:12:33,200 Pra, ne kemi një çelës atje. 293 00:12:33,200 --> 00:12:34,260 294 00:12:34,260 --> 00:12:37,090 Dhe ne mund të shtypura jashtë çelësin tonë për t'u siguruar se është e saktë. 295 00:12:37,090 --> 00:12:38,380 296 00:12:38,380 --> 00:12:39,500 Interesting. 297 00:12:39,500 --> 00:12:41,210 Jo krejt atë që kemi pritur. 298 00:12:41,210 --> 00:12:44,810 Pra, një gjë për të realizuar me GDB gjithashtu, është 299 00:12:44,810 --> 00:12:49,000 se kjo nuk është deri sa ju goditi në të vërtetë Tjetra, kjo linjë që ju vetëm e pa 300 00:12:49,000 --> 00:12:50,720 është ekzekutuar në të vërtetë. 301 00:12:50,720 --> 00:12:53,870 Pra, në këtë rast Key nuk është caktuar ende. 302 00:12:53,870 --> 00:12:57,050 Pra, Key është një vlerë e mbeturinave që ju shihni në fund atje. 303 00:12:57,050 --> 00:13:03,680 Negative $ 120-- --It e një miliard dhe diçka gjëra të çuditshme apo jo? 304 00:13:03,680 --> 00:13:05,340 Kjo nuk është Key që kemi pritur. 305 00:13:05,340 --> 00:13:10,720 Por në qoftë se ne e goditi Next, dhe pastaj ne provoni dhe Print kyç, është tre. 306 00:13:10,720 --> 00:13:11,710 >> Gjithkush shohim se? 307 00:13:11,710 --> 00:13:13,780 Pra, nëse ju merrni diçka se ju jeni si, prisni. 308 00:13:13,780 --> 00:13:15,540 Kjo është plotësisht e gabuar, dhe unë nuk e di 309 00:13:15,540 --> 00:13:20,150 se si kjo do të ndodhë, sepse të gjitha unë dua të bëni është të caktojë një numër, një variabël, 310 00:13:20,150 --> 00:13:22,900 provoni goditur Next, shtypjen provoni përsëri, dhe të shohim nëse që punon. 311 00:13:22,900 --> 00:13:27,830 Për shkak se ajo është vetëm do të kryej dhe në fakt caktojë diçka pas teje 312 00:13:27,830 --> 00:13:29,340 hit Next. 313 00:13:29,340 --> 00:13:30,336 Kuptim për të gjithë? 314 00:13:30,336 --> 00:13:30,836 Uh huh? 315 00:13:30,836 --> 00:13:33,220 >> Gjuha 2: Kur ju të rastit Numrat çfarë do të thotë kjo? 316 00:13:33,220 --> 00:13:34,790 >> Gjuha 1: Është vetëm të rastit. 317 00:13:34,790 --> 00:13:35,710 Është vetëm mbeturina. 318 00:13:35,710 --> 00:13:38,320 Kjo është vetëm diçka që tuaj kompjuter rastësisht do të caktojë. 319 00:13:38,320 --> 00:13:39,721 320 00:13:39,721 --> 00:13:40,220 Ftohtë. 321 00:13:40,220 --> 00:13:45,760 Pra, tani ne mund të lëvizin nëpër, dhe kështu tani ne kemi këtë GetString plain text. 322 00:13:45,760 --> 00:13:48,600 Pra, më lejoni vetëm të prezantoj atë do të ndodhë kur ne e goditi Next këtu. 323 00:13:48,600 --> 00:13:51,320 GDB jonë lloj zhduket, e drejtë? 324 00:13:51,320 --> 00:13:55,720 Kjo është për shkak se GetString tani është ekzekutimin, e drejtë? 325 00:13:55,720 --> 00:14:01,460 Pra, kur të pamë teksti të thjeshtë është e barabartë me GetString, parens hapur dhe parens, 326 00:14:01,460 --> 00:14:04,380 dhe ne goditi Tjetra, që ka në fakt ekzekutuar tani. 327 00:14:04,380 --> 00:14:06,580 Pra, ajo është duke pritur për ne të dhëna diçka. 328 00:14:06,580 --> 00:14:13,560 >> Pra, ne jemi duke shkuar për të dhëna ushqimin tonë e cila është ajo që është e dështuar, si ju thashë 329 00:14:13,560 --> 00:14:18,020 dhe se vetëm thotë se është e përfunduar ekzekutimin, se mbyllur 330 00:14:18,020 --> 00:14:19,980 kllapa do të thotë se është daljes nga kjo loop. 331 00:14:19,980 --> 00:14:21,170 332 00:14:21,170 --> 00:14:25,420 Pra, ne mund të goditur Next, dhe tani, si unë jam i Sigurohuni që ju jeni të gjithë të njohur nga Cezarit, 333 00:14:25,420 --> 00:14:27,260 kjo është, çfarë është kjo linjë do të bëjë. 334 00:14:27,260 --> 00:14:32,030 Është për Int I barabartë me 0, N barabartë Strlen, plain text, dhe pastaj 335 00:14:32,030 --> 00:14:33,960 I është më pak se n, I, plus, plus. 336 00:14:33,960 --> 00:14:35,210 Çfarë është kjo lak do të bëni? 337 00:14:35,210 --> 00:14:37,900 338 00:14:37,900 --> 00:14:39,160 Hapni mesazhin tuaj. 339 00:14:39,160 --> 00:14:39,770 Ftohtë. 340 00:14:39,770 --> 00:14:41,330 Pra, le të fillojë duke bërë atë. 341 00:14:41,330 --> 00:14:47,210 >> Pra, duhet ky kusht përputhen, për një tonë të parë? 342 00:14:47,210 --> 00:14:52,250 Në qoftë se kjo është një B, është tekst i thjeshtë I. Ne mund të merrni informacion në lidhje me vendasit tanë. 343 00:14:52,250 --> 00:14:53,610 344 00:14:53,610 --> 00:14:57,970 Kështu, I është zero, dhe nëse gjashtë, e cila ne presim, dhe çelësi jonë është tre. 345 00:14:57,970 --> 00:14:59,227 Të gjithë ata që e bëjnë kuptim, apo jo? 346 00:14:59,227 --> 00:15:01,310 Këto numra janë të gjitha saktësisht se çfarë ata duhet të jenë. 347 00:15:01,310 --> 00:15:02,590 348 00:15:02,590 --> 00:15:03,870 Pra, hum? 349 00:15:03,870 --> 00:15:05,620 Gjuha 3: Unë kam numra të rastit për minierën. 350 00:15:05,620 --> 00:15:09,156 351 00:15:09,156 --> 00:15:12,030 Gjuha 1: E pra, ne mund të check-- --we mund të bisedojnë në lidhje me atë në një të dytë. 352 00:15:12,030 --> 00:15:14,110 353 00:15:14,110 --> 00:15:15,750 Por ju duhet të jetë duke marrë këtë. 354 00:15:15,750 --> 00:15:17,700 355 00:15:17,700 --> 00:15:20,130 Pra, në qoftë se ne kemi një kapital B për një tonë të parë, 356 00:15:20,130 --> 00:15:22,080 ky kusht duhet të kapur atë, e drejtë? 357 00:15:22,080 --> 00:15:27,120 Pra, në qoftë se ne goditi Tjetra, ne shohim që ky rast të vërtetë ekzekuton. 358 00:15:27,120 --> 00:15:29,220 Sepse në qoftë se ju jeni në vijim së bashku me kodin tuaj, 359 00:15:29,220 --> 00:15:33,460 kjo linjë këtu, ku teksti plain I është zëvendësuar me këtë aritmetikë, 360 00:15:33,460 --> 00:15:35,720 vetëm ekzekuton nëse nëse gjendja është e drejtë e saktë? 361 00:15:35,720 --> 00:15:36,905 362 00:15:36,905 --> 00:15:40,240 >> GDB është vetëm do të ju tregojnë gjërat që janë në të vërtetë ekzekutuese. 363 00:15:40,240 --> 00:15:45,140 Pra, nëse ky kusht Në qoftë se nuk është plotësuar, është e vetëm do të kaloni në rreshtin tjetër. 364 00:15:45,140 --> 00:15:46,540 OK? 365 00:15:46,540 --> 00:15:48,510 Pra, ne kemi atë. 366 00:15:48,510 --> 00:15:51,171 Kjo parantezë do të thotë se është mbyllur nga kjo loop tani. 367 00:15:51,171 --> 00:15:52,420 Pra, ajo do të fillojë përsëri. 368 00:15:52,420 --> 00:15:54,760 369 00:15:54,760 --> 00:15:56,280 Ashtu si kjo. 370 00:15:56,280 --> 00:15:59,120 Kështu, që ne mund të merrni informacion për vendasit tona këtu, 371 00:15:59,120 --> 00:16:02,575 dhe të shohim se ynë i parë letër ka ndryshuar, apo jo? 372 00:16:02,575 --> 00:16:05,150 Kjo është tani një E, ashtu siç duhet të jetë. 373 00:16:05,150 --> 00:16:07,360 Pra, ne mund të vazhdojë më. 374 00:16:07,360 --> 00:16:08,500 >> Dhe ne e kemi këtë kontroll. 375 00:16:08,500 --> 00:16:09,916 Dhe ky kontroll duhet të punojë, e drejtë? 376 00:16:09,916 --> 00:16:12,570 Është A. Duhet të ndryshohet tre letra përpara. 377 00:16:12,570 --> 00:16:14,320 378 00:16:14,320 --> 00:16:16,530 Por nëse ju njoftim, ne të marrë diçka të ndryshme. 379 00:16:16,530 --> 00:16:17,580 380 00:16:17,580 --> 00:16:22,860 Pra, në këtë rast deri këtu, është kapur atë, dhe kështu që kjo linjë ekzekutuar, 381 00:16:22,860 --> 00:16:28,620 e cila modifikuar tonë B. Por, në këtë rast këtu, 382 00:16:28,620 --> 00:16:32,860 ne kemi se vetëm ajo u anashkalua atë, dhe shkoi në [? L Siff. ?] 383 00:16:32,860 --> 00:16:34,660 Pra, diçka po ndodh atje. 384 00:16:34,660 --> 00:16:37,780 Çfarë është që ju them është se, ne e dimë se ajo duhet të arrijë këtu, 385 00:16:37,780 --> 00:16:39,200 por kjo nuk është. 386 00:16:39,200 --> 00:16:42,210 Dikush mund të shihni se çfarë tonë Problemi është në këtë linjë? 387 00:16:42,210 --> 00:16:45,380 388 00:16:45,380 --> 00:16:46,969 Kjo është një gjë shumë e minutë. 389 00:16:46,969 --> 00:16:48,510 Dhe ju gjithashtu mund të shikoni në kodin tuaj. 390 00:16:48,510 --> 00:16:49,980 391 00:16:49,980 --> 00:16:54,940 Është gjithashtu line-- harrojmë atë linjë që është në there-- por kjo është në [e padëgjueshme]. 392 00:16:54,940 --> 00:16:55,480 Po? 393 00:16:55,480 --> 00:16:58,639 >> Gjuha 4: Është më i madh se Faqja në qoftë se ju lexoni atë në libër. 394 00:16:58,639 --> 00:16:59,430 Gjuha 1: Pikërisht. 395 00:16:59,430 --> 00:17:02,620 Pra, debugger nuk mund të them ju se, por debugger 396 00:17:02,620 --> 00:17:05,880 mund të merrni ju poshtë për një linjë që ju e dini nuk është duke funksionuar. 397 00:17:05,880 --> 00:17:09,319 Dhe ndonjëherë, kur sidomos më pas në semestrin, kur 398 00:17:09,319 --> 00:17:12,910 ju jeni që kanë të bëjnë me njëqind, një Njëqind disa rreshta të kodit, dhe ju 399 00:17:12,910 --> 00:17:16,190 nuk e di se ku është e dështuar, kjo është një mënyrë e madhe për të bërë atë. 400 00:17:16,190 --> 00:17:17,900 401 00:17:17,900 --> 00:17:18,989 Pra, ne kemi gjetur bug tonë. 402 00:17:18,989 --> 00:17:21,530 Ju mund të rregullojmë atë në dosjen tuaj, dhe pastaj ju mund të kandidojë atë përsëri, 403 00:17:21,530 --> 00:17:23,029 dhe çdo gjë do të punojnë të përkryer. 404 00:17:23,029 --> 00:17:24,970 405 00:17:24,970 --> 00:17:30,590 Dhe gjëja më e madhe është kjo mund të duket si, OK. 406 00:17:30,590 --> 00:17:31,090 Po. 407 00:17:31,090 --> 00:17:31,370 Ftohtë. 408 00:17:31,370 --> 00:17:32,744 Ju e dinte se çfarë ju jeni duke kërkuar për. 409 00:17:32,744 --> 00:17:34,910 Pra, ju e dinte se çfarë të bëni. 410 00:17:34,910 --> 00:17:39,021 >> GDB mund të jetë super e dobishme për shkak se ju mund të shtypura nga të gjitha këto gjëra që ju të 411 00:17:39,021 --> 00:17:39,520 nuk do. 412 00:17:39,520 --> 00:17:41,160 Kjo është shumë më e dobishme se sa printf. 413 00:17:41,160 --> 00:17:43,440 Sa prej jush përdorni si deklaratat printf 414 00:17:43,440 --> 00:17:46,200 të kuptoj se ku a bug ishte, e drejtë? 415 00:17:46,200 --> 00:17:48,450 Pra, me këtë, ju nuk e bëni duhet të mbajë prapa, 416 00:17:48,450 --> 00:17:51,139 dhe si komentuar në Printf, apo komentuar jashtë, 417 00:17:51,139 --> 00:17:52,930 dhe të kuptoj se çfarë ju duhet të jetë printim. 418 00:17:52,930 --> 00:17:55,670 Kjo në fakt vetëm ju lejon të hap përmes, të shtypura nga gjërat 419 00:17:55,670 --> 00:18:00,000 si ju jeni duke shkuar nëpër, kështu që, ju mund të vëzhgojnë se si ata ndryshojnë në kohë reale, 420 00:18:00,000 --> 00:18:02,190 si programin tuaj po kandidon. 421 00:18:02,190 --> 00:18:04,390 >> Dhe ajo ka marrë pak pak duke u përdorur për të. 422 00:18:04,390 --> 00:18:07,850 Unë do të highly recomend vetëm lloji për të qenë pak i irrituar me të 423 00:18:07,850 --> 00:18:08,930 për tani. 424 00:18:08,930 --> 00:18:13,450 Nëse keni shpenzuar një orë gjatë javën e ardhshme të mësuarit se si të përdorin GDB, 425 00:18:13,450 --> 00:18:16,140 ju do të kurseni veten aq shumë kohë më vonë. 426 00:18:16,140 --> 00:18:18,750 Dhe fjalë për fjalë. themi kjo për njerëzit çdo vit, 427 00:18:18,750 --> 00:18:23,890 dhe I kujtohet kur mora të klasës, unë kam qenë si, unë do të jetë mirë. 428 00:18:23,890 --> 00:18:24,700 Jo. 429 00:18:24,700 --> 00:18:27,030 Pset 6 erdhi dhe unë isha si, unë jam gonna të mësuar 430 00:18:27,030 --> 00:18:29,500 se si të përdorin GDB, sepse unë nuk bëj e di se çfarë po ndodh këtu. 431 00:18:29,500 --> 00:18:32,940 >> Pra, nëse ju merrni kohë në mënyrë e përdorin atë në programet e vogla 432 00:18:32,940 --> 00:18:35,697 se ju jeni do të jetë duke punuar në, si punon 433 00:18:35,697 --> 00:18:37,530 me diçka si Visionare, si kjo. 434 00:18:37,530 --> 00:18:38,800 435 00:18:38,800 --> 00:18:42,850 Ose në qoftë se ju doni praktikë ekstra, unë jam i sigurt Unë mund të dalë me programe buggy, 436 00:18:42,850 --> 00:18:45,300 për ju që të korrigjoj, nëse ju dëshironi. 437 00:18:45,300 --> 00:18:49,300 >> Por në qoftë se ju vetëm të marrë disa kohë për të marrë përdoret për të, vetëm të luajnë rreth me të, 438 00:18:49,300 --> 00:18:50,550 ajo do të me të vërtetë të shërbejë edhe ju. 439 00:18:50,550 --> 00:18:52,591 Dhe kjo është me të vërtetë një nga ato gjëra që ju vetëm 440 00:18:52,591 --> 00:18:57,340 duhet të përpiqen dhe të marrë në duart tuaja të pista me, para se ju me të vërtetë e kuptojnë atë. 441 00:18:57,340 --> 00:19:02,090 Unë me të vërtetë kishte kuptuar vetëm një herë Unë kisha për të debug gjëra me të, 442 00:19:02,090 --> 00:19:08,170 dhe kjo është shumë nicer të ketë një ide të se si të korrigjoj më shpejt se sa më vonë. 443 00:19:08,170 --> 00:19:08,850 OK. 444 00:19:08,850 --> 00:19:09,625 Ftohtë. 445 00:19:09,625 --> 00:19:12,960 Unë e di se kjo është lloj i si një kurs përplasje në GDB, 446 00:19:12,960 --> 00:19:16,400 dhe unë patjetër do të punojnë në gjetjen e këto të shikojmë kohën e madhe e ardhshme. 447 00:19:16,400 --> 00:19:17,590 448 00:19:17,590 --> 00:19:18,280 Ftohtë. 449 00:19:18,280 --> 00:19:20,390 >> Pra, nëse ne kthehemi në PowerPoint tonë. 450 00:19:20,390 --> 00:19:27,194 451 00:19:27,194 --> 00:19:28,110 A është ky do të punojë? 452 00:19:28,110 --> 00:19:29,711 453 00:19:29,711 --> 00:19:30,210 SHIL. 454 00:19:30,210 --> 00:19:31,101 Po. 455 00:19:31,101 --> 00:19:31,600 OK. 456 00:19:31,600 --> 00:19:35,480 Pra, nëse ndonjëherë ju duhet ndonjë prej ata përsëri, nuk ka lista. 457 00:19:35,480 --> 00:19:37,160 458 00:19:37,160 --> 00:19:40,830 Pra Binary Search, të cilin të gjithë kujton spektaklin e madh të Davidit 459 00:19:40,830 --> 00:19:42,259 shkëlqyer libra telefonit në gjysmë. 460 00:19:42,259 --> 00:19:44,050 Unë nuk të vërtetë të marrë librat e telefonit më, 461 00:19:44,050 --> 00:19:46,530 sepse ashtu si kur të bëni ju merrni libra telefon këto ditë? 462 00:19:46,530 --> 00:19:48,220 Unë me të vërtetë nuk e di. 463 00:19:48,220 --> 00:19:49,840 464 00:19:49,840 --> 00:19:50,590 Binary Kërko. 465 00:19:50,590 --> 00:19:52,464 A kujtohet dikush se si Binary punon Kërkimi? 466 00:19:52,464 --> 00:19:54,380 467 00:19:54,380 --> 00:19:55,220 Çdokush në të gjitha? 468 00:19:55,220 --> 00:19:56,325 Vërtet? 469 00:19:56,325 --> 00:19:58,283 Gjuha 5: Ti e di kur ju shikoni në të cilën gjysma 470 00:19:58,283 --> 00:20:01,146 ajo do të jetë në, bazuar në këtë, dhe të shpëtoj nga gjysma tjetër. 471 00:20:01,146 --> 00:20:01,896 >> KRYETARI 1 Pikërisht. 472 00:20:01,896 --> 00:20:06,290 Pra, Binary Kërko, kjo është lloj i a-- --we pëlqen për të thirrur atë të ndarë dhe të pushtuar. 473 00:20:06,290 --> 00:20:09,170 Pra, çfarë ju do të bëni është të ju do të shikoni në mes, 474 00:20:09,170 --> 00:20:11,990 dhe ju do të shihni nëse ajo përputhet atë që ju po kërkoni. 475 00:20:11,990 --> 00:20:15,420 Dhe në qoftë se ajo nuk ka, atëherë ju përpiqeni të kuptoj se, po ai do të lihet 476 00:20:15,420 --> 00:20:16,450 gjysmë ose gjysmë të drejtë. 477 00:20:16,450 --> 00:20:19,325 Pra, kjo mund të jetë në qoftë se ju jeni në kërkim në diçka që është e alphabetized, 478 00:20:19,325 --> 00:20:20,720 ju shihni, oh. 479 00:20:20,720 --> 00:20:22,750 Ka ardhur Allison para M? 480 00:20:22,750 --> 00:20:23,250 Po. 481 00:20:23,250 --> 00:20:25,030 Pra, ne jemi duke shkuar për shikoni në pjesën e parë. 482 00:20:25,030 --> 00:20:26,450 >> Ose ajo mund të jetë si me numrat. 483 00:20:26,450 --> 00:20:28,830 Çdo gjë që ju mund të krahasuar, ajo mund të ndahen. 484 00:20:28,830 --> 00:20:29,920 485 00:20:29,920 --> 00:20:31,260 Ju mund të përdorni kërkimin binar në. 486 00:20:31,260 --> 00:20:32,340 487 00:20:32,340 --> 00:20:37,455 Pra, dikush kujtohet kjo grafik apo çfarë është kjo? 488 00:20:37,455 --> 00:20:39,520 Është Kompleksiteti Asymptotic. 489 00:20:39,520 --> 00:20:42,830 Pra, ky grafik vetëm përshkruan se sa kohë 490 00:20:42,830 --> 00:20:46,230 ju merr për të zgjidhur një problem në ju rritet numri i gjërave 491 00:20:46,230 --> 00:20:47,090 që ju jeni duke përdorur. 492 00:20:47,090 --> 00:20:51,260 >> Pra, ne kemi N, e cila është kohë lineare. 493 00:20:51,260 --> 00:20:54,560 N nëse mbi dy, i cili është pak më mirë, akoma rritet super të shpejtë. 494 00:20:54,560 --> 00:20:58,360 Dhe pastaj ne kemi Identifikohuni, e cila është ajo që ne e konsiderojmë Binary Kërko. 495 00:20:58,360 --> 00:21:03,630 Nëse vërejmë, si problemin tuaj merr shumë dhe shumë më të mëdha, 496 00:21:03,630 --> 00:21:06,600 Koha që ju duhet për të zgjidhur atë me të vërtetë nuk do të rritet aq shumë. 497 00:21:06,600 --> 00:21:09,010 Është si të krahasueshme këtu në fillim. 498 00:21:09,010 --> 00:21:10,060 Ju jeni si, OK. 499 00:21:10,060 --> 00:21:13,000 Çdo gjë këtu nuk ka të vërtetë një çështje që ne i përdorim, 500 00:21:13,000 --> 00:21:16,220 por ju merrni nga një milion, një miliard. 501 00:21:16,220 --> 00:21:20,010 Ju jeni duke u përpjekur për të gjetur some-- --you're duke u përpjekur për të gjetur një gjilpërë në kashtë. 502 00:21:20,010 --> 00:21:21,550 >> Unë mendoj se ju dëshironi këtë problem. 503 00:21:21,550 --> 00:21:25,850 Ju dëshironi këtë kompleksitet, jo lineare, sepse për të gjithë ju 504 00:21:25,850 --> 00:21:30,049 e di gonna të tuaj të kërkoni përmes çdo gjilpërë individual, gjë e barit, 505 00:21:30,049 --> 00:21:31,340 duke u përpjekur për të kërkuar gjilpërë tuaj. 506 00:21:31,340 --> 00:21:34,730 Dhe kjo nuk është shumë e fun për mendimin tim. 507 00:21:34,730 --> 00:21:35,500 I pëlqen të shpejtë. 508 00:21:35,500 --> 00:21:36,620 I pëlqen efikase. 509 00:21:36,620 --> 00:21:40,450 Dhe si punëtorë ju studentë djema jeni, ju e dini të punuar zgjuar, 510 00:21:40,450 --> 00:21:43,010 jo shumë gjë lloji, si ju mund të bëjë këto algoritme. 511 00:21:43,010 --> 00:21:45,110 512 00:21:45,110 --> 00:21:47,910 >> Pra, ne jemi duke shkuar për të ecur me vetëm një shembull të shpejtë. 513 00:21:47,910 --> 00:21:51,090 Unë mendoj se ju djema duhet të ketë një dorë në Binary Kërko, 514 00:21:51,090 --> 00:21:54,352 por në rast se dikush është pak fuzzy, duan ta përforcuar atë, 515 00:21:54,352 --> 00:21:56,310 ne jemi duke shkuar për të vetëm të shkojnë përmes një shembull këtu. 516 00:21:56,310 --> 00:21:59,490 Pra, ne jemi duke kërkuar për nese array përmban shtatë. 517 00:21:59,490 --> 00:22:00,540 518 00:22:00,540 --> 00:22:06,010 >> Pra, gjëja e parë që bëni është të shikoni në mes, e drejtë? 519 00:22:06,010 --> 00:22:09,340 Dhe gjithashtu ju do të jeni të kodim Binary Kërko në vetëm një të dytë. 520 00:22:09,340 --> 00:22:11,310 Pra, kjo do të jetë kënaqësi. 521 00:22:11,310 --> 00:22:13,710 Pra, ne shikojmë në vargjeve të mesme pak 3. 522 00:22:13,710 --> 00:22:15,501 A 3 të barabartë 7? 523 00:22:15,501 --> 00:22:16,000 Nuk ka. 524 00:22:16,000 --> 00:22:18,670 525 00:22:18,670 --> 00:22:19,550 Është e gjashtë. 526 00:22:19,550 --> 00:22:21,480 Pra, është më pak se ose më e madhe se shtatë? 527 00:22:21,480 --> 00:22:23,080 528 00:22:23,080 --> 00:22:23,960 Më pak se. 529 00:22:23,960 --> 00:22:24,570 Po. 530 00:22:24,570 --> 00:22:25,170 Nice guys punë. 531 00:22:25,170 --> 00:22:25,569 532 00:22:25,569 --> 00:22:27,360 Unë ndjehem si unë duhet kanë karamele sepse unë 533 00:22:27,360 --> 00:22:29,460 duan ta hedhin atë në oborre. 534 00:22:29,460 --> 00:22:30,270 Kjo është ajo që unë jam duke shkuar për të bërë javën e ardhshme. 535 00:22:30,270 --> 00:22:31,436 Kjo do të ju mbajë djema mprehtë. 536 00:22:31,436 --> 00:22:32,560 537 00:22:32,560 --> 00:22:34,690 >> Pra, ne flak se Gjysmën e parë, e drejtë? 538 00:22:34,690 --> 00:22:35,670 ajo ishte më pak se. 539 00:22:35,670 --> 00:22:39,325 ne e dimë se gjithçka në atë anën e majtë 540 00:22:39,325 --> 00:22:41,700 do të jetë më pak se ajo që ne jemi aktualisht në kërkim për të. 541 00:22:41,700 --> 00:22:43,491 Pra, nuk ka nevojë për të i kushtoj vëmendje për të. 542 00:22:43,491 --> 00:22:45,120 Vetëm harrojmë për këtë. 543 00:22:45,120 --> 00:22:48,720 Pra, tani që ne shohim në të djathtë anën tonë, dhe ne shikojmë në mes atje, 544 00:22:48,720 --> 00:22:50,510 dhe tani është nëntë. 545 00:22:50,510 --> 00:22:55,510 Pra, 9 is-- --Everyone? 546 00:22:55,510 --> 00:22:57,470 Më e madhe se ajo që ne jemi kërkim për të, e drejtë? 547 00:22:57,470 --> 00:22:59,860 Pra, ne jemi duke shkuar për të hedhur larg çdo gjë në të djathtë. 548 00:22:59,860 --> 00:23:00,970 549 00:23:00,970 --> 00:23:01,940 Si kjo. 550 00:23:01,940 --> 00:23:03,700 Tani, të gjithë ne jemi të majtë me të është një. 551 00:23:03,700 --> 00:23:07,760 Pra, ne kontrolloni, është kjo ajo që ne jemi duke kërkuar për? ajo është. 552 00:23:07,760 --> 00:23:08,970 Ne kemi gjetur atë që kemi dashur. 553 00:23:08,970 --> 00:23:10,440 554 00:23:10,440 --> 00:23:11,690 Pra, ne jemi duke bërë. 555 00:23:11,690 --> 00:23:12,550 Bilinear Kërko. 556 00:23:12,550 --> 00:23:15,740 >> Dhe në qoftë se ju vini re, ne kishte shtatë inputeve atje. 557 00:23:15,740 --> 00:23:24,320 Ai vetëm na mori si tri herë, por në qoftë se ju jeni duke bërë si një miliardë, 558 00:23:24,320 --> 00:23:28,190 ju djema e di se sa hapat që do të të marrë në qoftë se kemi pasur katër milliard gjëra? 559 00:23:28,190 --> 00:23:29,940 560 00:23:29,940 --> 00:23:30,455 Çdo supozime? 561 00:23:30,455 --> 00:23:32,286 562 00:23:32,286 --> 00:23:33,960 Është 32. 563 00:23:33,960 --> 00:23:37,110 32 hapa për të gjetur diçka në katër milliard 564 00:23:37,110 --> 00:23:39,650 element array për shkak të kompetencave të dy. 565 00:23:39,650 --> 00:23:43,550 Pra, dy është në 32, është në katër miliardë lekë. 566 00:23:43,550 --> 00:23:50,430 >> Pra mjaft i çmendur si ju jeni ende në si një numër mjaft të vogël të hapave 567 00:23:50,430 --> 00:23:52,650 për të gjetur diçka në katër milliard elemente. 568 00:23:52,650 --> 00:23:55,730 Pra, në këtë shënim, ne jemi do ta kodin këtë 569 00:23:55,730 --> 00:23:58,950 kështu që ju djema mund të vërtetë lloj të shohim se si punon kjo. 570 00:23:58,950 --> 00:24:01,520 Në rregull, kështu që ju djema mund kodin. 571 00:24:01,520 --> 00:24:04,100 Unë jam duke shkuar për të le ju djema flasim për një grimë të vogël. 572 00:24:04,100 --> 00:24:07,970 Get të dinë njerëzit rreth jush, i cili është atë që dikush donte nga seksionin e fundit. 573 00:24:07,970 --> 00:24:10,280 >> Pra merrni të dinë njerëzit rreth jush. 574 00:24:10,280 --> 00:24:11,305 Flisni për një grimë të vogël. 575 00:24:11,305 --> 00:24:12,580 576 00:24:12,580 --> 00:24:15,730 Dhe të gjitha unë dua nga ju djema tani është vetëm 577 00:24:15,730 --> 00:24:17,575 përpiqen për të krijuar një skicë të pseudokod. 578 00:24:17,575 --> 00:24:18,075 OK? 579 00:24:18,075 --> 00:24:20,825 580 00:24:20,825 --> 00:24:21,325 Whoa. 581 00:24:21,325 --> 00:24:23,320 582 00:24:23,320 --> 00:24:29,520 Të gjitha unë dua nga ju djema është që ju jeni vetëm do të plotësoni në këtë rast ndërsa. 583 00:24:29,520 --> 00:24:32,170 Kështu që unë kam vënë këto sipërme të mëdhenj të ulëta të cilat 584 00:24:32,170 --> 00:24:35,250 përfaqësojnë fillim dhe fundi i array tonë. 585 00:24:35,250 --> 00:24:40,440 Dhe ju do të vërtetë loop përmes dhe të kuptoj se 586 00:24:40,440 --> 00:24:42,470 ajo që ne jemi duke bërë në këtë lak, ndërsa. 587 00:24:42,470 --> 00:24:45,810 >> Pra, nëse ju mund ta kuptoj out-- kam një aluzion there-- cilat janë rastet 588 00:24:45,810 --> 00:24:46,640 që ne kemi këtu? 589 00:24:46,640 --> 00:24:48,100 590 00:24:48,100 --> 00:24:51,560 Pra, nëse ju doni të kuptoj se raste, ne do të pseudokod ato 591 00:24:51,560 --> 00:24:53,350 dhe pastaj ne do të vërtetë kodin e tyre. 592 00:24:53,350 --> 00:24:55,330 Dhe kjo do të jetë, unë mendoj, shpresojmë se ajo do të 593 00:24:55,330 --> 00:24:56,788 të jetë një pak më e lehtë se sa ju presim. 594 00:24:56,788 --> 00:24:57,554 595 00:24:57,554 --> 00:25:00,220 Për shkak se ajo nuk është se kodi shumë, në të vërtetë, e cila është me të vërtetë cool. 596 00:25:00,220 --> 00:25:34,110 597 00:25:34,110 --> 00:25:35,018 >> Mm-hm? 598 00:25:35,018 --> 00:25:35,893 >> STUDENT: [padëgjueshme]? 599 00:25:35,893 --> 00:25:36,984 600 00:25:36,984 --> 00:25:37,650 INSTRUKTOR: Po. 601 00:25:37,650 --> 00:25:38,595 Nuk ishte diçka e për të gjetur në mes. 602 00:25:38,595 --> 00:25:39,552 >> STUDENT: Pra, ne mund të përdorni atë. 603 00:25:39,552 --> 00:25:39,770 OK. 604 00:25:39,770 --> 00:25:40,603 >> INSTRUKTOR: Perfect. 605 00:25:40,603 --> 00:25:42,950 Pra, kjo është gjëja e parë që ne duhet të bëjmë. 606 00:25:42,950 --> 00:25:44,330 Pra, gjeni mesme. 607 00:25:44,330 --> 00:25:45,415 608 00:25:45,415 --> 00:25:45,915 E madhe. 609 00:25:45,915 --> 00:25:47,770 610 00:25:47,770 --> 00:25:55,010 Pra, ju keni një ide se si ne mund në fakt gjetur e mesme me kod? 611 00:25:55,010 --> 00:25:55,980 >> STUDENT: Po. 612 00:25:55,980 --> 00:25:57,000 n mbi 2? 613 00:25:57,000 --> 00:25:58,500 614 00:25:58,500 --> 00:25:59,500 INSTRUKTOR: Pra, n mbi 2. 615 00:25:59,500 --> 00:26:05,170 Pra, një gjë për të kujtuar është se kufijtë tuaj sipërme dhe të poshtme të ndryshojë. 616 00:26:05,170 --> 00:26:08,110 Ne vazhdojmë constricting pjesë e array ne jemi duke kërkuar për të. 617 00:26:08,110 --> 00:26:11,970 Pra, n mbi 2 do të punojnë vetëm për gjëja e parë që ne bëjmë. 618 00:26:11,970 --> 00:26:17,810 Pra, të marrë pjesën e sipërme dhe të poshtme parasysh, se si mund të marrim atë element mesme? 619 00:26:17,810 --> 00:26:20,640 Sepse ne duam të mesme në mes të sipërme dhe të poshtme, e drejtë? 620 00:26:20,640 --> 00:26:21,730 621 00:26:21,730 --> 00:26:22,494 Mm-hm? 622 00:26:22,494 --> 00:26:23,369 >> STUDENT: [padëgjueshme]. 623 00:26:23,369 --> 00:26:26,170 624 00:26:26,170 --> 00:26:28,080 >> INSTRUKTOR: Pra, ne kemi një qendër. 625 00:26:28,080 --> 00:26:32,730 Dhe kjo do të jetë e sipërme plus ulët gjatë 2. 626 00:26:32,730 --> 00:26:34,740 627 00:26:34,740 --> 00:26:35,690 Awesome. 628 00:26:35,690 --> 00:26:36,570 Nuk shkojmë. 629 00:26:36,570 --> 00:26:37,280 Një poshtë vijës. 630 00:26:37,280 --> 00:26:38,560 Ju djema jeni në rrugën tuaj. 631 00:26:38,560 --> 00:26:41,400 Pra, tani që ne kemi tonë mesme, ajo që duam të bëjmë? 632 00:26:41,400 --> 00:26:45,050 633 00:26:45,050 --> 00:26:45,900 Vetëm në përgjithësi. 634 00:26:45,900 --> 00:26:47,734 Ju nuk keni për kodin atë. 635 00:26:47,734 --> 00:26:48,335 Po. 636 00:26:48,335 --> 00:26:49,210 STUDENT: [padëgjueshme]? 637 00:26:49,210 --> 00:27:00,310 638 00:27:00,310 --> 00:27:10,310 INSTRUKTOR: Pra, kjo është plus për shkak se ju jeni gjetjen mesatare ndërmjet dy 639 00:27:10,310 --> 00:27:10,810 prej tyre. 640 00:27:10,810 --> 00:27:11,890 641 00:27:11,890 --> 00:27:17,370 Pra, nëse ju mendoni se prej tyre si lloj e në rritje nga anët, 642 00:27:17,370 --> 00:27:21,640 të mendojnë për atë si ju qasje mesme, ju doni si kjo. 643 00:27:21,640 --> 00:27:27,150 Pra, nëse ju keni qenë në të dyja anët e mesme, dhe ne kemi si 5 dhe 7. 644 00:27:27,150 --> 00:27:31,440 Kur ju shtoni ato së bashku ju merrni 12, ju ndani me 2, është 6. 645 00:27:31,440 --> 00:27:33,726 >> Ndonjëherë është e vështirë për të të shpjegojë pse që punon, 646 00:27:33,726 --> 00:27:35,600 por në qoftë se ju punoni me një shembull ndonjëherë, 647 00:27:35,600 --> 00:27:37,962 ajo do të ju ndihmojë të kuptoj se nëse ajo duhet të jetë plus ose minus. 648 00:27:37,962 --> 00:27:38,846 Po. 649 00:27:38,846 --> 00:27:40,830 >> STUDENT: [padëgjueshme] pikërisht në mes 650 00:27:40,830 --> 00:27:43,950 në qoftë se ata kishin një rast ku ka një shumë të numrave më të vogël 651 00:27:43,950 --> 00:27:45,860 dhe si një numër i madh? 652 00:27:45,860 --> 00:27:49,750 >> INSTRUKTOR: Pra, të gjithë ju duhet është mes të vektorit. 653 00:27:49,750 --> 00:27:53,010 Pra, nëse keni pasur një bandë e numrave të vogël dhe pastaj një numër të vërtetë i madh 654 00:27:53,010 --> 00:27:54,799 Në fund, kjo nuk ka rëndësi. 655 00:27:54,799 --> 00:27:56,840 Të gjitha që ka rëndësi është se ata janë renditur, ju vetëm 656 00:27:56,840 --> 00:27:59,339 dëshironi të shikoni në mes të array sepse ju jeni ende 657 00:27:59,339 --> 00:28:00,700 rrafshoj problemin tuaj në gjysmë. 658 00:28:00,700 --> 00:28:03,020 659 00:28:03,020 --> 00:28:03,680 Ftohtë. 660 00:28:03,680 --> 00:28:06,430 Pra, tani që ne kemi mesme, çfarë të bëjmë tjetër? 661 00:28:06,430 --> 00:28:07,150 >> STUDENT: Krahaso. 662 00:28:07,150 --> 00:28:08,150 INSTRUKTOR: krahasoni. 663 00:28:08,150 --> 00:28:11,670 Pra, krahasoni mes të value_wanted. 664 00:28:11,670 --> 00:28:14,300 665 00:28:14,300 --> 00:28:15,160 Ftohtë. 666 00:28:15,160 --> 00:28:17,950 Kështu që ju shihni këtu kemi kjo vlerë ne duam këtu. 667 00:28:17,950 --> 00:28:22,012 668 00:28:22,012 --> 00:28:23,095 Mos harroni kjo është një koleksion. 669 00:28:23,095 --> 00:28:24,100 670 00:28:24,100 --> 00:28:26,970 Pra mesme referohet indeksit. 671 00:28:26,970 --> 00:28:29,785 Pra, ne duam të bëjmë vlerat e mesme. 672 00:28:29,785 --> 00:28:32,380 673 00:28:32,380 --> 00:28:35,650 Mos harroni, nëse ju doni të krahasojnë, të barabartëve dyfishtë. 674 00:28:35,650 --> 00:28:38,250 Ju bëni vetëm ju jeni të barabartë vetëm do të reassign atë, 675 00:28:38,250 --> 00:28:41,090 dhe pastaj, sigurisht, është e do të jetë vlera që ju dëshironi. 676 00:28:41,090 --> 00:28:42,300 Pra, nuk e bëjmë atë. 677 00:28:42,300 --> 00:28:44,350 >> Pra, ne jemi duke shkuar për të parë nëse vlerat në mes 678 00:28:44,350 --> 00:28:46,460 është e barabartë me vlerën që ne duam. 679 00:28:46,460 --> 00:28:47,749 680 00:28:47,749 --> 00:28:48,790 Mos harroni formatimin e teksteve tuaja. 681 00:28:48,790 --> 00:28:50,520 682 00:28:50,520 --> 00:28:52,235 Dropbox duhet të shkoni larg. 683 00:28:52,235 --> 00:28:54,140 684 00:28:54,140 --> 00:28:56,200 Pra, çfarë bëjmë ne në këtë rast? 685 00:28:56,200 --> 00:28:59,360 Në qoftë se kjo është ajo që ne duam të kthehemi? 686 00:28:59,360 --> 00:29:01,510 687 00:29:01,510 --> 00:29:02,626 Ne jemi duke u përpjekur për të thënë. 688 00:29:02,626 --> 00:29:03,440 >> STUDENT: Print off. 689 00:29:03,440 --> 00:29:05,314 >> INSTRUKTOR: E pra, ne kemi nuk duan të shtypura off. 690 00:29:05,314 --> 00:29:08,220 Pra, kjo është një bool këtu, kështu që ne dëshirojnë të kthehen e vërtetë apo e rreme. 691 00:29:08,220 --> 00:29:12,280 Ne jemi duke thënë se, është ky numër një [? RRA? ?] Pra, në qoftë se ajo është, 692 00:29:12,280 --> 00:29:13,788 ne vetëm të kthehen vërtetë. 693 00:29:13,788 --> 00:29:16,780 694 00:29:16,780 --> 00:29:17,760 Në qoftë se unë mund të spell vërtetë. 695 00:29:17,760 --> 00:29:18,830 696 00:29:18,830 --> 00:29:20,805 >> STUDENT: Pse nuk do të ktheheni zero? 697 00:29:20,805 --> 00:29:22,930 INSTRUKTOR: Pra, ju mund të kthehet zero në qoftë se ju të kërkuar. 698 00:29:22,930 --> 00:29:26,780 Por në këtë rast, sepse funksioni ynë kthen një bool, 699 00:29:26,780 --> 00:29:28,962 ne kemi nevojë për t'u kthyer ose e vërtetë apo e rreme. 700 00:29:28,962 --> 00:29:30,920 STUDENT: Kur ju jeni duke thënë shprehje boolean, 701 00:29:30,920 --> 00:29:33,450 mund të keni vendosur të barabartë të rreme? 702 00:29:33,450 --> 00:29:39,860 Ashtu si në qoftë se unë dua të them, nëse ky kusht nuk është plotësuar, ashtu si është e sipërme është e barabartë false. 703 00:29:39,860 --> 00:29:42,332 Do të kuptoni nëse ju vetëm vënë false në anën tjetër? 704 00:29:42,332 --> 00:29:43,040 INSTRUKTOR: Po. 705 00:29:43,040 --> 00:29:44,820 Pra, në fakt, nëse ju jeni ndonjëherë duke bërë diçka 706 00:29:44,820 --> 00:29:49,600 si është e sipërme apo është më e ulët, që jep true ose false 707 00:29:49,600 --> 00:29:53,850 dhe kjo është stil të vërtetë e keqe për të themi barabartë barabartë të vërteta ose të barabartëve 708 00:29:53,850 --> 00:29:54,840 barabartë false. 709 00:29:54,840 --> 00:30:00,210 Ju dëshironi që të përdorni këtë rezultat si vetë si çek tuaj. 710 00:30:00,210 --> 00:30:04,720 711 00:30:04,720 --> 00:30:05,860 Jo atë që kam kërkuar. 712 00:30:05,860 --> 00:30:08,150 713 00:30:08,150 --> 00:30:09,240 Kjo është ajo që kam kërkuar. 714 00:30:09,240 --> 00:30:13,205 Pra, në rast se ju jeni duke kërkuar për diçka si kjo për të shpëtuar në c. 715 00:30:13,205 --> 00:30:16,320 716 00:30:16,320 --> 00:30:25,150 >> Pra, nëse kemi int kryesor (i pavlefshëm) dhe diçka si kjo. 717 00:30:25,150 --> 00:30:31,922 Dhe ju keni në qoftë se është i sipërm e disa inputeve dhe ju jeni 718 00:30:31,922 --> 00:30:33,630 duke i kërkuar në qoftë se ju mund të bëni diçka si kjo? 719 00:30:33,630 --> 00:30:35,010 720 00:30:35,010 --> 00:30:35,679 E drejtë? 721 00:30:35,679 --> 00:30:37,470 STUDENT: Unë kam qenë duke u përpjekur ta bëjë atë [e padëgjueshme]. 722 00:30:37,470 --> 00:30:38,450 Sepse në qoftë se it's-- 723 00:30:38,450 --> 00:30:39,200 INSTRUKTOR: E drejta. 724 00:30:39,200 --> 00:30:41,197 Pra, ju doni që kjo të jetë e rreme, e drejtë? 725 00:30:41,197 --> 00:30:41,780 STUDENT: Po. 726 00:30:41,780 --> 00:30:45,960 INSTRUKTOR: Pra, në këtë rast ju duan që ajo të ekzekutuar në qoftë se nuk është e vërtetë. 727 00:30:45,960 --> 00:30:50,510 Pra, gjëja e ftohtë që ju bëni nuk është kjo. 728 00:30:50,510 --> 00:30:52,900 729 00:30:52,900 --> 00:30:55,650 Pra, mos harroni Thirrje Pika mohon gjërat? 730 00:30:55,650 --> 00:30:58,270 Ai thotë se [padëgjueshme] nuk do të thotë. 731 00:30:58,270 --> 00:31:03,590 Pra, nëse ne shikojmë në vetëm kjo pjesë këtu, ju do të 732 00:31:03,590 --> 00:31:05,740 thonë se vlerëson të false si ju dëshironi që ajo të. 733 00:31:05,740 --> 00:31:06,790 734 00:31:06,790 --> 00:31:09,880 Jo false është e vërtetë e cila do të thotë që kjo do të ekzekutojë. 735 00:31:09,880 --> 00:31:11,037 Ka që e bëjnë kuptim? 736 00:31:11,037 --> 00:31:11,620 STUDENT: Po. 737 00:31:11,620 --> 00:31:12,453 INSTRUKTOR: mbresëlënës. 738 00:31:12,453 --> 00:31:13,800 739 00:31:13,800 --> 00:31:14,300 OK. 740 00:31:14,300 --> 00:31:16,330 Pra, ne vetëm mund të kthehemi e vërtetë në këtë rast. 741 00:31:16,330 --> 00:31:20,357 Deri tani ne kemi dy të tjerë raste në këtë rast. 742 00:31:20,357 --> 00:31:21,565 Cilat janë dy raste të tona të tjera? 743 00:31:21,565 --> 00:31:31,610 744 00:31:31,610 --> 00:31:32,900 Le të vetëm të bëjë atë në këtë mënyrë. 745 00:31:32,900 --> 00:31:40,660 Pra, le të fillojë me të tjerët nëse vlerat në mes 746 00:31:40,660 --> 00:31:43,230 është më e vogël se vlera që ne duam. 747 00:31:43,230 --> 00:31:47,200 748 00:31:47,200 --> 00:31:52,020 Pra, vlera ynë në mes është më pak se vlera që ne jemi në kërkim për të. 749 00:31:52,020 --> 00:31:53,765 750 00:31:53,765 --> 00:31:56,720 >> Pra, e cila lidhur bëni ju mendoj se ne duam për të rinovuar? 751 00:31:56,720 --> 00:31:57,870 752 00:31:57,870 --> 00:31:58,780 Sipërme apo të poshtme? 753 00:31:58,780 --> 00:32:01,440 754 00:32:01,440 --> 00:32:01,940 Upper? 755 00:32:01,940 --> 00:32:03,230 756 00:32:03,230 --> 00:32:06,470 Pra, cila anë e array do të shkojmë të jetë në kërkim në? 757 00:32:06,470 --> 00:32:07,500 >> STUDENT: ulët. 758 00:32:07,500 --> 00:32:09,750 >> INSTRUKTOR: Ne jemi duke shkuar të jetë në kërkim në të majtë. 759 00:32:09,750 --> 00:32:11,120 Pra, tjetër, nëse vlera është pak më pak. 760 00:32:11,120 --> 00:32:14,730 Pra vlerën tuaj mesme këtu është më pak se ajo që ne duam. 761 00:32:14,730 --> 00:32:17,202 Pra, ne duam të marrin anën e djathtë të vektorit tonë. 762 00:32:17,202 --> 00:32:18,910 Pra, ne jemi duke shkuar për Përditëso detyruar tonë të ulët. 763 00:32:18,910 --> 00:32:20,210 764 00:32:20,210 --> 00:32:23,020 Pra, ne do të reassign tonë të ulët. 765 00:32:23,020 --> 00:32:25,221 Dhe çfarë mendoni të ulët duhet të jetë? 766 00:32:25,221 --> 00:32:26,304 STUDENT: Vlera e mesme? 767 00:32:26,304 --> 00:32:27,446 768 00:32:27,446 --> 00:32:28,820 INSTRUKTOR: Pra value-- mesme 769 00:32:28,820 --> 00:32:30,136 STUDENT: Plus 1. 770 00:32:30,136 --> 00:32:31,010 INSTRUKTOR: --plus 1. 771 00:32:31,010 --> 00:32:32,300 772 00:32:32,300 --> 00:32:34,380 Dikush mund të më thoni pse kemi se plus 1? 773 00:32:34,380 --> 00:32:35,730 >> STUDENT: [? Nuk ka vlerë?] është më e barabartë me të. 774 00:32:35,730 --> 00:32:36,120 >> INSTRUKTOR: E drejta. 775 00:32:36,120 --> 00:32:38,661 Sepse ne tashmë e dimë se vlera jonë mesme nuk është e barabartë tek 776 00:32:38,661 --> 00:32:42,750 kjo dhe ne duam ta përjashtojë atë nga të gjitha kërkimet e mëvonshme. 777 00:32:42,750 --> 00:32:46,360 Nëse ju harroni se plus 1, kjo do të donte lak kohë të pacaktuar. 778 00:32:46,360 --> 00:32:49,620 Dhe ju do të jetë vetëm kapur në një loop pafund dhe pastaj ju do të segfault 779 00:32:49,620 --> 00:32:50,370 dhe gjërat shkojnë keq. 780 00:32:50,370 --> 00:32:54,780 Kështu që gjithmonë sigurohuni që ju nuk jeni duke përfshirë edhe vlerën që ju vetëm 781 00:32:54,780 --> 00:32:55,380 shikuar. 782 00:32:55,380 --> 00:32:58,530 Pra, ne të kujdeset që me një plus 1. 783 00:32:58,530 --> 00:33:04,840 >> Deri tani ne kemi gjendjen tonë të fundit që unë gjithmonë për hir të sigurisë 784 00:33:04,840 --> 00:33:12,664 ju mund të shikoni këtu, përndryshe nëse vlera në mesme është më e madhe se vlera 785 00:33:12,664 --> 00:33:13,163 ne duam. 786 00:33:13,163 --> 00:33:16,260 787 00:33:16,260 --> 00:33:20,230 Kjo do të thotë se ne duam gjysma e majtë. 788 00:33:20,230 --> 00:33:21,350 789 00:33:21,350 --> 00:33:23,260 Pra, i cili do të shkojmë për të rinovuar? 790 00:33:23,260 --> 00:33:23,760 Upper. 791 00:33:23,760 --> 00:33:25,470 792 00:33:25,470 --> 00:33:26,970 Dhe çfarë është kjo do të barabartë? 793 00:33:26,970 --> 00:33:31,630 794 00:33:31,630 --> 00:33:33,690 Lindja minus 1, sepse, natyrisht, ne duam 795 00:33:33,690 --> 00:33:38,370 për të siguruar që ne nuk jemi duke kërkuar në këtë vlerë e mesme përsëri. 796 00:33:38,370 --> 00:33:41,830 797 00:33:41,830 --> 00:33:45,110 Dhe pastaj ne kemi atë. 798 00:33:45,110 --> 00:33:45,610 Kjo ishte. 799 00:33:45,610 --> 00:33:46,820 Kjo është e gjitha kërko binar është. 800 00:33:46,820 --> 00:33:48,190 Kjo nuk është edhe aq keq, apo jo? 801 00:33:48,190 --> 00:33:51,590 Është si 10 linjave të Kodi me hapësirë ​​të bardhë. 802 00:33:51,590 --> 00:33:57,510 Pra shumë e fuqishme, shumë të dobishme, ju do të të jenë duke e përdorur atë në një nga psets tuaja më vonë. 803 00:33:57,510 --> 00:33:59,360 Ndoshta jo këtë, por më vonë. 804 00:33:59,360 --> 00:34:00,670 Pra, të mësojnë atë. 805 00:34:00,670 --> 00:34:01,510 Love it. 806 00:34:01,510 --> 00:34:02,980 Ajo do të trajtojnë mirë ju. 807 00:34:02,980 --> 00:34:05,370 Pra, ka njeri të ketë ndonjë pyetje në kërkim binar? 808 00:34:05,370 --> 00:34:06,196 Po. 809 00:34:06,196 --> 00:34:09,840 >> STUDENTORE: A ka rëndësi a n e juaj është edhe apo i rastësishëm? 810 00:34:09,840 --> 00:34:10,750 >> INSTRUKTOR: Jo 811 00:34:10,750 --> 00:34:18,150 Sepse ne e hodhi në mes, si një int, ai thjesht do ta shkurtoj atë. 812 00:34:18,150 --> 00:34:21,600 Pra, kjo do të qëndrojnë një numër të plotë dhe kjo do të në fund të zgjidhur me çdo gjë. 813 00:34:21,600 --> 00:34:23,909 Pra, ju nuk keni për t'u shqetësuar në lidhje me atë. 814 00:34:23,909 --> 00:34:24,580 Gjithkush e mirë? 815 00:34:24,580 --> 00:34:25,659 816 00:34:25,659 --> 00:34:26,850 Awesome. 817 00:34:26,850 --> 00:34:27,919 Ftohtë. 818 00:34:27,919 --> 00:34:30,836 Pra, ju djema mori këtë. 819 00:34:30,836 --> 00:34:33,380 820 00:34:33,380 --> 00:34:33,880 Slideshow. 821 00:34:33,880 --> 00:34:35,719 822 00:34:35,719 --> 00:34:43,270 Pra, si ne ishim duke folur rreth, unë e di David përmendur runtimes kompleksitetin. 823 00:34:43,270 --> 00:34:44,420 824 00:34:44,420 --> 00:34:50,340 >> Pra, në rastin më të mirë, kjo është vetëm ai, që ne e quajmë kohë të vazhdueshme. 825 00:34:50,340 --> 00:34:51,909 Dikush mund të më thoni pse kjo mund të jetë? 826 00:34:51,909 --> 00:34:52,969 827 00:34:52,969 --> 00:34:55,800 Çfarë lloj skenari do që të sjellë? 828 00:34:55,800 --> 00:34:58,260 829 00:34:58,260 --> 00:34:58,760 Mm-HM. 830 00:34:58,760 --> 00:34:59,926 >> STUDENT: [padëgjueshme] first-- 831 00:34:59,926 --> 00:35:00,789 832 00:35:00,789 --> 00:35:03,830 INSTRUKTOR: Pra mesme të qënit Elementi i parë që kemi ardhur për të, apo jo? 833 00:35:03,830 --> 00:35:08,167 Pra, ose një grup i një ose çdo gjë që ne jemi duke kërkuar për vetëm 834 00:35:08,167 --> 00:35:09,750 ndodh të jetë çik mu në mes. 835 00:35:09,750 --> 00:35:11,190 836 00:35:11,190 --> 00:35:13,380 Pra, kjo është çështja jonë më e mirë. 837 00:35:13,380 --> 00:35:17,540 Ju merrni në probleme reale, ndoshta jo do të arrijnë [padëgjueshme] që shpesh. 838 00:35:17,540 --> 00:35:18,667 839 00:35:18,667 --> 00:35:19,750 Po në lidhje me rastin tonë më të keq? 840 00:35:19,750 --> 00:35:21,270 Rasti ynë më i keq është log n. 841 00:35:21,270 --> 00:35:25,360 Dhe kjo ka të bëjë me tërë kompetencat e dy gjë që kam folur rreth. 842 00:35:25,360 --> 00:35:30,930 >> Pra, në rastin më të keq do të thotë që na u desh të pres array poshtë 843 00:35:30,930 --> 00:35:33,270 derisa ajo ishte një element i njërit. 844 00:35:33,270 --> 00:35:34,810 845 00:35:34,810 --> 00:35:38,930 Pra, ne u desh të pres atë në gjysmë si shumë herë si ne ndoshta mund. 846 00:35:38,930 --> 00:35:41,430 Kjo është arsyeja pse ajo është log n, sepse ju vetëm i mbajnë ndarë nga dy. 847 00:35:41,430 --> 00:35:42,890 848 00:35:42,890 --> 00:35:45,830 Pra supozimet, gjërat që ju duhet të di nëse ju jeni ndonjëherë 849 00:35:45,830 --> 00:35:48,050 do të përdorin një kërkim binar. 850 00:35:48,050 --> 00:35:50,680 Elementet e juaj duhet të ndahen. 851 00:35:50,680 --> 00:35:53,890 Ata duhet të zgjidhet, sepse kjo është mënyra e vetme që ju 852 00:35:53,890 --> 00:35:57,060 mund të dini nëse ju jeni në gjendje për të hedhur nga gjysma e tij. 853 00:35:57,060 --> 00:36:00,260 >> Nëse keni pasur këtë qese jumbled e numrave dhe ju jeni duke thënë, 854 00:36:00,260 --> 00:36:05,380 OK, unë jam duke shkuar për të kontrolluar e mesme numrin dhe numri unë jam duke kërkuar për 855 00:36:05,380 --> 00:36:08,510 është më pak se kaq, unë jam vetëm duke shkuar që në mënyrë arbitrare të hedhur nga një gjysmë. 856 00:36:08,510 --> 00:36:11,130 Ju nuk do të dini nëse juaj Numrat në atë gjysmën tjetër. 857 00:36:11,130 --> 00:36:12,655 Lista juaj duhet të zgjidhet. 858 00:36:12,655 --> 00:36:14,030 859 00:36:14,030 --> 00:36:16,560 Si edhe, kjo mund të jetë duke shkuar përpara pak, 860 00:36:16,560 --> 00:36:18,360 por ju duhet të keni qasje të rastit. 861 00:36:18,360 --> 00:36:21,940 Ju duhet të jetë në gjendje të vetëm shkojnë në këtë element të mesëm. 862 00:36:21,940 --> 00:36:25,110 Nëse ju keni të kaloj me diçka 863 00:36:25,110 --> 00:36:28,630 ose ajo ju merr masa shtesë për të marrë në këtë element të mesëm, 864 00:36:28,630 --> 00:36:31,750 kjo nuk është të hyni më, sepse n ju jeni duke shtuar më shumë punë në të. 865 00:36:31,750 --> 00:36:34,800 Dhe kjo do të bëjë pak më shumë kuptim në dy javë, 866 00:36:34,800 --> 00:36:37,950 por unë vetëm lloj i kërkuar në parathënie, ju djema japin një ide të asaj që është e 867 00:36:37,950 --> 00:36:38,999 që do të vijnë. 868 00:36:38,999 --> 00:36:40,790 Por ato janë dy Supozimet e rëndësishme 869 00:36:40,790 --> 00:36:44,804 se ju keni nevojë për një listë binar. 870 00:36:44,804 --> 00:36:45,720 Sigurohuni që ajo është e renditura. 871 00:36:45,720 --> 00:36:47,920 Kjo është një i madh për ju djema tani. 872 00:36:47,920 --> 00:36:52,170 Dhe që ne mund të shkojnë në tjetër terezi tona. 873 00:36:52,170 --> 00:36:56,444 Pra, katër flluskë sorts--, futje, zgjedhja, dhe bashkojë. 874 00:36:56,444 --> 00:36:57,485 Ata janë të gjitha llojet e ftohtë. 875 00:36:57,485 --> 00:37:02,860 Në qoftë se ju djema të vendosë për të marrë CS 124, ju do të mësojnë në lidhje me të gjitha llojet e llojeve. 876 00:37:02,860 --> 00:37:07,575 Dhe në qoftë se ju jeni një tifoz XKCD, atje është një lidhje me të vërtetë cool komik 877 00:37:07,575 --> 00:37:11,530 si llojet e vërtetë të paefektshme, të cilat unë rekomandoj që ju do të shikoni në. 878 00:37:11,530 --> 00:37:16,170 Një prej tyre është si lloj paniku, i cili është si, oh jo, kthehen array rastit. 879 00:37:16,170 --> 00:37:16,991 Sistemi mbyllje. 880 00:37:16,991 --> 00:37:17,490 Lini. 881 00:37:17,490 --> 00:37:19,070 882 00:37:19,070 --> 00:37:21,500 Pra, humor geeky është gjithmonë i mirë. 883 00:37:21,500 --> 00:37:22,620 884 00:37:22,620 --> 00:37:25,750 >> Pra ka dikush kujtohet lloj e si vetëm një ide të përgjithshme 885 00:37:25,750 --> 00:37:27,810 se si punon flluskë lloj. 886 00:37:27,810 --> 00:37:31,130 887 00:37:31,130 --> 00:37:32,155 Ju kujtohet? 888 00:37:32,155 --> 00:37:32,755 >> STUDENT: Po. 889 00:37:32,755 --> 00:37:33,970 >> INSTRUKTOR: Shkoni për të. 890 00:37:33,970 --> 00:37:38,980 >> STUDENT: Pra, ju jeni duke shkuar nëpër dhe nëse është e madhe, atëherë ju bie në ujdi dy. 891 00:37:38,980 --> 00:37:39,820 >> INSTRUKTOR: Mm-HM. 892 00:37:39,820 --> 00:37:40,564 Pikërisht. 893 00:37:40,564 --> 00:37:41,730 Pra, ju vetëm iterate nëpër. 894 00:37:41,730 --> 00:37:43,050 Ju shikoni dy numra. 895 00:37:43,050 --> 00:37:46,510 Në qoftë se ai më parë është më e madhe se ai më pas, 896 00:37:46,510 --> 00:37:50,230 ju vetëm shkëmbim të tyre në mënyrë që në në këtë mënyrë të gjithë numrat e larta 897 00:37:50,230 --> 00:37:54,990 flluska deri në fund të lista dhe të gjitha numrat e ulëta flluskë poshtë. 898 00:37:54,990 --> 00:37:59,355 >> A ai t'ju tregojë djema ftohtë Tingull Efekt sorting videon? 899 00:37:59,355 --> 00:38:00,480 Kjo është lloj i ftohtë. 900 00:38:00,480 --> 00:38:01,510 901 00:38:01,510 --> 00:38:05,200 Pra vetëm si tha Robert, algorithm që ju sapo hap nëpër lista, 902 00:38:05,200 --> 00:38:07,930 shkëmbejnë vlerat ngjitur në qoftë se ata nuk janë në rregull. 903 00:38:07,930 --> 00:38:10,975 Dhe pastaj vetëm i mbajnë përsëritur derisa ju nuk do të bëni asnjë këmbime. 904 00:38:10,975 --> 00:38:11,990 905 00:38:11,990 --> 00:38:12,740 Pra nuk është e keqe, e drejtë? 906 00:38:12,740 --> 00:38:14,080 907 00:38:14,080 --> 00:38:16,319 Pra, ne vetëm kemi një shembull të shpejtë këtu. 908 00:38:16,319 --> 00:38:18,360 Pra, kjo do të zgjidhur ato në ngjitje qëllim. 909 00:38:18,360 --> 00:38:19,470 910 00:38:19,470 --> 00:38:23,470 Pra, kur ne do të shkojmë nëpër parë kohë, ne shikojmë nëpërmjet tetë 911 00:38:23,470 --> 00:38:26,880 dhe gjashtë natyrisht që nuk janë të në mënyrë që, ne të bie në ujdi tyre. 912 00:38:26,880 --> 00:38:27,985 >> Pra, shikoni në një tjetër. 913 00:38:27,985 --> 00:38:29,430 Tetë dhe jo katër në rregull. 914 00:38:29,430 --> 00:38:30,450 Bie në ujdi tyre. 915 00:38:30,450 --> 00:38:32,530 Dhe pastaj tetë dhe dy, bie në ujdi tyre. 916 00:38:32,530 --> 00:38:33,470 Nuk shkojmë. 917 00:38:33,470 --> 00:38:39,519 Pra, pasi të kalojë tuaj të parë, ju e dini se numri i juaj i madh 918 00:38:39,519 --> 00:38:41,810 do të jetë mbi të gjitha mënyra në krye, sepse kjo është vetëm 919 00:38:41,810 --> 00:38:44,210 do të jetë vazhdimisht më të mëdha se çdo gjë tjetër 920 00:38:44,210 --> 00:38:46,810 dhe ajo është vetëm do të flluskë up gjithë rrugës deri në fund atje. 921 00:38:46,810 --> 00:38:48,226 A që e bën kuptim për të gjithë? 922 00:38:48,226 --> 00:38:48,560 923 00:38:48,560 --> 00:38:49,060 Ftohtë. 924 00:38:49,060 --> 00:38:51,310 925 00:38:51,310 --> 00:38:53,920 >> Pra, atëherë ne shohim në të kalojë tonë të dytë. 926 00:38:53,920 --> 00:38:54,980 Gjashtë dhe katër, kaloni. 927 00:38:54,980 --> 00:38:55,920 Gjashtë dhe dy, kaloni. 928 00:38:55,920 --> 00:38:58,700 Dhe tani ne kemi disa gjëra në mënyrë. 929 00:38:58,700 --> 00:39:02,240 Pra, për çdo të kalojë që ne të bëjë me të gjithë listën tonë, 930 00:39:02,240 --> 00:39:06,320 ne e dimë se si se një numër shumë në fund do janë renditur. 931 00:39:06,320 --> 00:39:07,690 932 00:39:07,690 --> 00:39:09,610 Pra, ne bëjmë një abone të tretë, e cila është një swap. 933 00:39:09,610 --> 00:39:10,860 934 00:39:10,860 --> 00:39:15,910 Dhe pastaj në të katërt ynë Kështu, ne kemi zero lojëra elektronike. 935 00:39:15,910 --> 00:39:18,570 Dhe kështu që ne e dimë se tonë array ka qenë të renditura. 936 00:39:18,570 --> 00:39:20,900 >> Dhe kjo është e madhe Gjë me flluskë lloji. 937 00:39:20,900 --> 00:39:23,720 Ne e dimë se kur ne kanë zero këmbime, që 938 00:39:23,720 --> 00:39:26,497 do të thotë se çdo gjë është në mënyrë të plotë. 939 00:39:26,497 --> 00:39:27,580 Kjo është lloj i si ne kontrolloni. 940 00:39:27,580 --> 00:39:28,740 941 00:39:28,740 --> 00:39:36,480 Pra, ne jemi gjithashtu do të kodin flluskë cili lloj po ashtu nuk është edhe aq keq. 942 00:39:36,480 --> 00:39:38,120 Asnjë nga këto janë edhe aq keq. 943 00:39:38,120 --> 00:39:40,210 Unë e di se ata mund të duket pak e frikshme. 944 00:39:40,210 --> 00:39:42,124 Unë e di kur mora të klasës, madje edhe kur unë 945 00:39:42,124 --> 00:39:44,290 po mësonte të klasës për hera e parë të vitit të kaluar, 946 00:39:44,290 --> 00:39:46,165 Unë kam qenë si, si mund ta bëni këtë? 947 00:39:46,165 --> 00:39:48,540 Ajo ka kuptim në teori, por si nuk kemi të vërtetë bëjmë këtë? 948 00:39:48,540 --> 00:39:51,420 Cila është arsyeja pse unë gjithashtu dua të ecin nëpërmjet kodit me ju djema këtu. 949 00:39:51,420 --> 00:39:54,915 Kështu që unë kam një pseudokod per ju djema këtë kohë. 950 00:39:54,915 --> 00:39:55,950 951 00:39:55,950 --> 00:39:58,970 Pra, vetëm i mbajnë në mend këtë si ne jemi gati për të tranzicionit gjatë. 952 00:39:58,970 --> 00:40:04,210 Pra, ne kemi disa counter se mban gjurmët e këmbime tona, 953 00:40:04,210 --> 00:40:08,370 sepse ne duhet të sigurohemi se ne jemi duke kontrolluar atë. 954 00:40:08,370 --> 00:40:11,830 Dhe ne iterate tërë array si ne vetëm e bëri me këtë shembull. 955 00:40:11,830 --> 00:40:12,900 956 00:40:12,900 --> 00:40:17,325 Nëse elementi më parë është më i madh se element pas, ku ne jemi në të, 957 00:40:17,325 --> 00:40:20,760 ne shkëmbim të tyre dhe ne rrisim tonë counter sepse sa më shpejt që ne të bie në ujdi, 958 00:40:20,760 --> 00:40:23,850 ne duam të le counter tonë e di se. 959 00:40:23,850 --> 00:40:26,247 Ndonjë pyetje atje? 960 00:40:26,247 --> 00:40:27,580 Diçka duket qesharake mbi këtu. 961 00:40:27,580 --> 00:40:29,225 962 00:40:29,225 --> 00:40:32,350 STUDENTORE: A keni vendosur ndesh me zero çdo herë ju shkoni nëpër lak? 963 00:40:32,350 --> 00:40:34,339 A nuk do të mbajë përsëri për të zero në çdo kohë? 964 00:40:34,339 --> 00:40:35,505 INSTRUKTOR: Jo domosdoshmërisht. 965 00:40:35,505 --> 00:40:39,710 Pra, ajo që ndodh është që ne të kalojnë nëpër këtu. 966 00:40:39,710 --> 00:40:43,830 Pra, bëni kurse, mos harroni, kjo do të ekzekutojë një herë pa të dështojnë. 967 00:40:43,830 --> 00:40:46,480 Pra, kjo do të vendosur kundër barabarte me zero, 968 00:40:46,480 --> 00:40:48,070 atëherë ajo do të iterate nëpër. 969 00:40:48,070 --> 00:40:50,590 Siç iterates anë, ajo do update counter. 970 00:40:50,590 --> 00:40:51,870 971 00:40:51,870 --> 00:40:56,900 Siç rejat kundër, kur kjo është bërë, kur ajo arriti në fund të vargut, 972 00:40:56,900 --> 00:41:00,830 nëse lista jonë nuk ka qenë të renditura, counter do të kanë qenë të përditësuar. 973 00:41:00,830 --> 00:41:01,840 974 00:41:01,840 --> 00:41:07,150 >> Pra, atëherë ajo kontrollon gjendjen dhe thotë, OK, është kundër madh se zero. 975 00:41:07,150 --> 00:41:09,290 Nëse kjo është, të bëjë atë përsëri. 976 00:41:09,290 --> 00:41:14,340 Ju dëshironi të rivendosur në mënyrë që kur ju shkojnë nëpër, kundër është e barabartë me zero. 977 00:41:14,340 --> 00:41:18,240 Nëse ju shkoni nëpër një renditura array, asgjë nuk ndryshon, 978 00:41:18,240 --> 00:41:21,355 kjo dështon, dhe ju kthehen listë të renditura. 979 00:41:21,355 --> 00:41:23,104 980 00:41:23,104 --> 00:41:24,020 A kjo ka kuptim? 981 00:41:24,020 --> 00:41:24,940 982 00:41:24,940 --> 00:41:26,356 STUDENT: Ajo mund të në një pak. 983 00:41:26,356 --> 00:41:27,147 INSTRUKTOR: OK. 984 00:41:27,147 --> 00:41:28,980 Nëse ka ndonjë tjetër pyetje që vjen deri. 985 00:41:28,980 --> 00:41:30,180 986 00:41:30,180 --> 00:41:30,680 Po. 987 00:41:30,680 --> 00:41:33,760 >> STUDENTORE: Çfarë do funksioni të jetë për shkëmbejnë elementet? 988 00:41:33,760 --> 00:41:36,900 >> INSTRUKTOR: Pra, ne në fakt mund të shkruajmë se në qoftë se ne jemi duke shkuar për tani. 989 00:41:36,900 --> 00:41:37,801 990 00:41:37,801 --> 00:41:38,300 Ftohtë. 991 00:41:38,300 --> 00:41:42,155 Pra, në këtë shënim, Alison po shkon për të kaluar përsëri në aplikim. 992 00:41:42,155 --> 00:41:43,080 Ajo do të jetë kënaqësi. 993 00:41:43,080 --> 00:41:45,170 994 00:41:45,170 --> 00:41:47,390 Dhe ne kemi këndshme tonë flluskë lloj gjë këtu. 995 00:41:47,390 --> 00:41:50,800 Kështu që unë tashmë e bëri çiklizmit nëpër rrjet. 996 00:41:50,800 --> 00:41:53,030 Ne kemi këmbime tona që jane te barabarte me zero. 997 00:41:53,030 --> 00:41:54,480 998 00:41:54,480 --> 00:41:58,440 Pra, ne duam që të bie në ujdi ngjitur Elementet nëse ata janë jashtë funksionit. 999 00:41:58,440 --> 00:42:03,020 Pra, gjëja e parë që ne kemi nevojë për të nuk është iterate nëpërmjet rrjet tonë. 1000 00:42:03,020 --> 00:42:04,500 1001 00:42:04,500 --> 00:42:08,260 >> Pra, si mendoni ju se ne mund iterate nëpërmjet rrjet tonë? 1002 00:42:08,260 --> 00:42:09,720 1003 00:42:09,720 --> 00:42:13,990 Ne kemi për të dhe i barabartë me 0. 1004 00:42:13,990 --> 00:42:16,950 1005 00:42:16,950 --> 00:42:22,454 Ne duam i të jetë më pak se n minus 1 minus k. 1006 00:42:22,454 --> 00:42:23,870 Dhe unë do të shpjegojë se në një të dytë. 1007 00:42:23,870 --> 00:42:26,280 1008 00:42:26,280 --> 00:42:32,830 Pra, kjo është një optimization këtu, ku, kujtohet se si kam thënë pas çdo të kalojë 1009 00:42:32,830 --> 00:42:36,655 përmes array ne e di se çdo gjë është on-- 1010 00:42:36,655 --> 00:42:43,590 1011 00:42:43,590 --> 00:42:46,295 >> Pra, pas një pasimi ne e di se kjo është e renditura. 1012 00:42:46,295 --> 00:42:47,370 1013 00:42:47,370 --> 00:42:50,060 Pas dy kalon ne e dimë se e gjithë kjo është e renditura. 1014 00:42:50,060 --> 00:42:52,750 Pas tre pasime ne e di se është renditura. 1015 00:42:52,750 --> 00:42:55,620 Kështu që rruga që unë jam iterating përmes array këtu, 1016 00:42:55,620 --> 00:43:01,090 po kjo është e bërë të sigurt për të shkuar vetëm përmes asaj që ne dimë është Unsorted. 1017 00:43:01,090 --> 00:43:01,644 OK? 1018 00:43:01,644 --> 00:43:02,810 Kjo është vetëm një optimization. 1019 00:43:02,810 --> 00:43:04,430 1020 00:43:04,430 --> 00:43:08,210 Ju mund të shkruani atë naivitet vetëm iterating me çdo gjë, 1021 00:43:08,210 --> 00:43:09,970 ajo vetëm do të marrë më të gjatë. 1022 00:43:09,970 --> 00:43:12,470 Me këtë lak katër është vetëm një optimization bukur 1023 00:43:12,470 --> 00:43:18,460 sepse ne e dimë se pas çdo të plotë përsëritje nëpërmjet rrjet këtu, 1024 00:43:18,460 --> 00:43:24,050 si çdo lak të plotë këtu, ne e dimë që një shumë prej këtyre elementëve 1025 00:43:24,050 --> 00:43:25,760 do të zgjidhet në fund. 1026 00:43:25,760 --> 00:43:28,294 >> Pra, ne nuk duhet të shqetësohen për ato. 1027 00:43:28,294 --> 00:43:29,710 A që e bën kuptim për të gjithë? 1028 00:43:29,710 --> 00:43:30,950 Kjo dredhi pak ftohtë? 1029 00:43:30,950 --> 00:43:32,060 1030 00:43:32,060 --> 00:43:37,270 Pra, në këtë rast, në qoftë se ne jemi iterating përmes, 1031 00:43:37,270 --> 00:43:50,590 ne e dimë se ne duam të kontrolloni nëse array n dhe n plus 1 janë në rregull. 1032 00:43:50,590 --> 00:43:52,640 1033 00:43:52,640 --> 00:43:53,559 OK. 1034 00:43:53,559 --> 00:43:54,600 Kështu që këtu është pseudokod. 1035 00:43:54,600 --> 00:43:57,540 Ne duam të kontrolloni nëse array n dhe n plus 1 janë në rregull. 1036 00:43:57,540 --> 00:43:59,520 Pra, çfarë mund të kemi atje? 1037 00:43:59,520 --> 00:44:01,090 1038 00:44:01,090 --> 00:44:03,120 Ajo do të jetë një kusht. 1039 00:44:03,120 --> 00:44:04,220 Ajo do të jetë një rast. 1040 00:44:04,220 --> 00:44:07,066 >> STUDENT: Nëse array n është më pak se array n plus 1. 1041 00:44:07,066 --> 00:44:07,816 INSTRUKTOR: Mm-HM. 1042 00:44:07,816 --> 00:44:09,000 1043 00:44:09,000 --> 00:44:10,699 Dhe, më pak se ose e madhe se. 1044 00:44:10,699 --> 00:44:11,615 STUDENT: madhe se. 1045 00:44:11,615 --> 00:44:15,850 1046 00:44:15,850 --> 00:44:17,620 Pastaj ne duam të bie në ujdi tyre. 1047 00:44:17,620 --> 00:44:18,570 Pikërisht. 1048 00:44:18,570 --> 00:44:23,570 Deri tani ne kemi marrë në atë që është mekanizëm për të shkëmbejnë ato? 1049 00:44:23,570 --> 00:44:24,840 1050 00:44:24,840 --> 00:44:28,137 Pra, kemi kaluar nëpër këtë kohë të shkurtër, një lloj i funksionit shkëmbim javën e kaluar. 1051 00:44:28,137 --> 00:44:29,595 A ka dikush kujtohet se si ai ka punuar? 1052 00:44:29,595 --> 00:44:32,300 1053 00:44:32,300 --> 00:44:34,950 Pra, ne nuk mund vetëm të reassign ato, apo jo? 1054 00:44:34,950 --> 00:44:36,640 Sepse një prej tyre do të ketë humbur. 1055 00:44:36,640 --> 00:44:41,696 Nëse ne tha A është e barabartë me b dhe pastaj B është e barabartë tek A, të gjithë a papritur dy prej tyre 1056 00:44:41,696 --> 00:44:43,150 janë vetëm barabartë tek B. 1057 00:44:43,150 --> 00:44:45,720 >> Pra, ajo që ne duhet të bëjmë është që ne kanë një ndryshore të përkohshme që është 1058 00:44:45,720 --> 00:44:49,055 do të mbajë një nga jona kohë ne jemi në procesin e shkëmbejnë. 1059 00:44:49,055 --> 00:44:50,200 1060 00:44:50,200 --> 00:44:56,464 Pra, ajo që ne kemi është se ne do të kemi disa int temp është e barabartë to-- ju mund ta caktojë atë 1061 00:44:56,464 --> 00:44:59,130 për të cilado që ju dëshironi, vetëm sigurohuni që ju të mbani gjurmët e it-- 1062 00:44:59,130 --> 00:45:01,840 kështu që në këtë rast, unë jam duke shkuar për të caktojë atë në rrjet n plus 1. 1063 00:45:01,840 --> 00:45:03,360 1064 00:45:03,360 --> 00:45:07,674 Kështu që do të mbajë çdo gjë Vlera është në atë bllokun e dytë 1065 00:45:07,674 --> 00:45:08,590 se ne jemi duke kërkuar në. 1066 00:45:08,590 --> 00:45:09,700 1067 00:45:09,700 --> 00:45:13,240 >> Dhe atëherë ne mund të bëjmë është që ne mund të shkoni përpara dhe array reassign n plus 1, 1068 00:45:13,240 --> 00:45:14,990 sepse ne e dimë ne kanë atë vlerë të depozituara. 1069 00:45:14,990 --> 00:45:16,645 1070 00:45:16,645 --> 00:45:19,270 Kjo është edhe një nga më të mëdha things-- Unë nuk e di nëse ndonjë prej jush 1071 00:45:19,270 --> 00:45:23,780 ka pasur çështje ku në qoftë se ju të kaloni dy rreshta të kodit papritur gjërat punuar. 1072 00:45:23,780 --> 00:45:25,880 Rendit është shumë i rëndësishëm në CS. 1073 00:45:25,880 --> 00:45:29,450 Pra, sigurohuni që ju diagramin gjëra nëse është e mundur 1074 00:45:29,450 --> 00:45:31,230 si për atë që është në të vërtetë ndodh. 1075 00:45:31,230 --> 00:45:34,256 Deri tani ne jemi duke shkuar për reassign array n plus 1, 1076 00:45:34,256 --> 00:45:36,005 sepse ne e dimë ne kanë atë vlerë të depozituara. 1077 00:45:36,005 --> 00:45:37,090 1078 00:45:37,090 --> 00:45:41,560 >> Dhe ne mund të caktojë se në grup n ose në këtë rast rrjet i. 1079 00:45:41,560 --> 00:45:50,540 1080 00:45:50,540 --> 00:45:51,465 Too shumë variabla. 1081 00:45:51,465 --> 00:45:54,230 1082 00:45:54,230 --> 00:45:55,470 OK. 1083 00:45:55,470 --> 00:46:01,500 Array Deri tani, ne kemi ricaktuar unë po plus 1 të barazohen se çfarë është në rrjet i. 1084 00:46:01,500 --> 00:46:08,240 Dhe tani ne mund të ktheheni mbrapsh dhe të caktojë grup i të çfarë? 1085 00:46:08,240 --> 00:46:10,680 1086 00:46:10,680 --> 00:46:11,180 Çdokush? 1087 00:46:11,180 --> 00:46:13,490 1088 00:46:13,490 --> 00:46:14,010 >> STUDENT: 10. 1089 00:46:14,010 --> 00:46:14,680 >> INSTRUKTOR: 10. 1090 00:46:14,680 --> 00:46:15,180 Pikërisht. 1091 00:46:15,180 --> 00:46:16,930 1092 00:46:16,930 --> 00:46:18,640 Dhe një gjë e kaluar. 1093 00:46:18,640 --> 00:46:21,840 Në qoftë se ne kemi swapped atë tani, çfarë duhet të bëjmë? 1094 00:46:21,840 --> 00:46:23,740 Cila është një gjë që do të na tregoni 1095 00:46:23,740 --> 00:46:27,542 në qoftë se ne ndonjëherë të përfundojë këtë program? 1096 00:46:27,542 --> 00:46:29,250 Çfarë na tregon se ne kanë një listë të renditura? 1097 00:46:29,250 --> 00:46:31,560 1098 00:46:31,560 --> 00:46:33,750 Nëse ne nuk do të kryejnë asnjë këmbime, e drejtë? 1099 00:46:33,750 --> 00:46:36,900 Nëse swap është e barabartë me zero në fund të kësaj. 1100 00:46:36,900 --> 00:46:42,975 Pra, sa herë që ju të kryer një shkëmbim, si ne vetëm e bëri këtu, ne duam të rinovuar këmbime. 1101 00:46:42,975 --> 00:46:45,002 1102 00:46:45,002 --> 00:46:47,210 Dhe unë e di se ka pasur një Pyetja më parë rreth mund të ju 1103 00:46:47,210 --> 00:46:49,689 përdorin zero ose një vend e vërtetë apo e rreme. 1104 00:46:49,689 --> 00:46:50,980 Dhe kjo është ajo që kjo bën këtu. 1105 00:46:50,980 --> 00:46:52,750 Pra, kjo thotë nëse jo këmbime. 1106 00:46:52,750 --> 00:47:01,310 Pra, nëse këmbime është zero, e cila is-- unë gjithmonë merrni vërtetat e mia dhe falses mia përzier. 1107 00:47:01,310 --> 00:47:03,960 Ne duam që ne të vlerësuar të vërtetë dhe kjo nuk është. 1108 00:47:03,960 --> 00:47:07,680 1109 00:47:07,680 --> 00:47:09,630 Pra, në qoftë se është zero, atëherë është e rreme. 1110 00:47:09,630 --> 00:47:12,560 Nëse ju mohojnë atë me një [? zhurmë?] të bëhet e vërtetë. 1111 00:47:12,560 --> 00:47:13,975 Pra, atëherë kjo linjë ekzekuton. 1112 00:47:13,975 --> 00:47:15,060 1113 00:47:15,060 --> 00:47:17,370 >> Vërteta dhe të rreme dhe zero dhe ato të merrni çmendur. 1114 00:47:17,370 --> 00:47:20,690 Vetëm në qoftë se ju ecni ngadalë nëpërmjet saj ajo do të bëjë kuptim. 1115 00:47:20,690 --> 00:47:23,320 Por kjo është ajo që kjo pak bit e kodit këtu bën. 1116 00:47:23,320 --> 00:47:26,490 Pra, kjo kontrollon për të parë kemi bërë ndonjë këmbime. 1117 00:47:26,490 --> 00:47:30,054 Pra, në qoftë se ndonjë gjë përveç zero, ajo do të jetë e rreme 1118 00:47:30,054 --> 00:47:31,970 dhe tërë gjë është shkuar për të ekzekutuar përsëri. 1119 00:47:31,970 --> 00:47:33,150 1120 00:47:33,150 --> 00:47:33,650 Ftohtë? 1121 00:47:33,650 --> 00:47:34,660 1122 00:47:34,660 --> 00:47:36,000 >> STUDENTORE: Çfarë do të bëni pushim? 1123 00:47:36,000 --> 00:47:38,990 >> INSTRUKTOR: Pushim vetëm ju shpërthen lak. 1124 00:47:38,990 --> 00:47:41,570 Pra, në këtë rast do të ashtu si në fund të programit 1125 00:47:41,570 --> 00:47:43,828 dhe ju do të vetëm keni listën tuaj të renditura. 1126 00:47:43,828 --> 00:47:44,536 STUDENT: Amazing. 1127 00:47:44,536 --> 00:47:48,094 1128 00:47:48,094 --> 00:47:49,010 INSTRUKTOR: Unë jam i keq? 1129 00:47:49,010 --> 00:47:52,110 STUDENT: Sepse më parë ne përdorur shkruar 1 mbi shkrim zero 1130 00:47:52,110 --> 00:47:54,170 për të paraqitur se në qoftë se që do të punojnë apo jo. 1131 00:47:54,170 --> 00:47:54,878 >> INSTRUKTOR: Po. 1132 00:47:54,878 --> 00:47:56,410 Kështu që ju mund të kthehet zero ose 1. 1133 00:47:56,410 --> 00:47:58,950 Në këtë rast, sepse ne nuk jemi të vërtetë bëjnë asgjë me funksionin, 1134 00:47:58,950 --> 00:48:00,150 ne vetëm duam që ajo të thyer. 1135 00:48:00,150 --> 00:48:02,680 Ne të vërtetë nuk e kujdesit në lidhje me të. 1136 00:48:02,680 --> 00:48:06,960 Brake është gjithashtu i mirë në qoftë se ajo është përdorur për të thyer jashtë 1137 00:48:06,960 --> 00:48:10,710 e katër sythe apo kushte që ju nuk duan të mbajnë ekzekutimin. 1138 00:48:10,710 --> 00:48:12,110 Ajo thjesht ju merr prej tyre. 1139 00:48:12,110 --> 00:48:13,587 1140 00:48:13,587 --> 00:48:14,795 Kjo është pak e një gjë nuancë. 1141 00:48:14,795 --> 00:48:16,737 1142 00:48:16,737 --> 00:48:18,445 Unë ndjehem si ka një shumë të tundë dorën, 1143 00:48:18,445 --> 00:48:19,740 si ju do të mësojnë në lidhje me këtë së shpejti. 1144 00:48:19,740 --> 00:48:20,955 >> Por ju do të mësojnë në lidhje me këtë së shpejti. 1145 00:48:20,955 --> 00:48:21,500 I premtoj. 1146 00:48:21,500 --> 00:48:22,670 1147 00:48:22,670 --> 00:48:23,170 OK. 1148 00:48:23,170 --> 00:48:24,840 Pra, ka të gjithë të marrë flluskë lloj? 1149 00:48:24,840 --> 00:48:25,550 Jo shumë e keqe. 1150 00:48:25,550 --> 00:48:31,910 Iterate nëpërmjet, swap gjëra duke përdorur një ndryshueshme temp, dhe ne jemi të vendosur të gjithë atje? 1151 00:48:31,910 --> 00:48:32,960 Ftohtë. 1152 00:48:32,960 --> 00:48:34,080 Awesome. 1153 00:48:34,080 --> 00:48:34,807 OK. 1154 00:48:34,807 --> 00:48:35,765 Kthehu në PowerPoint. 1155 00:48:35,765 --> 00:48:38,140 1156 00:48:38,140 --> 00:48:40,130 Çdo pyetje në përgjithësi në lidhje me këto deri më tani? 1157 00:48:40,130 --> 00:48:41,200 1158 00:48:41,200 --> 00:48:41,700 Ftohtë. 1159 00:48:41,700 --> 00:48:43,110 1160 00:48:43,110 --> 00:48:43,695 Mm-HM. 1161 00:48:43,695 --> 00:48:45,279 >> STUDENT: [padëgjueshme] int kryesore zakonisht. 1162 00:48:45,279 --> 00:48:46,695 A ju duhet të keni atë për këtë? 1163 00:48:46,695 --> 00:48:48,400 1164 00:48:48,400 --> 00:48:53,550 >> INSTRUKTOR: Pra, ne ishim vetëm duke kërkuar vetëm në algorithm aktuale klasifikim. 1165 00:48:53,550 --> 00:48:54,559 1166 00:48:54,559 --> 00:48:56,350 Nëse keni pasur atë brenda si një program më të gjerë, 1167 00:48:56,350 --> 00:48:57,891 ju do të keni një diku int kryesore. 1168 00:48:57,891 --> 00:49:00,070 1169 00:49:00,070 --> 00:49:02,880 Varësisht nga ku ju përdorni këtë algorithm, 1170 00:49:02,880 --> 00:49:05,860 kjo do të përcaktojë se çfarë është duke u kthyer nga ajo. 1171 00:49:05,860 --> 00:49:09,960 Por, për rastin tonë, ne jemi në mënyrë rigoroze shikuar se si e bën këtë të vërtetë 1172 00:49:09,960 --> 00:49:11,300 iterate nëpër një rrjet. 1173 00:49:11,300 --> 00:49:12,570 Pra, ne nuk u bëni merak për këtë. 1174 00:49:12,570 --> 00:49:14,150 1175 00:49:14,150 --> 00:49:19,830 >> Pra, ne ishim duke folur për rastin më të mirë dhe të rastin më të keq për kërkim binar. 1176 00:49:19,830 --> 00:49:22,470 Kështu që është gjithashtu e rëndësishme për të bërë se për secilin nga llojet tona. 1177 00:49:22,470 --> 00:49:24,200 1178 00:49:24,200 --> 00:49:27,560 Pra, çfarë mendoni se është më e keqja Rasti runtime i flluskë lloji? 1179 00:49:27,560 --> 00:49:29,560 1180 00:49:29,560 --> 00:49:30,700 Ju djema mbani mend? 1181 00:49:30,700 --> 00:49:31,784 >> STUDENT: N minus 1. 1182 00:49:31,784 --> 00:49:32,700 INSTRUKTOR: N minus 1. 1183 00:49:32,700 --> 00:49:35,070 Kështu që do të thotë se janë n minus 1 krahasimet. 1184 00:49:35,070 --> 00:49:40,060 Pra, një gjë që të kuptojnë është se në përsëritje të parë, 1185 00:49:40,060 --> 00:49:43,360 ne do të shkojmë nëpër, ne krahasojmë këto two-- kështu që është 1. 1186 00:49:43,360 --> 00:49:46,685 Këta dy, tre, katër. 1187 00:49:46,685 --> 00:49:48,070 1188 00:49:48,070 --> 00:49:55,050 Pra, pas një ripërsëritje ne tashmë kanë katër krahasime. 1189 00:49:55,050 --> 00:49:58,230 Kur unë jam duke folur në lidhje me kohën e duhur dhe n. 1190 00:49:58,230 --> 00:50:04,680 N përfaqëson numrin e krahasimeve si një funksion të asaj se si shumë elemente të 1191 00:50:04,680 --> 00:50:05,570 ne kemi. 1192 00:50:05,570 --> 00:50:06,430 OK? 1193 00:50:06,430 --> 00:50:08,860 >> Pra, ne do të shkojmë nëpër, ne kemi katër. 1194 00:50:08,860 --> 00:50:11,780 Herën tjetër që ju e dini që ne nuk e bëjmë duhet të kujdeset për këtë. 1195 00:50:11,780 --> 00:50:15,140 Ne krahasojmë këto dy, këto dy, këta dy, 1196 00:50:15,140 --> 00:50:20,050 dhe në qoftë se ne nuk kemi atë optimization me katër lak që kam shkruar, 1197 00:50:20,050 --> 00:50:22,750 ju do të jetë duke krahasuar këtu anyways. 1198 00:50:22,750 --> 00:50:26,170 Pra, ju do të duhet të drejtuar nëpër rrjet 1199 00:50:26,170 --> 00:50:34,380 dhe të bëjë krahasime n n herë, për shkak se çdo herë kemi 1200 00:50:34,380 --> 00:50:36,670 drejtuar nëpërmjet saj ne renditjes një gjë. 1201 00:50:36,670 --> 00:50:38,300 1202 00:50:38,300 --> 00:50:41,475 >> Dhe çdo herë që të drejtuar përmes array, ne kemi bërë krahasime n. 1203 00:50:41,475 --> 00:50:42,920 1204 00:50:42,920 --> 00:50:46,330 Pra, runtime tonë për këtë është aktualisht katror n, e cila 1205 00:50:46,330 --> 00:50:48,400 është shumë më keq në tonë log fund, sepse kjo 1206 00:50:48,400 --> 00:50:51,965 do të thotë nëse do të kishim katër miliard elemente, është e 1207 00:50:51,965 --> 00:50:55,260 do të marrë na kater miliard katror në vend të 32. 1208 00:50:55,260 --> 00:51:01,240 Pra, nuk runtime të mirë, por për disa gjëra, 1209 00:51:01,240 --> 00:51:04,610 ju e dini, nëse ju jeni brenda një varg të caktuar të elementeve 1210 00:51:04,610 --> 00:51:06,540 flluskë lloj mund të jetë mirë për të përdorur. 1211 00:51:06,540 --> 00:51:07,530 >> OK. 1212 00:51:07,530 --> 00:51:12,290 Deri tani, çfarë është rasti runtime të mirë? 1213 00:51:12,290 --> 00:51:14,357 1214 00:51:14,357 --> 00:51:14,940 STUDENT: Zero? 1215 00:51:14,940 --> 00:51:16,420 Ose 1? 1216 00:51:16,420 --> 00:51:18,140 >> INSTRUKTOR: Pra 1 do të jetë një krahasim. 1217 00:51:18,140 --> 00:51:19,114 Të drejtë. 1218 00:51:19,114 --> 00:51:20,002 >> STUDENT: N minus 1? 1219 00:51:20,002 --> 00:51:21,380 1220 00:51:21,380 --> 00:51:22,320 >> INSTRUKTOR: Pra, vërtet. 1221 00:51:22,320 --> 00:51:22,990 Pra, n minus 1. 1222 00:51:22,990 --> 00:51:26,510 Sa herë që ju keni një koncept si n minus 1, ne priren të heqin vetëm atë 1223 00:51:26,510 --> 00:51:31,680 dhe ne vetëm të themi n sepse ju keni për të krahasuar secili prej these-- çdo çift. 1224 00:51:31,680 --> 00:51:36,470 Pra, kjo do të jetë n minus 1, të cilat ne ne do të themi vetëm është përafërsisht n. 1225 00:51:36,470 --> 00:51:39,280 Kur ju jeni që kanë të bëjnë me kohën e duhur, çdo gjë është në përafërt. 1226 00:51:39,280 --> 00:51:43,860 Për aq kohë sa është shpjegues saktë, ju jeni mjaft të mirë. 1227 00:51:43,860 --> 00:51:45,700 >> Kjo është se si të merremi me të. 1228 00:51:45,700 --> 00:51:47,410 1229 00:51:47,410 --> 00:51:51,780 Kështu që rasti më i mirë është n, e cila do të thotë se lista është renditur tashmë, 1230 00:51:51,780 --> 00:51:54,320 dhe të gjithë ne bëjmë është drejtuar me anë të dhe kontrolloni që është e renditura. 1231 00:51:54,320 --> 00:51:56,110 1232 00:51:56,110 --> 00:51:56,855 Ftohtë. 1233 00:51:56,855 --> 00:51:57,355 Dakord. 1234 00:51:57,355 --> 00:51:58,980 1235 00:51:58,980 --> 00:52:01,920 Pra, siç e shihni këtu, ne vetëm duhet disa grafikët më shumë. 1236 00:52:01,920 --> 00:52:02,660 Pra, n katror. 1237 00:52:02,660 --> 00:52:03,780 1238 00:52:03,780 --> 00:52:05,120 Fun. 1239 00:52:05,120 --> 00:52:09,730 Shumë më keq se n siç e shohim, dhe shumë, shumë më keq se 2n log. 1240 00:52:09,730 --> 00:52:12,060 Dhe pastaj ju merrni edhe në shkrimet log. 1241 00:52:12,060 --> 00:52:18,020 Dhe ju merrni 124, ju merrni në si yll log, e cila është si i çmendur. 1242 00:52:18,020 --> 00:52:20,172 Pra, nëse ju jeni të interesuar, lookup log yll. 1243 00:52:20,172 --> 00:52:20,880 Kjo është lloj i fun. 1244 00:52:20,880 --> 00:52:22,800 1245 00:52:22,800 --> 00:52:24,220 Pra, ne e kemi këtë tabelë të madhe. 1246 00:52:24,220 --> 00:52:25,360 1247 00:52:25,360 --> 00:52:28,720 Vetëm një kokat lart, kjo a tabelë e mrekullueshme që të ketë 1248 00:52:28,720 --> 00:52:31,350 për tuaj të gjatë në mes, sepse ne kohë për të ju pyes këto thins. 1249 00:52:31,350 --> 00:52:36,090 Pra, vetëm një kokat lart, të ketë kjo në tuaj afatmesme të mashtrojnë tuaj të bukur fletë 1250 00:52:36,090 --> 00:52:36,616 atje. 1251 00:52:36,616 --> 00:52:37,990 Pra, ne vetëm të shikuar flluskë lloji. 1252 00:52:37,990 --> 00:52:39,510 1253 00:52:39,510 --> 00:52:42,370 Rastin më të keq, n katror, ​​rastin më të mirë, n. 1254 00:52:42,370 --> 00:52:43,367 1255 00:52:43,367 --> 00:52:44,950 Dhe ne jemi duke shkuar për të parë në të tjerët. 1256 00:52:44,950 --> 00:52:47,940 >> Dhe si ju mund të shihni, e vetmja ai që me të vërtetë e bën mirë 1257 00:52:47,940 --> 00:52:50,910 është lloj bashkojë, të cilat ne do të merrni në pse. 1258 00:52:50,910 --> 00:52:52,690 1259 00:52:52,690 --> 00:52:55,215 Pra, ne jemi duke shkuar për të shkuar në tjetër një lloj here-- përzgjedhje. 1260 00:52:55,215 --> 00:52:56,360 1261 00:52:56,360 --> 00:52:58,420 A mbani mend se si dikush Përzgjedhja punuar lloj? 1262 00:52:58,420 --> 00:53:05,200 1263 00:53:05,200 --> 00:53:05,700 Shkoni për të. 1264 00:53:05,700 --> 00:53:08,210 >> STUDENT: Në thelb të shkojnë nëpër një urdhër dhe për të krijuar një listë të re. 1265 00:53:08,210 --> 00:53:11,001 Dhe ashtu si ju jeni duke elementet në, ata vënë në vendin e duhur 1266 00:53:11,001 --> 00:53:11,750 në listën e re. 1267 00:53:11,750 --> 00:53:14,040 >> INSTRUKTOR: Kështu që tingëllon më shumë si futje lloj. 1268 00:53:14,040 --> 00:53:15,040 Por ju jeni me të vërtetë afër. 1269 00:53:15,040 --> 00:53:15,915 Ata janë shumë të ngjashme. 1270 00:53:15,915 --> 00:53:17,440 Edhe unë të marrë ato të përziera ndonjëherë. 1271 00:53:17,440 --> 00:53:18,981 Para se këtë seksion unë kam qenë si, prisni. 1272 00:53:18,981 --> 00:53:20,130 1273 00:53:20,130 --> 00:53:20,630 OK. 1274 00:53:20,630 --> 00:53:24,141 Pra, çfarë ju doni të bëni është zgjedhja lloj, 1275 00:53:24,141 --> 00:53:25,890 mënyrë që ju mund të mendoni në lidhje me të dhe mënyrën 1276 00:53:25,890 --> 00:53:30,140 I sigurohuni që nuk përpiqet për të marrë ato të përziera, është ajo shkon përmes 1277 00:53:30,140 --> 00:53:33,280 dhe zgjedh Numri më i vogël dhe kjo 1278 00:53:33,280 --> 00:53:36,070 vendos që në fillim të listës suaj. 1279 00:53:36,070 --> 00:53:37,730 Ajo këmbime me atë vend të parë. 1280 00:53:37,730 --> 00:53:42,600 1281 00:53:42,600 --> 00:53:45,370 Ata në fakt kanë një shembull për mua. 1282 00:53:45,370 --> 00:53:46,540 Awesome. 1283 00:53:46,540 --> 00:53:50,130 Pra, vetëm një mënyrë për të menduar për zgjedhjen it-- lloj, zgjidhni vlerën më të vogël. 1284 00:53:50,130 --> 00:53:51,940 Dhe ne jemi duke shkuar për drejtuar përmes një shembull 1285 00:53:51,940 --> 00:53:55,320 që unë mendoj se do të ndihmojë, sepse Unë mendoj se visuals gjithmonë ndihmojnë. 1286 00:53:55,320 --> 00:53:58,510 Pra, ne fillojmë me diçka që është plotësisht Unsorted. 1287 00:53:58,510 --> 00:54:00,730 Red do të jetë Unsorted, e gjelbër do të ndahen. 1288 00:54:00,730 --> 00:54:02,190 E gjitha do të bëjë kuptim në një të dytë. 1289 00:54:02,190 --> 00:54:08,950 >> Pra, ne do të shkojmë nëpër dhe iterate nga fillimi në fund. 1290 00:54:08,950 --> 00:54:12,320 Dhe ne themi, OK, 2 është numrin tonë të vogël. 1291 00:54:12,320 --> 00:54:15,680 Pra, ne jemi duke shkuar për të marrë 2 dhe ne jemi duke shkuar për të lëvizur atë në frontin e array tonë 1292 00:54:15,680 --> 00:54:17,734 sepse kjo është Numri më i vogël i kemi. 1293 00:54:17,734 --> 00:54:19,150 Pra, kjo është ajo që kjo është duke bërë këtu. 1294 00:54:19,150 --> 00:54:20,820 Është vetëm do të bie në ujdi ato dy. 1295 00:54:20,820 --> 00:54:21,850 1296 00:54:21,850 --> 00:54:25,450 Deri tani, ne kemi një të renditura pjesë dhe një pjesë e Unsorted. 1297 00:54:25,450 --> 00:54:27,810 Dhe çfarë është e mirë për të kujtuar rreth përzgjedhjes lloj 1298 00:54:27,810 --> 00:54:30,690 është që ne jemi vetëm zgjedhjen nga pjesa Unsorted. 1299 00:54:30,690 --> 00:54:32,220 1300 00:54:32,220 --> 00:54:34,527 >> Pjesa Renditur qe sapo lënë vetëm. 1301 00:54:34,527 --> 00:54:35,660 Mm-hm? 1302 00:54:35,660 --> 00:54:38,452 >> STUDENT: Si e dini se çfarë është të vogël pa e krahasuar atë 1303 00:54:38,452 --> 00:54:39,868 çdo vlerë tjetër në rrjet. 1304 00:54:39,868 --> 00:54:41,250 INSTRUKTOR: Kjo e bën të krahasojnë atë. 1305 00:54:41,250 --> 00:54:42,041 Ne pëlqen skipped atë. 1306 00:54:42,041 --> 00:54:43,850 Kjo është vetëm i përgjithshëm në përgjithësi. 1307 00:54:43,850 --> 00:54:44,831 Po. 1308 00:54:44,831 --> 00:54:47,205 Kur ne shkruani kodin unë jam që ju do të jenë më të kënaqur. 1309 00:54:47,205 --> 00:54:48,696 1310 00:54:48,696 --> 00:54:53,030 Por ju ruani këtë e parë element si i vogël. 1311 00:54:53,030 --> 00:54:56,110 Ju krahasoni dhe ju thonë, OK, është më e vogël? 1312 00:54:56,110 --> 00:54:56,660 Po. 1313 00:54:56,660 --> 00:54:57,460 Keep it. 1314 00:54:57,460 --> 00:54:58,640 Këtu është ajo më e vogël? 1315 00:54:58,640 --> 00:54:59,660 Nuk ka? 1316 00:54:59,660 --> 00:55:02,510 >> Ky është më i vogël tuaj, reassign atë në vlerën tuaj. 1317 00:55:02,510 --> 00:55:06,340 Dhe ju do të jetë shumë më të lumtur kur shkojmë nëpër kodit. 1318 00:55:06,340 --> 00:55:07,510 1319 00:55:07,510 --> 00:55:13,970 Pra, ne do të shkojmë nëpër, ne shkëmbim atë, kështu që atëherë ne e shikojmë në këtë pjesë Unsorted. 1320 00:55:13,970 --> 00:55:15,810 Pra, ne jemi duke shkuar për të zgjedhur tre jashtë. 1321 00:55:15,810 --> 00:55:18,890 Ne jemi duke shkuar për të vënë atë në në fundi i pjesës sonë të renditura. 1322 00:55:18,890 --> 00:55:20,267 1323 00:55:20,267 --> 00:55:23,100 Dhe ne jemi vetëm do të vazhdojmë të bëjmë që ta bëjnë këtë, dhe duke bërë atë. 1324 00:55:23,100 --> 00:55:24,130 1325 00:55:24,130 --> 00:55:27,420 Pra, kjo është lloj tonë të pseudokod këtu. 1326 00:55:27,420 --> 00:55:29,470 1327 00:55:29,470 --> 00:55:31,380 Ne do kod atë deri këtu në një të dytë. 1328 00:55:31,380 --> 00:55:34,140 1329 00:55:34,140 --> 00:55:37,270 Por vetëm diçka për të ecur të kalojë në një nivel të lartë. 1330 00:55:37,270 --> 00:55:40,275 Ju jeni duke shkuar për të shkuar nga i barabartë me 0 n minus 2. 1331 00:55:40,275 --> 00:55:41,570 1332 00:55:41,570 --> 00:55:43,530 Kjo është një tjetër optimization. 1333 00:55:43,530 --> 00:55:45,020 Mos u shqetësoni shumë për këtë. 1334 00:55:45,020 --> 00:55:46,620 Pra, si ju jeni duke thënë. 1335 00:55:46,620 --> 00:55:49,660 1336 00:55:49,660 --> 00:55:54,406 Si Jakobi u thoshte, si nuk kemi mbajnë gjurmët e asaj minimale tonë është? 1337 00:55:54,406 --> 00:55:55,030 Si e dimë ne? 1338 00:55:55,030 --> 00:55:57,060 Ne kemi për të krahasuar gjithçka në listën tonë. 1339 00:55:57,060 --> 00:55:59,600 >> Pra minimum barabartë i. 1340 00:55:59,600 --> 00:56:03,870 Është thjesht duke thënë se në këtë rast indeksi i vlerës sonë minimale. 1341 00:56:03,870 --> 00:56:07,660 Pra, atëherë ajo do të iterate nëpër dhe ajo shkon nga j barabartë i plus 1. 1342 00:56:07,660 --> 00:56:11,420 Pra, ne tashmë e dimë se kjo është elementi ynë i parë. 1343 00:56:11,420 --> 00:56:13,240 Ne nuk duhet të krahasojnë atë me vete. 1344 00:56:13,240 --> 00:56:16,970 Pra, ne fillojmë të krahasuar atë të ardhshëm njëra e cila është arsyeja pse është i plus 1 të n 1345 00:56:16,970 --> 00:56:20,110 minus 1, i cili është fundi i array atje. 1346 00:56:20,110 --> 00:56:25,090 Dhe ne i thamë nëse array në j është më pak se min vektorit, 1347 00:56:25,090 --> 00:56:29,200 atëherë ne reassign ku Indekset ynë minimal është. 1348 00:56:29,200 --> 00:56:37,470 >> Dhe nëse min nuk është e barabartë tek I, siç atje ku ishim përsëri këtu. 1349 00:56:37,470 --> 00:56:38,950 1350 00:56:38,950 --> 00:56:41,790 Pra, si kur ne e bëmë për herë të parë në këtë një të tillë. 1351 00:56:41,790 --> 00:56:49,310 Në këtë rast, ajo do të fillojë në zero, ajo do të përfundojë si dy. 1352 00:56:49,310 --> 00:56:53,010 Pra min nuk do të barabartë i në fund. 1353 00:56:53,010 --> 00:56:55,720 Kjo na lejon të dimë se ne kemi nevojë për të bie në ujdi tyre. 1354 00:56:55,720 --> 00:56:57,420 1355 00:56:57,420 --> 00:57:00,470 Unë ndjehem si një shembull konkret do të ndihmojë shumë më tepër se kjo. 1356 00:57:00,470 --> 00:57:04,970 Kështu që unë do të kodojnë këtë me ju djema tani dhe unë mendoj se kjo do të jetë më mirë. 1357 00:57:04,970 --> 00:57:07,380 1358 00:57:07,380 --> 00:57:11,350 >> Llojet kanë tendencë për të punuar në këtë mënyrë në të cilat është shpesh më të mirë vetëm për të parë ato. 1359 00:57:11,350 --> 00:57:12,780 1360 00:57:12,780 --> 00:57:17,280 Pra, ajo që ne duam të bëjmë është ne së pari duam të vogël 1361 00:57:17,280 --> 00:57:19,890 element në pozicionin e saj në rrjet. 1362 00:57:19,890 --> 00:57:21,280 Pikërisht ajo që Jakobi u thoshte. 1363 00:57:21,280 --> 00:57:23,090 Ju duhet për të ruajtur atë disi. 1364 00:57:23,090 --> 00:57:25,900 Pra, ne jemi duke shkuar për të filluar këtu iterating mbi array. 1365 00:57:25,900 --> 00:57:28,970 Ne jemi duke shkuar për të thonë se kjo është tonë para vetëm për të filluar me. 1366 00:57:28,970 --> 00:57:38,308 Pra, ne do të kemi int vogël është e barabartë me grup me i. 1367 00:57:38,308 --> 00:57:40,500 1368 00:57:40,500 --> 00:57:45,050 >> Pra, një gjë në njoftim, çdo Ora kësaj loop ekzekuton, 1369 00:57:45,050 --> 00:57:48,550 ne jemi duke filluar një hap më tej së bashku. 1370 00:57:48,550 --> 00:57:54,780 1371 00:57:54,780 --> 00:57:57,440 Kur ne fillim ne shikojmë në këtë një të tillë. 1372 00:57:57,440 --> 00:58:00,840 Herën tjetër që iterate nëpërmjet, ne jemi duke filluar në këtë një 1373 00:58:00,840 --> 00:58:02,680 dhe caktimin kjo vlerën tonë të vogël. 1374 00:58:02,680 --> 00:58:10,450 Pra, kjo është shumë e ngjashme me flluskë lloj ku ne e dimë se pas një pasimi, 1375 00:58:10,450 --> 00:58:11,700 ky element i fundit është renditur. 1376 00:58:11,700 --> 00:58:12,810 1377 00:58:12,810 --> 00:58:15,120 Me përzgjedhjes lloj, kjo është vetëm e kundërta. 1378 00:58:15,120 --> 00:58:18,950 >> Në çdo të kalojë, ne e dimë se i pari është renditur. 1379 00:58:18,950 --> 00:58:21,360 Pas kalojë dytë, e dyta do të ndahen. 1380 00:58:21,360 --> 00:58:26,470 Dhe si ju pa me shembuj rrëshqitje, Pjesa jonë e renditura vetëm vazhdon të rritet. 1381 00:58:26,470 --> 00:58:34,020 Pra, me vendosjen e një tonë të vogël të vargjeve i, e gjitha kjo e bën 1382 00:58:34,020 --> 00:58:37,340 është constricting çfarë ne jemi duke kërkuar në mënyrë që 1383 00:58:37,340 --> 00:58:40,164 për të minimizuar numrin e kemi bërë krahasime. 1384 00:58:40,164 --> 00:58:41,770 Ka që e bëjnë kuptim për të gjithë? 1385 00:58:41,770 --> 00:58:42,920 1386 00:58:42,920 --> 00:58:46,380 A keni nevojë për mua për të drejtuar përmes se përsëri ngadalshme ose me fjalë të ndryshme? 1387 00:58:46,380 --> 00:58:47,180 Unë jam i lumtur për të. 1388 00:58:47,180 --> 00:58:48,095 1389 00:58:48,095 --> 00:58:48,595 OK. 1390 00:58:48,595 --> 00:58:50,060 1391 00:58:50,060 --> 00:58:55,540 >> Pra, ne jemi ruajtjen Vlera në këtë pikë, 1392 00:58:55,540 --> 00:58:57,840 por ne gjithashtu duam të ruajtur indeksi. 1393 00:58:57,840 --> 00:59:01,010 Pra, ne jemi duke shkuar për të ruajtur pozita më të vogël 1394 00:59:01,010 --> 00:59:02,770 një, e cila është vetëm do të jetë i. 1395 00:59:02,770 --> 00:59:04,357 1396 00:59:04,357 --> 00:59:05,440 Deri tani Jakobi është i kënaqur. 1397 00:59:05,440 --> 00:59:06,870 Ne kemi gjëra të ruajtura. 1398 00:59:06,870 --> 00:59:08,240 1399 00:59:08,240 --> 00:59:11,870 Dhe tani ne duhet të shohim përmes pjesa Unsorted e array. 1400 00:59:11,870 --> 00:59:18,170 Pra, në këtë rast kjo do të jetë Unsorted tonë. 1401 00:59:18,170 --> 00:59:20,980 1402 00:59:20,980 --> 00:59:22,462 Ky është i. 1403 00:59:22,462 --> 00:59:25,430 1404 00:59:25,430 --> 00:59:26,210 OK. 1405 00:59:26,210 --> 00:59:30,040 >> Pra, ajo që ne jemi duke shkuar për të bërë do të jetë për një lak. 1406 00:59:30,040 --> 00:59:32,066 Kurdo që të keni nevojë për të iterate nëpërmjet një rrjet, 1407 00:59:32,066 --> 00:59:33,440 mendjen tuaj mund të shkoni në për një lak. 1408 00:59:33,440 --> 00:59:34,760 1409 00:59:34,760 --> 00:59:38,090 Pra, për disa int k equals-- çfarë ne mendojmë 1410 00:59:38,090 --> 00:59:39,700 k do të jetë e barabartë për të filluar me? 1411 00:59:39,700 --> 00:59:41,580 1412 00:59:41,580 --> 00:59:44,766 Kjo është ajo që ne kemi përcaktuar si i vogël ynë vlera dhe ne duam të krahasojmë atë. 1413 00:59:44,766 --> 00:59:47,090 Çfarë duam ta krahasojnë atë me? 1414 00:59:47,090 --> 00:59:48,730 Ajo do të jetë kjo një tjetër, e drejtë? 1415 00:59:48,730 --> 00:59:53,200 Pra, ne duam k të firmosur që i plus 1 për të filluar. 1416 00:59:53,200 --> 00:59:55,350 1417 00:59:55,350 --> 01:00:02,800 >> Dhe ne duam k në këtë rast ne tashmë kanë Madhësia ruajtur deri këtu, 1418 01:00:02,800 --> 01:00:03,930 kështu që ne mund të përdorni vetëm madhësinë. 1419 01:00:03,930 --> 01:00:06,240 Madhësia qenë madhësia e array. 1420 01:00:06,240 --> 01:00:09,620 Dhe ne vetëm duam të Përditëso k nga një çdo kohë. 1421 01:00:09,620 --> 01:00:17,410 1422 01:00:17,410 --> 01:00:17,910 Ftohtë. 1423 01:00:17,910 --> 01:00:19,650 1424 01:00:19,650 --> 01:00:23,430 Deri tani ne kemi nevojë për të gjetur element të vogël këtu. 1425 01:00:23,430 --> 01:00:24,470 1426 01:00:24,470 --> 01:00:31,380 Pra, nëse ne iterate nëpërmjet, ne dua të them, nëse array në k 1427 01:00:31,380 --> 01:00:37,080 është më pak se value-- tonë të vogël ky është vendi ku ne jemi në të vërtetë 1428 01:00:37,080 --> 01:00:42,950 mbajtja e asaj që është e here-- më të vogël 1429 01:00:42,950 --> 01:00:47,740 atëherë ne duam të reassign ajo që vlera jonë më e vogël është. 1430 01:00:47,740 --> 01:00:50,645 >> Kjo do të thotë se, oh, ne jemi iterating përmes këtu. 1431 01:00:50,645 --> 01:00:51,699 1432 01:00:51,699 --> 01:00:53,740 Cilado qoftë vlera është këtu, është jo gjë e vogël tonë. 1433 01:00:53,740 --> 01:00:54,448 Ne nuk e duan atë. 1434 01:00:54,448 --> 01:00:56,100 Ne duam të reassign atë. 1435 01:00:56,100 --> 01:01:02,050 Pra, nëse ne jemi ricaktuar atë, se çfarë bëjnë ju mendoni se mund të jetë në këtë kod këtu? 1436 01:01:02,050 --> 01:01:04,160 Ne duam të reassign të vogël dhe pozita. 1437 01:01:04,160 --> 01:01:05,740 1438 01:01:05,740 --> 01:01:07,010 Pra, ajo që është më e vogël tani? 1439 01:01:07,010 --> 01:01:08,422 1440 01:01:08,422 --> 01:01:09,130 STUDENT: Array k. 1441 01:01:09,130 --> 01:01:09,963 INSTRUKTOR: Array k. 1442 01:01:09,963 --> 01:01:13,480 1443 01:01:13,480 --> 01:01:15,956 Dhe çfarë është pozita tani? 1444 01:01:15,956 --> 01:01:20,940 1445 01:01:20,940 --> 01:01:23,000 Çfarë është indekset e Vlera tonë të vogël? 1446 01:01:23,000 --> 01:01:24,030 1447 01:01:24,030 --> 01:01:24,530 Kjo është vetëm k. 1448 01:01:24,530 --> 01:01:25,690 1449 01:01:25,690 --> 01:01:27,790 Pra array k, k, ato ndeshje deri. 1450 01:01:27,790 --> 01:01:31,670 1451 01:01:31,670 --> 01:01:33,120 Pra, ne të kërkuar për të reassign atë. 1452 01:01:33,120 --> 01:01:34,390 1453 01:01:34,390 --> 01:01:39,950 Dhe pastaj pasi kemi gjetur më të vogël tonë, kështu që në fund të kësaj për lak 1454 01:01:39,950 --> 01:01:45,100 ketu kemi gjetur atë më të vogël tonë Vlera është, kështu që ne vetëm të bie në ujdi atë. 1455 01:01:45,100 --> 01:01:47,100 1456 01:01:47,100 --> 01:01:50,816 Në këtë rast, siç thonë tonë Vlera më e vogël është këtu. 1457 01:01:50,816 --> 01:01:51,940 Kjo është vlera jonë më e vogël. 1458 01:01:51,940 --> 01:01:57,690 >> Ne vetëm duam të bie në ujdi atë këtu, e cila është se çfarë funksioni swap në fund 1459 01:01:57,690 --> 01:02:01,270 bëri, të cilat ne vetëm shkroi së bashku minuta një çift më parë. 1460 01:02:01,270 --> 01:02:02,775 Pra, ai duhet të duket e njohur. 1461 01:02:02,775 --> 01:02:04,320 1462 01:02:04,320 --> 01:02:08,030 Dhe pastaj ai thjesht do të iterate nëpërmjet deri sa të arrijë të gjithë rrugën 1463 01:02:08,030 --> 01:02:13,100 deri në fund, që do të thotë se ju kanë zero elemente që janë Unsorted 1464 01:02:13,100 --> 01:02:14,800 dhe çdo gjë tjetër ka qenë të renditura. 1465 01:02:14,800 --> 01:02:16,216 1466 01:02:16,216 --> 01:02:16,715 Kuptim? 1467 01:02:16,715 --> 01:02:18,010 1468 01:02:18,010 --> 01:02:19,280 Një pak më konkretisht? 1469 01:02:19,280 --> 01:02:19,990 Kodi ndihmë? 1470 01:02:19,990 --> 01:02:21,720 1471 01:02:21,720 --> 01:02:26,410 >> STUDENT: Për një madhësi, ju kurrë nuk të vërtetë të përcaktojë apo ndryshojë atë, 1472 01:02:26,410 --> 01:02:27,340 Si e di? 1473 01:02:27,340 --> 01:02:32,380 >> INSTRUKTOR: Pra, një gjë të njoftim up këtu është madhësia int. 1474 01:02:32,380 --> 01:02:35,680 Pra, ne jemi duke thënë në këtë lloj sort-- është një funksion në këtë case-- është 1475 01:02:35,680 --> 01:02:40,770 Përzgjedhja lloj, është e kaluar në me funksionin. 1476 01:02:40,770 --> 01:02:43,460 Pra, në qoftë se ajo nuk u miratua në, ju do të bëni diçka 1477 01:02:43,460 --> 01:02:47,840 si me gjatësinë e vektorit ose ju do të iterate nëpër 1478 01:02:47,840 --> 01:02:49,390 për të gjetur gjatësinë. 1479 01:02:49,390 --> 01:02:52,680 Por për shkak se ajo është e kaluar në, ne vetëm mund ta përdorin atë. 1480 01:02:52,680 --> 01:02:55,720 Ju vetëm të supozojmë se përdoruesi ju dha një madhësi të vlefshme që 1481 01:02:55,720 --> 01:02:57,698 në fakt paraqet një Madhësia e vektorit tuaj. 1482 01:02:57,698 --> 01:02:59,461 1483 01:02:59,461 --> 01:02:59,960 Ftohtë? 1484 01:02:59,960 --> 01:03:01,610 1485 01:03:01,610 --> 01:03:05,870 >> Nëse ju djema keni ndonjë problem me këto ose duan më shumë praktikë coding llojet 1486 01:03:05,870 --> 01:03:08,050 në tuaj, ju duhet shkojnë në study.cs50. 1487 01:03:08,050 --> 01:03:11,560 1488 01:03:11,560 --> 01:03:12,670 Është një mjet. 1489 01:03:12,670 --> 01:03:15,040 Ata kanë një checker që ju në fakt mund të shkruani. 1490 01:03:15,040 --> 01:03:16,180 Ata bëjnë pseudokod. 1491 01:03:16,180 --> 01:03:19,310 Ata kanë më shumë video dhe slides përfshirë edhe ato që unë përdorin këtu. 1492 01:03:19,310 --> 01:03:23,150 Pra, nëse ju jeni ende ndjenja a pak fuzzy, provoni atë jashtë. 1493 01:03:23,150 --> 01:03:25,670 Si gjithmonë, vijnë flasin për mua, too. 1494 01:03:25,670 --> 01:03:26,320 Pyetje? 1495 01:03:26,320 --> 01:03:28,611 >> STUDENTORE: A jeni duke thënë Madhësia është përcaktuar më parë? 1496 01:03:28,611 --> 01:03:29,234 1497 01:03:29,234 --> 01:03:29,900 INSTRUKTOR: Po. 1498 01:03:29,900 --> 01:03:35,570 Madhësia është e përcaktuar paraprakisht up këtu në deklaratën e funksionit. 1499 01:03:35,570 --> 01:03:39,060 Pra, ju mendoni se ajo është miratuar në nga ana e përdoruesit, dhe për hir të thjeshtësisë, 1500 01:03:39,060 --> 01:03:41,896 ne jemi duke shkuar për të supozojmë se Përdorues na dha madhësinë e saktë. 1501 01:03:41,896 --> 01:03:43,240 Ftohtë. 1502 01:03:43,240 --> 01:03:44,390 Pra, kjo është zgjedhja lloj. 1503 01:03:44,390 --> 01:03:45,590 1504 01:03:45,590 --> 01:03:47,640 Guys, unë e di se ne jemi mësuar shumë sot. 1505 01:03:47,640 --> 01:03:49,710 Kjo është një të dhënave të dendura për seksionin. 1506 01:03:49,710 --> 01:03:51,880 1507 01:03:51,880 --> 01:03:57,340 Pra, me këtë, ne jemi duke shkuar për të shkuar në futje lloji. 1508 01:03:57,340 --> 01:04:01,550 1509 01:04:01,550 --> 01:04:02,510 >> OK. 1510 01:04:02,510 --> 01:04:06,100 Pra, para se ne duhet të bëjmë Analiza jonë Runtime këtu. 1511 01:04:06,100 --> 01:04:10,190 Pra, në rastin më të mirë, dhënë që unë ju tregoi 1512 01:04:10,190 --> 01:04:11,960 Tabela Unë tashmë lloji i dha atë larg. 1513 01:04:11,960 --> 01:04:15,430 Por rasti Runtime të mirë, çfarë ne mendojmë? 1514 01:04:15,430 --> 01:04:17,310 1515 01:04:17,310 --> 01:04:18,130 Çdo gjë renditura. 1516 01:04:18,130 --> 01:04:21,040 1517 01:04:21,040 --> 01:04:22,070 N katror. 1518 01:04:22,070 --> 01:04:24,780 Çdokush kanë një shpjegim Pse mendoni? 1519 01:04:24,780 --> 01:04:29,060 1520 01:04:29,060 --> 01:04:30,519 >> STUDENT: Ju jeni të krahasuar through-- 1521 01:04:30,519 --> 01:04:31,268 INSTRUKTOR: E drejta. 1522 01:04:31,268 --> 01:04:32,540 Ju jeni krahasuar me. 1523 01:04:32,540 --> 01:04:35,630 Në çdo përsëritje, edhe pse ne jemi decrementing këtë me një, 1524 01:04:35,630 --> 01:04:38,950 ju jeni ende në kërkim përmes gjithçka për të gjetur një të vogël. 1525 01:04:38,950 --> 01:04:42,390 Pra, edhe në qoftë se vlera e juaj më të vogël është këtu në fillim, 1526 01:04:42,390 --> 01:04:44,710 ju jeni ende duke e krahasuar atë kundër çdo gjë tjetër 1527 01:04:44,710 --> 01:04:46,550 për t'u siguruar se është gjëja më e vogël. 1528 01:04:46,550 --> 01:04:49,820 Pra, ju do të përfundojë deri duke kaluar nëpër rreth katror n herë. 1529 01:04:49,820 --> 01:04:51,090 1530 01:04:51,090 --> 01:04:51,590 Dakord. 1531 01:04:51,590 --> 01:04:52,785 Dhe çfarë është rasti më i keq? 1532 01:04:52,785 --> 01:04:54,350 1533 01:04:54,350 --> 01:04:57,980 Gjithashtu n katror, ​​sepse ju do të jeni të jetë bërë këtë procedurë të njëjtë. 1534 01:04:57,980 --> 01:05:01,670 Pra, në këtë rast, përzgjedhje lloj ka diçka 1535 01:05:01,670 --> 01:05:04,010 se edhe ne e quajmë Runtime pritshëm. 1536 01:05:04,010 --> 01:05:07,400 Pra, ne të tjerët, ne vetëm e di e sipërme dhe të poshtme të mëdhenj. 1537 01:05:07,400 --> 01:05:11,180 Varësisht se si i çmendur tonë lista është ose si Unsorted është, 1538 01:05:11,180 --> 01:05:15,350 ato ndryshojnë në mes të n ose n katërkëndësh. 1539 01:05:15,350 --> 01:05:16,550 Ne nuk e dimë. 1540 01:05:16,550 --> 01:05:22,820 >> Por për shkak se zgjedhja lloj ka të njëjtën më të keq dhe rastin më të mirë, që na tregon se 1541 01:05:22,820 --> 01:05:25,880 pa marrë parasysh se çfarë lloji i kontributit ne kanë, nëse kjo është plotësisht e 1542 01:05:25,880 --> 01:05:29,130 renditura ose tërësisht kundërt të renditura, kjo është 1543 01:05:29,130 --> 01:05:30,740 do të marrë të njëjtën sasi e kohës. 1544 01:05:30,740 --> 01:05:33,760 Pra, në këtë rast, në qoftë se ju mbani mend nga tryezën tonë, 1545 01:05:33,760 --> 01:05:38,610 në të vërtetë ajo kishte një vlerë që këto dy lloje nuk kanë, 1546 01:05:38,610 --> 01:05:40,390 e cila është Runtime pritet. 1547 01:05:40,390 --> 01:05:43,350 Pra, ne e dimë se sa herë kemi drejtuar përzgjedhjes lloj, 1548 01:05:43,350 --> 01:05:45,380 është e garantuar për të drejtuar një kohë të n katror. 1549 01:05:45,380 --> 01:05:46,630 Nuk ka variabilitet atje. 1550 01:05:46,630 --> 01:05:47,630 Është vetëm pritet. 1551 01:05:47,630 --> 01:05:48,820 1552 01:05:48,820 --> 01:05:52,140 Dhe, përsëri, në qoftë se ju doni të mësoni më, të marrë CS 124 në pranverë. 1553 01:05:52,140 --> 01:05:55,370 1554 01:05:55,370 --> 01:05:56,712 Dakord. 1555 01:05:56,712 --> 01:05:57,545 Ne e kemi parë këtë. 1556 01:05:57,545 --> 01:05:58,530 1557 01:05:58,530 --> 01:05:59,030 Ftohtë. 1558 01:05:59,030 --> 01:06:00,930 Lloj Pra futje. 1559 01:06:00,930 --> 01:06:03,330 Dhe unë jam ndoshta do të flakët nëpër këtë. 1560 01:06:03,330 --> 01:06:05,440 Unë nuk do të keni djema kodin atë. 1561 01:06:05,440 --> 01:06:06,580 Ne vetëm do të ecin nëpër atë. 1562 01:06:06,580 --> 01:06:10,500 Pra, futje lloj është lloji e ngjashme me përzgjedhjes lloj 1563 01:06:10,500 --> 01:06:14,460 në atë që ne kemi edhe një Unsorted dhe të renditura pjesë e vektorit. 1564 01:06:14,460 --> 01:06:20,260 >> Por ajo që është e ndryshme është se si ne të kalojnë nëpër një nga një, 1565 01:06:20,260 --> 01:06:24,210 ne vetëm të marrë çfarëdo numri është tjetër në Unsorted tonë, 1566 01:06:24,210 --> 01:06:28,507 dhe saktë zgjidhur atë në rrjet të renditura. 1567 01:06:28,507 --> 01:06:30,090 Ajo do të bëjë më shumë kuptim me një shembull. 1568 01:06:30,090 --> 01:06:31,140 1569 01:06:31,140 --> 01:06:35,430 Pra, çdo gjë fillon si Unsorted, ashtu si me përzgjedhjes lloj. 1570 01:06:35,430 --> 01:06:38,740 Dhe ne jemi duke shkuar për të zgjidhur këtë në order Ascending siç kemi qenë. 1571 01:06:38,740 --> 01:06:40,360 1572 01:06:40,360 --> 01:06:43,340 Pra, në të kalojë tonë të parë kemi marrë vlerën e parë 1573 01:06:43,340 --> 01:06:46,700 dhe ne themi, OK, ju jeni tani në një listë me veten. 1574 01:06:46,700 --> 01:06:49,150 >> Sepse ju jeni në një listë me veten, ju janë të renditura. 1575 01:06:49,150 --> 01:06:52,460 Urime për të qenë Elementi i parë në këtë grup. 1576 01:06:52,460 --> 01:06:54,800 Ju tashmë jeni të renditura të gjitha në tuaj. 1577 01:06:54,800 --> 01:06:58,900 Deri tani, ne kemi një të renditura dhe një array Unsorted. 1578 01:06:58,900 --> 01:07:01,760 Deri tani kemi marrë të parë. 1579 01:07:01,760 --> 01:07:05,600 Çfarë ndodh në mes këtu dhe këtu është se ne themi, 1580 01:07:05,600 --> 01:07:08,890 OK, ne do të shikojmë në Vlera e parë të vektorit tonë Unsorted 1581 01:07:08,890 --> 01:07:13,270 dhe ne jemi duke shkuar për të dhëna atë në e saj vendin e saktë në rrjet renditura. 1582 01:07:13,270 --> 01:07:21,460 >> Pra, ajo që ne nuk po kemi marrë 5 dhe themi, OK, 5 është më e madhe se 3, 1583 01:07:21,460 --> 01:07:24,630 kështu që ne vetëm të futur atë të drejtë në të djathtë të atij. 1584 01:07:24,630 --> 01:07:25,130 Ne jemi të mirë. 1585 01:07:25,130 --> 01:07:26,200 1586 01:07:26,200 --> 01:07:28,420 Pra, atëherë ne do të shkojmë për në një tonë të ardhshëm. 1587 01:07:28,420 --> 01:07:29,720 Dhe ne kemi marrë 2. 1588 01:07:29,720 --> 01:07:34,330 Ne themi, OK, 2 më pak se 3, kështu që ne e dimë se ai 1589 01:07:34,330 --> 01:07:36,220 duhet të jetë në para e listës tonë tani. 1590 01:07:36,220 --> 01:07:41,800 Pra, ajo që ne bëjmë, është që ne të shtyjë 3 dhe 5 poshtë dhe ne shkojmë 2 në atë slot parë. 1591 01:07:41,800 --> 01:07:42,990 1592 01:07:42,990 --> 01:07:45,870 Pra, ne jemi vetëm duke futur atë në vendin e saktë ajo duhet të jetë. 1593 01:07:45,870 --> 01:07:46,960 1594 01:07:46,960 --> 01:07:49,470 >> Pastaj ne shikojmë tonë një tjetër, dhe ne themi 6. 1595 01:07:49,470 --> 01:07:53,620 OK, 6 është më e madhe se çdo gjë në grup tonë të renditura, 1596 01:07:53,620 --> 01:07:56,000 kështu që ne vetëm të tag atë deri në fund. 1597 01:07:56,000 --> 01:07:56,960 Dhe pastaj të shohim në 4. 1598 01:07:56,960 --> 01:07:58,130 1599 01:07:58,130 --> 01:08:03,020 4 është më pak se 6, është më pak se 5 por kjo është më e madhe se 3. 1600 01:08:03,020 --> 01:08:06,270 Pra, ne vetëm të futur atë të drejtë në mesme në mes të 3 dhe 5. 1601 01:08:06,270 --> 01:08:07,380 1602 01:08:07,380 --> 01:08:10,530 Pra, për të bërë atë një pak pak më konkret, 1603 01:08:10,530 --> 01:08:12,280 këtu është lloj i Ideja e asaj që ka ndodhur. 1604 01:08:12,280 --> 01:08:16,430 Pra, për çdo element Unsorted, ne përcaktuar ku në pjesën renditura 1605 01:08:16,430 --> 01:08:17,090 ajo është. 1606 01:08:17,090 --> 01:08:20,680 >> Pra, duke mbajtur në mendje të të renditura dhe Unsorted, 1607 01:08:20,680 --> 01:08:26,080 ne duhet të kaloj përmes dhe figura se ku ajo i përshtatet në rrjet renditura. 1608 01:08:26,080 --> 01:08:31,460 Dhe ne e futur atë duke zhvendosur elementet në të djathtë të saj poshtë. 1609 01:08:31,460 --> 01:08:34,910 Dhe pastaj ne vetëm i mbajnë iterating përmes derisa ne 1610 01:08:34,910 --> 01:08:39,270 kanë një listë të renditura tërësisht ku Unsorted tani është zero 1611 01:08:39,270 --> 01:08:41,720 dhe të renditura merr Tërësia e listës sonë. 1612 01:08:41,720 --> 01:08:43,146 1613 01:08:43,146 --> 01:08:45,854 Pra, përsëri, për t'i bërë gjërat edhe më më konkret, ne kemi pseudokod. 1614 01:08:45,854 --> 01:08:47,979 1615 01:08:47,979 --> 01:08:52,410 >> Pra, në thelb për të i është barabartë me 0 deri n minus 1, 1616 01:08:52,410 --> 01:08:54,790 kjo është vetëm gjatësia e vektorit tonë. 1617 01:08:54,790 --> 01:09:00,979 Ne kemi disa element që është i barabartë me array parë ose indekset parë. 1618 01:09:00,979 --> 01:09:03,200 Ne kemi vendosur j barabartë me atë. 1619 01:09:03,200 --> 01:09:04,649 1620 01:09:04,649 --> 01:09:09,210 Kështu ndërsa j është më e madhe se zero dhe array, j minus 1 1621 01:09:09,210 --> 01:09:11,660 është më e madhe se element, kështu që të gjithë që e bën 1622 01:09:11,660 --> 01:09:17,479 është duke u siguruar se j juaj paraqet me të vërtetë 1623 01:09:17,479 --> 01:09:20,010 pjesa Unsorted e array. 1624 01:09:20,010 --> 01:09:30,745 >> Kështu, ndërsa ka ende gjëra për të zgjidhur dhe një j minus is-- çfarë 1625 01:09:30,745 --> 01:09:31,840 është element saj? 1626 01:09:31,840 --> 01:09:34,760 J nuk është definuar këtu. 1627 01:09:34,760 --> 01:09:35,677 Kjo është lloj i bezdisshëm. 1628 01:09:35,677 --> 01:09:36,176 OK. 1629 01:09:36,176 --> 01:09:36,689 Anyways. 1630 01:09:36,689 --> 01:09:39,899 Pra, j minus 1, ju jeni duke kontrolluar element përpara. 1631 01:09:39,899 --> 01:09:46,460 Ju jeni duke thënë, OK, është element para kudo që am-- le 1632 01:09:46,460 --> 01:09:47,540 në fakt nxjerrë this out. 1633 01:09:47,540 --> 01:09:52,580 1634 01:09:52,580 --> 01:09:56,830 Pra, le të thonë se kjo është e si në të kalojë tonë të dytë. 1635 01:09:56,830 --> 01:09:59,525 Kështu që unë do të jetë e barabartë me 1, e cila është këtu. 1636 01:09:59,525 --> 01:10:03,310 1637 01:10:03,310 --> 01:10:06,025 >> Kaq i do të jenë të barabartë me 1. 1638 01:10:06,025 --> 01:10:09,510 1639 01:10:09,510 --> 01:10:13,702 Kjo do të jetë 2, 4, 5, 6, 7. 1640 01:10:13,702 --> 01:10:16,060 1641 01:10:16,060 --> 01:10:16,750 Dakord. 1642 01:10:16,750 --> 01:10:20,945 Pra, element jonë në këtë rast do të jenë të barabartë me 4. 1643 01:10:20,945 --> 01:10:22,110 1644 01:10:22,110 --> 01:10:24,946 Dhe ne kemi disa j që është e do të jenë të barabartë me 1. 1645 01:10:24,946 --> 01:10:29,770 1646 01:10:29,770 --> 01:10:30,971 Oh, j është decrementing. 1647 01:10:30,971 --> 01:10:31,720 Kjo është ajo që është. 1648 01:10:31,720 --> 01:10:35,680 Kështu j është e barabartë tek I, kështu që kjo është ajo duke thënë është se si ne të ecim përpara, 1649 01:10:35,680 --> 01:10:37,530 ne jemi vetëm duke u siguruar se ne nuk jemi të gjatë 1650 01:10:37,530 --> 01:10:43,520 indeksimin e në këtë mënyrë, kur ne jemi duke u përpjekur për të futur gjërat në listën tonë të renditura. 1651 01:10:43,520 --> 01:10:49,850 >> Kështu kur j është e barabartë me 1 në këtë rast dhe array j minus one-- kështu array j minus 1 1652 01:10:49,850 --> 01:10:54,610 është 2 në këtë case-- nëse kjo është e madhe se elementit, 1653 01:10:54,610 --> 01:10:57,700 atëherë e gjithë kjo është bërë është zhvendosur gjëra poshtë. 1654 01:10:57,700 --> 01:11:04,790 Pra, në këtë rast, një grup j minus do të jetë grup zero, i cili është 2. 1655 01:11:04,790 --> 01:11:08,430 2 nuk është më i madh se 4, kështu që kjo nuk do të ekzekutojë. 1656 01:11:08,430 --> 01:11:11,460 Pra ndryshim nuk lëvizin poshtë. 1657 01:11:11,460 --> 01:11:18,790 Çfarë kjo nuk është vetëm këtu lëviz grup tuaj të renditura poshtë. 1658 01:11:18,790 --> 01:11:22,340 1659 01:11:22,340 --> 01:11:26,400 Në këtë rast, në të vërtetë, ne kemi mund do-- le të bëjmë këtë 3. 1660 01:11:26,400 --> 01:11:28,080 1661 01:11:28,080 --> 01:11:31,970 Pra, nëse ne jemi të ecin me me këtë shembull, ne jemi tani këtu. 1662 01:11:31,970 --> 01:11:32,740 Kjo është e renditura. 1663 01:11:32,740 --> 01:11:34,492 1664 01:11:34,492 --> 01:11:35,200 Kjo është Unsorted. 1665 01:11:35,200 --> 01:11:39,090 1666 01:11:39,090 --> 01:11:39,860 Ftohtë? 1667 01:11:39,860 --> 01:11:46,620 Kështu i është e barabartë me 2, kështu element jonë është e barabartë me 3. 1668 01:11:46,620 --> 01:11:47,920 1669 01:11:47,920 --> 01:11:52,270 Dhe j jonë është e barabartë me 2. 1670 01:11:52,270 --> 01:12:00,620 Kështu që ne shikojmë nëpërmjet dhe ne thonë, OK, është një koleksion j minus 1671 01:12:00,620 --> 01:12:03,470 madhe se elementit se ne jemi duke kërkuar në? 1672 01:12:03,470 --> 01:12:05,540 Dhe përgjigja është po, e drejtë? 1673 01:12:05,540 --> 01:12:11,275 4 është më e madhe se 3 dhe J është 2, kështu që ky kod ekzekuton. 1674 01:12:11,275 --> 01:12:12,510 1675 01:12:12,510 --> 01:12:18,550 >> Deri tani ajo që ne bëjmë një rrjet në 2, në mënyrë të drejtë këtu, ne bie në ujdi tyre. 1676 01:12:18,550 --> 01:12:25,620 Pra, ne vetëm të themi, OK, array në 2 tani do të jetë 3. 1677 01:12:25,620 --> 01:12:28,130 1678 01:12:28,130 --> 01:12:32,340 Dhe j do të jetë e barabartë j minus 1, e cila është 1. 1679 01:12:32,340 --> 01:12:34,590 1680 01:12:34,590 --> 01:12:37,200 Kjo është e tmerrshme, por ju djema merrni ide. 1681 01:12:37,200 --> 01:12:38,360 J tashmë është e barabartë me 1. 1682 01:12:38,360 --> 01:12:44,360 Dhe array j është vetëm do të jetë barabartë me elementin tone, i cili ishte 4. 1683 01:12:44,360 --> 01:12:45,950 1684 01:12:45,950 --> 01:12:48,570 Unë fshihet diçka që nuk duhet të kanë apo diçka miswrote, 1685 01:12:48,570 --> 01:12:49,910 por ju djema merrni ide. 1686 01:12:49,910 --> 01:12:50,640 >> Ajo lëvizin në n. 1687 01:12:50,640 --> 01:12:51,920 1688 01:12:51,920 --> 01:12:57,960 Dhe pastaj në qoftë se kjo ishte, ajo do loop përsëri dhe do të thonë, OK, j është 1 tani. 1689 01:12:57,960 --> 01:13:00,665 Dhe array j minus 1 tani është 2. 1690 01:13:00,665 --> 01:13:01,750 1691 01:13:01,750 --> 01:13:03,760 Është 2 më pak se elementit tonë? 1692 01:13:03,760 --> 01:13:04,540 Nuk ka? 1693 01:13:04,540 --> 01:13:07,970 Kjo do të thotë se ne kemi futur këtë element 1694 01:13:07,970 --> 01:13:10,110 në vend të saktë në rrjet të renditura. 1695 01:13:10,110 --> 01:13:14,400 Atëherë ne mund të marrë këtë dhe të themi, OK, array tonë renditura është këtu. 1696 01:13:14,400 --> 01:13:19,940 Dhe kjo do të marrë këtë numër 6 dhe do të jetë si, OK, është 6 më pak se ky numër? 1697 01:13:19,940 --> 01:13:20,480 Nuk ka? 1698 01:13:20,480 --> 01:13:21,080 Ftohtë. 1699 01:13:21,080 --> 01:13:22,680 Ne jemi mirë. 1700 01:13:22,680 --> 01:13:23,530 >> Të bëjë atë përsëri. 1701 01:13:23,530 --> 01:13:24,740 Ne themi 7. 1702 01:13:24,740 --> 01:13:29,010 7 është më pak se fund e array tonë Renditur? 1703 01:13:29,010 --> 01:13:29,520 Jo. 1704 01:13:29,520 --> 01:13:30,430 Pra, ne jemi në rregull. 1705 01:13:30,430 --> 01:13:32,760 Pra, kjo do të zgjidhet. 1706 01:13:32,760 --> 01:13:38,610 Në thelb e gjithë kjo e bën është ajo e thënë reagim 1707 01:13:38,610 --> 01:13:42,060 element i parë i array tuaj Unsorted, 1708 01:13:42,060 --> 01:13:46,010 kuptoj se ku shkon në grup tuaj të renditura. 1709 01:13:46,010 --> 01:13:48,780 Dhe kjo vetëm përkujdeset nga swap-et për të bërë atë. 1710 01:13:48,780 --> 01:13:51,300 Ju jeni në thelb vetëm shkëmbejnë derisa ajo është në vendin e duhur. 1711 01:13:51,300 --> 01:13:53,600 1712 01:13:53,600 --> 01:13:56,990 Imazhi vizual është se ju jeni lëviz gjithçka poshtë duke bërë atë. 1713 01:13:56,990 --> 01:13:59,420 >> Pra, kjo është si gjysmë flluskoj lloj-esque. 1714 01:13:59,420 --> 01:14:02,280 1715 01:14:02,280 --> 01:14:03,420 Check out studim 50. 1716 01:14:03,420 --> 01:14:06,000 I highly recommend duke u përpjekur për kodin këtë në tuaj. 1717 01:14:06,000 --> 01:14:07,220 1718 01:14:07,220 --> 01:14:12,450 Nëse keni ndonjë çështje, ose ju dëshironi të shihni kodin mostër për një lloj futje, 1719 01:14:12,450 --> 01:14:13,750 ju lutem let me know. 1720 01:14:13,750 --> 01:14:14,500 Unë jam gjithmonë përreth. 1721 01:14:14,500 --> 01:14:16,600 1722 01:14:16,600 --> 01:14:20,200 Pra rasti Runtime të keq dhe rast Runtime të mirë. 1723 01:14:20,200 --> 01:14:30,700 Si ju guy parë nga tabela unë tashmë e ju tregoi, ajo është edhe n katror dhe n. 1724 01:14:30,700 --> 01:14:35,590 >> Kështu lloj të shkuar jashtë të asaj që kemi biseduar në lidhje me llojet tona të mëparshme, më e keqja 1725 01:14:35,590 --> 01:14:38,760 Rasti runtime është se në qoftë se ajo është Unsorted plotësisht, 1726 01:14:38,760 --> 01:14:42,530 ne duhet të krahasohen të gjitha këto kohë n. 1727 01:14:42,530 --> 01:14:47,020 Ne bëjmë një tërësi shumë të krahasimeve sepse në qoftë se ajo është në mënyrë të kundërt, 1728 01:14:47,020 --> 01:14:50,360 ne jemi duke shkuar për të thënë, OK, kjo është i njëjtë, kjo është e mirë, 1729 01:14:50,360 --> 01:14:54,650 dhe kjo do të duhet të krahasohen kundër një të parë për të lëvizur prapa. 1730 01:14:54,650 --> 01:14:56,710 Dhe si ne të merrni në drejtim të fund bisht, ne kemi 1731 01:14:56,710 --> 01:14:59,440 për të krahasuar, krahasoni, dhe krahasojnë kundër çdo gjëje. 1732 01:14:59,440 --> 01:15:03,030 >> Pra, ajo përfundon duke u rreth katror n. 1733 01:15:03,030 --> 01:15:09,510 Nëse është e saktë, atëherë ju thonë, OK, 2, ju jeni të mirë. 1734 01:15:09,510 --> 01:15:11,330 3, ju jeni në krahasim me 2. 1735 01:15:11,330 --> 01:15:12,310 Ju jeni të mirë. 1736 01:15:12,310 --> 01:15:14,150 4, ju vetëm krahasuar me bisht. 1737 01:15:14,150 --> 01:15:14,990 Ju jeni të mirë. 1738 01:15:14,990 --> 01:15:17,140 6, krahasuar me bisht, ju jeni të mirë. 1739 01:15:17,140 --> 01:15:20,870 Pra, për çdo vend, nëse kjo është tashmë të renditura, ju jeni duke bërë një krahasim. 1740 01:15:20,870 --> 01:15:22,320 Pra, kjo është vetëm n. 1741 01:15:22,320 --> 01:15:26,840 Dhe për shkak se ne kemi një rast Runtime të mirë i n dhe një rast Runtime të keq të n 1742 01:15:26,840 --> 01:15:28,680 katror, ​​ne nuk kemi Runtime pritshëm. 1743 01:15:28,680 --> 01:15:31,290 1744 01:15:31,290 --> 01:15:34,020 >> Kjo varet vetëm nga Kaosi i listës sonë atje. 1745 01:15:34,020 --> 01:15:35,860 1746 01:15:35,860 --> 01:15:39,530 Dhe përsëri, një tjetër grafik dhe një tjetër tryezë. 1747 01:15:39,530 --> 01:15:41,170 Pra, dallimet në mes të llojeve. 1748 01:15:41,170 --> 01:15:44,180 Unë jam vetëm duke shkuar për të fllad përmes, I ndjehen si ne kemi folur gjerësisht 1749 01:15:44,180 --> 01:15:46,570 në lidhje me mënyrën se si ata të gjitha llojet të ndryshojnë dhe të lidhin së bashku. 1750 01:15:46,570 --> 01:15:50,564 Pra Merge lloj është ai i fundit Unë do t'ju lindi djema me. 1751 01:15:50,564 --> 01:15:52,105 Ne nuk kemi një pamje mjaft të gjallë. 1752 01:15:52,105 --> 01:15:53,860 1753 01:15:53,860 --> 01:15:56,040 Pra bashkojë lloj është një algoritmi rekursive. 1754 01:15:56,040 --> 01:15:59,910 Pra, mendoni ju djema e di se çfarë një funksion gjithkund rekursive është? 1755 01:15:59,910 --> 01:16:01,550 1756 01:16:01,550 --> 01:16:03,320 >> Çdokush doni të thoni? 1757 01:16:03,320 --> 01:16:04,739 Ju dëshironi të provoni? 1758 01:16:04,739 --> 01:16:07,280 Pra, një funksion gjithkund rekursive është vetëm një funksion që e quan veten. 1759 01:16:07,280 --> 01:16:08,570 1760 01:16:08,570 --> 01:16:11,590 Pra, nëse ju djema janë të njohur me sekuencën Fibonacci, 1761 01:16:11,590 --> 01:16:15,670 që është konsideruar rekursive sepse ju merrni dy e mëparshme 1762 01:16:15,670 --> 01:16:17,530 dhe shtoni ato së bashku për të marrë një tuaj të ardhshëm. 1763 01:16:17,530 --> 01:16:21,440 Pra gjithkund rekursive, unë gjithmonë mendoj i recursion si si një spirale 1764 01:16:21,440 --> 01:16:24,430 kështu që ju jeni si spiralen poshtë në të. 1765 01:16:24,430 --> 01:16:27,150 Por kjo është vetëm një funksion që e quan veten. 1766 01:16:27,150 --> 01:16:32,660 >> Dhe, në të vërtetë, me të vërtetë shpejt unë mund të ju tregojnë se çfarë duket si. 1767 01:16:32,660 --> 01:16:34,260 1768 01:16:34,260 --> 01:16:41,840 Pra rekursive këtu, në qoftë se ne e shikojmë, kjo është mënyrë rekursive për të përmbledhur mbi një rrjet. 1769 01:16:41,840 --> 01:16:45,900 1770 01:16:45,900 --> 01:16:47,880 Pra, gjithçka që ne bëjmë është ne kemi funksion shuma 1771 01:16:47,880 --> 01:16:52,210 Shuma që merr një madhësi dhe një rrjet. 1772 01:16:52,210 --> 01:16:55,210 Dhe në qoftë se ju njoftim, madhësia decrements nga një çdo herë. 1773 01:16:55,210 --> 01:17:00,365 Dhe e gjitha kjo nuk është në qoftë se x është e barabartë me zero-- kështu që nëse madhësia e array 1774 01:17:00,365 --> 01:17:02,710 është e barabartë tek zero-- kthehet zero. 1775 01:17:02,710 --> 01:17:10,440 >> Përndryshe ajo përmbledh këtë Elementi i fundit i vektorit, 1776 01:17:10,440 --> 01:17:14,790 dhe pastaj merr një shumë të pjesa tjetër e array. 1777 01:17:14,790 --> 01:17:17,555 Pra, kjo është vetëm e thyer atë në problemet e vogla dhe të vogla. 1778 01:17:17,555 --> 01:17:18,990 1779 01:17:18,990 --> 01:17:21,890 Long histori e shkurtër, recursion, funksion që e quan veten. 1780 01:17:21,890 --> 01:17:25,740 Nëse kjo është e gjitha që ju mori nga kjo, kjo është ajo që një funksion gjithkund rekursive është. 1781 01:17:25,740 --> 01:17:29,870 Nëse ju merrni 51, ju do të merrni shumë, shumë rehat me recursion. 1782 01:17:29,870 --> 01:17:31,110 1783 01:17:31,110 --> 01:17:32,370 Kjo është me të vërtetë cool. 1784 01:17:32,370 --> 01:17:34,660 Është bërë kuptim në si 03:00 një natë jashtë. 1785 01:17:34,660 --> 01:17:37,900 Dhe unë kam qenë si, pse kurrë nuk kam përdorni këtë? 1786 01:17:37,900 --> 01:17:39,170 1787 01:17:39,170 --> 01:17:42,430 >> Pra, për merge lloj, në thelb se çfarë do të bëjë është ajo e 1788 01:17:42,430 --> 01:17:45,620 do të thyejnë atë poshtë dhe të ndërpreni atë poshtë derisa ai është vetëm elemente të vetme. 1789 01:17:45,620 --> 01:17:47,570 Elementet e vetme janë të lehtë për të zgjidhur. 1790 01:17:47,570 --> 01:17:48,070 Ne e shohim se. 1791 01:17:48,070 --> 01:17:50,760 Nëse ju keni një element, është e tashmë konsiderohet Renditur. 1792 01:17:50,760 --> 01:17:53,800 Pra, në një input të elementeve n, nëse n është më pak se 2, 1793 01:17:53,800 --> 01:17:58,120 kthehen vetëm për shkak se mjetet e është ose 0 ose 1 si ne kemi parë. 1794 01:17:58,120 --> 01:18:00,050 Ato janë konsideruar si elemente të renditura. 1795 01:18:00,050 --> 01:18:02,170 >> Përndryshe thyejnë atë në gjysmë. 1796 01:18:02,170 --> 01:18:06,336 Lloj gjysmën e parë, lloj e dytë gjysmë, dhe pastaj bashkojë ato së bashku. 1797 01:18:06,336 --> 01:18:07,460 Pse është quajtur bashkojë lloj. 1798 01:18:07,460 --> 01:18:08,700 1799 01:18:08,700 --> 01:18:12,155 Pra, ne kemi këtu ne do të zgjidhur këto. 1800 01:18:12,155 --> 01:18:13,410 1801 01:18:13,410 --> 01:18:17,210 Pra, do të vazhdojmë që ata derisa madhësia array është 1. 1802 01:18:17,210 --> 01:18:20,790 Pra, kur është 1, ne vetëm të kthehen sepse kjo është një grup renditura, 1803 01:18:20,790 --> 01:18:23,940 dhe kjo është një grup renditura, dhe kjo është një koleksion të renditura, ne jemi renditur të gjithë. 1804 01:18:23,940 --> 01:18:25,390 1805 01:18:25,390 --> 01:18:29,420 Pra, atëherë çfarë bëjmë është që ne të fillojnë bashkimin e tyre së bashku. 1806 01:18:29,420 --> 01:18:31,820 >> Pra, mënyra që ju mund të mendojnë për bashkimin është 1807 01:18:31,820 --> 01:18:36,240 ju vetëm hiqni vogël Numri i secilit prej vargjeve nën 1808 01:18:36,240 --> 01:18:38,330 dhe vetëm append atë në rrjet shfaq. 1809 01:18:38,330 --> 01:18:44,290 Pra, nëse ju shikoni këtu, kur kemi këta grupe kanë ne 4, 6, dhe 1. 1810 01:18:44,290 --> 01:18:47,280 Kur ne duam të bashkohen këto, ne shikojmë në këto dy parë 1811 01:18:47,280 --> 01:18:50,730 dhe ne themi, OK, 1 është më i vogël, ajo shkon në front. 1812 01:18:50,730 --> 01:18:54,330 4 dhe 6, nuk ka asgjë për të krahasuar atë për të, vetëm tag atë deri në fund. 1813 01:18:54,330 --> 01:18:58,020 >> Kur ne kombinojnë këto dy, ne vetëm të marrë një më të vogël të këtyre dy, 1814 01:18:58,020 --> 01:18:59,310 kështu që është 1. 1815 01:18:59,310 --> 01:19:01,690 Dhe tani kemi marrë më i vogël i këtyre dy, kështu 2. 1816 01:19:01,690 --> 01:19:03,330 Më i vogël i këtyre dyve, 3. 1817 01:19:03,330 --> 01:19:06,260 Më i vogël i këtyre dy, 4, 5, 6. 1818 01:19:06,260 --> 01:19:08,630 Pra, ju jeni vetëm duke tërhequr off këto. 1819 01:19:08,630 --> 01:19:11,210 Dhe për shkak se ata kanë janë të renditura më parë, 1820 01:19:11,210 --> 01:19:14,300 ju vetëm keni një të tillë krahasimi çdo herë atje. 1821 01:19:14,300 --> 01:19:19,610 Kështu që më code këtu, përfaqësimi i drejtë. 1822 01:19:19,610 --> 01:19:24,410 Pra, ju të fillojë në mes dhe ju lloj majtë dhe djathtë 1823 01:19:24,410 --> 01:19:26,180 dhe atëherë ju vetëm bashkojë ato. 1824 01:19:26,180 --> 01:19:30,080 >> Dhe ne nuk kemi kod për bashkojë të drejtë këtu. 1825 01:19:30,080 --> 01:19:34,110 Por, përsëri, në qoftë se ju shkoni në studim 50, ajo do të jetë atje. 1826 01:19:34,110 --> 01:19:36,860 Përndryshe vijnë flasin për mua në qoftë se ju jeni ende i hutuar. 1827 01:19:36,860 --> 01:19:42,340 Pra, gjëja e ftohtë këtu është se rasti më i mirë, rastin më të keq, dhe runtime pritshme 1828 01:19:42,340 --> 01:19:46,250 janë të gjitha në log n, e cila është shumë më mirë se ne kemi 1829 01:19:46,250 --> 01:19:48,000 parë për pjesën tjetër të llojeve tona. 1830 01:19:48,000 --> 01:19:51,840 Ne e kemi parë n katror dhe çfarë ne fakt 1831 01:19:51,840 --> 01:19:54,380 merrni këtu n log n, e cila është e madhe. 1832 01:19:54,380 --> 01:19:55,830 >> Shikoni se si më mirë që është e. 1833 01:19:55,830 --> 01:19:56,780 Një kurbë e tillë e bukur. 1834 01:19:56,780 --> 01:19:58,130 1835 01:19:58,130 --> 01:20:00,120 Pra, shumë më efikase. 1836 01:20:00,120 --> 01:20:03,510 Nëse ju ndonjëherë mund të, përdorimi i bashkohen lloj. 1837 01:20:03,510 --> 01:20:04,810 Kjo do të ju kursejnë kohë. 1838 01:20:04,810 --> 01:20:07,670 Pastaj përsëri, siç kemi thënë, në qoftë se ju jeni poshtë në këtë rajon më të ulët, 1839 01:20:07,670 --> 01:20:09,480 kjo nuk e bën atë shumë nga një ndryshim. 1840 01:20:09,480 --> 01:20:11,360 Ju merrni deri në mijëra dhe mijëra të inputeve, 1841 01:20:11,360 --> 01:20:13,318 ju patjetër doni a algorithm më efikase. 1842 01:20:13,318 --> 01:20:14,730 1843 01:20:14,730 --> 01:20:19,400 Dhe, përsëri, tabela jonë e bukur e të gjitha lloj që ju djema mësuar sot. 1844 01:20:19,400 --> 01:20:21,157 >> Kështu që unë e di se kjo është një ditë e dendur. 1845 01:20:21,157 --> 01:20:23,490 Kjo nuk është domosdoshmërisht do për t'ju ndihmuar me pset tuaj. 1846 01:20:23,490 --> 01:20:28,250 Por unë vetëm dua të bëjë një mohim ky seksion nuk është vetëm për psets. 1847 01:20:28,250 --> 01:20:31,240 E gjithë ky material është e drejtë lojë për midterms tuaj. 1848 01:20:31,240 --> 01:20:35,430 Dhe gjithashtu në qoftë se ju bëni të vazhdojë më me CS, këto janë bazat me të vërtetë të rëndësishme 1849 01:20:35,430 --> 01:20:37,870 që ju do të duhet të dini. 1850 01:20:37,870 --> 01:20:41,700 Pra, disa ditë do të jetë një pak më shumë ndihmë pset, 1851 01:20:41,700 --> 01:20:44,600 por disa javë do të jetë e më shumë përmbajtje aktuale 1852 01:20:44,600 --> 01:20:46,600 që nuk mund të duket super i dobishëm për ju tani për tani, 1853 01:20:46,600 --> 01:20:51,215 por unë premtoj se nëse ju vazhdoni ne do të jetë shumë, shumë i dobishëm. 1854 01:20:51,215 --> 01:20:52,560 1855 01:20:52,560 --> 01:20:54,250 >> Pra, kjo është ajo për seksionin. 1856 01:20:54,250 --> 01:20:55,250 Poshtë në tela. 1857 01:20:55,250 --> 01:20:56,570 Unë e bëri atë brenda një minutë. 1858 01:20:56,570 --> 01:20:58,262 1859 01:20:58,262 --> 01:20:58,970 Por ju shkoni atje. 1860 01:20:58,970 --> 01:21:01,240 Dhe unë do të ketë donuts apo karamele. 1861 01:21:01,240 --> 01:21:03,464 A është dikush alergjik ndaj çdo gjë, nga rruga? 1862 01:21:03,464 --> 01:21:05,307 1863 01:21:05,307 --> 01:21:05,890 Vezë dhe qumësht. 1864 01:21:05,890 --> 01:21:08,120 Pra, donuts janë jo? 1865 01:21:08,120 --> 01:21:09,400 1866 01:21:09,400 --> 01:21:10,160 OK. 1867 01:21:10,160 --> 01:21:10,770 Dakord. 1868 01:21:10,770 --> 01:21:12,120 Chocolate jo? 1869 01:21:12,120 --> 01:21:12,620 Starburst. 1870 01:21:12,620 --> 01:21:13,837 1871 01:21:13,837 --> 01:21:14,670 Starbursts janë të mira. 1872 01:21:14,670 --> 01:21:15,170 OK. 1873 01:21:15,170 --> 01:21:17,045 Ne do të kemi Starburst javën e ardhshme pastaj. 1874 01:21:17,045 --> 01:21:18,240 Kjo është ajo që unë do të merrni. 1875 01:21:18,240 --> 01:21:19,690 Ju djema keni një javë të madhe. 1876 01:21:19,690 --> 01:21:20,460 Lexoni spekulim tuaj. 1877 01:21:20,460 --> 01:21:22,130 >> Më lejoni të di nëse keni ndonjë pyetje. 1878 01:21:22,130 --> 01:21:25,300 Pset dy notat duhet të jetë nga ju deri të enjten. 1879 01:21:25,300 --> 01:21:28,320 Nëse keni ndonjë pyetje se si I vlerësohet diçka 1880 01:21:28,320 --> 01:21:32,250 ose pse unë të vlerësohet diçka mënyrën se si unë ka, ju lutem, të vijnë të bisedoni me mua. 1881 01:21:32,250 --> 01:21:34,210 Unë jam një pak i çmendur këtë javë, por unë premtoj 1882 01:21:34,210 --> 01:21:36,340 Unë ende do të përgjigjen brenda 24 orëve. 1883 01:21:36,340 --> 01:21:38,240 Pra, kemi një javë të madhe, të gjithë. 1884 01:21:38,240 --> 01:21:40,090 Good luck në pset tuaj. 1885 01:21:40,090 --> 01:21:41,248