1 00:00:00,000 --> 00:00:03,332 >> [MUZIKO Ludante] 2 00:00:03,332 --> 00:00:06,490 >> ANDI PENG: Bonvenon semajno 3 de sekcio. 3 00:00:06,490 --> 00:00:09,550 Dankon, vi infanoj, por ĉiuj venontaj al tiu pli frua komenco tempo hodiaŭ. 4 00:00:09,550 --> 00:00:11,466 Ni havas belan, iom intima grupo hodiaŭ. 5 00:00:11,466 --> 00:00:14,570 Do espereble ni atingos finpoluro eble frue, 6 00:00:14,570 --> 00:00:15,780 iomete frue hodiaŭ. 7 00:00:15,780 --> 00:00:22,057 Tiel rapide, nur iuj anoncoj por la tagordo hodiaŭ. 8 00:00:22,057 --> 00:00:23,890 Antaŭ ni komencas, ni estas tuj ĝuste transiru 9 00:00:23,890 --> 00:00:28,910 iujn mallongajn loĝistikaj temoj, pset demandojn, debrief, aĵoj tiel. 10 00:00:28,910 --> 00:00:30,250 Kaj poste ni plonĝi juste. 11 00:00:30,250 --> 00:00:34,710 Ni uzos erarserĉilo nomita GDB al komenci desenmascarar nia kodo, kiun David 12 00:00:34,710 --> 00:00:36,550 klarigis en prelego la alia tago. 13 00:00:36,550 --> 00:00:39,420 Ni transiru la kvar tipoj de varoj. 14 00:00:39,420 --> 00:00:42,310 Ni iros super ilin bela rapide ĉar ili estas belaj intensivaj. 15 00:00:42,310 --> 00:00:45,710 Sed scias ke ĉiuj diapozitivoj kaj fontkodon ĉiam rete. 16 00:00:45,710 --> 00:00:50,810 Do bonvolu, en via legado, al reiru kaj rigardu tion. 17 00:00:50,810 --> 00:00:53,930 >> Ni iros tra asimptota skribmaniero, kiu 18 00:00:53,930 --> 00:00:55,944 estas nur ornama metodo diri "runtimes" 19 00:00:55,944 --> 00:00:58,360 kie ni havas la granda O, kiu Davido klarigis en prelego. 20 00:00:58,360 --> 00:01:01,550 Kaj ni ankaŭ havas la Omega, kiu estas la suba baro ekzekuto. 21 00:01:01,550 --> 00:01:06,450 Kaj ni parolos iom pli detala koncerne al kiel tiuj laboroj. 22 00:01:06,450 --> 00:01:10,160 Kaj laste, ni transiru duuma serĉo, ĉar multe de vi kiu havas jam 23 00:01:10,160 --> 00:01:15,190 rigardetis vian psets probable scias ke ke estas demando kiu estas en via pset. 24 00:01:15,190 --> 00:01:17,470 Do vi ĉiuj kontentus ke ni kovras ĉi hodiaŭ. 25 00:01:17,470 --> 00:01:20,610 >> Kaj fine, por via sekcio retrosciigon, mi efektive 26 00:01:20,610 --> 00:01:23,000 lasis ĉirkaŭ 15 minutoj je Fine nur iri super 27 00:01:23,000 --> 00:01:27,730 loĝistiko de pset3, demandojn, eble iom de gvidado, se vi volas, 28 00:01:27,730 --> 00:01:28,990 antaŭ ni komencos programado. 29 00:01:28,990 --> 00:01:30,890 Do ni provu trairi la materialo bela rapide. 30 00:01:30,890 --> 00:01:33,880 Kaj tiam ni povas elspezi iun tempon prenante pli demandojn por la pset. 31 00:01:33,880 --> 00:01:35,230 BONE. 32 00:01:35,230 --> 00:01:39,570 >> Rapide, tiel nur kelkaj anoncoj antaux ni komencos hodiaŭ. 33 00:01:39,570 --> 00:01:45,410 Unue, bonvenon al farante ĝin tra du el viaj psets. 34 00:01:45,410 --> 00:01:49,432 Mi prenis rigardu your-- yeah, ni akiri rondon de aplaŭdo por tiu. 35 00:01:49,432 --> 00:01:51,140 Fakte, mi estis vere, vere impresita. 36 00:01:51,140 --> 00:01:55,800 Mi prijuĝis la unua pset por vi infanoj lasta semajno kaj vi infanoj faris nekredeblan. 37 00:01:55,800 --> 00:01:58,290 >> Stilo estis sur punkto krom kelkaj komentoj. 38 00:01:58,290 --> 00:02:00,660 Certiĝu ke vi estas ĉiam komentante vian kodon. 39 00:02:00,660 --> 00:02:03,040 Sed via psets estis sur punkto. 40 00:02:03,040 --> 00:02:05,549 Kaj observu ĝin. 41 00:02:05,549 --> 00:02:08,090 Kaj ĝi estas bona por la lernojarano al vidu ke vi uloj estas metantaj 42 00:02:08,090 --> 00:02:10,704 en tiel penado en via stilo kaj via desegno en via kodo 43 00:02:10,704 --> 00:02:12,120 ke ni ŝatus ke vi vidu. 44 00:02:12,120 --> 00:02:16,450 Do mi pasante kune mian dankemon por la resto de la TAS. 45 00:02:16,450 --> 00:02:19,210 >> Tamen ekzistas kelkaj debrief demandoj 46 00:02:19,210 --> 00:02:22,010 Mi nur volas iri super tiu farus ambaŭ mia vivo 47 00:02:22,010 --> 00:02:24,900 kaj multajn el la aliaj TAS 'vivas iom pli facila. 48 00:02:24,900 --> 00:02:28,220 Unue, mi rimarkis tiun pasinteco week-- cuantos de ili 49 00:02:28,220 --> 00:02:32,301 estis kuranta check50 sur via kodo antaŭ sendi? 50 00:02:32,301 --> 00:02:32,800 BONE. 51 00:02:32,800 --> 00:02:36,690 Do ĉiuj devus esti faranta check50, because-- a secret-- ni efektive 52 00:02:36,690 --> 00:02:41,540 kuri check50 kiel parto de nia praveco skriptojn por testi vian kodon. 53 00:02:41,540 --> 00:02:45,480 Do se via kodo estas malsukcesanta check50, en ĉiu verŝajneco, 54 00:02:45,480 --> 00:02:47,570 ĝi estas probable tuj malsukcesos nia ĉeko ankaŭ. 55 00:02:47,570 --> 00:02:49,320 Kelkfoje vi infanoj rajtas respondoj. 56 00:02:49,320 --> 00:02:52,200 Kiel, en avida, kelkaj el vi rajtas nombroj, 57 00:02:52,200 --> 00:02:53,960 vi nur presi iun ekstran materialon. 58 00:02:53,960 --> 00:02:55,940 Kaj tiu ekstra materialo fakte mankas la ĉeko, 59 00:02:55,940 --> 00:02:58,440 ĉar la komputilo ne vere scias kio ĝi estas serĉanta. 60 00:02:58,440 --> 00:03:00,981 Kaj do ĝi nur kuras tra, vidi ke via eligo ne 61 00:03:00,981 --> 00:03:03,810 kongrui kion ni atendas la respondon esti, kaj marki ĝin estas malĝuste. 62 00:03:03,810 --> 00:03:06,560 >> Kaj estu kiu okazis en iuj viaj kazoj ĉi tiu semajno. 63 00:03:06,560 --> 00:03:09,870 Do mi revenis kaj permane regraded ĉies kodon. 64 00:03:09,870 --> 00:03:12,780 En la estonteco, tamen, bonvolu, bonvolu certiĝi 65 00:03:12,780 --> 00:03:14,570 ke vi uzas kontroli 50 en via kodo. 66 00:03:14,570 --> 00:03:17,970 Ĉar ĝi estas speco de doloro por la TA devos reiri kaj permane regrade 67 00:03:17,970 --> 00:03:21,197 ĉiu unuopa pset por ĉiu sola, iom maltrafis ekz. 68 00:03:21,197 --> 00:03:22,530 Do mi ne demetis neniun punktoj. 69 00:03:22,530 --> 00:03:25,210 Mi kredas ke mi deprenis eble unu aŭ du por dezajno. 70 00:03:25,210 --> 00:03:27,710 En la estonteco kvankam, se vi malsukcesanta check50, 71 00:03:27,710 --> 00:03:31,330 punktoj estos prenita ekstere por korekto. 72 00:03:31,330 --> 00:03:35,020 >> Plue, psets estas pro vendredo tagmeze. 73 00:03:35,020 --> 00:03:38,990 Mi kredas, ke estas sep-minuta malfrue graco periodo ke ni donu al vi. 74 00:03:38,990 --> 00:03:42,434 Po Harvard tempo, ili estas permesitaj sep minutojn malfrue al ĉio. 75 00:03:42,434 --> 00:03:44,350 Do tie ĉe Yale, ni aliĝas al tiu ankaŭ. 76 00:03:44,350 --> 00:03:47,910 Sed preskaux, je 12:07, se via pset estas ne en, 77 00:03:47,910 --> 00:03:49,720 ĝi tuj estos markita kiel malfrue. 78 00:03:49,720 --> 00:03:53,160 Kaj tiel dum estas markitaj tiom malfrue, la TA-- mi 79 00:03:53,160 --> 00:03:54,870 ankoraŭ tuj estos grading vian psets. 80 00:03:54,870 --> 00:03:56,760 Do vi devos ankoraŭ vidi lernojaro aperi. 81 00:03:56,760 --> 00:03:58,820 Tamen, sciu ke la fino de la semestro, 82 00:03:58,820 --> 00:04:02,270 ĉiuj malfrue psets nur estos aŭtomate zeroed per la komputilo. 83 00:04:02,270 --> 00:04:04,490 >> Ni faru tion por du kialoj. 84 00:04:04,490 --> 00:04:09,220 Unu, kelkfoje ni preni ekskuzis, kiel dekano de ekskuzoj, 85 00:04:09,220 --> 00:04:10,762 poste, ke mi ne scias pri ankoraŭ. 86 00:04:10,762 --> 00:04:13,761 Do ni ŝatus certigi ni grading ĉio ĉiaokaze, kiel, mi estas 87 00:04:13,761 --> 00:04:15,080 mankas dekano la ekskuzo. 88 00:04:15,080 --> 00:04:17,000 Kaj due, teni en menson, vi povas ankoraŭ 89 00:04:17,000 --> 00:04:19,370 delasi unu pset ke havas plenan amplekson punktoj. 90 00:04:19,370 --> 00:04:21,430 Kaj tiel ni ŝatas lernojaro ĉiuj viajn psets nur 91 00:04:21,430 --> 00:04:24,730 certigi ke via atingo la tie kaj vi provas ilin. 92 00:04:24,730 --> 00:04:29,150 Do eĉ se ĝi estas malfrue, vi ankoraŭ akiri krediton por atingo punktoj, mi pensas. 93 00:04:29,150 --> 00:04:33,730 >> Do moralo de la rakonto estas, faru certe via psets estas en sur-tempo. 94 00:04:33,730 --> 00:04:38,350 Kaj se ili ne estas en sur-tempaj, scias ke ĝi ne estas granda. 95 00:04:38,350 --> 00:04:41,678 Jes, antaŭ mi pluiru, ĉu iu havas demandojn pri pset sugestoj? 96 00:04:41,678 --> 00:04:42,178 Yeah. 97 00:04:42,178 --> 00:04:43,630 >> Spektantaro: Ĉu vi diras, ke ni povas fali unu el la psets? 98 00:04:43,630 --> 00:04:44,296 >> ANDI PENG: Yeah. 99 00:04:44,296 --> 00:04:47,050 Do ekzistas naŭ psets entuta dum de la semestro. 100 00:04:47,050 --> 00:04:50,610 Kaj se vi havas atingon points-- tiom medio estas nur, 101 00:04:50,610 --> 00:04:53,567 preskaux, vi provis la problemon, vi incitas en tempo, 102 00:04:53,567 --> 00:04:56,150 vi montrante, ke vi havas pruvis vi legis la specifon. 103 00:04:56,150 --> 00:04:57,191 Tio estas sufiĉe multe medio. 104 00:04:57,191 --> 00:04:59,370 Kaj se vi plenumante amplekso punktoj, ni 105 00:04:59,370 --> 00:05:03,360 povas fali la plej malalta unu el plena amplekso. 106 00:05:03,360 --> 00:05:06,790 Do jen en via avantaĝo kompletigi kaj provi ĉiu pset. 107 00:05:06,790 --> 00:05:10,320 >> Eĉ upload-- se neniu el ilin labori, alŝuti ilin cxiujn. 108 00:05:10,320 --> 00:05:13,711 Kaj tiam ni espereble povos doni al vi iom de tiuj punktoj reen. 109 00:05:13,711 --> 00:05:14,210 Malvarmeta. 110 00:05:14,210 --> 00:05:16,780 Aliajn demandojn? 111 00:05:16,780 --> 00:05:17,840 Granda. 112 00:05:17,840 --> 00:05:21,960 >> Due, oficejo hours-- kelkaj rapidaj notoj pri oficejo horoj. 113 00:05:21,960 --> 00:05:24,300 Do unue, venis frue en la semajno. 114 00:05:24,300 --> 00:05:26,909 Neniu estas iam ĉe oficejo horoj lunde. 115 00:05:26,909 --> 00:05:28,700 Christabel venis oficejo horoj lastan nokton. 116 00:05:28,700 --> 00:05:29,691 Yeah, Christabel. 117 00:05:29,691 --> 00:05:32,190 Kaj kion ni havas ĉe oficejo horojn hieraŭ nokte, Christabel? 118 00:05:32,190 --> 00:05:33,020 >> Publiko: Ni havis glaciaĵo. 119 00:05:33,020 --> 00:05:36,160 >> ANDI PENG: Do mi pravas, ni devis glaciaĵon ĉe oficejo horoj lastan nokton. 120 00:05:36,160 --> 00:05:39,390 Dum mi ne povas promesi al vi, ke ni devos glaciaĵon ĉe oficejo horoj 121 00:05:39,390 --> 00:05:43,230 ĉiusemajne, kion mi povas promesi al vi estas ke estos signife 122 00:05:43,230 --> 00:05:45,380 bona lernanto al TA rilatumo. 123 00:05:45,380 --> 00:05:47,650 Kiel legit, estas kiel tri al unu. 124 00:05:47,650 --> 00:05:50,350 Dum kiu, kontrastigi ke kun Ĵaŭdo, vi havas pri 150 125 00:05:50,350 --> 00:05:52,830 vere emfazis infanoj kaj ne glaciaĵo. 126 00:05:52,830 --> 00:05:55,360 Kaj estas simple ne produktivaj por neniu. 127 00:05:55,360 --> 00:05:58,730 Do moralo de la rakonto estas, veni frue al oficejo horoj kaj bonaĵojn 128 00:05:58,730 --> 00:06:00,310 okazos. 129 00:06:00,310 --> 00:06:02,110 >> Ankaŭ, venis preparita demandojn. 130 00:06:02,110 --> 00:06:03,200 Vi scias? 131 00:06:03,200 --> 00:06:05,420 Sendepende de kion tas, mi pensas, estas jene: 132 00:06:05,420 --> 00:06:10,710 ni estis prenanta paron studentoj enirantoj ĵaŭde ĉe, kiel, 10:50 133 00:06:10,710 --> 00:06:15,100 Ne leginte la spec estante kiel helpos min, helpu min. 134 00:06:15,100 --> 00:06:18,200 Bedaŭrinde en tiu punkto, ekzistas ne multe ni povas fari por helpi vin. 135 00:06:18,200 --> 00:06:19,590 Do bonvolu veni frue en la semajno. 136 00:06:19,590 --> 00:06:22,040 Venu frua al oficejo horoj. 137 00:06:22,040 --> 00:06:23,350 Venu preta fari demandojn. 138 00:06:23,350 --> 00:06:25,310 Certiĝu ke vi, kiel studento, estas kie 139 00:06:25,310 --> 00:06:27,620 Vi devas esti tiel ke la Tas povas gvidi vin kune, 140 00:06:27,620 --> 00:06:32,850 Kiu estas kio oficejaj horoj devus esti asignita por. 141 00:06:32,850 --> 00:06:37,380 >> Due, do mi scias instruistojn ŝatas surprizi nin kun provoj. 142 00:06:37,380 --> 00:06:39,439 Mi havis instruiston tiuj kiel, yo, cetere, 143 00:06:39,439 --> 00:06:41,230 memoru ke midterm vi havas sekva lundo. 144 00:06:41,230 --> 00:06:42,855 Jes, mi ne sciis pri tio midterm. 145 00:06:42,855 --> 00:06:45,630 Do mi tuj esti ke TA tio memorigas vin cxiujn ke kvizo 146 00:06:45,630 --> 00:06:47,270 0-- ĉar, vi scias, ke ni estas CS. 147 00:06:47,270 --> 00:06:50,730 Nun ke ni faris arrays, vi ricevas kial estas kvizo 0, ne Kvizo 1, eh? 148 00:06:50,730 --> 00:06:51,320 BONE. 149 00:06:51,320 --> 00:06:52,490 Ho, mi ricevis kelkajn sonoj sur tiu unu. 150 00:06:52,490 --> 00:06:53,120 BONE. 151 00:06:53,120 --> 00:06:59,710 >> Do kvizo 0 Estos oktobro 14 se vi estas en la lundo-merkredo sekcio 152 00:06:59,710 --> 00:07:02,920 kaj oktobro 15 se vi estas en la mardo-ĵaŭdo sekcio. 153 00:07:02,920 --> 00:07:05,630 Tiu ne validas por tiuj el vi en Harvard 154 00:07:05,630 --> 00:07:10,350 who-- Mi pensas vin voli ĉiujn esti prenante vian kvizojn sur la 14a. 155 00:07:10,350 --> 00:07:13,560 >> Do jes, la proksima semajno, se Davido, en prelego, iras, 156 00:07:13,560 --> 00:07:15,747 Jes, do pri tio kvizo venontsemajne, vi ĉiuj 157 00:07:15,747 --> 00:07:17,580 ne estos ŝokitaj pro vi venis al sekcio 158 00:07:17,580 --> 00:07:19,664 kaj vi scios, ke via kvizo 0 estas en du semajnoj. 159 00:07:19,664 --> 00:07:21,580 Kaj ni devos revizii kunsidoj kaj ĉiu. 160 00:07:21,580 --> 00:07:26,360 Do ne maltrankviligas estanta timigita por tio. 161 00:07:26,360 --> 00:07:29,890 Demandojn before-- demandojn ĉe ĉiu lin relativa loĝistikaj problemoj, 162 00:07:29,890 --> 00:07:32,591 gradiganta, oficejo horoj, sekcioj? 163 00:07:32,591 --> 00:07:33,090 Yeah. 164 00:07:33,090 --> 00:07:35,100 >> Publiko: Do ​​la kvizo estas tuj estos dum prelego? 165 00:07:35,100 --> 00:07:35,766 >> ANDI PENG: Yeah. 166 00:07:35,766 --> 00:07:39,460 Do la kvizo, mi pensas, estas 60 minutoj asignitaj en tiu tempo fendo 167 00:07:39,460 --> 00:07:42,240 ke vi nur prenas en la prelego halo. 168 00:07:42,240 --> 00:07:44,810 Do vi ne devas veni en sur, kiel, hazarda 7:00 PM. 169 00:07:44,810 --> 00:07:46,140 Ĝi estas tute bona. 170 00:07:46,140 --> 00:07:47,100 Yeah. 171 00:07:47,100 --> 00:07:50,060 Malvarmeta. 172 00:07:50,060 --> 00:07:50,840 >> Bone. 173 00:07:50,840 --> 00:07:54,330 Do ni tuj enkonduki koncepto al vi 174 00:07:54,330 --> 00:08:00,760 tiu semajno ke Davido havas jam ia de tuŝis sur en prelego tiu pasinta semajno. 175 00:08:00,760 --> 00:08:02,010 Ĝi nomiĝas GDB. 176 00:08:02,010 --> 00:08:05,570 Kaj kiel multaj de vi, dum en la kurso de skribi vian psets, 177 00:08:05,570 --> 00:08:09,981 rimarkis grandan butonon kiu diras "Debug" sur la supro de via Ide? 178 00:08:09,981 --> 00:08:10,480 BONE. 179 00:08:10,480 --> 00:08:13,770 Do nun ni vere ricevas elterigi la mistero de kion tiu butono reale 180 00:08:13,770 --> 00:08:14,270 faras. 181 00:08:14,270 --> 00:08:16,790 Kaj mi garantias vin, ĝi estas bela, bela afero. 182 00:08:16,790 --> 00:08:20,740 >> Do ĝis nun, mi pensas tie jam du aferoj 183 00:08:20,740 --> 00:08:23,320 studentoj estis tipe faranta kiam elpurigi psets. 184 00:08:23,320 --> 00:08:27,635 Unu, ili aŭ aldoni en printf () - por ĉiu malmultaj linioj, 185 00:08:27,635 --> 00:08:29,760 ili aldonas en printf () - ho, kia estas tiu variablo? 186 00:08:29,760 --> 00:08:32,551 Ho, kio estas tiu variablo now-- kaj vi speco de vidi la progreson 187 00:08:32,551 --> 00:08:33,940 de via kodo kiel regente. 188 00:08:33,940 --> 00:08:37,030 Aŭ la dua metodo infanoj fari estas ke ili simple skribi la tutan aferon 189 00:08:37,030 --> 00:08:38,610 kaj poste iru kiel tiu ĉe la fino. 190 00:08:38,610 --> 00:08:39,970 Espereble ĝi funkcias. 191 00:08:39,970 --> 00:08:44,851 Mi garantias al vi, GDB estas bona ol ambaŭ de tiuj metodoj. 192 00:08:44,851 --> 00:08:45,350 Yeah. 193 00:08:45,350 --> 00:08:46,980 Do tiu estos via nova pli bona amiko. 194 00:08:46,980 --> 00:08:51,780 Ĉar ĝi estas bela afero ke vide ekranoj ambaŭ 195 00:08:51,780 --> 00:08:54,850 kion via kodo estas faranta je specifa punkto 196 00:08:54,850 --> 00:08:57,486 tiel kiel kion ĉiuj viaj variabloj estas portantinoj, 197 00:08:57,486 --> 00:08:59,610 kiel kio iliaj valoroj estas, en tiu specifa punkto. 198 00:08:59,610 --> 00:09:02,670 Kaj en ĉi tiu vojo, Vi povas vere fiksita breakpoints en via kodo. 199 00:09:02,670 --> 00:09:04,350 Vi povas kuri tra linio por linio. 200 00:09:04,350 --> 00:09:07,324 Kaj GDB simple devos por vi, montriĝas por vi, 201 00:09:07,324 --> 00:09:09,490 kio ĉiuj viaj variabloj estas, kion ili faras, 202 00:09:09,490 --> 00:09:10,656 kio okazas en la kodo. 203 00:09:10,656 --> 00:09:13,240 Kaj tiel, ĝi estas tiom pli facile vidi 204 00:09:13,240 --> 00:09:17,120 kio okazas anstataŭ printf-Ing aŭ notante vian deklaroj. 205 00:09:17,120 --> 00:09:19,160 >> Do ni faru ekzemplon de tio poste. 206 00:09:19,160 --> 00:09:20,660 Do tio ŝajnas iom abstrakta. 207 00:09:20,660 --> 00:09:23,490 Neniu ĉagrenoj, ni faros ekzemploj. 208 00:09:23,490 --> 00:09:29,170 Kaj tial esence, la tri plej grandaj, plej uzataj funkcioj vi bezonos en GDB 209 00:09:29,170 --> 00:09:32,500 estas la Next, Transpaŝi, kaj Paŝi en butonoj. 210 00:09:32,500 --> 00:09:34,860 Mi tuj gvidi super tie, vere, nun. 211 00:09:34,860 --> 00:09:40,930 >> Do vi povas vidi ke ĉiuj uloj aŭ ĉu mi zomi iom? 212 00:09:40,930 --> 00:09:43,220 213 00:09:43,220 --> 00:09:44,470 En la dorso, vi povas vidi ke? 214 00:09:44,470 --> 00:09:45,730 Devus min zomi? 215 00:09:45,730 --> 00:09:46,480 Nur iomete? 216 00:09:46,480 --> 00:09:49,390 Bone, mojose. 217 00:09:49,390 --> 00:09:50,280 Tie ni marŝos. 218 00:09:50,280 --> 00:09:50,960 BONE. 219 00:09:50,960 --> 00:09:57,000 >> Do mi havas, tie, mia efektivigo por avidaj. 220 00:09:57,000 --> 00:10:01,430 Kaj dum multe de vi uloj skribis avidaj je dum buklo form-- ke 221 00:10:01,430 --> 00:10:04,890 estas perfekte akceptebla maniero fari it-- alia maniero fari ĝin estas simple 222 00:10:04,890 --> 00:10:06,280 dividi en la module. 223 00:10:06,280 --> 00:10:09,290 Ĉar tiam vi povas havi vian valoro kaj tiam havas viajn cetero. 224 00:10:09,290 --> 00:10:11,150 Kaj tiam vi povas simple aldoni ĝin ĉiuj kune. 225 00:10:11,150 --> 00:10:13,390 Ĉu la logiko de kion mi faras tie havas sencon por ĉiuj, 226 00:10:13,390 --> 00:10:14,117 antaŭ ni komencos? 227 00:10:14,117 --> 00:10:16,760 228 00:10:16,760 --> 00:10:17,980 Speco de? 229 00:10:17,980 --> 00:10:18,710 Malvarmeta. 230 00:10:18,710 --> 00:10:19,210 Granda. 231 00:10:19,210 --> 00:10:21,290 Ĝi estas bela peco sexy de kodo, mi dirus. 232 00:10:21,290 --> 00:10:23,502 Kiel mi diris, Davido, en prelegi, post momento, 233 00:10:23,502 --> 00:10:25,960 vi ĉiuj komencas vidi kodo kiel iu kiu estas bela. 234 00:10:25,960 --> 00:10:29,950 Kaj kelkfoje kiam vi vidos belan kodo, ĝi estas tia mirinda sento. 235 00:10:29,950 --> 00:10:35,410 >> Do tamen, dum tiu kodo estas tre bela, ĝi ne funkcias konvene. 236 00:10:35,410 --> 00:10:37,750 Do ni kuras check50 sur tiu. 237 00:10:37,750 --> 00:10:39,440 Kontrolu 50 20-- OOP. 238 00:10:39,440 --> 00:10:43,221 239 00:10:43,221 --> 00:10:43,720 2? 240 00:10:43,720 --> 00:10:44,990 Ĉu pset2? 241 00:10:44,990 --> 00:10:46,870 Yeah. 242 00:10:46,870 --> 00:10:47,520 Ho, pset1. 243 00:10:47,520 --> 00:10:50,970 244 00:10:50,970 --> 00:10:52,890 BONE. 245 00:10:52,890 --> 00:10:53,900 Do ni kuras check50. 246 00:10:53,900 --> 00:11:01,550 247 00:11:01,550 --> 00:11:07,170 >> Kaj kiel vi infanoj povas vidi ĉi tie, ĝi estas malsukcesanta kelkaj kazoj. 248 00:11:07,170 --> 00:11:10,165 Kaj por iuj el vi, en la kurso de faras via problemo aroj, 249 00:11:10,165 --> 00:11:11,110 vi estas kiel, ah, kial ĉu ne laboras. 250 00:11:11,110 --> 00:11:13,318 Kial oni laboras por iu valoroj sed ne por aliaj? 251 00:11:13,318 --> 00:11:17,760 Nu, GDB tuj helpos vin figuro kial tiuj enigoj ne funkcias. 252 00:11:17,760 --> 00:11:18,320 >> BONE. 253 00:11:18,320 --> 00:11:21,640 Do ni vidas, unu el la ĉekojn mi maltrafis en check50 254 00:11:21,640 --> 00:11:24,920 estis la eniga valoro de 0.41. 255 00:11:24,920 --> 00:11:27,830 Do la korekta respondo kiu vi devus esti akiranta estas 4. 256 00:11:27,830 --> 00:11:33,090 Sed anstataŭe, kion mi presi el Estas la 3-n, kiu estas malĝusta. 257 00:11:33,090 --> 00:11:36,190 Do ni nur kuri ĉi permane, nur certiĝu ke check50 laboras. 258 00:11:36,190 --> 00:11:36,940 Ni faru ./greedy. 259 00:11:36,940 --> 00:11:40,130 260 00:11:40,130 --> 00:11:43,340 Oops, Mi devi fari avidaj. 261 00:11:43,340 --> 00:11:43,840 Tie ni marŝos. 262 00:11:43,840 --> 00:11:44,381 Nun ./greedy. 263 00:11:44,381 --> 00:11:46,950 264 00:11:46,950 --> 00:11:47,670 >> Kiom estas ŝuldis? 265 00:11:47,670 --> 00:11:49,550 Ni faru 0.41. 266 00:11:49,550 --> 00:11:52,590 Kaj Yep, ni vidos tie ke ĝi estas elirigi 3 267 00:11:52,590 --> 00:11:55,160 kiam la ĝusta respondo, fakte, devus esti 4. 268 00:11:55,160 --> 00:12:01,460 Do ni eniras GDB kaj vidi kiel ni povas promenadi fiksi tiun problemon. 269 00:12:01,460 --> 00:12:03,992 >> Do la unua paŝo en ĉiam elpurigi vian kodon 270 00:12:03,992 --> 00:12:05,950 Estas agordi Haltpunkto, aŭ punkto je kiu vi 271 00:12:05,950 --> 00:12:09,079 volas la komputilo aŭ la erarserĉilo komenci rigardanta. 272 00:12:09,079 --> 00:12:11,120 Do se vi ne vere scias kion via problemo estas, 273 00:12:11,120 --> 00:12:14,670 kutime, la tipa afero ni volas fari estas starigis Haltpunkto ĉe nia ĉefa. 274 00:12:14,670 --> 00:12:18,520 Do se vi infanoj povas vidi ĉi ruĝa butono dekstre tie, 275 00:12:18,520 --> 00:12:22,860 Yep, ke estis mi fiksanta Haltpunkto por la ĉefa funkcio. 276 00:12:22,860 --> 00:12:24,130 Mi klakas tion. 277 00:12:24,130 --> 00:12:26,130 >> Kaj tiam mi povas iri ĝis mia Debug butonon. 278 00:12:26,130 --> 00:12:27,036 Mi batis tiun butonon. 279 00:12:27,036 --> 00:12:31,710 280 00:12:31,710 --> 00:12:36,555 Lasu min zoom reen eksteren se mi povas. 281 00:12:36,555 --> 00:12:38,020 Tie ni marŝos. 282 00:12:38,020 --> 00:12:40,730 Do ni havas, tie, panelo dekstre. 283 00:12:40,730 --> 00:12:43,680 Mi bedaŭras, knaboj en la dorso, vi ne povas vere vidi vere bone. 284 00:12:43,680 --> 00:12:49,090 Sed esence, ĉiuj ĉi tiu rajto panelo faras 285 00:12:49,090 --> 00:12:53,130 estas konservanta trako de ambaŭ la elstarigita linio, kiu estas la linio de kodo 286 00:12:53,130 --> 00:12:56,640 ke la komputilo estas nuntempe kuranta, tiel kiel ĉiuj viaj variabloj 287 00:12:56,640 --> 00:12:57,600 malsupren tie. 288 00:12:57,600 --> 00:13:00,487 >> Do vi hvas cendoj, moneroj, n, ĉiuj deklaris al malsamaj aferoj 289 00:13:00,487 --> 00:13:01,070 ĉe tiu punkto. 290 00:13:01,070 --> 00:13:04,850 Neniu ĉagrenoj, ĉar ni ne vere pravalorizitaj ilin al ajna variabloj ankoraŭ. 291 00:13:04,850 --> 00:13:07,200 Do en via komputilo, via komputilo estas nur vidante, 292 00:13:07,200 --> 00:13:14,376 ho, 32767 estis la lastan uzitan funkcio de tiu memoro spaco en mia komputilo. 293 00:13:14,376 --> 00:13:16,000 Kaj tiel tio estas kie cendoj aktuale estas. 294 00:13:16,000 --> 00:13:19,360 Sed neniu kiun fojo vi kuras la kodon, ĝi devus iĝi pravalorizitaj. 295 00:13:19,360 --> 00:13:24,110 >> Do ni iru tra, linion post linio, kio okazas ĉi tie. 296 00:13:24,110 --> 00:13:25,350 BONE. 297 00:13:25,350 --> 00:13:29,400 Do supren tie estas la tri butonoj kiuj mi ĵus klarigis. 298 00:13:29,400 --> 00:13:34,090 Vi havas la Play, aŭ la Run funkcio, butonon, vi havas la Transpaŝi butonon, 299 00:13:34,090 --> 00:13:36,600 kaj vi ankaŭ havas la Paŝo al butonon. 300 00:13:36,600 --> 00:13:41,260 Kaj esence, ĉiuj tri ili simple iru tra via kodo 301 00:13:41,260 --> 00:13:42,690 kaj fari malsamajn aferojn. 302 00:13:42,690 --> 00:13:45,680 >> Do tipe, kiam vi elpurigante, ni ne volas nur batis Play, 303 00:13:45,680 --> 00:13:47,930 ĉar Play simple kuri via kodo al la fino de ĝi. 304 00:13:47,930 --> 00:13:49,070 Kaj tiam vi ne reale scias kion via problemo 305 00:13:49,070 --> 00:13:51,432 estas krom se vi agordi multnombraj breakpoints. 306 00:13:51,432 --> 00:13:53,890 Se vi fiksis multoblaj breakpoints, ĝi simple aŭtomate 307 00:13:53,890 --> 00:13:56,030 kuri el unu Haltpunkto, al la sekva, la sekvanta. 308 00:13:56,030 --> 00:13:58,030 Sed en ĉi tiu kazo ni havas nur tiu, ĉar ni 309 00:13:58,030 --> 00:13:59,970 volas labori nian vojon de supro malsupren al fundo. 310 00:13:59,970 --> 00:14:04,830 Do ni tuj ignori ke butono nun por celoj de ĉi tiu programo. 311 00:14:04,830 --> 00:14:08,230 >> Do la Transpaŝi funkcio nur ŝtupojn super ĉiu unuopa linio 312 00:14:08,230 --> 00:14:11,510 kaj informas vin kio la komputilo faras. 313 00:14:11,510 --> 00:14:14,630 La Paŝo en funkcio iras en la fakta funkcio 314 00:14:14,630 --> 00:14:16,000 jen sur viaj linio de kodo. 315 00:14:16,000 --> 00:14:19,070 Do ekzemple, kiel printf (), ke estas funkcio, ĉu ne? 316 00:14:19,070 --> 00:14:21,980 Se mi volis fizike paŝo en la printf () funkcio, 317 00:14:21,980 --> 00:14:25,610 Mi vere iru en la peco de kodo kie printf () estis skribita kaj vidu 318 00:14:25,610 --> 00:14:26,730 kio okazas tie. 319 00:14:26,730 --> 00:14:29,924 >> Sed tipe, ni supozas ke la kodo kiun ni donos al vi laboras. 320 00:14:29,924 --> 00:14:31,340 Ni supozu la printf () laboras. 321 00:14:31,340 --> 00:14:33,170 Ni supozas ke GetInt () laboras. 322 00:14:33,170 --> 00:14:35,170 Do ne estas bezono paŝi en tiuj funkcioj. 323 00:14:35,170 --> 00:14:37,170 Sed se estas funkcioj ke vi skribu mem 324 00:14:37,170 --> 00:14:39,060 ke vi volas kontroli kio okazas, 325 00:14:39,060 --> 00:14:41,200 vi volus paŝi en tiu funkcio. 326 00:14:41,200 --> 00:14:43,940 >> Do ĝuste nun ni ĵus tuj paŝi super ĉi koderon. 327 00:14:43,940 --> 00:14:44,485 Do ni vidu. 328 00:14:44,485 --> 00:14:46,547 Ho, presi, "Ho hai, kiom multe ŝanĝo ŝuldis? " 329 00:14:46,547 --> 00:14:47,130 Ni ne zorgas. 330 00:14:47,130 --> 00:14:49,830 Ni scias ke estas laborante, do ni transpaŝas ĝin. 331 00:14:49,830 --> 00:14:53,290 >> Do n, kiu estas nia kaleŝego ke ni havas initialized-- aŭ declared-- 332 00:14:53,290 --> 00:14:56,810 supre ĉe la supro, ni estas nun egalante ke GetFloat (). 333 00:14:56,810 --> 00:14:57,810 Do ni transpaŝas tio. 334 00:14:57,810 --> 00:14:59,580 Kaj ni vidos ĉe la fundo tie, la programo 335 00:14:59,580 --> 00:15:03,360 estas instigante min eniga valoro. 336 00:15:03,360 --> 00:15:08,580 Do ni enigo la valoro ni volas testi tie, kio estas 0.41. 337 00:15:08,580 --> 00:15:09,160 Granda. 338 00:15:09,160 --> 00:15:12,780 >> Do nun n-- vi uloj vidi tie, ĉe la bottom-- estas 339 00:15:12,780 --> 00:15:15,140 stored-- ĉar ni ne rondoforma tamen, ĝi estas 340 00:15:15,140 --> 00:15:19,540 stokitaj en ĉi kiel giganto kaleŝego ke estas 0,4099999996, 341 00:15:19,540 --> 00:15:22,550 kiuj estas sufiĉe proksimaj al nia celoj, nun, al 0.41. 342 00:15:22,550 --> 00:15:26,090 Kaj tiam ni vidos poste, kiel ni daŭrigi paŝante super la programo, 343 00:15:26,090 --> 00:15:29,850 post ĉi tie, n fariĝis rondoformaj kaj cendoj fariĝis 41. 344 00:15:29,850 --> 00:15:30,350 Granda. 345 00:15:30,350 --> 00:15:32,230 Do ni scias ke nia rondigas laboral. 346 00:15:32,230 --> 00:15:34,700 Ni scias, ke ni havas la korekta nombron de cendoj, 347 00:15:34,700 --> 00:15:36,990 tial ni scias ke tio ne vere la problemo. 348 00:15:36,990 --> 00:15:40,050 >> Do ni daŭre tretante en tiu ĉi programo. 349 00:15:40,050 --> 00:15:40,900 Ni iru tien. 350 00:15:40,900 --> 00:15:46,139 Kaj do post tiu linio de kodo, ni povosciu multaj kvaronoj ni havas. 351 00:15:46,139 --> 00:15:46,680 Ni ne transpaŝas. 352 00:15:46,680 --> 00:15:52,040 Kaj vi vidas ni, fakte, havas unu kvarono ĉar ni subtrahita 25 353 00:15:52,040 --> 00:15:53,790 de nia komenca valoro de 41. 354 00:15:53,790 --> 00:15:55,890 Kaj ni havas 16 maldekstra por nia cendoj. 355 00:15:55,890 --> 00:15:58,830 >> Ĉu ĉiuj komprenas kiel la programo estas paŝanta tra 356 00:15:58,830 --> 00:16:02,980 kaj kial cendoj nun fariĝis 16 kaj kial, nun, moneroj fariĝis 1? 357 00:16:02,980 --> 00:16:04,610 Ĉu ĉiuj sekvante tiu logiko? 358 00:16:04,610 --> 00:16:05,110 Malvarmeta. 359 00:16:05,110 --> 00:16:07,860 Do kiel de tiu punkto, la programo laboras, ĉu ne? 360 00:16:07,860 --> 00:16:09,797 Ni scias ĝi estas faranta ekzakte kion ni volas ke ĝi. 361 00:16:09,797 --> 00:16:11,880 Sed ni ne reale devas presi, ho, kia 362 00:16:11,880 --> 00:16:14,430 estas cendoj ĉe tiu punkto, kio estas moneroj ĉe tiu punkto. 363 00:16:14,430 --> 00:16:17,170 >> Daŭre irante tra la programo. 364 00:16:17,170 --> 00:16:18,100 Transpaŝi. 365 00:16:18,100 --> 00:16:18,620 Malvarmeta. 366 00:16:18,620 --> 00:16:19,700 Ni transiru dimes. 367 00:16:19,700 --> 00:16:20,200 Granda. 368 00:16:20,200 --> 00:16:22,367 Ni vidos ke ĝi estas prenita for $ 0.10 por groŝon. 369 00:16:22,367 --> 00:16:23,450 Kaj nun ni havas du monerojn. 370 00:16:23,450 --> 00:16:25,260 Tio ĝustas. 371 00:16:25,260 --> 00:16:31,555 >> Ni transiru pencoj kaj ni vidas ke ni havas superflue cendoj. 372 00:16:31,555 --> 00:16:32,680 Hmm, jen stranga. 373 00:16:32,680 --> 00:16:37,540 Tie supre en la programo, mi supozis esti subtrahita mia pencoj. 374 00:16:37,540 --> 00:16:39,400 Eble mi nur ne estis faranta tion linio pravas. 375 00:16:39,400 --> 00:16:42,190 Kaj ho ve, vi povas vidi tie, ĉar ni scias 376 00:16:42,190 --> 00:16:44,360 ke ni tretas tra linioj 32 kaj 33, 377 00:16:44,360 --> 00:16:50,560 tio estas kie nia programo nedece havis variabloj kuri. 378 00:16:50,560 --> 00:16:55,136 Do ni povas rigardi kaj vidi, ho, Mi subtrahadon cendoj tie, 379 00:16:55,136 --> 00:16:57,010 sed mi ne reale aldonante al mia monera valoro. 380 00:16:57,010 --> 00:16:57,860 Mi aldonante al cendoj. 381 00:16:57,860 --> 00:17:00,234 Kaj mi ne volas aldoni al cendoj, mi volas aldoni al moneroj. 382 00:17:00,234 --> 00:17:05,420 Do se ni ŝanĝu tion al moneroj, ni havas funkciantan programon. 383 00:17:05,420 --> 00:17:06,730 Mi povas kuri check50. 384 00:17:06,730 --> 00:17:11,063 Vi povas simple eliri el GDB dekstra tie kaj poste ekzekuti check50 denove. 385 00:17:11,063 --> 00:17:11,938 Mi povis nur fari tion. 386 00:17:11,938 --> 00:17:14,822 387 00:17:14,822 --> 00:17:18,480 Mi devas fari avidaj. 388 00:17:18,480 --> 00:17:19,940 0.41. 389 00:17:19,940 --> 00:17:22,819 Kaj tie, ĝi estas presanta el la ĝustan respondon. 390 00:17:22,819 --> 00:17:26,569 >> Do kiel vi uloj povas vidi, GDB estas vere potenca ilo 391 00:17:26,569 --> 00:17:29,940 cxar ni ja havas multe kodo irante plu kaj tiel multaj variabloj 392 00:17:29,940 --> 00:17:32,510 ke estas malfacile por ni, kiel homa, spuri. 393 00:17:32,510 --> 00:17:35,360 La komputilo, en la GDB erarserĉilo, havas la kapablon 394 00:17:35,360 --> 00:17:37,020 konservi trako de ĉio. 395 00:17:37,020 --> 00:17:40,480 Mi scias, en Visionaire, vi uloj verŝajne eble trafis iuj segmentación misfarojn 396 00:17:40,480 --> 00:17:43,150 ĉar vi kuradis el baroj de via tabelo. 397 00:17:43,150 --> 00:17:46,510 En la ekzemplo de Cezaro, jen precize kion mi implementado tie. 398 00:17:46,510 --> 00:17:50,060 >> Do mi forgesis kontroli por kio okazus se mi 399 00:17:50,060 --> 00:17:52,510 ne havu du komandlinio argumentoj. 400 00:17:52,510 --> 00:17:53,880 Mi nur ne metis en tiu ĉeko. 401 00:17:53,880 --> 00:17:57,380 Do se mi kuros Debug-- mi turnis mia Haltpunkto dekstren tie. 402 00:17:57,380 --> 00:17:58,055 Mi kuros Debug. 403 00:17:58,055 --> 00:18:15,880 404 00:18:15,880 --> 00:18:16,550 >> BONE. 405 00:18:16,550 --> 00:18:17,050 Yeah. 406 00:18:17,050 --> 00:18:20,350 Do efektive, GDB laŭsupoze diri tion al mi tie 407 00:18:20,350 --> 00:18:22,300 Estis segmentación kulpo tie. 408 00:18:22,300 --> 00:18:24,883 Mi ne scias kio okazas Dekstre, sed kiam mi kuris ĝin, 409 00:18:24,883 --> 00:18:25,590 laboris. 410 00:18:25,590 --> 00:18:29,410 Kiam vi kuri linioj de kodo per kaj GDB nur povus subite forlasi vin, 411 00:18:29,410 --> 00:18:31,540 iru kaj rigardu kion la ruĝa eraro estas. 412 00:18:31,540 --> 00:18:33,930 Ĝi diros al vi, hej, vi havis segmentación kulpo, 413 00:18:33,930 --> 00:18:38,550 kio signifas ke vi provis aliri spaco en tabelo kiu ne ekzistis. 414 00:18:38,550 --> 00:18:39,050 Yeah. 415 00:18:39,050 --> 00:18:43,280 >> Do en la sekva problemo starigis ĉi semajno, vi infanoj 416 00:18:43,280 --> 00:18:45,600 probable havos multajn variabloj ŝvebantan. 417 00:18:45,600 --> 00:18:48,560 Vi ne tuj esti certa kio ili ĉiuj signifi je certa punkto. 418 00:18:48,560 --> 00:18:53,560 Do GDB vere helpos vin en elŝeligi el kio ili estas ĉiuj egalante 419 00:18:53,560 --> 00:18:55,940 kaj povante vidi ke vide. 420 00:18:55,940 --> 00:19:01,995 Estas iu konfuzita sur kiel iu el kiuj estis laboranta? 421 00:19:01,995 --> 00:19:02,495 Malvarmeta. 422 00:19:02,495 --> 00:19:10,121 423 00:19:10,121 --> 00:19:10,620 Bone. 424 00:19:10,620 --> 00:19:14,260 Do post tio, ni estas tuj plonĝi dekstra 425 00:19:14,260 --> 00:19:17,562 en kvar malsamaj tipojn de varoj por tiu semajno. 426 00:19:17,562 --> 00:19:19,520 Kiel multaj el vi, unue de ĉiuj, antaŭ ol ni komencu, 427 00:19:19,520 --> 00:19:23,020 legis la tutan spec por pset3? 428 00:19:23,020 --> 00:19:23,824 BONE. 429 00:19:23,824 --> 00:19:24,740 Mi fieras de vi uloj. 430 00:19:24,740 --> 00:19:29,110 Tio estas kiel la duono de la klaso, kiuj estas signife pli ol lastfoje. 431 00:19:29,110 --> 00:19:33,950 >> Do jen granda, ĉar kiam ni parolas pri la enhavo 432 00:19:33,950 --> 00:19:36,170 en lecture-- aŭ bedaŭras, en section-- Mi ŝatas 433 00:19:36,170 --> 00:19:38,210 rilatigi multajn ke reen al kion la pset estas 434 00:19:38,210 --> 00:19:40,210 kaj kiel vi volas efektivigu, ke en via pset. 435 00:19:40,210 --> 00:19:42,400 Do se vi venas havante legi la spec, ĝi devos 436 00:19:42,400 --> 00:19:45,510 esti multe pli facila por vi kompreni kion mi parolas, kiam mi diras, 437 00:19:45,510 --> 00:19:48,720 Oh hey, tio povus esti vere bona loko por apliki ĉi varon. 438 00:19:48,720 --> 00:19:52,870 Do tiuj el vi kiuj legis la Spec scias ke, kiel parto de via pset, 439 00:19:52,870 --> 00:19:54,900 vi tuj devos Skribi tipo de varo. 440 00:19:54,900 --> 00:19:58,670 Do tio povas esti tre helpema cxar multajn vi hodiaŭ. 441 00:19:58,670 --> 00:20:01,760 >> Do ni dividi kun, esence, la plej simpla tipo 442 00:20:01,760 --> 00:20:04,580 de varo, la selektado varon. 443 00:20:04,580 --> 00:20:06,800 La tipa algoritmo por kiamaniere ni irus pri tiu 444 00:20:06,800 --> 00:20:10,460 is-- David iris tra tiuj ĉiuj en prelego, do mi rapide movi kune 445 00:20:10,460 --> 00:20:13,900 here-- estas esence, vi havas tabelo de valoroj. 446 00:20:13,900 --> 00:20:17,170 Kaj tiam vi trovos la malgranda unsorted valoro 447 00:20:17,170 --> 00:20:20,200 kaj vi interŝanĝu tiun valoron kun la unua unsorted valoro. 448 00:20:20,200 --> 00:20:22,700 Kaj tiam vi simple observu ripetante kun la resto de via listo. 449 00:20:22,700 --> 00:20:25,740 >> Kaj jen vida klarigo de kiel kiu laborus. 450 00:20:25,740 --> 00:20:30,460 Do ekzemple, se ni devis komenci kun tabelo de kvin elementoj, indekso 451 00:20:30,460 --> 00:20:35,910 0 ĝis 4, kun 3, 5, 2, 6, kaj 4 valoroj metitaj en la tabelo do nun, 452 00:20:35,910 --> 00:20:38,530 ni nur tuj supozi ke ili ĉiuj unsorted 453 00:20:38,530 --> 00:20:41,130 cxar ni ne provis alie. 454 00:20:41,130 --> 00:20:44,130 >> Do kiel selektado speco volus laboro estas ke ĝi farus unua 455 00:20:44,130 --> 00:20:46,800 kuri tra la tuteco de la unsorted tabelo. 456 00:20:46,800 --> 00:20:49,120 Estus atentaro la plej malgranda valoro. 457 00:20:49,120 --> 00:20:51,750 En tiu kazo, 3, dekstra nun, estas la plej malgranda. 458 00:20:51,750 --> 00:20:52,680 Ĝi alvenas al 5. 459 00:20:52,680 --> 00:20:55,620 Nope, 5 ne estas granda than-- aŭ bedaŭras, ne malpli than-- 3. 460 00:20:55,620 --> 00:20:57,779 Do la minimuma valoro estas ankoraŭ 3. 461 00:20:57,779 --> 00:20:58,695 Kaj tiam vi atingos 2. 462 00:20:58,695 --> 00:21:00,990 La komputilo vidas, ho, 2 estas malpli ol 3. 463 00:21:00,990 --> 00:21:02,750 2 devas nun esti la minimuma valoro. 464 00:21:02,750 --> 00:21:06,630 Kaj do 2 svopoj kun tiu unua valoro. 465 00:21:06,630 --> 00:21:10,702 >> Do post unu enirpermesilo, ni ja vidos ke la 2 kaj la 3 estas interŝanĝitaj. 466 00:21:10,702 --> 00:21:13,910 Kaj ni ĵus tuj daŭre fari ĉi denove kun la resto de la tabelo. 467 00:21:13,910 --> 00:21:17,660 Do ni tuj simple kuri tra la lastaj kvar indeksoj de la tabelo. 468 00:21:17,660 --> 00:21:20,670 Ni vidos ke 3 estas la sekva minimuma valoro. 469 00:21:20,670 --> 00:21:23,240 Do ni tuj interŝanĝi ke kun 4. 470 00:21:23,240 --> 00:21:26,900 Kaj tiam ni ĵus tuj teni kurante tra ĝis, finfine, vi 471 00:21:26,900 --> 00:21:33,730 akiri al ordo tabelo en kiu 2, 3, 4, 5, kaj 6 estas ĉiuj ordigitaj. 472 00:21:33,730 --> 00:21:37,530 Ĉu ĉiuj komprenas la logikon de kiel selektado speco laboras? 473 00:21:37,530 --> 00:21:39,669 >> Vi nur devas ian de minimuma valoro. 474 00:21:39,669 --> 00:21:41,210 Vi konservanta trako de kio tio estas. 475 00:21:41,210 --> 00:21:45,170 Kaj kiam vi trovas ĝin, vi interŝanĝi ĝi kun la unua valoro en la tabelo 476 00:21:45,170 --> 00:21:48,740 aŭ, ne la unua value-- la sekva valoro en la tabelo. 477 00:21:48,740 --> 00:21:50,150 Malvarmeta. 478 00:21:50,150 --> 00:21:55,460 >> Do kiel vi infanoj ia ekvidis de mallonga ekvido, 479 00:21:55,460 --> 00:21:58,450 ni tuj _Pseudocode_ ĉi ekstere. 480 00:21:58,450 --> 00:22:02,510 Do se vi infanoj en la dorso volas ariĝi, ĉiuj ĉe tablo 481 00:22:02,510 --> 00:22:06,170 povas formi iom partnero, mi tuj doni vin uloj kiel tri minutoj 482 00:22:06,170 --> 00:22:08,190 nur paroli tra la logiko, en la angla, 483 00:22:08,190 --> 00:22:14,161 de kiel ni eble povus apliki _pseudocode_ skribi selektado varon. 484 00:22:14,161 --> 00:22:14,910 Kaj estas bombono. 485 00:22:14,910 --> 00:22:16,118 Bonvolu veni kaj peti dolĉaĵoj. 486 00:22:16,118 --> 00:22:19,520 Se vi estas en la dorso kaj vi volas sukeraĵo, kaj mi povas ĵeti dolĉaĵoj ĉe vi. 487 00:22:19,520 --> 00:22:22,850 Fakte, Fari you-- malvarmeta. 488 00:22:22,850 --> 00:22:23,552 Ho, pardonon. 489 00:22:23,552 --> 00:22:26,751 490 00:22:26,751 --> 00:22:27,250 BONE. 491 00:22:27,250 --> 00:25:23,880 492 00:25:23,880 --> 00:25:27,140 >> Do se ni volus, kiel klaso, registran _pseudocode_ 493 00:25:27,140 --> 00:25:30,466 cxar kial oni povus alproksimigi tiun problemon, nur bonvolu. 494 00:25:30,466 --> 00:25:32,340 Mi nur ĉirkaŭiri kaj, en ordo, petu grupoj 495 00:25:32,340 --> 00:25:35,065 por la sekva linio de kion ni devus fari. 496 00:25:35,065 --> 00:25:37,840 Do se vi infanoj volas komenci malproksime, kio estas la unua aĵo 497 00:25:37,840 --> 00:25:40,600 fari kiam vi provas apliki metodon solvi ĉi programo 498 00:25:40,600 --> 00:25:43,480 elekte ordigi liston? 499 00:25:43,480 --> 00:25:46,349 Ni simple supozi ni havas tabelo, bone? 500 00:25:46,349 --> 00:25:49,088 >> Spektantaro: Vi volas krei iun ia [inaudible] ke vi estas 501 00:25:49,088 --> 00:25:50,420 kurante tra via tuta tabelo. 502 00:25:50,420 --> 00:25:51,128 >> ANDI PENG: Dekstra. 503 00:25:51,128 --> 00:25:54,100 Do vi tuj volas persisti tra ĉiu spaco, dekstra? 504 00:25:54,100 --> 00:26:05,490 Do, granda. 505 00:26:05,490 --> 00:26:08,600 Se vi infanoj volas doni al mi la sekva line-- yeah, en la dorso. 506 00:26:08,600 --> 00:26:11,414 507 00:26:11,414 --> 00:26:13,290 >> Publiko: Kontrolu ilin ĉiuj por la plej eta. 508 00:26:13,290 --> 00:26:14,248 >> ANDI PENG: Tie ni marŝos. 509 00:26:14,248 --> 00:26:17,438 Do ni volas iri tra kaj kontrolu vidi kion la minimuma valoro estas, ĉu ne? 510 00:26:17,438 --> 00:26:22,110 511 00:26:22,110 --> 00:26:24,840 Mi tuj mallongigi tion al "min." 512 00:26:24,840 --> 00:26:27,658 Kion vi infanoj volas fari post vi trovis la minimuman valoron? 513 00:26:27,658 --> 00:26:28,533 >> Spektantaro: [inaudible] 514 00:26:28,533 --> 00:26:29,942 515 00:26:29,942 --> 00:26:33,150 ANDI PENG: Do vi tuj volas ŝanĝi ĝin per la unua el tiu tabelo, 516 00:26:33,150 --> 00:26:33,650 dekstra? 517 00:26:33,650 --> 00:26:45,120 518 00:26:45,120 --> 00:26:46,850 Jen komence, mi intencis diri. 519 00:26:46,850 --> 00:26:47,220 Bone. 520 00:26:47,220 --> 00:26:50,386 Do nun ke vi interŝanĝis la unuan Ho, kion vi volas fari poste? 521 00:26:50,386 --> 00:26:54,840 Do nun ni scias ke ĉi tiu tie devas esti la plej malgranda valoro, dekstra? 522 00:26:54,840 --> 00:26:58,310 Tiam vi havas aldonan resto de la tabelo jen unsorted. 523 00:26:58,310 --> 00:27:01,569 Do kion vi volas fari tie, se vi uloj volas doni al mi la sekva linio? 524 00:27:01,569 --> 00:27:04,610 Publiko: Sekve vi volas persisti tra la resto de la tabelo. 525 00:27:04,610 --> 00:27:05,276 ANDI PENG: Yeah. 526 00:27:05,276 --> 00:27:09,857 Kaj tiel kion faras ripetanta tra ia implicas ni probable bezonas? 527 00:27:09,857 --> 00:27:10,440 Kio tipo of-- 528 00:27:10,440 --> 00:27:12,057 >> Publiko: Ho, plia variablo? 529 00:27:12,057 --> 00:27:13,890 ANDI PENG: Probable alia por buklo, ĉu ne? 530 00:27:13,890 --> 00:27:28,914 Do ni probable tuj volas persisti through-- granda. 531 00:27:28,914 --> 00:27:31,830 Kaj tiam vi tuj reiri kaj probable kontroli la minimuma denove, 532 00:27:31,830 --> 00:27:32,100 dekstra? 533 00:27:32,100 --> 00:27:34,975 Kaj vi tuj daŭre ripetante tiu, ĉar la maŝojn simple tuj 534 00:27:34,975 --> 00:27:36,010 teni kuranta, dekstra? 535 00:27:36,010 --> 00:27:39,190 >> Do kiel vi uloj povas vidi, ni nur havas ĝeneralan _pseudocode_ 536 00:27:39,190 --> 00:27:41,480 de kiel ni volas tiun programon rigardi. 537 00:27:41,480 --> 00:27:46,646 Ĉi tie ripeti, kion ni faras tipe bezonas skribi en nia kodo 538 00:27:46,646 --> 00:27:49,270 se ni volas persisti tra tabelo, kio tipo de strukturo? 539 00:27:49,270 --> 00:27:51,030 Mi pensas Christabel jam diris ĉi tion antaŭe. 540 00:27:51,030 --> 00:27:51,500 >> Publiko: A por buklo. 541 00:27:51,500 --> 00:27:52,160 >> ANDI PENG: A por buklo? 542 00:27:52,160 --> 00:27:52,770 Ekzakte. 543 00:27:52,770 --> 00:27:56,060 Do tiu estas probable tuj esti por buklo. 544 00:27:56,060 --> 00:27:59,240 Kio estas ĉekon tie tuj implicas? 545 00:27:59,240 --> 00:28:02,536 Tipe, se vi volas kontroli se io estas io else-- 546 00:28:02,536 --> 00:28:03,270 >> Publiko: Se. 547 00:28:03,270 --> 00:28:06,790 >> ANDI PENG: An se, dekstra? 548 00:28:06,790 --> 00:28:10,790 Kaj tiam la interŝanĝa tie, ni transiru poste, ĉar Davido 549 00:28:10,790 --> 00:28:12,770 iris tra kiuj en prelego ankaŭ. 550 00:28:12,770 --> 00:28:14,580 Kaj tiam la dua ripeti implies-- 551 00:28:14,580 --> 00:28:15,120 >> Publiko: Alia por buklo. 552 00:28:15,120 --> 00:28:16,745 >> ANDI PENG: --another por buklo, ekzakte. 553 00:28:16,745 --> 00:28:19,870 554 00:28:19,870 --> 00:28:22,000 Do se ni serĉas ĉe ĝuste tiu, ni 555 00:28:22,000 --> 00:28:24,680 povas vidi, ke ni verŝajne tuj bezonas por buklo nestitaj 556 00:28:24,680 --> 00:28:28,330 kun kondiĉa deklaro tien kaj tiam fakta peco de kodo kiu estas 557 00:28:28,330 --> 00:28:31,360 tuj interŝanĝi la valorojn. 558 00:28:31,360 --> 00:28:35,980 Do mi ĵus ĝenerale skribita _pseudocode_ kodo tie. 559 00:28:35,980 --> 00:28:38,910 Kaj tiam ni efektive tuj fizike, kiel klaso, 560 00:28:38,910 --> 00:28:40,700 provu apliki tiun hodiaŭ. 561 00:28:40,700 --> 00:28:42,486 Ni iru returne en tiu IDE. 562 00:28:42,486 --> 00:28:49,243 563 00:28:49,243 --> 00:28:50,230 >> Uh-oh. 564 00:28:50,230 --> 00:28:51,754 Kial estas ke not-- tie ĝi estas. 565 00:28:51,754 --> 00:28:52,253 BONE. 566 00:28:52,253 --> 00:28:55,834 567 00:28:55,834 --> 00:28:57,500 Pardonu, lasu min provi zomi iom pli. 568 00:28:57,500 --> 00:28:59,310 Tie ni marŝos. 569 00:28:59,310 --> 00:29:05,060 Ĉiuj mi faras ĉi tie estas mi kreis programo nomata "selektado / sort.c." 570 00:29:05,060 --> 00:29:10,860 Mi kreis tabelon de naŭ valoroj, 4, 8, 2, 1, 6, 9, 7, 5, 3. 571 00:29:10,860 --> 00:29:14,370 Nuntempe, kiel vi povas vidu, ili estas neordigitaj. 572 00:29:14,370 --> 00:29:17,880 n tuj estos la nombro kiu diras al vi la kvanton de valoroj 573 00:29:17,880 --> 00:29:18,920 vi havas en via tabelo. 574 00:29:18,920 --> 00:29:20,670 En tiu kazo, ni havas naŭ valoroj. 575 00:29:20,670 --> 00:29:23,760 Kaj mi ĵus ricevis por buklo tie kiu presas el la unsorted tabelo. 576 00:29:23,760 --> 00:29:28,370 >> Kaj fine, mi ankaŭ ricevis por buklo ke nur presas ĝin denove. 577 00:29:28,370 --> 00:29:32,070 Do teorie, se tiu programo korektan funkcion, fine, 578 00:29:32,070 --> 00:29:35,670 Vi devus vidi presita por buklo en kiu 1, 2, 3, 4, 5, 6, 7, 8, 579 00:29:35,670 --> 00:29:39,310 9 estas ĉiuj korekte en ordo. 580 00:29:39,310 --> 00:29:43,410 >> Do ni havas nian _pseudocode_ tie. 581 00:29:43,410 --> 00:29:46,090 Ĉu iu volas to-- mi estas nur tuj iru peti volunteers-- 582 00:29:46,090 --> 00:29:49,540 diru al mi precize kion tajpi se Ni volas, unua, nur persisti 583 00:29:49,540 --> 00:29:52,840 tra la komenco de tiu tabelo? 584 00:29:52,840 --> 00:29:55,204 Kio estas la linio de kodo mi estas verŝajne tuj bezonos ĉi tie? 585 00:29:55,204 --> 00:29:56,990 >> Spektantaro: [inaudible] 586 00:29:56,990 --> 00:29:59,010 >> ANDI PENG: Yeah, senti libera to-- bedaŭras, vi 587 00:29:59,010 --> 00:30:02,318 ne devas stari up-- sento libera levi vian voĉon iom. 588 00:30:02,318 --> 00:30:08,190 >> Publiko: Por int i egalas 0-- 589 00:30:08,190 --> 00:30:10,690 >> ANDI PENG: Jes, bone. 590 00:30:10,690 --> 00:30:15,220 >> Publiko: mi estas malpli ol tabelo longo. 591 00:30:15,220 --> 00:30:19,630 >> ANDI PENG: Observu do en gravas tie, ĉar ni 592 00:30:19,630 --> 00:30:23,060 ne havas funkcion kiu diras al ni la longo de tabelo, 593 00:30:23,060 --> 00:30:25,790 ni jam havas valoro kiu stokas tio. 594 00:30:25,790 --> 00:30:27,920 Dekstra? 595 00:30:27,920 --> 00:30:31,010 Alia afero teni en mind-- en tabelo 596 00:30:31,010 --> 00:30:33,940 de naŭ valoroj, kio estas la indeksojn? 597 00:30:33,940 --> 00:30:38,720 Ni simple diru tiu tabelo estis 0 al 3. 598 00:30:38,720 --> 00:30:41,500 Vi vidos ke la lasta indekso estas fakte 3. 599 00:30:41,500 --> 00:30:45,530 Ĝi ne estas 4, kvankam ekzistas kvar valoroj en la tabelo. 600 00:30:45,530 --> 00:30:49,866 >> Do tie, ni devas esti tre zorgema de kio nia kondiĉo por la longo 601 00:30:49,866 --> 00:30:50,490 tuj estos. 602 00:30:50,490 --> 00:30:51,948 >> Spektantaro: Ĉu ne estus n minus 1? 603 00:30:51,948 --> 00:30:54,440 ANDI PENG: Ĝi tuj n minus 1, ĝuste. 604 00:30:54,440 --> 00:30:57,379 Ĉu tio havas sencon, kial ĝi estas n minus 1, ĉiuj? 605 00:30:57,379 --> 00:30:58,920 Estas ĉar tabeloj estas nulo-indeksitaj. 606 00:30:58,920 --> 00:31:02,010 Ili komencas je 0 kaj kuri ĝis n minus 1. 607 00:31:02,010 --> 00:31:03,210 Jes, ĝi estas iom malfacila. 608 00:31:03,210 --> 00:31:03,730 BONE. 609 00:31:03,730 --> 00:31:05,929 Kaj tiam-- 610 00:31:05,929 --> 00:31:08,054 Publiko: Isnt'1 ke jam prizorgita de tamen, 611 00:31:08,054 --> 00:31:11,400 por nur ne diri "malpli ol aŭ egala al "kaj nur diras" malpli ol? " 612 00:31:11,400 --> 00:31:13,108 >> ANDI PENG: Tio estas vere bona demando. 613 00:31:13,108 --> 00:31:13,630 Do, jes. 614 00:31:13,630 --> 00:31:17,410 Sed ankaŭ, la vojo kiun ni estas efektiviganta la kontrolanta pravas, 615 00:31:17,410 --> 00:31:19,120 vi devas kompari du valoroj. 616 00:31:19,120 --> 00:31:21,009 Do vi vere volas forlasi la "al" malplenaj. 617 00:31:21,009 --> 00:31:23,050 Ĉar se oni komparas ĉi tiu, vi ne tuj 618 00:31:23,050 --> 00:31:25,530 havas nenion post ĝi kompari al, dekstra? 619 00:31:25,530 --> 00:31:27,460 Yeah. 620 00:31:27,460 --> 00:31:29,297 Do i ++. 621 00:31:29,297 --> 00:31:30,380 Ni aldonu nian krampoj en. 622 00:31:30,380 --> 00:31:30,880 Whoops. 623 00:31:30,880 --> 00:31:33,950 624 00:31:33,950 --> 00:31:34,710 Granda. 625 00:31:34,710 --> 00:31:39,117 Do ni havas la komenco de nia ekstera buklo. 626 00:31:39,117 --> 00:31:41,450 Do nun ni probable volas krei variablon por konservanta 627 00:31:41,450 --> 00:31:43,085 trako de la plej malgranda valoro, dekstra? 628 00:31:43,085 --> 00:31:45,751 Ĉu iu volas doni min la linion de kodo kiu faros tion? 629 00:31:45,751 --> 00:31:48,700 630 00:31:48,700 --> 00:31:53,570 Kion ni bezonas, se ni iras voli stoki ion? 631 00:31:53,570 --> 00:31:55,047 >> Dekstra. 632 00:31:55,047 --> 00:31:57,630 Eble pli bona nomo por tiu estus be-- "temp" plene works-- 633 00:31:57,630 --> 00:32:00,655 eble pli trafe nomita estus, se ni volas la plej malgranda value-- 634 00:32:00,655 --> 00:32:01,624 >> Publiko: Min. 635 00:32:01,624 --> 00:32:02,790 ANDI PENG: min, tie ni iras. 636 00:32:02,790 --> 00:32:05,230 min estus bona. 637 00:32:05,230 --> 00:32:08,340 Kaj tiel tie, kion ni faras volas pravalorizi ĝin? 638 00:32:08,340 --> 00:32:09,620 Tio estas iom malfacila. 639 00:32:09,620 --> 00:32:13,580 Ĉar nun en la komencante de tiu tabelo, 640 00:32:13,580 --> 00:32:15,730 vi ne rigardis ion, ĉu ne? 641 00:32:15,730 --> 00:32:19,200 Do kion, aŭtomate, se ni ĵus estas sur i egalas 0, 642 00:32:19,200 --> 00:32:22,302 Kion ni volas pravalorizi nia unua minimuma valoro al? 643 00:32:22,302 --> 00:32:22,802 Publiko: i. 644 00:32:22,802 --> 00:32:24,790 ANDI PENG: i, precize. 645 00:32:24,790 --> 00:32:27,040 Christabel, kial ni volas pravalorizi ĝin al mi? 646 00:32:27,040 --> 00:32:28,510 >> Publiko: Ĉar, nu, Ni komencas kun 0. 647 00:32:28,510 --> 00:32:31,660 Do ĉar ni havas nenion por kompari ĝin, la minimuma finos esti 0. 648 00:32:31,660 --> 00:32:32,451 >> ANDI PENG: Ekzakte. 649 00:32:32,451 --> 00:32:34,400 Do ŝi estas ekzakte pravas. 650 00:32:34,400 --> 00:32:36,780 Ĉar ni ne reale rigardis ion ankoraŭ, 651 00:32:36,780 --> 00:32:38,680 ni ne scias kion niaj minimuma valoro estas. 652 00:32:38,680 --> 00:32:41,960 Ni volas nur pravalorizi ĝin al i, kiu, nuntempe, estas ĝuste ĉi tie. 653 00:32:41,960 --> 00:32:44,750 Kaj ni daŭre movi malsupren tiu tabelo, 654 00:32:44,750 --> 00:32:48,122 ni vidos ke, kun ĉiu aldona enirpermesilo, i pliigoj. 655 00:32:48,122 --> 00:32:49,830 Kaj tiel en tiu punkto, i estas probable tuj 656 00:32:49,830 --> 00:32:52,329 voli esti la minimumo, ĉar ĝi estas tuj estos ajn 657 00:32:52,329 --> 00:32:54,520 estas la komenco de la unsorted tabelo. 658 00:32:54,520 --> 00:32:55,270 Malvarmeta. 659 00:32:55,270 --> 00:32:58,720 >> Do nun ni volas aldoni por buklo tie jen 660 00:32:58,720 --> 00:33:03,225 tuj persisti tra la unsorted, aŭ la resto de tiu tabelo. 661 00:33:03,225 --> 00:33:05,808 Ĉu iu volas doni min linion de kodo kiu faros tion? 662 00:33:05,808 --> 00:33:08,870 663 00:33:08,870 --> 00:33:11,330 Hint-- kion ni bezonas cxi tie? 664 00:33:11,330 --> 00:33:17,320 665 00:33:17,320 --> 00:33:18,820 Kio okazas iri en ĉi por buklo? 666 00:33:18,820 --> 00:33:19,465 Yeah. 667 00:33:19,465 --> 00:33:21,590 Publiko: Do ​​ni dezirus havas malsaman entjero, 668 00:33:21,590 --> 00:33:25,080 ĉar ni kuris tra la resto de la tabelo anstataŭ la i, do eble 669 00:33:25,080 --> 00:33:25,760 j. 670 00:33:25,760 --> 00:33:27,301 >> ANDI PENG: Yeah, j sonas bona al mi. 671 00:33:27,301 --> 00:33:27,850 Egalas? 672 00:33:27,850 --> 00:33:33,930 >> Publiko: Do ​​estus i plus 1, ĉar vi komencas je la venonta valoro. 673 00:33:33,930 --> 00:33:40,395 Kaj tiam al la end-- tiel denove, j estas malpli ol n minus 1, kaj tiam j ++. 674 00:33:40,395 --> 00:33:41,103 ANDI PENG: Granda. 675 00:33:41,103 --> 00:33:48,510 676 00:33:48,510 --> 00:33:52,750 >> Kaj tiam tie, ni tuj volas kontroli por vidi se nia kondiĉo estas konita, 677 00:33:52,750 --> 00:33:53,250 dekstra? 678 00:33:53,250 --> 00:33:55,740 Ĉar vi volas ŝanĝi la minimuma valoro 679 00:33:55,740 --> 00:33:58,700 se ĝi estas fakte pli malgranda ol kion vi komparante ĝin, ĉu ne? 680 00:33:58,700 --> 00:34:01,146 Do kion ni tuj volas tien? 681 00:34:01,146 --> 00:34:04,160 682 00:34:04,160 --> 00:34:04,897 Kontrolu vidi. 683 00:34:04,897 --> 00:34:06,730 Kio tipo de deklaro ni probable tuj 684 00:34:06,730 --> 00:34:08,389 TI volas uzi se ni volas kontroli ion? 685 00:34:08,389 --> 00:34:09,360 >> Publiko: An se aserto. 686 00:34:09,360 --> 00:34:10,485 >> ANDI PENG: An se aserto. 687 00:34:10,485 --> 00:34:13,155 Do if-- kaj kio tuj estos kondiĉe ke ni volas ene 688 00:34:13,155 --> 00:34:13,988 de niaj se aserto? 689 00:34:13,988 --> 00:34:18,255 690 00:34:18,255 --> 00:34:22,960 >> Publiko: Se la valoro de j estas malpli ol la valoro de i-- 691 00:34:22,960 --> 00:34:24,600 >> ANDI PENG: Ekzakte. 692 00:34:24,600 --> 00:34:27,480 Do if-- tiel ĉi tabelo estas nomata "array". 693 00:34:27,480 --> 00:34:27,980 Granda. 694 00:34:27,980 --> 00:34:30,465 Do se tabelo kio estis tio? 695 00:34:30,465 --> 00:34:31,090 Diru tion denove. 696 00:34:31,090 --> 00:34:39,590 >> Publiko: Se tabelo-j estas malpli ol tabelo-i, tiam ni ŝanĝus la min. 697 00:34:39,590 --> 00:34:41,590 Do la min estus j. 698 00:34:41,590 --> 00:34:44,590 699 00:34:44,590 --> 00:34:47,249 >> ANDI PENG: Ĉu tio sencon? 700 00:34:47,249 --> 00:34:48,670 BONE. 701 00:34:48,670 --> 00:34:52,929 Kaj nun cxi tie, ni reale volas apliki la swap, dekstra? 702 00:34:52,929 --> 00:34:58,285 Do memoru, en prelego, David, kiam li klopodis interŝanĝi the-- kio 703 00:34:58,285 --> 00:34:59,996 it-- oranĝa suko kaj milk-- 704 00:34:59,996 --> 00:35:01,150 >> Publiko: Tio estis malpuraj. 705 00:35:01,150 --> 00:35:02,816 >> ANDI PENG: Jes, tio estis speco de malneta. 706 00:35:02,816 --> 00:35:05,310 Sed estis sufiĉe bona koncepto pruvante fojo. 707 00:35:05,310 --> 00:35:08,430 Do pensu pri viaj valoroj tie. 708 00:35:08,430 --> 00:35:10,794 Vi havas tabelo de min, tabelo de i, 709 00:35:10,794 --> 00:35:12,460 aŭ kion ajn ni provis interŝanĝi tie. 710 00:35:12,460 --> 00:35:15,310 Kaj vi verŝajne ne povas verŝi ilin en reciproke samtempe, ĉu ne? 711 00:35:15,310 --> 00:35:17,180 Do kion ni tuj al devas krei ĉi tie 712 00:35:17,180 --> 00:35:19,126 Por interŝanĝi la valorojn korekte? 713 00:35:19,126 --> 00:35:19,820 >> Publiko: Labor variablo. 714 00:35:19,820 --> 00:35:21,370 >> ANDI PENG: Labor variablo. 715 00:35:21,370 --> 00:35:22,570 Do ni faru int temp. 716 00:35:22,570 --> 00:35:25,681 Vidu, tio estus bona tempo to-- Whoa, kio estis tio? 717 00:35:25,681 --> 00:35:26,180 BONE. 718 00:35:26,180 --> 00:35:29,800 Do tiu estus estinta pli bona tempo nomumi la variablo "temp." 719 00:35:29,800 --> 00:35:30,730 Do ni faru int temp. 720 00:35:30,730 --> 00:35:32,563 Kio estas ni iranta fiksita temp egala al tie? 721 00:35:32,563 --> 00:35:34,752 722 00:35:34,752 --> 00:35:35,335 Publiko: min? 723 00:35:35,335 --> 00:35:38,508 724 00:35:38,508 --> 00:35:39,716 ANDI PENG: Estas iom malfacila. 725 00:35:39,716 --> 00:35:43,110 726 00:35:43,110 --> 00:35:44,880 Ĝi efektive ne gravas en la fino. 727 00:35:44,880 --> 00:35:47,690 Negrave kio Por vi elektas interŝanĝi en 728 00:35:47,690 --> 00:35:50,862 kiel longe kiel vi estas faranta certe ke vi estas konservanta trako de kio vi estas interŝanĝanta. 729 00:35:50,862 --> 00:35:52,250 >> Publiko: Eblus tabelo-i. 730 00:35:52,250 --> 00:35:53,666 >> ANDI PENG: Jes, ni faru tabelo-i. 731 00:35:53,666 --> 00:35:55,950 732 00:35:55,950 --> 00:35:59,305 Kaj tiam kio estas la sekva linio de kodo ni volas havi tie? 733 00:35:59,305 --> 00:36:00,680 Publiko: tabelo-i egalas tabelo-j. 734 00:36:00,680 --> 00:36:07,154 735 00:36:07,154 --> 00:36:08,070 ANDI PENG: Kaj laste? 736 00:36:08,070 --> 00:36:12,070 Publiko: tabelo-j egalas tabelo-i. 737 00:36:12,070 --> 00:36:14,525 Publiko: Aŭ tabelo-j egaluloj tabelo-temp-- aŭ, temp. 738 00:36:14,525 --> 00:36:17,135 739 00:36:17,135 --> 00:36:19,430 >> ANDI PENG: OK. 740 00:36:19,430 --> 00:36:21,510 Do ni kuras ĉi, kaj vidu se ĝi tuj labori. 741 00:36:21,510 --> 00:36:37,520 742 00:36:37,520 --> 00:36:39,335 Kie estas ke okazas? 743 00:36:39,335 --> 00:36:40,210 Ho, tio estas problemo. 744 00:36:40,210 --> 00:36:44,320 Vidu, sur linio 40, ni estas provas uzi tabelo-j? 745 00:36:44,320 --> 00:36:47,022 Sed kiel tio rilatas j nur ekzistas en? 746 00:36:47,022 --> 00:36:48,402 >> Publiko: En la por buklo. 747 00:36:48,402 --> 00:36:49,110 ANDI PENG: Dekstra. 748 00:36:49,110 --> 00:36:51,730 Do kion ni tuj bezonas fari? 749 00:36:51,730 --> 00:36:53,170 >> Publiko: Difini ĝin ekstere the-- 750 00:36:53,170 --> 00:36:57,777 751 00:36:57,777 --> 00:37:00,610 Publiko: Yeah, Mi supozas ke vi havas uzi alian se aserto, dekstra? 752 00:37:00,610 --> 00:37:05,230 Do kiel, se la minimum-- Bone, lasu min pensi. 753 00:37:05,230 --> 00:37:08,170 754 00:37:08,170 --> 00:37:09,990 >> ANDI PENG: Knaboj, provi preni rigardon Lasu nin 755 00:37:09,990 --> 00:37:11,270 vidu, kio ion ni povos fari tie? 756 00:37:11,270 --> 00:37:11,811 >> Publiko: OK. 757 00:37:11,811 --> 00:37:15,900 Do se la minimuma ne egala j-- do se la minimumo estas ankoraŭ i-- 758 00:37:15,900 --> 00:37:17,570 tiam ni ne devus interŝanĝi. 759 00:37:17,570 --> 00:37:22,450 760 00:37:22,450 --> 00:37:24,712 >> ANDI PENG: Ĉu tio egala i? 761 00:37:24,712 --> 00:37:25,920 Kion vi volas diri ĉi tie? 762 00:37:25,920 --> 00:37:30,494 >> Publiko: Aŭ jes, se la minimumo ne egala i, jes. 763 00:37:30,494 --> 00:37:39,627 764 00:37:39,627 --> 00:37:40,210 ANDI PENG: OK. 765 00:37:40,210 --> 00:37:42,040 Nu kiu solvas, ia, niaj problemoj. 766 00:37:42,040 --> 00:37:47,265 Sed tio ankoraŭ ne solvas la problemo de kio okazas se j-- ekde la j 767 00:37:47,265 --> 00:37:49,890 ne ekzistas ekster ĝi, kion vi ni volas fari kun ĝi? 768 00:37:49,890 --> 00:37:50,698 Rakontu ĝin ekstere? 769 00:37:50,698 --> 00:37:59,410 770 00:37:59,410 --> 00:38:02,730 Ni provu kurante ĉi. 771 00:38:02,730 --> 00:38:04,435 Uh-oh. 772 00:38:04,435 --> 00:38:06,200 Nia speco ne estas laboranta. 773 00:38:06,200 --> 00:38:10,060 >> Kiel vi povas vidi, nia komenca tabelo havis tiujn valorojn. 774 00:38:10,060 --> 00:38:14,800 Sed poste gxi devus havi estis en 1, 2, 3, 4, 5, 6, 7, 8, 9. 775 00:38:14,800 --> 00:38:15,530 Ĝi ne funkcias. 776 00:38:15,530 --> 00:38:16,030 Ahh. 777 00:38:16,030 --> 00:38:17,184 Kion ni faru? 778 00:38:17,184 --> 00:38:17,850 Publiko: Debug. 779 00:38:17,850 --> 00:38:21,787 780 00:38:21,787 --> 00:38:23,370 ANDI PENG: Bone, ni povas provi tion. 781 00:38:23,370 --> 00:38:25,030 Ni povas elpurigi. 782 00:38:25,030 --> 00:38:26,042 Malzomi iom. 783 00:38:26,042 --> 00:38:31,177 784 00:38:31,177 --> 00:38:33,656 Ni metis niajn Haltpunkto. 785 00:38:33,656 --> 00:38:37,280 Ni iru like-- OK. 786 00:38:37,280 --> 00:38:40,444 >> Do ĉar ni jam scias ke tiuj linioj, 15 tra 22, 787 00:38:40,444 --> 00:38:43,610 estas working-- ĉar ĉiuj mi faras estas nur ripetanta tra kaj printing-- 788 00:38:43,610 --> 00:38:45,406 Mi povas antaŭeniri kaj salti tio. 789 00:38:45,406 --> 00:38:47,280 Komencu ĉe linio 25. 790 00:38:47,280 --> 00:38:48,712 OOP, lasu min forigi tion. 791 00:38:48,712 --> 00:38:51,598 792 00:38:51,598 --> 00:38:54,057 >> Publiko: Do ​​la Haltpunkto La kie la elpuriganta komenciĝas? 793 00:38:54,057 --> 00:38:54,890 ANDI PENG: Aŭ haltoj. 794 00:38:54,890 --> 00:38:55,670 Publiko: Aŭ haltoj. 795 00:38:55,670 --> 00:38:55,930 ANDI PENG: Yeah. 796 00:38:55,930 --> 00:38:58,640 Vi povas agordi multnombraj breakpoints kaj ĝi povas nur salti de unu al la alia. 797 00:38:58,640 --> 00:39:01,590 Sed en ĉi tiu kazo ni ne scias kie la eraro okazas. 798 00:39:01,590 --> 00:39:03,780 Do ni nur volas komenci de la supro malsupren. 799 00:39:03,780 --> 00:39:05,020 Yep. 800 00:39:05,020 --> 00:39:05,550 BONE. 801 00:39:05,550 --> 00:39:08,460 >> Do tiu linio tie, ni povas interveni. 802 00:39:08,460 --> 00:39:11,499 Vi povas vidi ĉi tie, ni havas tabelo. 803 00:39:11,499 --> 00:39:13,290 Tiuj estas la valoroj kiuj estas en la tabelo. 804 00:39:13,290 --> 00:39:16,360 Ĉu vi vidis tion, kiom indekso 0, ĝi respondas al la value-- ho, 805 00:39:16,360 --> 00:39:17,526 Mi tuj provos zomi. 806 00:39:17,526 --> 00:39:20,650 Pardonu, estas vere malfacile al Konsideru en tabelo indekso 0, 807 00:39:20,650 --> 00:39:24,090 ni havas valoron de 4 kaj tiam tiel plu kaj tiel plu. 808 00:39:24,090 --> 00:39:25,670 Ni havas niajn lokajn variablojn. 809 00:39:25,670 --> 00:39:28,570 Nun i estas egala al 0, kiu ni volas ke ĝi estu. 810 00:39:28,570 --> 00:39:31,540 811 00:39:31,540 --> 00:39:33,690 >> Kaj do ni observu tretante tra. 812 00:39:33,690 --> 00:39:36,850 Nia minimuma estas egala al 0, kiun ni ankaŭ volas ĝin esti. 813 00:39:36,850 --> 00:39:39,470 814 00:39:39,470 --> 00:39:45,560 Kaj poste ni eniras nia dua por buklo, se tabelo-j estas malpli ol tabelo-i, 815 00:39:45,560 --> 00:39:46,380 kiu ne estis. 816 00:39:46,380 --> 00:39:48,130 Do ĉu vi vidas, kiel ke saltis super tio? 817 00:39:48,130 --> 00:39:52,430 >> Publiko: Do ​​devus la se minimuma, ĉiuj that-- malakceptu ke 818 00:39:52,430 --> 00:39:55,424 esti ene la unua por ciklo? 819 00:39:55,424 --> 00:39:57,340 ANDI PENG: Ne, ĉar vi ankoraŭ volas testi. 820 00:39:57,340 --> 00:40:00,329 Vi volas fari komparon ĉiun tempo, eĉ post vi kuras tra ĝi. 821 00:40:00,329 --> 00:40:02,620 Vi ne nur volas fari ĝin sur la unua enirpermesilo-tra. 822 00:40:02,620 --> 00:40:05,240 Vi volas fari ĝin kun ĉiu plia pasu denove. 823 00:40:05,240 --> 00:40:07,198 Do vi volas kontroli por via kondiĉo ene. 824 00:40:07,198 --> 00:40:11,610 825 00:40:11,610 --> 00:40:13,746 Do ni simple tuj teni kuranta tra tie. 826 00:40:13,746 --> 00:40:17,337 827 00:40:17,337 --> 00:40:18,420 Mi donos al vi infanoj aludo. 828 00:40:18,420 --> 00:40:23,910 Ĝi devas vidi kun la fakto ke kiam vi estas kontrolanta vian kondicionalo, 829 00:40:23,910 --> 00:40:26,600 vi ne kontrolanta por la ĝusta indekso. 830 00:40:26,600 --> 00:40:32,510 Do nun vi estas kontrolanta por tabelo indekso de j estas malpli ol tabelo 831 00:40:32,510 --> 00:40:33,970 indekso de i. 832 00:40:33,970 --> 00:40:36,580 Sed kion vi faras supre ĉe la komenco de la por buklo? 833 00:40:36,580 --> 00:40:38,260 Ĉu vi opcio j egalas al i? 834 00:40:38,260 --> 00:40:41,260 835 00:40:41,260 --> 00:40:45,415 >> Yeah, do ni povas reale eliri la erarserĉilo tie. 836 00:40:45,415 --> 00:40:47,040 Do ni rigardu nian _pseudocode_. 837 00:40:47,040 --> 00:40:50,070 838 00:40:50,070 --> 00:40:52,580 For-- ni tuj starti je i egalas 0. 839 00:40:52,580 --> 00:40:54,760 Ni tuj iru al n minus 1. 840 00:40:54,760 --> 00:40:58,040 Ni kontrolu, ĉu ni havas tiun rajton? 841 00:40:58,040 --> 00:40:59,580 Yep, ke pravis. 842 00:40:59,580 --> 00:41:02,080 >> Tial ene tie, ni estas tuj krei minimuma valoro 843 00:41:02,080 --> 00:41:03,630 kaj starigis kiu egala al i. 844 00:41:03,630 --> 00:41:04,950 Ĉu ni faru tion? 845 00:41:04,950 --> 00:41:06,270 Yep, faris tion. 846 00:41:06,270 --> 00:41:10,430 Nun en nia interna por ciklo, ni estas faros j egalas i al n minus 1. 847 00:41:10,430 --> 00:41:11,950 Ĉu ni faru tion? 848 00:41:11,950 --> 00:41:15,540 Efektive, ni faris tion. 849 00:41:15,540 --> 00:41:19,922 >> Do tamen, kion ni komparas tie? 850 00:41:19,922 --> 00:41:20,925 >> Publiko: j plus 1. 851 00:41:20,925 --> 00:41:21,716 ANDI PENG: Ekzakte. 852 00:41:21,716 --> 00:41:24,184 853 00:41:24,184 --> 00:41:27,350 Kaj tiam vi tuj volas agordi via minimuma egala al j plus 1 ankaŭ. 854 00:41:27,350 --> 00:41:31,057 855 00:41:31,057 --> 00:41:32,640 Do mi iris tra tiu vere rapide. 856 00:41:32,640 --> 00:41:36,190 Ĉu vi uloj kompreni kial estas j plus 1? 857 00:41:36,190 --> 00:41:36,890 BONE. 858 00:41:36,890 --> 00:41:40,700 >> Do en via tabelo, en via unua trairo, 859 00:41:40,700 --> 00:41:44,850 via por buklo, por int i egalas 0, ni nur 860 00:41:44,850 --> 00:41:46,740 supozi ĉi ne estis ŝanĝita ankoraŭ. 861 00:41:46,740 --> 00:41:53,180 862 00:41:53,180 --> 00:41:56,760 Ni havas tabelo de, tute, nur kvar unsorted elementoj, ĉu ne? 863 00:41:56,760 --> 00:42:00,760 Do ni volas pravalorizi i egalas al 0. 864 00:42:00,760 --> 00:42:03,650 Kaj mi tuj simple kuri tra tiu buklo. 865 00:42:03,650 --> 00:42:08,560 Kaj tiel en la unua enirpermesilo, ni tuj pravalorizi variablo nomata "min" 866 00:42:08,560 --> 00:42:11,245 kiu ankaŭ egalas i, ĉar ni ne havas minimuman valoron. 867 00:42:11,245 --> 00:42:12,870 Do jen aktuale egalaj al 0, tiel. 868 00:42:12,870 --> 00:42:16,182 869 00:42:16,182 --> 00:42:17,640 Kaj tiam ni tuj iru tra. 870 00:42:17,640 --> 00:42:19,270 Kaj ni volas persisti denove. 871 00:42:19,270 --> 00:42:22,900 Nun ke ni trovis kion nia minimuma estas, ni volas persisti tra 872 00:42:22,900 --> 00:42:25,190 denove vidi se ĝi estas komparanta, dekstra? 873 00:42:25,190 --> 00:42:40,440 Do j, tie, tuj egalan mi, kiu estas 0. 874 00:42:40,440 --> 00:42:46,320 Kaj tiam se tabelo j plus mi, kio Estas kiu estas apud super, kiel malpli 875 00:42:46,320 --> 00:42:49,270 ol kio via nuna minimumo valoro estas, vi volas interŝanĝi. 876 00:42:49,270 --> 00:42:56,850 >> Do ni nur diros ni havas ricevis, kiel, 2, 5, 1, 8. 877 00:42:56,850 --> 00:43:01,610 Ĝuste nun, mi estas egala al 0 kaj j estas egala al 0. 878 00:43:01,610 --> 00:43:05,210 Kaj tio estas nia minimuma valoro. 879 00:43:05,210 --> 00:43:09,950 Se tabelo-j plus i-- do se la jen post unu ni rigardis 880 00:43:09,950 --> 00:43:13,450 estas pli granda ol tiu antaŭ ĝi, ĝi tuj fariĝis la minimumo. 881 00:43:13,450 --> 00:43:18,120 >> Do jen ni vidas ke 5 ne malpli ol tio. 882 00:43:18,120 --> 00:43:19,730 Do ĝi tuj ne estu 5. 883 00:43:19,730 --> 00:43:23,580 Ni vidas ke 1 estas malpli ol 2, ĉu ne? 884 00:43:23,580 --> 00:43:32,970 Do nun ni scias ke nia minimumo estas tuj estos la indekso valoro je 0, 1, 2. 885 00:43:32,970 --> 00:43:34,030 Yeah? 886 00:43:34,030 --> 00:43:39,170 Kaj tiam kiam vi ricevas tie, Vi povas interŝanĝi la korekta valoroj. 887 00:43:39,170 --> 00:43:42,610 >> Do kiam vi infanoj estis nur havi la j antaŭe, vi ne rigardas la 888 00:43:42,610 --> 00:43:43,260 post ĝi. 889 00:43:43,260 --> 00:43:44,520 Vi rigardis la sama valoro, kiun 890 00:43:44,520 --> 00:43:46,290 Tial ĝi simple ne faris ion ajn. 891 00:43:46,290 --> 00:43:49,721 Ĉu tio havas sencon por ĉiuj, kial ni bezonas ke plus 1 tie? 892 00:43:49,721 --> 00:43:50,220 BONE. 893 00:43:50,220 --> 00:43:53,345 Nun ni nur kuri tra ĝi fari certe la reston de la kodo estas ĝusta. 894 00:43:53,345 --> 00:44:04,424 895 00:44:04,424 --> 00:44:05,340 Kial tio okazas? 896 00:44:05,340 --> 00:44:14,780 897 00:44:14,780 --> 00:44:16,364 Ha, la min tie. 898 00:44:16,364 --> 00:44:17,780 Ni estis komparante la erara valoro. 899 00:44:17,780 --> 00:44:24,944 900 00:44:24,944 --> 00:44:25,906 Ho ne. 901 00:44:25,906 --> 00:44:30,720 902 00:44:30,720 --> 00:44:33,482 >> Oh yeah, cxi tie ni estis interŝanĝante la nekorektajn valorojn ankaŭ. 903 00:44:33,482 --> 00:44:34,940 Ĉar ni estis rigardantaj i kaj j. 904 00:44:34,940 --> 00:44:36,440 Tiuj estas la ones ni kontrolanta. 905 00:44:36,440 --> 00:44:39,160 Ni vere volas interŝanĝi la minimuma, la nuna minimumo, 906 00:44:39,160 --> 00:44:40,550 kun kiom la ekstera estas. 907 00:44:40,550 --> 00:44:59,510 908 00:44:59,510 --> 00:45:05,402 Kaj kiel vi infanoj povas vidi sube tie, ni havas ordo tabelo. 909 00:45:05,402 --> 00:45:07,110 Ĝi ĵus devis fari kun la fakto ke kiam 910 00:45:07,110 --> 00:45:09,350 ni kontrolanta la valoroj ni komparas, 911 00:45:09,350 --> 00:45:11,226 Ni ne rigardante dekstren valoroj. 912 00:45:11,226 --> 00:45:13,850 Ni rigardis la sama tie, ne vere interŝanĝi ĝin. 913 00:45:13,850 --> 00:45:17,135 Vi devas rigardi la sekva al ĝi kaj tiam vi povas interŝanĝi. 914 00:45:17,135 --> 00:45:19,260 Do jen kio estis speco de bugging nia kodo antaŭ. 915 00:45:19,260 --> 00:45:22,460 Kaj kion mi faris tie estas ĉio la erarserĉilo povus esti farita por vi 916 00:45:22,460 --> 00:45:23,810 Mi nur faris ĝin sur la tabulo, ĉar ĝi estas pli facila 917 00:45:23,810 --> 00:45:26,320 vidi prefere ol provado por zomi en sur la erarserĉilo. 918 00:45:26,320 --> 00:45:29,391 Ĉu tio havas sencon por ĉiuj? 919 00:45:29,391 --> 00:45:29,890 Malvarmeta. 920 00:45:29,890 --> 00:45:34,800 921 00:45:34,800 --> 00:45:35,410 >> Bone. 922 00:45:35,410 --> 00:45:41,070 Ni povas movi antaŭen al parolante pri asimptota skribmaniero, kiu 923 00:45:41,070 --> 00:45:44,580 estas nur fantazio maniero diri la runtimes de ĉiuj de ĉi tiuj varoj. 924 00:45:44,580 --> 00:45:47,650 Do mi konas David, en prelego, tuŝis sur runtimes. 925 00:45:47,650 --> 00:45:52,124 Kaj li iris tra la tuta formulo de kiel kalkuli la runtimes. 926 00:45:52,124 --> 00:45:53,040 Neniu ĉagrenoj pri tio. 927 00:45:53,040 --> 00:45:54,660 Se vi estas vere kurioza sur kiel tio funkcias, 928 00:45:54,660 --> 00:45:55,810 bonvolu paroli al mi post sekcio. 929 00:45:55,810 --> 00:45:57,560 Ni povas marŝi tra la formuloj kune. 930 00:45:57,560 --> 00:46:00,689 Sed ĉiuj vi infanoj devos vere scii estas ke n kvadratoj super 2 931 00:46:00,689 --> 00:46:01,980 Estas la sama afero kiel n kvadratoj. 932 00:46:01,980 --> 00:46:04,710 Ĉar la plej granda nombro, la eksponento, kreskas la plej. 933 00:46:04,710 --> 00:46:06,590 Kaj do por niaj celoj, ĉiuj ni zorgas pri 934 00:46:06,590 --> 00:46:09,470 estas la liga nombro kiu estas kreskanta. 935 00:46:09,470 --> 00:46:13,340 >> Do kio estas la plej bona kazo runtime de selektado speco? 936 00:46:13,340 --> 00:46:15,830 Se vi iras por havi persisti tra listo 937 00:46:15,830 --> 00:46:18,712 kaj tiam persisti tra la resto de tiu listo, 938 00:46:18,712 --> 00:46:20,420 Multfoje estas vi tuj probable, 939 00:46:20,420 --> 00:46:24,612 en la plej malbona case-- en la bona kazo, sorry-- kuri tra? 940 00:46:24,612 --> 00:46:27,070 Eble la pli bona demando estas demandi, kio estas la plej malbona kazo 941 00:46:27,070 --> 00:46:28,153 runtime de selektado varon. 942 00:46:28,153 --> 00:46:29,366 Publiko: n kvadratoj. 943 00:46:29,366 --> 00:46:30,740 ANDI PENG: Ĝi estas n kvadratoj, dekstre. 944 00:46:30,740 --> 00:46:36,986 Do facila vojo pensi de ĉi tiu estas kiel, ajna tempo vi havas du nestitaj por bukloj, 945 00:46:36,986 --> 00:46:38,110 ĝi tuj estos n kvadratoj. 946 00:46:38,110 --> 00:46:40,386 Ĉar ne nur vi kurante tra refoje, 947 00:46:40,386 --> 00:46:42,260 vi devos iri reen ĉirkaŭ kaj kuri tra ĝi 948 00:46:42,260 --> 00:46:44,980 refoje interne por ĉiu valoro. 949 00:46:44,980 --> 00:46:48,640 Do en tiu kazo, ke vi uzas n times n kvadratoj, kiuj is-- bedaŭras, 950 00:46:48,640 --> 00:46:50,505 n × n, kio egalas n kvadratoj. 951 00:46:50,505 --> 00:46:53,230 952 00:46:53,230 --> 00:46:56,360 >> Kaj varo estas ankaŭ iom unika en la senco 953 00:46:56,360 --> 00:46:59,774 ke ne gravas se tiuj valoroj estas jam en ordo. 954 00:46:59,774 --> 00:47:01,440 Ĝi estas ankoraŭ iranta kuri tra anyways. 955 00:47:01,440 --> 00:47:03,872 Ni nur diras tiun estis 1, 2, 3, 4. 956 00:47:03,872 --> 00:47:07,080 Sendepende de ĉu aŭ ne ĝi estis en ordo, ĝi ankoraŭ estus trakuris 957 00:47:07,080 --> 00:47:08,620 kaj ankoraŭ kontrolis la minimuman valoron. 958 00:47:08,620 --> 00:47:10,100 Ĝi estus farinta la sama nombro de ĉekoj 959 00:47:10,100 --> 00:47:12,780 ĉiu ununura tempo, eĉ se ĝi ne fakte tuŝas nenion. 960 00:47:12,780 --> 00:47:16,940 >> Do en tia kazo, la bona kaj plej malbona runtimes estas fakte ekvivalenta. 961 00:47:16,940 --> 00:47:19,160 Do la atendata ekzekuto de selektado speco, 962 00:47:19,160 --> 00:47:23,790 kiun ni designar per la simbolo de theta, teto, en tiu kazo, 963 00:47:23,790 --> 00:47:24,790 ankaŭ estus n kvadratoj. 964 00:47:24,790 --> 00:47:26,480 Ĉiuj tri de ĉi tiuj estus N kvadrato. 965 00:47:26,480 --> 00:47:29,653 Estas cxiu klara sur kial la ekzekuto estas n kvadratoj? 966 00:47:29,653 --> 00:47:33,360 967 00:47:33,360 --> 00:47:33,980 >> Bone. 968 00:47:33,980 --> 00:47:39,120 Do mi simple tuj rapide kuri tra la resto de la varoj. 969 00:47:39,120 --> 00:47:41,137 La algoritmo por bobelo sort-- memoras, 970 00:47:41,137 --> 00:47:43,220 tio estis la unua David transiris en prelego. 971 00:47:43,220 --> 00:47:46,000 Esence, vi tretas tra la tutan liston 972 00:47:46,000 --> 00:47:48,950 kaj vi swap-- vi nur kompari du samtempe. 973 00:47:48,950 --> 00:47:51,350 Kaj se unu estas pli granda, ol vi simple interŝanĝu ilin. 974 00:47:51,350 --> 00:47:53,590 Do se ili estas pli granda, vi devus interŝanĝi. 975 00:47:53,590 --> 00:47:56,180 Mi havas oficialan tie. 976 00:47:56,180 --> 00:47:59,100 >> Do ni nur diros vi havis 8, 6, 4, 2. 977 00:47:59,100 --> 00:48:00,571 Vi estus kompari la 8 kaj 6. 978 00:48:00,571 --> 00:48:01,570 Vi bezonus interŝanĝi ilin. 979 00:48:01,570 --> 00:48:02,610 Vi devus kompari la 8 kaj 4. 980 00:48:02,610 --> 00:48:03,609 Vi bezonus interŝanĝi ilin. 981 00:48:03,609 --> 00:48:07,000 Se vi devi interŝanĝi la 8 kaj La 2, ŝanĝi ilin ankaŭ. 982 00:48:07,000 --> 00:48:10,760 Do en tia senco, vi povas vidi, ludata dum longa periodo de tempo, 983 00:48:10,760 --> 00:48:13,730 kiom la valoroj ia bobelo al la finoj, kio estas kial ni nomas ĝin 984 00:48:13,730 --> 00:48:15,320 bobelo varon. 985 00:48:15,320 --> 00:48:19,950 >> Ni nur kuri tra denove sur nia dua enirpermesilo, kaj nia tria enirpermesilo, 986 00:48:19,950 --> 00:48:21,150 kaj nia kvara enirpermesilo. 987 00:48:21,150 --> 00:48:25,820 Esence, bobelo varo simple kuras ĝis vi ne faru plue svopoj. 988 00:48:25,820 --> 00:48:31,109 Do en tiu senco, tio estas nur la ĝenerala _pseudocode_ por ĝi. 989 00:48:31,109 --> 00:48:32,650 Neniu ĉagrenoj, tiuj cxio estos rete. 990 00:48:32,650 --> 00:48:34,990 Ni ne devas reale transiru ĉi. 991 00:48:34,990 --> 00:48:38,134 >> Ni nur pravalorizi vendotablo variablo kiu komenciĝas ĉe 0. 992 00:48:38,134 --> 00:48:39,800 Kaj ni persisti tra la tuta tabelo. 993 00:48:39,800 --> 00:48:43,420 Kaj se unu valoro is-- se ĉi valoro estas pli granda ol tiu valoro, 994 00:48:43,420 --> 00:48:44,610 vi tuj interŝanĝi ilin. 995 00:48:44,610 --> 00:48:46,860 Kaj tiam vi estas nur tuj plu iri. 996 00:48:46,860 --> 00:48:47,970 Kaj vi tuj rakonti. 997 00:48:47,970 --> 00:48:50,845 Kaj vi ĝuste tuj observu fari tiu dum la vendotablo estas pli granda 998 00:48:50,845 --> 00:48:53,345 ol 0, kio signifas ke ĉiufoje vi devas interŝanĝi, 999 00:48:53,345 --> 00:48:55,220 vi scias ke vi volas iri dorso kaj kontroli denove. 1000 00:48:55,220 --> 00:48:59,510 Vi volas teni kontrolanta ĝis vi scias ke vi ne devas interŝanĝi anymore. 1001 00:48:59,510 --> 00:49:05,570 >> Do kio estas la plej bona kaj plej malbona kazo runtimes por bobelo varo? 1002 00:49:05,570 --> 00:49:09,300 Kaj hint-- tio estas fakte malsama el selektado varo en la senco 1003 00:49:09,300 --> 00:49:11,810 ke tiuj du respondoj estas ne la sama. 1004 00:49:11,810 --> 00:49:14,709 Pensu pri kio okazos en kazo se ĝi jam ordo. 1005 00:49:14,709 --> 00:49:16,500 Kaj pensas pri kio okazus se ĝi estis 1006 00:49:16,500 --> 00:49:18,372 en la kazo en kiu ne estis ordo. 1007 00:49:18,372 --> 00:49:20,580 Kaj vi povas ia kuri tra kial tio okazas. 1008 00:49:20,580 --> 00:49:22,954 Mi donos al vi infanoj, kiel, 30 sekundojn por pripensi tion. 1009 00:49:22,954 --> 00:49:52,330 1010 00:49:52,330 --> 00:49:53,540 >> BONE. 1011 00:49:53,540 --> 00:49:57,462 Ĉu iu havas konjekton ĉe kio la plej malbona kazo runtime de bobelo varo estas? 1012 00:49:57,462 --> 00:49:57,962 Yeah. 1013 00:49:57,962 --> 00:50:07,810 >> Publiko: Cxu estus, kiel, n fojoj n minus 1 aŭ io simila? 1014 00:50:07,810 --> 00:50:10,650 Kiel, ĉiufoje ĝi kuras, ĝi estas nur, kiel, unu interŝanĝa malpli 1015 00:50:10,650 --> 00:50:10,960 ke cxio estis. 1016 00:50:10,960 --> 00:50:12,668 >> ANDI PENG: Jes, do vi estas tute prava. 1017 00:50:12,668 --> 00:50:15,940 Kaj tiu estas kazo en kiu via respondo estis fakte pli kompleksa 1018 00:50:15,940 --> 00:50:17,240 ol la ni bezonas doni. 1019 00:50:17,240 --> 00:50:19,772 Do ĝi estas tuj run-- mi tuj viŝos ĉiu ĉi tie. 1020 00:50:19,772 --> 00:50:20,480 Ĉu ĉiu bona? 1021 00:50:20,480 --> 00:50:21,869 Ĉu mi povas viŝi ĉi? 1022 00:50:21,869 --> 00:50:22,368 BONE. 1023 00:50:22,368 --> 00:50:27,904 1024 00:50:27,904 --> 00:50:30,320 Vi tuj kuros tra n tempoj la unua fojo, dekstra? 1025 00:50:30,320 --> 00:50:33,200 Kaj ili tuj kuras tra n minus 1 duafoje, dekstra? 1026 00:50:33,200 --> 00:50:37,130 Kaj tiam vi tuj daŭre irante, n mia 2, kaj tiel plu. 1027 00:50:37,130 --> 00:50:40,210 David faradis tion en prelego, kie, se vi aldonis ĉiujn tiujn valorojn, 1028 00:50:40,210 --> 00:50:48,080 vi ricevas ion ke estas like-- yeah-- super 2, kiuj esence nur reduktas 1029 00:50:48,080 --> 00:50:49,784 malsupren al n kvadratoj. 1030 00:50:49,784 --> 00:50:51,700 Vi tuj ricevos weird frakcio en tie. 1031 00:50:51,700 --> 00:50:53,892 Kaj tiel nur scias ke la n kvadratoj ĉiam 1032 00:50:53,892 --> 00:50:55,350 havas prioritaton super la frakcio. 1033 00:50:55,350 --> 00:50:58,450 Kaj tiel en tiu kazo, la plej malbona ekzekuto estus N kvadrato. 1034 00:50:58,450 --> 00:51:00,210 Se ĝi estis en malsupreniranta ordo, pensu, vi 1035 00:51:00,210 --> 00:51:02,530 devi fari interŝanĝa ĉiu ununura tempo. 1036 00:51:02,530 --> 00:51:05,170 >> Kio estus, potenciale, la plej bona kazo ekzekuto? 1037 00:51:05,170 --> 00:51:08,580 Ni nur diras, se la listo estis jam en ordo, kia estus la ekzekuto estu? 1038 00:51:08,580 --> 00:51:09,565 >> Publiko: n. 1039 00:51:09,565 --> 00:51:10,690 ANDI PENG: Ĝi estas n, precize. 1040 00:51:10,690 --> 00:51:11,600 Kaj kial estas ĝi n? 1041 00:51:11,600 --> 00:51:13,850 Publiko: Ĉar vi ĵus devas kontroli sur ĉiu unufoje. 1042 00:51:13,850 --> 00:51:14,770 ANDI PENG: Ekzakte. 1043 00:51:14,770 --> 00:51:17,150 Do en la plej bona ebla ekzekuto, se tiu listo estis jam 1044 00:51:17,150 --> 00:51:20,270 sorted-- diru 1, 2, 3, 4-- vi simple iri tra, vi devus kontroli, 1045 00:51:20,270 --> 00:51:21,720 vi vidus, ho, ili ĉiuj pan eksteren. 1046 00:51:21,720 --> 00:51:22,636 Mi ne devis interŝanĝi. 1047 00:51:22,636 --> 00:51:23,370 Mi faris. 1048 00:51:23,370 --> 00:51:26,500 Do en tiu kazo, estas nur n aŭ la nombro de paŝoj vi ĵus 1049 00:51:26,500 --> 00:51:29,870 devis kontroli en la unua listo. 1050 00:51:29,870 --> 00:51:33,990 >> Kaj poste, ni nun trafis inserción varo, kie 1051 00:51:33,990 --> 00:51:39,260 la algoritmo estas esence dividi ĝi enen ordo kaj unsorted porcion. 1052 00:51:39,260 --> 00:51:42,810 Kaj tiam unu post alia, la unsorted valoroj 1053 00:51:42,810 --> 00:51:46,880 enigita en iliajn taŭga pozicioj en la komenco de la listo. 1054 00:51:46,880 --> 00:51:52,120 >> Do ekzemple, ni havas listo de 3, 5, 2, 6, 4 denove. 1055 00:51:52,120 --> 00:51:54,750 Ni scias ke ĝi estas aktuale unsorted ĉar ni ĵus 1056 00:51:54,750 --> 00:51:57,030 komenciĝis rigardi. 1057 00:51:57,030 --> 00:52:00,610 Ni rigardu kaj ni scias ke la unua valoro estas ordigataj ĉu ne? 1058 00:52:00,610 --> 00:52:04,190 Se vi nur rigardas tabelo de grandeco, komprenu ke ĝi estas ordo. 1059 00:52:04,190 --> 00:52:08,230 >> Tial ni scias ke la aliaj kvar estas unsorted. 1060 00:52:08,230 --> 00:52:10,980 Ni iras tra kaj ni vidas ke valoro. 1061 00:52:10,980 --> 00:52:11,730 Ni reiru. 1062 00:52:11,730 --> 00:52:13,130 Vidu ke valoro de 5? 1063 00:52:13,130 --> 00:52:14,110 Ni rigardu ĝin. 1064 00:52:14,110 --> 00:52:15,204 Ni komparu ĝin al 3. 1065 00:52:15,204 --> 00:52:17,870 Ni scias ke ĝi estas pli granda ol 3, do ni scias ke tio estas ordo. 1066 00:52:17,870 --> 00:52:22,940 Do ni nun scias ke la unuaj du estas ordo kaj la lastaj tri ne. 1067 00:52:22,940 --> 00:52:24,270 >> Ni rigardu 2. 1068 00:52:24,270 --> 00:52:25,720 Ni unue kontroli ĝin per 5. 1069 00:52:25,720 --> 00:52:26,700 Ĉu malpli ol 5? 1070 00:52:26,700 --> 00:52:27,240 Ne estas. 1071 00:52:27,240 --> 00:52:29,510 Do ni devas teni rigardante malsupren. 1072 00:52:29,510 --> 00:52:30,940 Tiam vi kontrolu 2 for 3. 1073 00:52:30,940 --> 00:52:31,850 Ĉu malpli ol? 1074 00:52:31,850 --> 00:52:32,350 No. 1075 00:52:32,350 --> 00:52:35,430 Do vi konas 2 devas esti enmetitaj en la fronto kaj 3 kaj 5 1076 00:52:35,430 --> 00:52:38,200 ambaŭ devas esti puŝitaj eksteren. 1077 00:52:38,200 --> 00:52:42,190 Ĉu ĉi denove kun 6 kaj 4. 1078 00:52:42,190 --> 00:52:48,962 Kaj ni simple observu kontrolanta esence, kie ni nur kontroli, kontroli, kontroli. 1079 00:52:48,962 --> 00:52:51,170 Kaj ĝis ĝi estas en la dekstra pozicion, ni ia simple 1080 00:52:51,170 --> 00:52:54,890 enmeti ĝin en la ĝusta pozicio, kio estas kie la nomo de ĝi venis de. 1081 00:52:54,890 --> 00:52:59,830 >> Do tio estas nur la algoritmo, _pseudocode_ per, ia, 1082 00:52:59,830 --> 00:53:04,990 sur kiel ni devus apliki inserción varon. 1083 00:53:04,990 --> 00:53:05,954 _Pseudocode_ Estas tie. 1084 00:53:05,954 --> 00:53:06,620 Estas ĉio rete. 1085 00:53:06,620 --> 00:53:10,720 Neniu ĉagrenoj se vi uloj estas provas kopii tiun malsupren. 1086 00:53:10,720 --> 00:53:14,500 Do denove sama question-- kio estus la plej bona kaj plej malbonaj runtimes 1087 00:53:14,500 --> 00:53:16,120 por inserción varo? 1088 00:53:16,120 --> 00:53:17,750 Ĝi estas tre simila al la lasta demando. 1089 00:53:17,750 --> 00:53:20,479 Mi donos al vi infanoj, kiel, 30 sekundoj pripensi ĉi tiel. 1090 00:53:20,479 --> 00:53:47,150 1091 00:53:47,150 --> 00:53:50,071 >> OK Ĉu iu volas donu al mi la plej malbona ekzekuto? 1092 00:53:50,071 --> 00:53:50,570 Yeah. 1093 00:53:50,570 --> 00:53:51,490 >> Publiko: n kvadratoj. 1094 00:53:51,490 --> 00:53:52,573 >> ANDI PENG: Ĝi estas n kvadratoj. 1095 00:53:52,573 --> 00:53:53,730 Kaj kial ĝi n kvadratoj? 1096 00:53:53,730 --> 00:53:57,562 >> Publiko: Ĉar en inversa ordo, vi havas 1097 00:53:57,562 --> 00:54:02,619 iri tra n × n, kio is-- 1098 00:54:02,619 --> 00:54:03,660 ANDI PENG: Jes, ĝuste. 1099 00:54:03,660 --> 00:54:06,610 Do samon kiel en la bobelo varon. 1100 00:54:06,610 --> 00:54:08,720 Se la listo estas en malkreskanta ordo, vi estas 1101 00:54:08,720 --> 00:54:11,240 tuj devas kontroli unuan fojon. 1102 00:54:11,240 --> 00:54:13,470 Kaj tiam kun ĉiu aldona valoro, vi estas 1103 00:54:13,470 --> 00:54:16,390 tuj devas kontroli ĝin kontraŭ ĉiu unuopa valoro, dekstra? 1104 00:54:16,390 --> 00:54:20,290 Kaj do entute, vi tuj faros n pass fojojn alia n okazintajxon, kiun 1105 00:54:20,290 --> 00:54:21,750 estas n kvadratoj. 1106 00:54:21,750 --> 00:54:22,860 Kio pri la plej bona kazo? 1107 00:54:22,860 --> 00:54:24,360 Yeah. 1108 00:54:24,360 --> 00:54:28,840 >> Publiko: n minus 1, ĉar la unua unu estas jam kvadrato. 1109 00:54:28,840 --> 00:54:30,270 >> ANDI PENG: Do, fermo. 1110 00:54:30,270 --> 00:54:31,850 La respondo fakte estas n. 1111 00:54:31,850 --> 00:54:37,189 Ĉar dum la unua estas ordigataj gxi ne actually-- ĝi 1112 00:54:37,189 --> 00:54:38,980 ni nur lucked ekstere, en ke ekzemple, ke 2 1113 00:54:38,980 --> 00:54:40,930 pasis al esti la plej malgranda nombro. 1114 00:54:40,930 --> 00:54:43,680 Sed tio ne ĉiam la kazo. 1115 00:54:43,680 --> 00:54:48,040 Se 2 estas jam ordo en la komenco sed vi rigardi kaj ekzistas 1 tie, 1116 00:54:48,040 --> 00:54:49,144 la 1 tuj pusxigxas ĝin. 1117 00:54:49,144 --> 00:54:51,060 Kaj ĝi tuj finos estante ekfrapita anyways. 1118 00:54:51,060 --> 00:54:56,250 >> Do en la plej bona kazo scenaro, ĝi estas vere nur tuj estos n. 1119 00:54:56,250 --> 00:54:59,090 Se vi havas 1, 2, 3, 4, 5, 6, 7, 8, vi estas 1120 00:54:59,090 --> 00:55:00,940 tuj kuri tra ke tutan liston iam 1121 00:55:00,940 --> 00:55:03,430 por kontroli ĉu ĉio estas bone. 1122 00:55:03,430 --> 00:55:07,390 Estas ĉiuj klaraj kurado tempoj de selektado tiel? 1123 00:55:07,390 --> 00:55:09,960 Mi scias mi iros tra tiuj vere rapida. 1124 00:55:09,960 --> 00:55:13,330 Sed ĝuste scias ke se vi konas la ĝeneralaj konceptoj, vi devus esti bona. 1125 00:55:13,330 --> 00:55:16,070 BONE. 1126 00:55:16,070 --> 00:55:19,790 Do mi nur doni vi infanoj eble, kiel, minuton por paroli al viaj najbaroj 1127 00:55:19,790 --> 00:55:21,890 sur kio estas nur iuj de la ĉefaj diferencoj 1128 00:55:21,890 --> 00:55:23,540 inter tiuj tipoj de varoj. 1129 00:55:23,540 --> 00:56:24,571 1130 00:56:24,571 --> 00:56:25,570 Ni iros super kiuj baldaŭ. 1131 00:56:25,570 --> 00:56:26,444 Publiko: Oh, OK. 1132 00:56:26,444 --> 00:56:27,320 ANDI PENG: Yeah. 1133 00:56:27,320 --> 00:56:28,380 BONE. 1134 00:56:28,380 --> 00:56:33,420 Cool, ni reconvene kiel klaso. 1135 00:56:33,420 --> 00:56:34,330 BONE. 1136 00:56:34,330 --> 00:56:37,579 Do tiu estis speco de senfinan demandon en la senco 1137 00:56:37,579 --> 00:56:39,120 ke restas multaj de respondoj al ili. 1138 00:56:39,120 --> 00:56:40,746 Kaj ni iros super kelkaj el ili mallonge. 1139 00:56:40,746 --> 00:56:43,411 Mi nur volis akiri vin infanoj pensante pri kio diferencis 1140 00:56:43,411 --> 00:56:44,530 ĉiuj tri tipoj de varoj. 1141 00:56:44,530 --> 00:56:47,440 Mi auxdis, ankaŭ, granda question-- kion merge varo fari? 1142 00:56:47,440 --> 00:56:50,110 Granda demando, ĉar tio estas kion ni kovrante sekva. 1143 00:56:50,110 --> 00:56:52,850 >> Do kunfandi speco estas la unu varo kiun funkcioj 1144 00:56:52,850 --> 00:56:56,100 tre alimaniere de la aliaj varoj. 1145 00:56:56,100 --> 00:56:58,180 Kiel vi uloj povas Konsideru , David fari tion demo 1146 00:56:58,180 --> 00:57:01,130 kie li ricevis ĉiujn malvarmeta bruoj de vidanta kiel kunfandi 1147 00:57:01,130 --> 00:57:04,010 ia kuris, kiel, senfine rapide ol la aliaj du tipoj? 1148 00:57:04,010 --> 00:57:04,510 BONE. 1149 00:57:04,510 --> 00:57:07,580 Do tio estas ĉar merge ia implementa disfenditajn 1150 00:57:07,580 --> 00:57:11,020 kaj konkeri koncepto kiun ni havas parolis multe en lekcio. 1151 00:57:11,020 --> 00:57:14,550 En tiu senco, ke ni ŝatas labori inteligenta, ne pli malfacila, kiam oni dividas 1152 00:57:14,550 --> 00:57:18,120 kaj konkeri problemojn, kaj rompi ilin malsupren, kaj tiam meti ilin kune, 1153 00:57:18,120 --> 00:57:19,930 bonaĵoj ĉiam okazos. 1154 00:57:19,930 --> 00:57:21,960 >> Do la vojo ke kunfandi speco esence laboras 1155 00:57:21,960 --> 00:57:24,660 estas ke ĝi dividas de unsorted tabelo duono. 1156 00:57:24,660 --> 00:57:26,500 Kaj tiam ĝi havas du duonojn de tabeloj. 1157 00:57:26,500 --> 00:57:28,220 Kaj ĝi simple ordigas tiuj du duonoj. 1158 00:57:28,220 --> 00:57:31,750 Ĝi nur tenas dividadon en duono, en duono, duono ĝis ĉio estas aranĝita 1159 00:57:31,750 --> 00:57:33,680 kaj tiam rikure metas ĝin ĉiuj kune. 1160 00:57:33,680 --> 00:57:36,550 >> Do jen vere abstrakta. 1161 00:57:36,550 --> 00:57:38,750 Do tio estas nur iom de _pseudocode_. 1162 00:57:38,750 --> 00:57:41,040 Ĉu tio havas sencon en la vojo ĝi estas kurante? 1163 00:57:41,040 --> 00:57:43,870 Do ni nur diros vi havas tabelo de n eroj, dekstra? 1164 00:57:43,870 --> 00:57:45,450 Se n estas malpli ol 2, vi povas reveni. 1165 00:57:45,450 --> 00:57:49,040 Ĉar vi scias ke se estas nur unu aferon, tio devas esti ordo. 1166 00:57:49,040 --> 00:57:52,600 Alie, vi ordigi la maldekstra duono, kaj tiam vi ordigi la dekstra duono, 1167 00:57:52,600 --> 00:57:54,140 kaj tiam vi kunigi. 1168 00:57:54,140 --> 00:57:56,979 >> Do dum kiu aspektas vere facila, en realeco, pensante ke estas 1169 00:57:56,979 --> 00:58:00,270 speco de malfacila. Ĉar vi estas kiel, Nu, tio estas ia kuranta sur sin. 1170 00:58:00,270 --> 00:58:00,769 Dekstra? 1171 00:58:00,769 --> 00:58:02,430 Ĝi estas kuranta sur sin. 1172 00:58:02,430 --> 00:58:05,479 Do en tiu senco, Davido tuŝis sur rekursio en klaso. 1173 00:58:05,479 --> 00:58:07,270 Kaj tio estas koncepto ni parolos pri pli. 1174 00:58:07,270 --> 00:58:11,430 Estas tiu ĉi, tiujn du liniojn tie, fakte estas nur la programo 1175 00:58:11,430 --> 00:58:13,860 rakontanta ŝin kuri mem kun malsamaj enigo. 1176 00:58:13,860 --> 00:58:17,230 Do anstataŭ kuri kun la tuteco de n eroj, 1177 00:58:17,230 --> 00:58:20,530 vi povas rompi ĝin malsupren en la maldekstra duono kaj la dekstran duonon 1178 00:58:20,530 --> 00:58:22,680 kaj poste ruli ĝin denove. 1179 00:58:22,680 --> 00:58:26,050 >> Kaj poste ni rigardas ĝin vide, ĉar mi vida lernanto. 1180 00:58:26,050 --> 00:58:27,270 Ĝi funkcias bone por mi. 1181 00:58:27,270 --> 00:58:29,890 Do ni rigardu vida ekzemplo tie. 1182 00:58:29,890 --> 00:58:36,237 >> Supozu ke ni havas aron, ses elementoj, 3, 5, 2, 6, 4, 1, ne ordo. 1183 00:58:36,237 --> 00:58:37,820 Bone, ke ekzistas multe en tiu paĝo. 1184 00:58:37,820 --> 00:58:43,179 Do se vi infanoj povas rigardi la unua ŝtupo tie, 3, 5, 2, 6, 4, 1, 1185 00:58:43,179 --> 00:58:44,220 vi povas fendi ĝin en duono. 1186 00:58:44,220 --> 00:58:45,976 Vi havas 3, 5, 2, 6, 4, 1. 1187 00:58:45,976 --> 00:58:48,850 Vi scias, ke tiuj aren't-- vi ne scias se ili estas ordo aŭ ne, 1188 00:58:48,850 --> 00:58:52,517 do vi tenas rompante ilin malsupren, en la duono, en duono, en duono, ĝis fine, 1189 00:58:52,517 --> 00:58:53,600 vi nur havas unu elemento. 1190 00:58:53,600 --> 00:58:56,790 Kaj unu elemento estas ĉiam ordo, ĉu ne? 1191 00:58:56,790 --> 00:59:01,560 >> Do ni scias ke 3, 5, 2, 4, 6, 1, aparte, estas ordo. 1192 00:59:01,560 --> 00:59:05,870 Kaj nun ni povas meti ilin reen kune. 1193 00:59:05,870 --> 00:59:07,510 Do ni scias la 3, 5. 1194 00:59:07,510 --> 00:59:08,510 Ni metu tiujn kune. 1195 00:59:08,510 --> 00:59:09,617 Ni scias, ke tio ordo. 1196 00:59:09,617 --> 00:59:10,450 La 2 la ankoraŭ tie. 1197 00:59:10,450 --> 00:59:11,830 Ni povas meti la 4 kaj la 6 kune. 1198 00:59:11,830 --> 00:59:13,996 Ni scias ke tiu estas ordigataj do ni enkalkulu kune. 1199 00:59:13,996 --> 00:59:14,940 Kaj la 1 estas tie. 1200 00:59:14,940 --> 00:59:18,720 >> Kaj tiam vi simple rigardi tiuj du duonoj tie. 1201 00:59:18,720 --> 00:59:21,300 Vi havas la 3, 5, 2, 2, 3, 5. 1202 00:59:21,300 --> 00:59:23,465 Vi povas simple kompari la komencante de ĉio. 1203 00:59:23,465 --> 00:59:26,340 Ĉar vi scias, ke tiu estas ordigita kaj vi scias ke tio estas ordo. 1204 00:59:26,340 --> 00:59:29,360 Do tiam vi eĉ ne devos kompari la 5, vi simple komparas la 3. 1205 00:59:29,360 --> 00:59:32,070 Kaj la 2 estas malpli ol 3, Do vi scios 2 devas iri en la fino. 1206 00:59:32,070 --> 00:59:33,120 >> Samon tie. 1207 00:59:33,120 --> 00:59:34,740 La 1 devas iri tien. 1208 00:59:34,740 --> 00:59:37,330 Kaj tiam kiam vi iros meti tiuj du valoroj kune, 1209 00:59:37,330 --> 00:59:39,950 vi scias, ke tiu estas ordigita kaj vi scias ke tio estas ordo. 1210 00:59:39,950 --> 00:59:43,240 Do tiam la 1 kaj la 2, la 1 estas malpli ol 2. 1211 00:59:43,240 --> 00:59:45,570 Kiu rakontas al vi ke la 1 iru sur la fino de ĉi 1212 00:59:45,570 --> 00:59:47,480 sen eĉ rigardante 3 aŭ 5. 1213 00:59:47,480 --> 00:59:50,100 Kaj tiam la 4, vi povas simple kontroli, ĝi iras bone tie. 1214 00:59:50,100 --> 00:59:51,480 Vi ne devas rigardi la 5. 1215 00:59:51,480 --> 00:59:52,570 Sama afero kun la 6. 1216 00:59:52,570 --> 00:59:55,860 Vi scias ke la 6-- ĝi ĵus ne bezonas esti rigardis. 1217 00:59:55,860 --> 00:59:57,870 >> Kaj tiel en tiu maniero, vi estas nur savanta vin mem 1218 00:59:57,870 --> 00:59:59,526 multajn ŝtupojn kiam vi komparas. 1219 00:59:59,526 --> 01:00:02,150 Vi ne devas kompari ĉiun elemento kontraŭ aliaj elementoj. 1220 01:00:02,150 --> 01:00:05,230 Vi nur kompari kontraŭ tiuj ke vi devas kompari ĝin kontraŭ. 1221 01:00:05,230 --> 01:00:06,870 Do jen speco de abstrakta koncepto. 1222 01:00:06,870 --> 01:00:10,540 Neniu ĉagrenoj se ĝi ne estas tute frapanta vi pravas ankoraŭ. 1223 01:00:10,540 --> 01:00:14,740 Sed ĝenerale, tiu estas kiel merge varo funkcias. 1224 01:00:14,740 --> 01:00:17,750 Demandojn, rapidaj demandoj, antaŭ mi pluiru? 1225 01:00:17,750 --> 01:00:18,550 Yeah. 1226 01:00:18,550 --> 01:00:22,230 >> Publiko: Do ​​vi diras, ke vi prenas la 1, kaj tiam la 4 kaj la 6 1227 01:00:22,230 --> 01:00:23,860 kaj metis ilin en. 1228 01:00:23,860 --> 01:00:26,800 Do ne those-- ne vi rigardas ilin 1229 01:00:26,800 --> 01:00:28,544 kiel apartaj elementoj, ne kiel la tuto? 1230 01:00:28,544 --> 01:00:29,210 ANDI PENG: Yeah. 1231 01:00:29,210 --> 01:00:32,020 Do kio okazas estas ke vi resume 1232 01:00:32,020 --> 01:00:33,650 kreas novegan tabelo. 1233 01:00:33,650 --> 01:00:36,690 Do vi scias ke, tie, mi havas du tabeloj de amplekso 3, dekstra? 1234 01:00:36,690 --> 01:00:39,600 Do vi scias ke mia ordo tabelo bezonas havi ses elementoj. 1235 01:00:39,600 --> 01:00:42,270 Do vi simple kreu nova kvanto da memoro. 1236 01:00:42,270 --> 01:00:44,270 Do vi estas ia kiel esti malŝparema de memoro, 1237 01:00:44,270 --> 01:00:46,186 sed tio ne gravas ĉar ĝi estas tiel malgranda. 1238 01:00:46,186 --> 01:00:48,590 Do oni rigardas la 1 kaj vi rigardas la 2. 1239 01:00:48,590 --> 01:00:50,770 Kaj vi scias, ke la 1 estas malpli ol 2. 1240 01:00:50,770 --> 01:00:53,840 Do vi scias ke 1 devus iri en la komenco de ĉiu el tiuj. 1241 01:00:53,840 --> 01:00:55,850 >> Vi eĉ ne bezonas rigardu la 3 kaj la 5. 1242 01:00:55,850 --> 01:00:57,400 Do vi scias 1 iras tien. 1243 01:00:57,400 --> 01:00:59,300 Tiam vi esence detranĉus la 1. 1244 01:00:59,300 --> 01:01:00,370 Ĝi estas, kiel, mortintojn ni. 1245 01:01:00,370 --> 01:01:03,690 Tiam ni nur havas 2, 3, 5, kaj tiam 4 kaj 6. 1246 01:01:03,690 --> 01:01:06,270 Kaj tiam vi scios, ke vi kompari la 4 kaj la 2, 1247 01:01:06,270 --> 01:01:07,560 ho, la 2 devus iri tien. 1248 01:01:07,560 --> 01:01:09,685 Do vi Plop la 2 malsupren, vi haki ĝin. 1249 01:01:09,685 --> 01:01:12,060 Tial vi nur havas la 3 kaj la 5 en la 4 kaj la 6. 1250 01:01:12,060 --> 01:01:14,650 Kaj vi simple observu batante ĝin ĝis vi metis ilin en la tabelo. 1251 01:01:14,650 --> 01:01:17,110 >> Publiko: Do ​​vi estas nur ĉiam komparante la [inaudible]? 1252 01:01:17,110 --> 01:01:17,710 >> ANDI PENG: Ekzakte. 1253 01:01:17,710 --> 01:01:19,590 Do en tiu senco, ke vi estas nur komparante, esence, 1254 01:01:19,590 --> 01:01:21,240 unu numeron kontraŭ la alia nombro. 1255 01:01:21,240 --> 01:01:22,990 Kaj ĉar vi scias ke ĝi estas ordo, vi 1256 01:01:22,990 --> 01:01:24,350 ne devas rigardi tra ĉiuj la nombroj. 1257 01:01:24,350 --> 01:01:25,870 Vi nur devas rigardi la antauxa. 1258 01:01:25,870 --> 01:01:27,582 Kaj tiam vi povas simple Plop ilin malsupren, ĉar vi scias 1259 01:01:27,582 --> 01:01:29,640 apartenas kie bezonas aparteni. 1260 01:01:29,640 --> 01:01:31,030 Yeah. 1261 01:01:31,030 --> 01:01:32,920 Bona demando. 1262 01:01:32,920 --> 01:01:35,290 >> Kaj tiam se iu el vi estas iom ambicia, 1263 01:01:35,290 --> 01:01:38,660 bonvolu rigardi tiun kodon. 1264 01:01:38,660 --> 01:01:40,680 Tiu estas fakte la fizika efektivigo 1265 01:01:40,680 --> 01:01:42,150 de kiel ni skribus merge varon. 1266 01:01:42,150 --> 01:01:44,070 Kaj vi povas vidi, estas tre mallongaj. 1267 01:01:44,070 --> 01:01:46,310 Sed la ideoj malantaŭ ĝi estas sufiĉe kompleksa. 1268 01:01:46,310 --> 01:01:50,865 Do se vi sentas kiel desegni ĉi ekstere en via hejmtasko ĉinokte, bonvolu. 1269 01:01:50,865 --> 01:01:54,050 1270 01:01:54,050 --> 01:01:54,740 >> BONE. 1271 01:01:54,740 --> 01:01:58,070 Do ankaux David transiris ĉi en prelego. 1272 01:01:58,070 --> 01:02:00,660 Kio estas la plej bona kazo runtimes, plej malbona kazo runtimes, 1273 01:02:00,660 --> 01:02:05,680 kaj la atendata runtimes de merge varo? 1274 01:02:05,680 --> 01:02:07,260 Paro sekundoj pripensi. 1275 01:02:07,260 --> 01:02:11,198 Tio estas sufiĉe malfacila, sed ia intuicia se vi pensas pri ĝi. 1276 01:02:11,198 --> 01:02:20,090 1277 01:02:20,090 --> 01:02:23,054 Bone. 1278 01:02:23,054 --> 01:02:25,269 >> Spektantaro: Ĉu la plej malbona kazo n log n? 1279 01:02:25,269 --> 01:02:26,060 ANDI PENG: Ekzakte. 1280 01:02:26,060 --> 01:02:29,380 Kaj kial n log n. 1281 01:02:29,380 --> 01:02:32,230 >> Spektantaro: Ĉu ne pro tio iĝas eksponente pli rapida, 1282 01:02:32,230 --> 01:02:35,390 do ĝi estas kiel funkcio de tiu anstataŭ ĝuste simple esti n 1283 01:02:35,390 --> 01:02:37,529 kvadrato aŭ ion? 1284 01:02:37,529 --> 01:02:38,320 ANDI PENG: Ekzakte. 1285 01:02:38,320 --> 01:02:40,750 Do la kialo kial la ekzekuto sur ĉi estas n logo 1286 01:02:40,750 --> 01:02:44,310 n estas because-- kio estas vi faras en ĉiu de ĉi tiuj paŝoj? 1287 01:02:44,310 --> 01:02:46,190 Vi nur batante ĝin en duono, dekstra? 1288 01:02:46,190 --> 01:02:48,750 Kaj tial kiam ni faras la log, cxiuj ĝi estas faranta 1289 01:02:48,750 --> 01:02:53,150 estas dividanta problemo en duono, en duono, en duono, en pli duonoj. 1290 01:02:53,150 --> 01:02:56,430 Kaj en tiu senso, vi povas ia de forigi la lineara modelo 1291 01:02:56,430 --> 01:02:57,510 ke ni uzis. 1292 01:02:57,510 --> 01:03:00,254 Ĉar kiam vi haki aferojn en duono, estas loglibro. 1293 01:03:00,254 --> 01:03:02,420 Tio estas nur la matematika maniero reprezenti ĝin. 1294 01:03:02,420 --> 01:03:06,310 >> Kaj poste fine, fine, vi estas nur faranta lastan enirpermesilon tra 1295 01:03:06,310 --> 01:03:07,930 meti cxiuj en ordo, ĉu ne? 1296 01:03:07,930 --> 01:03:10,330 Kaj do se vi simple devas kontroli unu aferon, jen n. 1297 01:03:10,330 --> 01:03:13,420 Kaj tiel vi estas speco de multiplikante la du kune. 1298 01:03:13,420 --> 01:03:17,660 Do estas kiel vi hvas tiu fina kontroli por n malsupren tie kun log de n 1299 01:03:17,660 --> 01:03:18,390 supren tie. 1300 01:03:18,390 --> 01:03:21,060 Kaj se vi multiplikas ili, kiu estas n logo n. 1301 01:03:21,060 --> 01:03:26,100 >> Kaj tial la plej bona kazo kaj plej malbona kazo kaj atendita ĉiuj n log n. 1302 01:03:26,100 --> 01:03:27,943 Estas ankaŭ kiel alia speco. 1303 01:03:27,943 --> 01:03:30,090 Estas kiel selektado speco en la senco ke ĝi 1304 01:03:30,090 --> 01:03:32,131 Negrave kion via listo estas, ĝi estas nur irante 1305 01:03:32,131 --> 01:03:34,801 fari la samon ĉiu ununura tempo. 1306 01:03:34,801 --> 01:03:35,300 BONE. 1307 01:03:35,300 --> 01:03:39,950 Do kiel vi uloj povas vidi, eĉ kvankam la varoj kiujn ni iris through-- n 1308 01:03:39,950 --> 01:03:41,660 kvadrato, ĝi ne estas tre efika. 1309 01:03:41,660 --> 01:03:47,060 Kaj eĉ tiu n log n estas ne la plej efika. 1310 01:03:47,060 --> 01:03:49,720 Se vi uloj estas scivolema, ekzistas ia meĥanismoj 1311 01:03:49,720 --> 01:03:54,310 kiuj estas tiel efikaj ke ili estas preskaŭ esence plata en ekzekuto. 1312 01:03:54,310 --> 01:03:55,420 >> Vi havas kelkajn log n a. 1313 01:03:55,420 --> 01:03:58,190 Vi havas kelkajn log log n a. 1314 01:03:58,190 --> 01:04:00,330 Ni ne tuŝi sur ilin en ĉi klaso nun. 1315 01:04:00,330 --> 01:04:02,663 Sed se vi uloj estas scivolema, bonvolu google, kio estas 1316 01:04:02,663 --> 01:04:04,392 la plej efika ordigado mekanismojn. 1317 01:04:04,392 --> 01:04:06,350 Mi ne scias, estas kelkaj vere amuza, ili 1318 01:04:06,350 --> 01:04:09,860 like-- ekzistas kelkaj vere amuza kiuj homoj faras. 1319 01:04:09,860 --> 01:04:12,210 Kaj vi scivolas kiel iam pensis pri tio. 1320 01:04:12,210 --> 01:04:15,730 Do Google, se vi havas iuj neutiligata tempo, sur, kio estas amuzaj manieroj 1321 01:04:15,730 --> 01:04:17,730 ke people-- tiel kiel efika ways-- personoj 1322 01:04:17,730 --> 01:04:20,371 povis efektivigi varojn. 1323 01:04:20,371 --> 01:04:20,870 BONE. 1324 01:04:20,870 --> 01:04:22,880 Kaj tie estas nur oportuna iom diagramo. 1325 01:04:22,880 --> 01:04:26,850 Mi konas vin ĉiujn, antaŭ tiu kvizo 0, estos en via ĉambro probable provas 1326 01:04:26,850 --> 01:04:27,960 enmemorigi ke. 1327 01:04:27,960 --> 01:04:30,940 Do jen bela en tie por vi uloj. 1328 01:04:30,940 --> 01:04:37,120 Nur ne forgesu la logiko ke made-- kial tiuj nombroj estis okazanta. 1329 01:04:37,120 --> 01:04:39,870 Se vi ĉiam perdita, nur fari certe vin scias kion la varoj estas. 1330 01:04:39,870 --> 01:04:40,820 Kaj vi povas kuri tra ilin en via menso 1331 01:04:40,820 --> 01:04:42,903 ekkompreni kial tiuj respondoj estas tiuj respondoj. 1332 01:04:42,903 --> 01:04:46,250 1333 01:04:46,250 --> 01:04:47,600 >> Bone. 1334 01:04:47,600 --> 01:04:49,680 Do ni tuj movas sur, fine, al serĉado. 1335 01:04:49,680 --> 01:04:51,638 Ĉar kiel tiuj de vi kiuj legis la pset, 1336 01:04:51,638 --> 01:04:55,175 serĉado estas ankaŭ parto de tiu semajno problemo aroj. 1337 01:04:55,175 --> 01:04:57,300 Vi estos petita implementar du tipoj de serĉoj. 1338 01:04:57,300 --> 01:05:00,070 Unu estas lineara serĉo kaj unu estas duuma serĉo. 1339 01:05:00,070 --> 01:05:01,760 >> Do la linia serĉo estas sufiĉe facila. 1340 01:05:01,760 --> 01:05:04,070 Vi nur volas serĉi elemento de listo por vidi se vi ricevas ĝin. 1341 01:05:04,070 --> 01:05:05,444 Vi nur devas persisti tra. 1342 01:05:05,444 --> 01:05:08,170 Kaj se ĝi egalas io, vi povas simple reveni, vero? 1343 01:05:08,170 --> 01:05:10,890 Sed kiu ni estas plej interesas parolas 1344 01:05:10,890 --> 01:05:14,550 estas duuma serĉo, dekstra, kiu estas la dividu kaj konkeru mekanismo kiu 1345 01:05:14,550 --> 01:05:18,190 David pruvante en prelego. 1346 01:05:18,190 --> 01:05:20,810 >> Memoru la telefono libro ekzemplo ke li tenas disvastigante, 1347 01:05:20,810 --> 01:05:23,960 kiu li ia baraktis iom sur ĉi tiu pasinta jaro, 1348 01:05:23,960 --> 01:05:27,530 kie oni dividas la problemon en duono, en duono, en duono, denove kaj denove, 1349 01:05:27,530 --> 01:05:30,730 ĝis vi trovos kion vi serĉas? 1350 01:05:30,730 --> 01:05:33,727 Kaj vi havas la ekzekuto de tiu tiel. 1351 01:05:33,727 --> 01:05:35,810 Kaj vi povas vidi, estas signife pli efika 1352 01:05:35,810 --> 01:05:39,080 ol ajna alia tipo de serĉo. 1353 01:05:39,080 --> 01:05:41,880 >> Do la maniero ke ni irus pri efektivigado duuma serĉo 1354 01:05:41,880 --> 01:05:46,510 estas, se ni havis tabelo, indekso 0 ĝis 6, sep elementoj, 1355 01:05:46,510 --> 01:05:49,790 ni povas rigardi en la mezo, right-- bedaŭras, se nia demando first-- 1356 01:05:49,790 --> 01:05:53,840 se ni volas fari la demandon de, faras la tabelo enhavas la elementon de 7, 1357 01:05:53,840 --> 01:05:56,840 evidente, esti homoj, kaj havante tia malgranda tabelo, facilas por ni 1358 01:05:56,840 --> 01:05:58,210 diri jes. 1359 01:05:58,210 --> 01:06:05,750 Sed la vojo al apliki duuma serĉo estus rigardi en la mezo. 1360 01:06:05,750 --> 01:06:08,020 >> Ni scias ke indekso 3 estas la mezo, ĉar ni 1361 01:06:08,020 --> 01:06:09,270 scii estas sep elementoj. 1362 01:06:09,270 --> 01:06:10,670 Kio 7 dividita per 2? 1363 01:06:10,670 --> 01:06:12,850 Vi povas gardeme tiu ekstra 1. 1364 01:06:12,850 --> 01:06:14,850 Vi havas 3 en la mezo. 1365 01:06:14,850 --> 01:06:17,590 Do estas aro de 3 egalas 7? 1366 01:06:17,590 --> 01:06:18,900 Ne estas, ĉu ne? 1367 01:06:18,900 --> 01:06:21,050 Sed ni povas fari kelkajn ĉekojn. 1368 01:06:21,050 --> 01:06:25,380 Estas tabelo de 3 malpli ol 7 aŭ estas tabelo de 3 pli granda ol 7? 1369 01:06:25,380 --> 01:06:27,240 >> Kaj ni scias, ke ĝi estas malpli ol 7. 1370 01:06:27,240 --> 01:06:30,259 Do ni scias ke, ho, ĝi devas Ne estu en la maldekstra duono. 1371 01:06:30,259 --> 01:06:32,300 Ni scias, ke ĝi devas esti en la dekstra duono, dekstra? 1372 01:06:32,300 --> 01:06:34,662 Do ni povas simple gardeme duono la tabelo. 1373 01:06:34,662 --> 01:06:36,370 Ni eĉ ne devas rigardu ĝin anymore. 1374 01:06:36,370 --> 01:06:38,711 Ĉar ni scias ke duonon de niaj problem-- 1375 01:06:38,711 --> 01:06:41,210 ni scias, ke la respondo estas en la dekstra duono de nia problemo. 1376 01:06:41,210 --> 01:06:42,580 Do ni nur rigardu tion nun. 1377 01:06:42,580 --> 01:06:44,860 >> Do nun ni rigardas la mezo de kio restas. 1378 01:06:44,860 --> 01:06:46,880 Ke indekson 5. 1379 01:06:46,880 --> 01:06:50,200 Ni faru la saman ĉeko denove kaj ni vidas ke ĝi estas pli malgranda. 1380 01:06:50,200 --> 01:06:52,050 Do ni rigardu al la maldekstra de tio. 1381 01:06:52,050 --> 01:06:53,430 Kaj tiam oni vidas ke ĉeko. 1382 01:06:53,430 --> 01:06:57,600 Ĉu la tabelo valoro je indekso 4 egala al 7? 1383 01:06:57,600 --> 01:06:58,260 Ĝi estas. 1384 01:06:58,260 --> 01:07:03,580 Do ni povas reveni vera, ĉar Ni trovis la valoron en nia listo. 1385 01:07:03,580 --> 01:07:06,738 Ĉu la vojo mi iris tra ke sencon al ĉiuj? 1386 01:07:06,738 --> 01:07:08,760 BONE. 1387 01:07:08,760 --> 01:07:11,670 Mi donos al vi infanoj eble, kiel, tri, kvar minutoj elkompreni 1388 01:07:11,670 --> 01:07:13,270 kiel _Pseudocode_ ĉi en. 1389 01:07:13,270 --> 01:07:18,070 >> Do imagu Mi petis vin skribi funkcio nomita serĉo () kiu revenis 1390 01:07:18,070 --> 01:07:20,640 valoro, Bulea valoro, Tio estas vera aŭ false-- kiel, 1391 01:07:20,640 --> 01:07:22,970 vera se vi trovis la valoro, falsa se vi ne. 1392 01:07:22,970 --> 01:07:25,230 Kaj tiam vi estis pasis en la valoro vi 1393 01:07:25,230 --> 01:07:28,410 serĉis en valoroj, kiujn estas la tabelo ho, mi definitive meti 1394 01:07:28,410 --> 01:07:29,410 ke en la malĝusta loko. 1395 01:07:29,410 --> 01:07:29,580 BONE. 1396 01:07:29,580 --> 01:07:31,829 Anyways, ke devus havi estis dekstre de valoroj. 1397 01:07:31,829 --> 01:07:36,280 Kaj tiam int n estas la nombro de elementoj en tiu tabelo. 1398 01:07:36,280 --> 01:07:39,430 Kiel vi iras pri provanta al _Pseudocode_ ke problemo en? 1399 01:07:39,430 --> 01:07:41,630 Mi donos al vi infanoj kiel tri minutojn por fari tion. 1400 01:07:41,630 --> 01:08:00,137 1401 01:08:00,137 --> 01:08:02,595 Ne, mi kredas, ke estas only-- yeah, ekzistas unu dekstra supren tie. 1402 01:08:02,595 --> 01:08:03,261 Publiko: Can I? 1403 01:08:03,261 --> 01:08:04,388 ANDI PENG: Jes, mi havas vin. 1404 01:08:04,388 --> 01:08:09,410 1405 01:08:09,410 --> 01:08:11,050 Ĉu tio funkcias? 1406 01:08:11,050 --> 01:08:12,290 Bone, mojose. 1407 01:08:12,290 --> 01:10:43,590 1408 01:10:43,590 --> 01:10:44,720 >> BONE. 1409 01:10:44,720 --> 01:10:47,630 Bone, knaboj, ni estas tuj bridi ĝin. 1410 01:10:47,630 --> 01:10:49,730 BONE. 1411 01:10:49,730 --> 01:10:54,020 Do supozu ni havas tiun belan iom tabelo kun n valoroj en gxi. 1412 01:10:54,020 --> 01:10:55,170 Mi ne eltiris la linioj. 1413 01:10:55,170 --> 01:10:58,649 Sed kiel volus ni iras pri provas skribi ĉi? 1414 01:10:58,649 --> 01:11:00,440 Ĉu iu volas donu al mi la unua linio? 1415 01:11:00,440 --> 01:11:02,814 Se vi volas doni al mi la unua linio de ĉi _pseudocode_. 1416 01:11:02,814 --> 01:11:06,563 1417 01:11:06,563 --> 01:11:08,430 >> Spektantaro: [inaudible] 1418 01:11:08,430 --> 01:11:10,138 Spektantaro: Vi volus persisti through-- 1419 01:11:10,138 --> 01:11:11,094 Spektantaro: Nur alia por buklo? 1420 01:11:11,094 --> 01:11:11,760 Publiko: --for. 1421 01:11:11,760 --> 01:11:15,880 1422 01:11:15,880 --> 01:11:17,780 >> ANDI PENG: Do ĉi tiu estas iom malfacila. 1423 01:11:17,780 --> 01:11:23,130 Pensu about-- vi volas teni kuranta ĉi buklo 1424 01:11:23,130 --> 01:11:27,950 saciedad ĝis kiam? 1425 01:11:27,950 --> 01:11:30,819 >> Publiko: Ĝis la [inaudible] valoro egalas al tiu valoro. 1426 01:11:30,819 --> 01:11:31,610 ANDI PENG: Ekzakte. 1427 01:11:31,610 --> 01:11:33,900 Do vi povas efektive nur write-- ni povas eĉ simpligi ĝin pli. 1428 01:11:33,900 --> 01:11:35,630 Ni povas nur fari dum buklo, ĉu ne? 1429 01:11:35,630 --> 01:11:39,380 Do vi povas simple havi loop-- Ni scias ke ĝi estas momenton. 1430 01:11:39,380 --> 01:11:42,850 Sed por ĝusta nun, mi tuj diri "buklo" - tra kio? 1431 01:11:42,850 --> 01:11:46,640 Cirkla until-- kio estas nia finanta kondiĉo? 1432 01:11:46,640 --> 01:11:47,510 Mi kredas ke mi aŭdis ĝin. 1433 01:11:47,510 --> 01:11:48,530 Mi aŭdis iun diri ĝin. 1434 01:11:48,530 --> 01:11:51,255 >> Publiko: Valoroj egalas mezo. 1435 01:11:51,255 --> 01:11:52,255 ANDI PENG: Diru ĝin denove. 1436 01:11:52,255 --> 01:11:54,470 Publiko: Aŭ, ĝis la valoro vi serĉas 1437 01:11:54,470 --> 01:11:58,470 cxar estas egala al la meza valoro. 1438 01:11:58,470 --> 01:12:00,280 >> ANDI PENG: Kio se ĝi ne estas tie? 1439 01:12:00,280 --> 01:12:03,113 Kio se la valoro vi serĉas cxar estas ne fakte en tiu tabelo? 1440 01:12:03,113 --> 01:12:05,890 Spektantaro: Vi revenos 1. 1441 01:12:05,890 --> 01:12:08,850 >> ANDI PENG: Sed kion ni volas buklo ĝis se ni havas kondiĉo? 1442 01:12:08,850 --> 01:12:09,350 Yeah. 1443 01:12:09,350 --> 01:12:11,239 >> Publiko: Ĝis tie estas nur unu valoro? 1444 01:12:11,239 --> 01:12:13,530 ANDI PENG: Vi povas buklo until-- tiel vi scias ke vi estas 1445 01:12:13,530 --> 01:12:15,714 tuj havos max valoron, ĉu ne? 1446 01:12:15,714 --> 01:12:18,130 Kaj vi scias ke vi tuj havi min valoron, ĉu ne? 1447 01:12:18,130 --> 01:12:20,379 Ĉar ankaŭ, ke estas io Mi forgesis diri antaŭ, 1448 01:12:20,379 --> 01:12:22,640 ke io tio kritikaj pri duuma serĉo 1449 01:12:22,640 --> 01:12:24,182 estas ke via tabelo jam ordo. 1450 01:12:24,182 --> 01:12:26,973 Ĉar ekzistas neniu maniero fari tiu se ili estas nur hazarda valoroj. 1451 01:12:26,973 --> 01:12:29,190 Vi ne scias se unu estas pli granda ol la aliaj, ĉu ne? 1452 01:12:29,190 --> 01:12:32,720 >> Do vi scias ke via max kaj via Mins estas ĉi tie, ĉu ne? 1453 01:12:32,720 --> 01:12:35,590 Se vi tuj estos ŝanĝanta via maks en via Mins kaj la mid-- 1454 01:12:35,590 --> 01:12:38,470 ni nur supozi via mez valoro pravas here-- 1455 01:12:38,470 --> 01:12:43,910 vi tuj esence buklo ĝis via minimumo estas 1456 01:12:43,910 --> 01:12:47,510 pri la sama kiel via maks, dekstra, aŭ se via max estas ne la sama kiel via min. 1457 01:12:47,510 --> 01:12:48,040 Dekstra? 1458 01:12:48,040 --> 01:12:51,340 Ĉar kiam tiu okazas, vi scias ke vi finfine atingis la saman valoron. 1459 01:12:51,340 --> 01:12:59,135 Do vi volas buklo ĝis via min estas malpli ol aŭ egala to-- oops, 1460 01:12:59,135 --> 01:13:01,510 ne malpli ol aŭ egala al, la alia vojo around-- max estas. 1461 01:13:01,510 --> 01:13:15,110 1462 01:13:15,110 --> 01:13:16,160 >> Ĉu tio havas sencon? 1463 01:13:16,160 --> 01:13:18,810 Mi prenis kelkajn klopodoj trovi tiun rajton. 1464 01:13:18,810 --> 01:13:21,869 Sed buklo ĝis via max valoro estas esence preskaŭ malpli 1465 01:13:21,869 --> 01:13:23,410 ol aŭ egala al via minimuma, dekstra? 1466 01:13:23,410 --> 01:13:25,201 Tio estas kiam vi scias ke vi konverĝis. 1467 01:13:25,201 --> 01:13:29,290 Spektantaro: Kiam farus vian maksimuman valoro estos malpli ol la minimuma? 1468 01:13:29,290 --> 01:13:31,040 ANDI PENG: Se vi tenas ĝustigante ŝin, kion 1469 01:13:31,040 --> 01:13:32,380 estas kio ni iras esti farante en tiu. 1470 01:13:32,380 --> 01:13:33,460 Ĉu tio havas sencon? 1471 01:13:33,460 --> 01:13:35,750 Minimuma kaj max estas nur entjeroj ke ni estas probable 1472 01:13:35,750 --> 01:13:39,260 tuj volas krei teni trako de kie ni serĉas. 1473 01:13:39,260 --> 01:13:41,790 Pro la tabelo ekzistas Ĉiaokaze de kio ni faras. 1474 01:13:41,790 --> 01:13:45,030 Kiel, ni ne estas fakte fizike hakado for la tabelo, dekstra? 1475 01:13:45,030 --> 01:13:47,261 Ni nur ĝustigante kie ni serĉas. 1476 01:13:47,261 --> 01:13:48,136 Ĉu tio havas sencon? 1477 01:13:48,136 --> 01:13:48,472 >> Publiko: Yeah. 1478 01:13:48,472 --> 01:13:49,110 >> ANDI PENG: OK. 1479 01:13:49,110 --> 01:13:57,090 Do se tio estas la kondiĉo por nia ciklo, Kion ni volas ene de ĉi buklo? 1480 01:13:57,090 --> 01:13:58,700 Kion ni devas voli fari? 1481 01:13:58,700 --> 01:14:02,390 Do nun, ni devas max kaj min, dekstra, 1482 01:14:02,390 --> 01:14:04,962 probable kreita tien ie. 1483 01:14:04,962 --> 01:14:07,170 Ni tuj probable volas trovi mezan, dekstran? 1484 01:14:07,170 --> 01:14:08,450 Kiel ni esti povis trovi la mezo? 1485 01:14:08,450 --> 01:14:09,491 Kio estas la mathematical-- 1486 01:14:09,491 --> 01:14:11,079 Publiko: Max plus min dividita per 2. 1487 01:14:11,079 --> 01:14:11,870 ANDI PENG: Ekzakte. 1488 01:14:11,870 --> 01:14:20,300 1489 01:14:20,300 --> 01:14:21,620 Ĉu tio havas sencon? 1490 01:14:21,620 --> 01:14:25,780 Kaj vi uloj vidi kial ni ne nur use-- kial ni faris ĉi 1491 01:14:25,780 --> 01:14:27,850 anstataŭ fari nur n dividita per 2? 1492 01:14:27,850 --> 01:14:30,310 Estas ĉar n estas valoro ke tuj restos la sama. 1493 01:14:30,310 --> 01:14:30,979 Dekstra? 1494 01:14:30,979 --> 01:14:34,020 Sed kiel ni ĝustigi nia minimuma kaj maksimumaj valoroj, ili tuj ŝanĝos. 1495 01:14:34,020 --> 01:14:36,040 Kaj kiel rezulto, niaj mezo tuj ŝanĝos tro. 1496 01:14:36,040 --> 01:14:37,873 Tial do ni volas fari ĉi tie. 1497 01:14:37,873 --> 01:14:38,510 BONE. 1498 01:14:38,510 --> 01:14:41,600 >> Kaj tiam, nun ke ni trovis our-- yeah. 1499 01:14:41,600 --> 01:14:44,270 >> Spektantaro: Nur rapida question-- kiam vi diras min kaj max, 1500 01:14:44,270 --> 01:14:46,410 ni supozante ke ĝi estas jam ordo? 1501 01:14:46,410 --> 01:14:48,400 >> ANDI PENG: Jes, tio estas vere antaŭkondiĉo por duuma serĉo, 1502 01:14:48,400 --> 01:14:49,816 ke vi devi scii ĝi estas ordo. 1503 01:14:49,816 --> 01:14:53,660 Tial varon, vi skribas en via problemo starigis antaux viajn duuma serĉo. 1504 01:14:53,660 --> 01:14:55,910 BONE. 1505 01:14:55,910 --> 01:14:58,876 Do nun ke ni konas kie nia mezpunkto estas, kion vi volas fari tie? 1506 01:14:58,876 --> 01:15:01,789 1507 01:15:01,789 --> 01:15:04,319 >> Publiko: Ni volas kompari ke al la aliaj unu. 1508 01:15:04,319 --> 01:15:05,110 ANDI PENG: Ekzakte. 1509 01:15:05,110 --> 01:15:12,280 Do vi tuj kompari meze taksi, ĉu ne? 1510 01:15:12,280 --> 01:15:14,900 1511 01:15:14,900 --> 01:15:18,670 Kaj kion tio diri kiam ni komparas? 1512 01:15:18,670 --> 01:15:22,226 Kion ni volas fari poste? 1513 01:15:22,226 --> 01:15:25,389 >> Publiko: Se la valoro estas pli granda ol la meza, ni volas detranĉu. 1514 01:15:25,389 --> 01:15:26,180 ANDI PENG: Ekzakte. 1515 01:15:26,180 --> 01:15:33,940 Do se la valoro estas pli granda ol la mezaj, ni estas 1516 01:15:33,940 --> 01:15:36,550 tuj volas ŝanĝi tiujn minimuma kaj maxes, dekstra? 1517 01:15:36,550 --> 01:15:38,980 Kion ni volas ŝanĝi? 1518 01:15:38,980 --> 01:15:42,145 Do se oni scias la valoro estas ie en tie, kion vi ni ŝanĝi? 1519 01:15:42,145 --> 01:15:44,758 Ni volas ŝanĝi nian minimumo esti meze, dekstra? 1520 01:15:44,758 --> 01:15:49,420 1521 01:15:49,420 --> 01:15:54,292 Kaj tiam alie, se ĝi estas en tiu duono, kion ni volas ŝanĝi? 1522 01:15:54,292 --> 01:15:55,306 >> Publiko: Via maksimumo. 1523 01:15:55,306 --> 01:15:55,972 ANDI PENG: Yeah. 1524 01:15:55,972 --> 01:16:02,597 1525 01:16:02,597 --> 01:16:04,680 Kaj tiam vi simple iranta teni looping, dekstra? 1526 01:16:04,680 --> 01:16:08,920 Ĉar nun, post unu ripeto tra, vi hvas max tie. 1527 01:16:08,920 --> 01:16:10,760 Kaj tiam vi povas _recalculate_ mez. 1528 01:16:10,760 --> 01:16:11,990 Kaj poste vi povas kompari. 1529 01:16:11,990 --> 01:16:14,766 Kaj vi tuj plu iri ĝis la Mins kaj la maxes 1530 01:16:14,766 --> 01:16:15,890 esti esence konverĝis. 1531 01:16:15,890 --> 01:16:17,890 Kaj tio estas kiam vi scias ke vi batis la fino de ĝi. 1532 01:16:17,890 --> 01:16:20,280 Kaj ĉu vi trovis ĝin aŭ vi havas ne ĉe tiu punkto. 1533 01:16:20,280 --> 01:16:23,170 >> Ĉu tio havas sencon por ĉiuj? 1534 01:16:23,170 --> 01:16:26,020 1535 01:16:26,020 --> 01:16:26,770 BONE. 1536 01:16:26,770 --> 01:16:27,900 Tiu estas sufiĉe grava, ĉar vi devos 1537 01:16:27,900 --> 01:16:29,760 skribi tion en via kodo ĉinokte. 1538 01:16:29,760 --> 01:16:32,660 Sed vi uloj havas sufiĉe bonan senco de kio vi devus esti faranta, 1539 01:16:32,660 --> 01:16:34,051 bonon. 1540 01:16:34,051 --> 01:16:34,550 BONE. 1541 01:16:34,550 --> 01:16:38,840 Do ni havas ĉirkaŭ sep minutoj forlasis sekcio. 1542 01:16:38,840 --> 01:16:43,170 Do ni iras por paroli pri ĉi pset ke ni estos faranta. 1543 01:16:43,170 --> 01:16:46,410 Do la pset estas dividita en du duonoj. 1544 01:16:46,410 --> 01:16:50,230 La unua duono engaĝas implementando trovaĵo 1545 01:16:50,230 --> 01:16:54,210 en kiuj vi skribas lineara serĉo, a duuma serĉo, kaj ordiga algoritmo. 1546 01:16:54,210 --> 01:16:56,690 >> Do tiu estas la unua tempo en pset kie 1547 01:16:56,690 --> 01:17:00,050 ni estos donanta vin uloj kio nomiĝas dissendo kodo, kiu estas kodo 1548 01:17:00,050 --> 01:17:02,740 ke ni havas pre-skribitaj, sed nur restis kelkaj pecoj ekstere 1549 01:17:02,740 --> 01:17:04,635 ke vi finu skribi. 1550 01:17:04,635 --> 01:17:07,510 Do vi infanoj, kiam vi rigardas tiun kodon, vi povus akiri vere timigis. 1551 01:17:07,510 --> 01:17:08,630 Se vi nur volas, Ahh, mi ne scias kion tiu faras, 1552 01:17:08,630 --> 01:17:11,670 Mi ne scias, kiel, kiu ŝajnas tiom komplika, Ahh, malstreĉiĝi. 1553 01:17:11,670 --> 01:17:12,170 Estas bone. 1554 01:17:12,170 --> 01:17:12,930 Legu la specifon. 1555 01:17:12,930 --> 01:17:16,920 La spec klarigos al vi precize kio ĉiuj tiuj programoj faras. 1556 01:17:16,920 --> 01:17:20,560 >> Ekzemple, generate.c estas programo kiuj venos kun via pset. 1557 01:17:20,560 --> 01:17:24,060 Vi ne vere devas tuŝi ĝin, sed vi devas kompreni kio ĝi estas faranta. 1558 01:17:24,060 --> 01:17:28,550 Kaj generate.c, ĉiuj ĝi estas faranta estas ĉu generante hazardaj nombroj 1559 01:17:28,550 --> 01:17:32,400 aŭ vi povas doni ĝin al la idaro, kiel antaŭaranĝita nombro kiu prenas, 1560 01:17:32,400 --> 01:17:34,140 kaj ĝi generas pli numeroj. 1561 01:17:34,140 --> 01:17:37,170 Do ekzistas specifa maniero efektivigu generate.c en kiu 1562 01:17:37,170 --> 01:17:42,760 vi povas nur fari faskon de nombroj por vin elprovi viajn aliajn metodojn sur. 1563 01:17:42,760 --> 01:17:45,900 >> Do se vi volus, por Ekzemple, testi vian trovaĵo, 1564 01:17:45,900 --> 01:17:48,970 vi volus kuri generate.c, generi aron de nombroj, 1565 01:17:48,970 --> 01:17:50,880 kaj poste ekzekuti viajn helpantoj funkcio. 1566 01:17:50,880 --> 01:17:53,930 Via helpantoj funkcio estas kie vi estas fakte fizike skribi kodon. 1567 01:17:53,930 --> 01:17:59,330 Kaj pensi de helpantoj kiel biblioteko dosiero vi skribas ke trovaĵo alvokas. 1568 01:17:59,330 --> 01:18:02,950 Kaj tiel ene helpers.c, vi faru serĉado kaj ordigi. 1569 01:18:02,950 --> 01:18:06,500 >> Kaj tiam vi tuj esence nur meti ilin ĉiujn kune. 1570 01:18:06,500 --> 01:18:10,350 La spec rakontos vin kiel enkalkulu en la komandlinio. 1571 01:18:10,350 --> 01:18:14,880 Kaj vi povos testi ĉu aŭ Ne via varo kaj serĉo laboras. 1572 01:18:14,880 --> 01:18:15,870 Malvarmeta. 1573 01:18:15,870 --> 01:18:18,720 Ĉu iu jam komencis kaj renkontis problemojn aŭ demandojn 1574 01:18:18,720 --> 01:18:20,520 ili havas nun kun ĉi? 1575 01:18:20,520 --> 01:18:21,020 BONE. 1576 01:18:21,020 --> 01:18:21,476 >> Publiko: Atendu. 1577 01:18:21,476 --> 01:18:21,932 Mi havas demandon. 1578 01:18:21,932 --> 01:18:22,844 >> ANDI PENG: Yeah. 1579 01:18:22,844 --> 01:18:28,390 >> Publiko: Do ​​mi komencis fari la lineara serĉo en helpers.c 1580 01:18:28,390 --> 01:18:29,670 kaj ĝi ne funkciis. 1581 01:18:29,670 --> 01:18:34,590 Sed tiam poste, mi eltrovis ni ĵus devas forigi ĝin kaj fari duuma serĉo. 1582 01:18:34,590 --> 01:18:36,991 Do gravas se ĝi ne funkcias? 1583 01:18:36,991 --> 01:18:39,700 1584 01:18:39,700 --> 01:18:41,510 >> ANDI PENG: Mallonga respondo estas ne. 1585 01:18:41,510 --> 01:18:42,642 Sed ĉar ni estas not-- 1586 01:18:42,642 --> 01:18:44,350 Publiko: Sed nenies fakte kontrolanta. 1587 01:18:44,350 --> 01:18:46,058 ANDI PENG: Ni neniam tuj vidos tion. 1588 01:18:46,058 --> 01:18:49,590 Sed vi verŝajne deziras fari certe via serĉo laboras. 1589 01:18:49,590 --> 01:18:51,700 Ĉar se via lineara serĉo ne funkcias, 1590 01:18:51,700 --> 01:18:54,410 tiam ŝancojn estas via Binara serĉo ne tuj funkcios tiel. 1591 01:18:54,410 --> 01:18:56,646 Ĉar vi havas similan logiko en ambaux. 1592 01:18:56,646 --> 01:18:58,020 Kaj ne, ĝi ne vere gravas. 1593 01:18:58,020 --> 01:19:01,300 Do la solaj vi turnos en estas varo kaj duuma serĉo. 1594 01:19:01,300 --> 01:19:02,490 Yeah. 1595 01:19:02,490 --> 01:19:06,610 >> Kaj ankaŭ, multan infanoj estis provas kompili helpers.c. 1596 01:19:06,610 --> 01:19:09,550 Vi fakte ne permesis fari tion, ĉar helpers.c 1597 01:19:09,550 --> 01:19:11,200 ne havas ĉefan funkcion. 1598 01:19:11,200 --> 01:19:13,550 Kaj do vi devus nur esti reale kompili 1599 01:19:13,550 --> 01:19:18,670 generi kaj trovi, ĉar trovi alvokoj helpers.c kaj funkcioj ene de ĝi. 1600 01:19:18,670 --> 01:19:20,790 Do kiu faras elpuriganta doloro en la pugo. 1601 01:19:20,790 --> 01:19:22,422 Sed tio kion ni devas fari. 1602 01:19:22,422 --> 01:19:23,880 Spektantaro: Vi simple ĉiuj, ĉu ne? 1603 01:19:23,880 --> 01:19:27,290 ANDI PENG: vi povas nur fari cxiujn tiel, jes. 1604 01:19:27,290 --> 01:19:28,060 BONE. 1605 01:19:28,060 --> 01:19:32,570 Do jen ĝi en terminoj de kio la pset estas demandanta vin ĉiujn fari. 1606 01:19:32,570 --> 01:19:35,160 Se vi havas demandojn, bonvolu liberan demandi min post sekcio. 1607 01:19:35,160 --> 01:19:37,580 Mi estos ĉi tie por, kiel, 20 minutoj. 1608 01:19:37,580 --> 01:19:40,500 >> Kaj jes, la pset La vere ne estas tiel malbona. 1609 01:19:40,500 --> 01:19:41,680 Vi uloj devus esti OK. 1610 01:19:41,680 --> 01:19:43,250 Tiuj, nur sekvi gvidliniojn. 1611 01:19:43,250 --> 01:19:47,840 Speco de havi senton de, logike, kio devus esti pasante kaj vi estos bone. 1612 01:19:47,840 --> 01:19:48,690 Ne estu tro timigita. 1613 01:19:48,690 --> 01:19:50,220 Estas multe da kodo jam skribis tie. 1614 01:19:50,220 --> 01:19:53,011 Ne estu tro timigita se vi faras ne kompreni kion ĉiuj de tiu signifas. 1615 01:19:53,011 --> 01:19:54,749 Se ĝi estas multe, estas tute bone. 1616 01:19:54,749 --> 01:19:55,790 Kaj venu al oficejo horoj. 1617 01:19:55,790 --> 01:19:57,520 Ni helpos vin rigardu. 1618 01:19:57,520 --> 01:20:00,810 >> Publiko: Kun la ekstra funkcioj, ni rigardu tiujn supren? 1619 01:20:00,810 --> 01:20:03,417 >> ANDI PENG: Jes, tiuj estas en la kodo. 1620 01:20:03,417 --> 01:20:05,750 En la ludo de 15, la duono de ĝi estas jam skribita por vi. 1621 01:20:05,750 --> 01:20:09,310 Do tiuj funkcioj estas jam en la kodo. 1622 01:20:09,310 --> 01:20:12,020 Yep. 1623 01:20:12,020 --> 01:20:12,520 Bone. 1624 01:20:12,520 --> 01:20:14,000 Nu, plej bone de fortuno. 1625 01:20:14,000 --> 01:20:15,180 Estas naŭza tago. 1626 01:20:15,180 --> 01:20:19,370 Do espereble vi uloj ne sentas tro malbona pri restante ene kaj kodigo. 1627 01:20:19,370 --> 01:20:22,133