1 00:00:00,000 --> 00:00:03,332 >> [Muzikos grojimo] 2 00:00:03,332 --> 00:00:06,490 >> ANDI Peng: Sveiki skirsnio 3 savaitės. 3 00:00:06,490 --> 00:00:09,550 Ačiū, vaikinai, nes visi ateina į šį ankstesnį pradžios laiką šiandien. 4 00:00:09,550 --> 00:00:11,466 Mes turime gražus, šiek tiek intymus grupė šiandien. 5 00:00:11,466 --> 00:00:14,570 Taigi, tikiuosi, mes susisieksime su apdaila, galbūt, per anksti, 6 00:00:14,570 --> 00:00:15,780 šiek tiek anksti šiandien. 7 00:00:15,780 --> 00:00:22,057 Taigi greitai, tik kai skelbimai darbotvarkę ir šiandien. 8 00:00:22,057 --> 00:00:23,890 Prieš pradėdami, mes vyksta tiesiog eiti per 9 00:00:23,890 --> 00:00:28,910 kai trumpas logistikos klausimai, pset klausimai, Zdać, dalykų, pavyzdžiui, kad. 10 00:00:28,910 --> 00:00:30,250 Ir tada mes neria tiesiai. 11 00:00:30,250 --> 00:00:34,710 Mes naudosime debugerem vadinamas GDB į pradėti nuvainikuoti mūsų kodą, kurį Davidas 12 00:00:34,710 --> 00:00:36,550 paaiškinta paskaitą kitą dieną. 13 00:00:36,550 --> 00:00:39,420 Mes eiti per keturių tipų rūšių. 14 00:00:39,420 --> 00:00:42,310 Mes eiti per juos gana greitai nes jie gana intensyvus. 15 00:00:42,310 --> 00:00:45,710 Bet žinoti, kad visi skaidres ir kodo yra visada internete. 16 00:00:45,710 --> 00:00:50,810 Taigi nedvejodami, jūsų perskaitymas, kad grįžti atgal ir pažvelgti, kad išvaizdą. 17 00:00:50,810 --> 00:00:53,930 >> Mes eiti per asimptotinio žymėjimas, kuris 18 00:00:53,930 --> 00:00:55,944 yra tik išgalvotas būdas sakydamas "runtimes" 19 00:00:55,944 --> 00:00:58,360 kur mes turime didelį O, kuris Davidas paaiškinta paskaita. 20 00:00:58,360 --> 00:01:01,550 Ir mes taip pat turime Omega, kuris yra apatinė Runtime. 21 00:01:01,550 --> 00:01:06,450 Ir mes kalbame šiek tiek daugiau nuodugniai apie tai, kaip šios darbus. 22 00:01:06,450 --> 00:01:10,160 Ir galiausiai, mes eiti per dvejetainis paieškos, nes daug iš jūsų, kurie jau 23 00:01:10,160 --> 00:01:15,190 pažiūrėjau jūsų psets tikriausiai žinote, kad tai yra klausimas, kuris yra jūsų pset. 24 00:01:15,190 --> 00:01:17,470 Taigi jūs visi būti laimingi kad mes padengti tai šiandien. 25 00:01:17,470 --> 00:01:20,610 >> Ir galiausiai, už savo skyriuje atsiliepimai, aš iš tikrųjų 26 00:01:20,610 --> 00:01:23,000 paliktas apie 15 minučių esant pabaiga tiesiog eiti per 27 00:01:23,000 --> 00:01:27,730 logistika pset3, kokių nors klausimų, gal orientavimo tiek, jei norite, 28 00:01:27,730 --> 00:01:28,990 prieš pradedant programavimą. 29 00:01:28,990 --> 00:01:30,890 Taigi pabandykime gauti per medžiaga gana greitai. 30 00:01:30,890 --> 00:01:33,880 Ir tada mes galime praleisti šiek tiek laiko atsižvelgiant daugiau klausimų dėl pset. 31 00:01:33,880 --> 00:01:35,230 GERAI. 32 00:01:35,230 --> 00:01:39,570 >> Greitai, todėl tik nedaugelis skelbimai kol mes pradėti šiandien. 33 00:01:39,570 --> 00:01:45,410 Pirma, kviečiame priėmimo jis per du savo psets. 34 00:01:45,410 --> 00:01:49,432 Aš paėmė pažvelgti your-- taip, tegul gauti plojimų, kad vienas. 35 00:01:49,432 --> 00:01:51,140 Tiesą sakant, aš buvau tikrai, tikrai sužavėtas. 36 00:01:51,140 --> 00:01:55,800 Aš rūšiuojami pirmąjį pset jums vaikinai Praėjusią savaitę ir vaikinai padarė neįtikėtinas. 37 00:01:55,800 --> 00:01:58,290 >> Stilius buvo taško Be to keletą pastabų. 38 00:01:58,290 --> 00:02:00,660 Įsitikinkite, kad jūs visada komentuodamas savo kodą. 39 00:02:00,660 --> 00:02:03,040 Bet tavo psets buvo ant taško. 40 00:02:03,040 --> 00:02:05,549 Ir keep it up. 41 00:02:05,549 --> 00:02:08,090 Ir tai gerai, kad į rūšiuotojas matyti, kad vaikinai yra išleisti 42 00:02:08,090 --> 00:02:10,704 AS daug pastangų savo stilių ir jūsų dizainas kodą 43 00:02:10,704 --> 00:02:12,120 kad mes norėtume jums pamatyti. 44 00:02:12,120 --> 00:02:16,450 Taigi, aš perdavę savo dėkingumą už etatus poilsio. 45 00:02:16,450 --> 00:02:19,210 >> Tačiau yra Keletas aptarime klausimai 46 00:02:19,210 --> 00:02:22,010 Aš tik noriu eiti per tą būtų ir mano gyvenimą 47 00:02:22,010 --> 00:02:24,900 ir iš kitos daug Tas "gyvena šiek tiek lengviau. 48 00:02:24,900 --> 00:02:28,220 Pirma, aš pastebėjau, tai praeitis week-- kaip daugelis iš jūsų 49 00:02:28,220 --> 00:02:32,301 jau veikia check50 nuo Jūsų kodas prieš jums pateikti? 50 00:02:32,301 --> 00:02:32,800 GERAI. 51 00:02:32,800 --> 00:02:36,690 Taigi kiekvienas turėtų daryti check50, because-- secret-- mes iš tikrųjų 52 00:02:36,690 --> 00:02:41,540 paleisti check50, kaip dalis mūsų teisingumą scenarijus išbandyti savo kodą. 53 00:02:41,540 --> 00:02:45,480 Taigi, jei jūsų kodas yra nepakankamai check50, greičiausiai, 54 00:02:45,480 --> 00:02:47,570 tai tikriausiai nesugeba mūsų čekį, taip pat. 55 00:02:47,570 --> 00:02:49,320 Kartais jūs vaikinai turi teisingus atsakymus. 56 00:02:49,320 --> 00:02:52,200 Kaip, į gobšus, kai Jūs turite teisę numerius, 57 00:02:52,200 --> 00:02:53,960 jūs tiesiog atspausdinti keletą papildomų dalykų. 58 00:02:53,960 --> 00:02:55,940 Ir kad papildomų dalykų iš tikrųjų nepavyksta čekį, 59 00:02:55,940 --> 00:02:58,440 nes kompiuteris nėra tikrai žinote, ką jis ieško. 60 00:02:58,440 --> 00:03:00,981 Ir taip bus tiesiog paleisti per, pamatysite, kad jūsų produkcija nėra 61 00:03:00,981 --> 00:03:03,810 atitiktų tai, ką mes tikimės atsakymą būti ir pažymėkite tai yra negerai. 62 00:03:03,810 --> 00:03:06,560 >> Ir aš žinau, kad atsitiko kai kurie iš jūsų atvejais šią savaitę. 63 00:03:06,560 --> 00:03:09,870 Taigi grįžau ir rankiniu būdu perrūšiuoti kiekvieno kodą. 64 00:03:09,870 --> 00:03:12,780 Ateityje, nors, Prašome įsitikinkite, 65 00:03:12,780 --> 00:03:14,570 kad jūs dirbate Tikrinti 50 savo kodą. 66 00:03:14,570 --> 00:03:17,970 Kadangi tai tipo, skirto TA skausmo turėti grįžti ir rankiniu perrūšiuoti 67 00:03:17,970 --> 00:03:21,197 kiekvienas pset už kiekvieną vieną, tiek praleistų atvejis. 68 00:03:21,197 --> 00:03:22,530 Taigi aš ne kilimo jokių taškų. 69 00:03:22,530 --> 00:03:25,210 Manau, nusiėmė gal vienas arba du už dizainą. 70 00:03:25,210 --> 00:03:27,710 Ateityje, nors, jei jūs nesugeba check50, 71 00:03:27,710 --> 00:03:31,330 Taškai bus imtasi ne už duomenų teisingumą. 72 00:03:31,330 --> 00:03:35,020 >> Be to, psets yra dėl penktadienį vidurdienį. 73 00:03:35,020 --> 00:03:38,990 Aš manau, kad yra septynių minučių vėlai atidėjimo laikotarpis, kad mes suteikiame jums. 74 00:03:38,990 --> 00:03:42,434 Per Harvardo metu, jie gali būti septynias minutes vėlu viską. 75 00:03:42,434 --> 00:03:44,350 Taigi čia Jeilio, mes taip pat laikytis, kad. 76 00:03:44,350 --> 00:03:47,910 Tačiau gana daug, ne 12:07, Jei jūsų pset nėra, 77 00:03:47,910 --> 00:03:49,720 jis bus pažymėtas kaip vėlai. 78 00:03:49,720 --> 00:03:53,160 Ir taip, o tai yra pažymėta kaip pavėluotai, TA-- aš 79 00:03:53,160 --> 00:03:54,870 vis dar bus klasifikavimo savo psets. 80 00:03:54,870 --> 00:03:56,760 Taigi jūs vis dar pamatysite laipsnio atrodo. 81 00:03:56,760 --> 00:03:58,820 Tačiau žinau, kad ne Semestro pabaigoje, 82 00:03:58,820 --> 00:04:02,270 Visi vėlai psets bus tik automatiškai nulis kompiuteriu. 83 00:04:02,270 --> 00:04:04,490 >> Mes tai dėl dviejų priežasčių. 84 00:04:04,490 --> 00:04:09,220 Vienas iš jų, kartais mes gauname atleisti, kaip ir dekano pasiteisinimų, 85 00:04:09,220 --> 00:04:10,762 vėliau, kad aš nežinau apie dar. 86 00:04:10,762 --> 00:04:13,761 Taigi mes norėtume įsitikinti, mes klasifikavimo viskas tik tuo atveju, pavyzdžiui, aš 87 00:04:13,761 --> 00:04:15,080 Trūksta dekano pasiteisinimas. 88 00:04:15,080 --> 00:04:17,000 Ir antra, turėkite Protas, vis tiek galite 89 00:04:17,000 --> 00:04:19,370 lašas vieną pset kad turi pilna apimtimi taškų. 90 00:04:19,370 --> 00:04:21,430 Ir taip mes norėtume klasė visi jūsų psets tik 91 00:04:21,430 --> 00:04:24,730 įsitikinkite, kad jūsų sritis s ten ir bandote juos. 92 00:04:24,730 --> 00:04:29,150 Taigi, net jei ji per vėlai, jūs vis dar gauti kreditą apimtis kiekis, manau. 93 00:04:29,150 --> 00:04:33,730 >> Taigi Istorijos moralas yra, kad Įsitikinkite, kad jūsų psets yra dėl laiko. 94 00:04:33,730 --> 00:04:38,350 Ir jei jie nėra dėl laiko, žinau, kad tai nėra didelis. 95 00:04:38,350 --> 00:04:41,678 Taip, kol aš judėti į priekį, ar kas nors turi Turite klausimų dėl pset atsiliepimus? 96 00:04:41,678 --> 00:04:42,178 Taip. 97 00:04:42,178 --> 00:04:43,630 >> Auditorija: Ar jums pasakyti, kad mes gali sumažėti vieną iš psets? 98 00:04:43,630 --> 00:04:44,296 >> ANDI Peng: Taip. 99 00:04:44,296 --> 00:04:47,050 Taigi ten devyni psets Bendras per semestro metu. 100 00:04:47,050 --> 00:04:50,610 O jei turite apimtį points-- todėl taikymo sritis yra teisingas, 101 00:04:50,610 --> 00:04:53,567 gana daug, jūs pasikėsinimą problema, jūs išleisti laiku, 102 00:04:53,567 --> 00:04:56,150 jūs rodo, kad jūs parodė, jūs perskaitėte spec. 103 00:04:56,150 --> 00:04:57,191 Tai gana daug galimybių. 104 00:04:57,191 --> 00:04:59,370 Ir jei jūs vykdyti Taikymo sritis taškai, mes 105 00:04:59,370 --> 00:05:03,360 gali sumažėti žemiausia vienas iš pilna apimtimi. 106 00:05:03,360 --> 00:05:06,790 Taigi, kad savo pranašumą tai, kad užbaigti ir išbandyti kiekvieną pset. 107 00:05:06,790 --> 00:05:10,320 >> Net upload-- jei nė vienas iš juos dirbti, įkelkite juos visus. 108 00:05:10,320 --> 00:05:13,711 Ir tada mes tikimės galėti duoti jums kai kurie iš šių taškų atgal. 109 00:05:13,711 --> 00:05:14,210 Saunus. 110 00:05:14,210 --> 00:05:16,780 Visi kiti klausimai? 111 00:05:16,780 --> 00:05:17,840 Didysis. 112 00:05:17,840 --> 00:05:21,960 >> Antra, biuro hours-- nedaugelis Greitos pastabos apie darbo valandomis. 113 00:05:21,960 --> 00:05:24,300 Taigi, pirmiausia, ateiti anksti savaitę. 114 00:05:24,300 --> 00:05:26,909 Niekas kada nors ne Darbo valandos pirmadieniais. 115 00:05:26,909 --> 00:05:28,700 Christabel atėjo Darbo valandos paskutinis naktį. 116 00:05:28,700 --> 00:05:29,691 Taip, Christabel. 117 00:05:29,691 --> 00:05:32,190 Ir ką mes turime biure valandos praėjusią naktį, Christabel? 118 00:05:32,190 --> 00:05:33,020 >> Auditorija: Mes turėjome ledų. 119 00:05:33,020 --> 00:05:36,160 >> ANDI Peng: Taigi tai tiesa, mes turėjome ledai ne darbo valandomis praėjusią naktį. 120 00:05:36,160 --> 00:05:39,390 Nors aš negaliu pažadėti jums, kad mes turime ledų biure valandų 121 00:05:39,390 --> 00:05:43,230 kiekvieną savaitę, ką aš galiu jums pažadu yra tai, kad ten bus žymiai 122 00:05:43,230 --> 00:05:45,380 geriau studentui TP santykis. 123 00:05:45,380 --> 00:05:47,650 Kaip teisėtas, tai kaip trijų iki vieno. 124 00:05:47,650 --> 00:05:50,350 Kadangi, kontrastas, kad su Ketvirtadienis, jūs turite apie 150 125 00:05:50,350 --> 00:05:52,830 tikrai pabrėžė vaikams ir ne ledų. 126 00:05:52,830 --> 00:05:55,360 Ir tai tik ne produktyvus visiems. 127 00:05:55,360 --> 00:05:58,730 Taigi Istorijos moralas yra, atvykti anksčiau kad darbo valandomis ir gerų dalykų 128 00:05:58,730 --> 00:06:00,310 atsitiks. 129 00:06:00,310 --> 00:06:02,110 >> Be to, būkite pasiruošę užduoti klausimus. 130 00:06:02,110 --> 00:06:03,200 Tu žinai? 131 00:06:03,200 --> 00:06:05,420 Nepriklausomai nuo to, TAS, aš manau, buvo sakydamas, 132 00:06:05,420 --> 00:06:10,710 mes buvo gauti pora studentams kurie ateina į ketvirtadienį, kaip, 10:50 133 00:06:10,710 --> 00:06:15,100 nėra perskaitęs spec yra kaip man padėti, padėk man. 134 00:06:15,100 --> 00:06:18,200 Deja, tuo metu, ten ne per daug mes galime padaryti, siekiant padėti jums. 135 00:06:18,200 --> 00:06:19,590 Taigi, prašome atvykti anksčiau šią savaitę. 136 00:06:19,590 --> 00:06:22,040 Ateik anksti darbo valandomis. 137 00:06:22,040 --> 00:06:23,350 Ateikite pasiruošę užduoti klausimus. 138 00:06:23,350 --> 00:06:25,310 Įsitikinkite, kad jūs, kaip studentas, yra kur 139 00:06:25,310 --> 00:06:27,620 reikia būti taip, kad Struktūra gali padėti jums kartu, 140 00:06:27,620 --> 00:06:32,850 o tai, ką darbo valandomis turėtų būti skiriamos už. 141 00:06:32,850 --> 00:06:37,380 >> Antra, todėl žinau, profesoriai patinka stebinti mus su testais. 142 00:06:37,380 --> 00:06:39,439 Turėjau profesorius tuos kaip, Yo, beje, 143 00:06:39,439 --> 00:06:41,230 prisiminti, kad laikotarpio vidurio jūs turite kitą pirmadienį. 144 00:06:41,230 --> 00:06:42,855 Taip, aš nežinojau apie tą koliokviumui. 145 00:06:42,855 --> 00:06:45,630 Taigi, aš ruošiuosi būti, kad TA kuri primena jums visiems, kad viktoriną 146 00:06:45,630 --> 00:06:47,270 0--, nes, žinote, mes CS. 147 00:06:47,270 --> 00:06:50,730 Dabar, kad mes padarėme masyvai, jūs gaunate kodėl tai Viktorina 0, o ne Quiz 1, eh? 148 00:06:50,730 --> 00:06:51,320 GERAI. 149 00:06:51,320 --> 00:06:52,490 Ech, man got some kad vienas chuckles. 150 00:06:52,490 --> 00:06:53,120 GERAI. 151 00:06:53,120 --> 00:06:59,710 >> Taigi Viktorina 0 bus spalis 14, jei Jūs esate pirmadienio trečiadienį skyriuje 152 00:06:59,710 --> 00:07:02,920 iki spalio 15-jei esate antradienis-ketvirtadienis skyriuje. 153 00:07:02,920 --> 00:07:05,630 Tai netaikoma Tiems iš jūsų, Harvarde 154 00:07:05,630 --> 00:07:10,350 who-- Manau, kad jūs visi būsite atsižvelgiant jūsų viktorinos ant 14. 155 00:07:10,350 --> 00:07:13,560 >> Taigi, taip, kitą savaitę, jei Davidas, į paskaitą, eina, 156 00:07:13,560 --> 00:07:15,747 Taip, taip, apie tai viktorina kitą savaitę, jūs visi 157 00:07:15,747 --> 00:07:17,580 nebus šokiruotas, nes atėjote į skyrių 158 00:07:17,580 --> 00:07:19,664 ir jūs žinote, kad jūsų viktorina 0 yra per dvi savaites. 159 00:07:19,664 --> 00:07:21,580 Ir mes turime peržiūrą sesijų ir viskas. 160 00:07:21,580 --> 00:07:26,360 Taigi ne apie rūpesčius buvo išsigandęs, kad. 161 00:07:26,360 --> 00:07:29,890 Turite klausimų before-- klausimų visais dėl logistikos klausimus, 162 00:07:29,890 --> 00:07:32,591 rūšiavimo, darbo valandomis, sekcijos? 163 00:07:32,591 --> 00:07:33,090 Taip. 164 00:07:33,090 --> 00:07:35,100 >> Auditorija: Taigi viktorina yra bus paskaitos metu? 165 00:07:35,100 --> 00:07:35,766 >> ANDI Peng: Taip. 166 00:07:35,766 --> 00:07:39,460 Taigi viktorinoje, manau, yra 60 min skiriamų toje laiko tarpsnių 167 00:07:39,460 --> 00:07:42,240 kad jūs tiesiog į paskaitą salėje. 168 00:07:42,240 --> 00:07:44,810 Taigi jūs neturite ateiti apie, pavyzdžiui, atsitiktinės 7:00 PM. 169 00:07:44,810 --> 00:07:46,140 Viskas gerai. 170 00:07:46,140 --> 00:07:47,100 Taip. 171 00:07:47,100 --> 00:07:50,060 Saunus. 172 00:07:50,060 --> 00:07:50,840 >> Gerai. 173 00:07:50,840 --> 00:07:54,330 Taigi mes ketiname pristatyti koncepciją jums 174 00:07:54,330 --> 00:08:00,760 šią savaitę, kad Dovydas jau natūra iš palietė į paskaitą praeitą savaitę. 175 00:08:00,760 --> 00:08:02,010 Tai vadinama GDB. 176 00:08:02,010 --> 00:08:05,570 Ir kaip daugelis iš jūsų, o rašymo savo psets Žinoma, 177 00:08:05,570 --> 00:08:09,981 pastebėjau didelį mygtuką, kad sako "Debug" ant jūsų IDE viršuje? 178 00:08:09,981 --> 00:08:10,480 GERAI. 179 00:08:10,480 --> 00:08:13,770 Taigi dabar mes iš tikrųjų gauti iškasti klausimą, ką mygtuką paslaptis iš tikrųjų 180 00:08:13,770 --> 00:08:14,270 veikia. 181 00:08:14,270 --> 00:08:16,790 Ir aš jums garantuoti, tai yra gražus, gražus dalykas. 182 00:08:16,790 --> 00:08:20,740 >> Taigi iki šiol, manau, ten buvo du dalykai 183 00:08:20,740 --> 00:08:23,320 studentai jau paprastai daro, kai derinate psets. 184 00:08:23,320 --> 00:08:27,635 Vienas iš jų, jie arba pridėti printf () - todėl kiekvienas keletą eilučių, 185 00:08:27,635 --> 00:08:29,760 jie įtraukti į printf () - oh, kas yra šis kintamasis? 186 00:08:29,760 --> 00:08:32,551 Oi, kas tai yra kintamasis now-- ir jūs rūšies pamatyti progresavimą 187 00:08:32,551 --> 00:08:33,940 Jūsų kodas, kaip ji veikia. 188 00:08:33,940 --> 00:08:37,030 Arba antrasis metodas vaikai padaryti, tai kad jie tiesiog parašyti visa tai 189 00:08:37,030 --> 00:08:38,610 ir tada eiti, kaip tai pabaigoje. 190 00:08:38,610 --> 00:08:39,970 Tikimės, kad tai veikia. 191 00:08:39,970 --> 00:08:44,851 Aš jums garantuoti, GDB yra geriau nei tiek iš šių metodų. 192 00:08:44,851 --> 00:08:45,350 Taip. 193 00:08:45,350 --> 00:08:46,980 Taigi tai bus jūsų naujas geriausias draugas. 194 00:08:46,980 --> 00:08:51,780 Nes tai gražus dalykas kad vizualiai rodo ir 195 00:08:51,780 --> 00:08:54,850 ką jūsų kodas daro specifiniuose taškuose 196 00:08:54,850 --> 00:08:57,486 taip pat ką visus savo kintamieji yra vykdyti, 197 00:08:57,486 --> 00:08:59,610 patinka tai, ką jų vertės yra, tuo konkrečiu klausimu. 198 00:08:59,610 --> 00:09:02,670 Ir tokiu būdu, galite tikrai nustatyti ribines vertes jūsų kodu. 199 00:09:02,670 --> 00:09:04,350 Jūs galite paleisti per eilutė po eilutės. 200 00:09:04,350 --> 00:09:07,324 Ir GDB turės tik už Jums, rodomas jums, 201 00:09:07,324 --> 00:09:09,490 ką visi jūsų kintamųjų yra, ką jie daro, 202 00:09:09,490 --> 00:09:10,656 kas vyksta kodą. 203 00:09:10,656 --> 00:09:13,240 Ir tokiu būdu,, tai taip daug lengviau pamatyti 204 00:09:13,240 --> 00:09:17,120 kas vyksta vietoj printf-ING arba užrašyti savo pareiškimus. 205 00:09:17,120 --> 00:09:19,160 >> Taigi mes padarysime Tokio pavyzdį vėliau. 206 00:09:19,160 --> 00:09:20,660 Taigi, tai atrodo šiek tiek abstrakti. 207 00:09:20,660 --> 00:09:23,490 Jokių rūpesčių, mes padarysime pavyzdžių. 208 00:09:23,490 --> 00:09:29,170 Ir taip iš esmės, trijų didžiausių labiausiai naudojamas funkcijas, jums reikia į GDB 209 00:09:29,170 --> 00:09:32,500 yra šalia, Step daugiau, ir žingsnis į mygtukus. 210 00:09:32,500 --> 00:09:34,860 Aš ruošiuosi per galvą ten, iš tikrųjų, dabar. 211 00:09:34,860 --> 00:09:40,930 >> Taigi galite vaikinai visi matome, kad ar man reikia padidinti šiek tiek? 212 00:09:40,930 --> 00:09:43,220 213 00:09:43,220 --> 00:09:44,470 Gale, jūs galite pamatyti, kad? 214 00:09:44,470 --> 00:09:45,730 Ar turėčiau padidinti? 215 00:09:45,730 --> 00:09:46,480 Tiesiog truputį? 216 00:09:46,480 --> 00:09:49,390 Gerai. 217 00:09:49,390 --> 00:09:50,280 Čia mes eiti. 218 00:09:50,280 --> 00:09:50,960 GERAI. 219 00:09:50,960 --> 00:09:57,000 >> Taigi turiu čia, mano įgyvendinimas godus. 220 00:09:57,000 --> 00:10:01,430 Ir nors iš jūsų vaikinai daug rašė gobšus į while cikle form-- kad 221 00:10:01,430 --> 00:10:04,890 yra visiškai priimtinas būdas tai padaryti it-- kitą būdą tai padaryti yra tiesiog 222 00:10:04,890 --> 00:10:06,280 padalinti į Modulo. 223 00:10:06,280 --> 00:10:09,290 Nes tada jūs galite turėti savo vertė ir tada turėti savo dalį. 224 00:10:09,290 --> 00:10:11,150 Ir tada jūs galite tiesiog pridėti jį visi kartu. 225 00:10:11,150 --> 00:10:13,390 Ar į ką darau logika čia prasmės visiems, 226 00:10:13,390 --> 00:10:14,117 kol mes pradėti? 227 00:10:14,117 --> 00:10:16,760 228 00:10:16,760 --> 00:10:17,980 Maždaug? 229 00:10:17,980 --> 00:10:18,710 Saunus. 230 00:10:18,710 --> 00:10:19,210 Didysis. 231 00:10:19,210 --> 00:10:21,290 Tai gana seksualus gabalas kodo, sakyčiau. 232 00:10:21,290 --> 00:10:23,502 Kaip ir sakiau, Davidas, ir paskaitą, po kurio laiko, 233 00:10:23,502 --> 00:10:25,960 jūs visi pradėsite matyti kodą kaip kažkas, kad gražus. 234 00:10:25,960 --> 00:10:29,950 Ir kartais, kai pamatysite gražus kodas, tai toks nuostabus jausmas. 235 00:10:29,950 --> 00:10:35,410 >> Taigi Tačiau, nors šis kodas yra labai gražus, jis neveikia tinkamai. 236 00:10:35,410 --> 00:10:37,750 Taigi leiskite paleisti check50 apie tai. 237 00:10:37,750 --> 00:10:39,440 Patikrinkite 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 Ar tai pset2? 241 00:10:44,990 --> 00:10:46,870 Taip. 242 00:10:46,870 --> 00:10:47,520 Oi, pset1. 243 00:10:47,520 --> 00:10:50,970 244 00:10:50,970 --> 00:10:52,890 GERAI. 245 00:10:52,890 --> 00:10:53,900 Taigi, mes paleisti check50. 246 00:10:53,900 --> 00:11:01,550 247 00:11:01,550 --> 00:11:07,170 >> Ir kaip jus vaikinai galite pamatyti čia tai jei yra atvejų pora. 248 00:11:07,170 --> 00:11:10,165 Ir kai kurie iš jūsų, į Žinoma daro jūsų problema rinkinius, 249 00:11:10,165 --> 00:11:11,110 jūs kaip, ah, kodėl ne darbo. 250 00:11:11,110 --> 00:11:13,318 Kodėl jis dirba kai vertės, bet ne kiti? 251 00:11:13,318 --> 00:11:17,760 Na, GDB ketina padėti jums išsiaiškinti kodėl tie įėjimai buvo neveikia. 252 00:11:17,760 --> 00:11:18,320 >> GERAI. 253 00:11:18,320 --> 00:11:21,640 Taigi pažiūrėkime, vienas iš patikrinimai buvau nepakankamai check50 254 00:11:21,640 --> 00:11:24,920 buvo įvesties vertė 0,41. 255 00:11:24,920 --> 00:11:27,830 Taigi teisingas atsakymas, kad Jums reikia gauti yra 4. 256 00:11:27,830 --> 00:11:33,090 Bet vietoj to, ką aš spausdinti yra 3-N, kuri yra klaidingas. 257 00:11:33,090 --> 00:11:36,190 Taigi tegul tiesiog paleisti rankiniu būdu, tiesiog įsitikinkite, kad check50 veikia. 258 00:11:36,190 --> 00:11:36,940 Darom ./greedy. 259 00:11:36,940 --> 00:11:40,130 260 00:11:40,130 --> 00:11:43,340 Oi, aš turiu padaryti godus. 261 00:11:43,340 --> 00:11:43,840 Čia mes eiti. 262 00:11:43,840 --> 00:11:44,381 Dabar ./greedy. 263 00:11:44,381 --> 00:11:46,950 264 00:11:46,950 --> 00:11:47,670 >> Kiek skolingas? 265 00:11:47,670 --> 00:11:49,550 Darom 0,41. 266 00:11:49,550 --> 00:11:52,590 Ir yep, mes pamatyti čia kad jis išvedė 3 267 00:11:52,590 --> 00:11:55,160 kai teisingas atsakymas, Iš tiesų, turėtų būti 4. 268 00:11:55,160 --> 00:12:01,460 Taigi leiskite įvesti GDB ir pamatyti, kaip mes gali eiti apie nustatant šią problemą. 269 00:12:01,460 --> 00:12:03,992 >> Taigi, pirmąją pakopą visada derinti savo kodą 270 00:12:03,992 --> 00:12:05,950 yra nustatyti atskaitos tašką, arba vieta, kurioje galite 271 00:12:05,950 --> 00:12:09,079 noriu kompiuterio arba debugeris pradėti ieškoti. 272 00:12:09,079 --> 00:12:11,120 Taigi, jei jūs tikrai ne žinoti, ką jūsų problema yra, 273 00:12:11,120 --> 00:12:14,670 Paprastai tipiškas dalykas, mes norime padaryti, tai nustatyti mūsų atskaitos tašką ne pagrindinis. 274 00:12:14,670 --> 00:12:18,520 Taigi, jei jus vaikinai galite pamatyti raudoną mygtuką tiesiai ten, 275 00:12:18,520 --> 00:12:22,860 Taip, tai buvo man nustatymo , ribinė pagrindiniam funkcija. 276 00:12:22,860 --> 00:12:24,130 Aš spustelėkite, kad. 277 00:12:24,130 --> 00:12:26,130 >> Ir tada aš galiu eiti į savo Debug mygtuką. 278 00:12:26,130 --> 00:12:27,036 Aš smūgį mygtuką. 279 00:12:27,036 --> 00:12:31,710 280 00:12:31,710 --> 00:12:36,555 Leiskite padidinti atgal, jei aš galiu. 281 00:12:36,555 --> 00:12:38,020 Čia mes eiti. 282 00:12:38,020 --> 00:12:40,730 Taigi, mes turime čia, yra dešinėje skydelyje. 283 00:12:40,730 --> 00:12:43,680 Aš atsiprašau, vaikinai gale, jums tikrai negali pamatyti tikrai gerai. 284 00:12:43,680 --> 00:12:49,090 Bet iš esmės, visi ši teisė panelė daro 285 00:12:49,090 --> 00:12:53,130 yra sekti tiek išryškino linija, kuri yra kodo eilutę 286 00:12:53,130 --> 00:12:56,640 kad kompiuteris šiuo metu veikia, taip pat visi jūsų kintamųjų 287 00:12:56,640 --> 00:12:57,600 žemyn čia. 288 00:12:57,600 --> 00:13:00,487 >> Taigi, jūs turite centų monetos, N, visų deklaruotų skirtingų dalykų 289 00:13:00,487 --> 00:13:01,070 Šiuo atveju. 290 00:13:01,070 --> 00:13:04,850 Nesijaudinkite, nes mes ne iš tikrųjų inicializuoti juos visus kintamuosius dar. 291 00:13:04,850 --> 00:13:07,200 Taigi jūsų kompiuteryje, jūsų Kompiuterių tik pamatyti, 292 00:13:07,200 --> 00:13:14,376 oh, 32767 buvo paskutinis naudojamą funkciją tos atminties mano kompiuteryje. 293 00:13:14,376 --> 00:13:16,000 Ir taip, kad ten centų metu. 294 00:13:16,000 --> 00:13:19,360 Bet ne, kad kai jūs paleisti kodą, ji turėtų tapti inicializuoti. 295 00:13:19,360 --> 00:13:24,110 >> Taigi eikime pro linija linija, kas vyksta čia. 296 00:13:24,110 --> 00:13:25,350 GERAI. 297 00:13:25,350 --> 00:13:29,400 Taigi čia yra trys mygtukai, kad aš tiesiog paaiškinti. 298 00:13:29,400 --> 00:13:34,090 Jūs turite žaisti, arba paleisti funkciją, mygtuką, jūs turite per mygtuką žingsnis, 299 00:13:34,090 --> 00:13:36,600 ir jūs taip pat turite Žingsnis į mygtuką. 300 00:13:36,600 --> 00:13:41,260 Ir iš esmės, visi trys juos tiesiog pereiti per savo kodą 301 00:13:41,260 --> 00:13:42,690 ir daryti skirtingus dalykus. 302 00:13:42,690 --> 00:13:45,680 >> Taigi paprastai, kai jūs derinti, mes nenorime tiesiog paspauskite Play 303 00:13:45,680 --> 00:13:47,930 nes Groti bus tiesiog paleisti Jūsų kodas jo pabaigoje. 304 00:13:47,930 --> 00:13:49,070 Ir tada jūs ne iš tikrųjų žinoti, ką jūsų problema 305 00:13:49,070 --> 00:13:51,432 yra, nebent jūs nustatyti kelis ribines vertes. 306 00:13:51,432 --> 00:13:53,890 Jei nustatėte kelis atskaitos taškus, Jis tiesiog automatiškai 307 00:13:53,890 --> 00:13:56,030 paleisti iš vienos nutrūkimo taške, į kitą, į kitą. 308 00:13:56,030 --> 00:13:58,030 Tačiau šiuo atveju mes tik, kad vienas, nes mes 309 00:13:58,030 --> 00:13:59,970 noriu dirbti savo kelią iš viršaus į apačią iki apačios. 310 00:13:59,970 --> 00:14:04,830 Taigi mes ketiname ignoruoti tą mygtuką dabar tikslais šioje programoje. 311 00:14:04,830 --> 00:14:08,230 >> Taigi virš funkcijos žingsnis tik žingsnių per kiekvieną eilutę 312 00:14:08,230 --> 00:14:11,510 ir jums pasakys, ką kompiuteris daro. 313 00:14:11,510 --> 00:14:14,630 Žingsnis į funkciją eina į faktinį funkcija 314 00:14:14,630 --> 00:14:16,000 tai savo linijos kodą. 315 00:14:16,000 --> 00:14:19,070 Taigi, pavyzdžiui, kaip ir printf (), kad yra funkcija, tiesa? 316 00:14:19,070 --> 00:14:21,980 Jei aš norėjau fiziškai žingsnis į printf () funkcija, 317 00:14:21,980 --> 00:14:25,610 Aš iš tikrųjų eiti į kūrinio kodas, kai printf () buvo parašyta ir pamatyti 318 00:14:25,610 --> 00:14:26,730 kas ten vyksta. 319 00:14:26,730 --> 00:14:29,924 >> Bet paprastai, mes manome, kad kodas, kad mes suteikiame Jums veikia. 320 00:14:29,924 --> 00:14:31,340 Manome, kad printf () dirba. 321 00:14:31,340 --> 00:14:33,170 Manome, kad GetInt () yra darbo. 322 00:14:33,170 --> 00:14:35,170 Taigi nėra reikalo žingsnis į šių funkcijų. 323 00:14:35,170 --> 00:14:37,170 Bet jei ten funkcijas kad rašote sau 324 00:14:37,170 --> 00:14:39,060 kad jūs norite patikrinti , kas vyksta, 325 00:14:39,060 --> 00:14:41,200 Jūs norėtumėte žingsnis į šią funkciją. 326 00:14:41,200 --> 00:14:43,940 >> Taigi dabar mes tiesiog vyksta peržengti šio kodo gabalas. 327 00:14:43,940 --> 00:14:44,485 Taigi pažiūrėkime. 328 00:14:44,485 --> 00:14:46,547 O, spausdinti, "O hai, kaip daug pokyčių yra skolingas? " 329 00:14:46,547 --> 00:14:47,130 Mums nerūpi. 330 00:14:47,130 --> 00:14:49,830 Mes žinome, kad manimi dirbti, todėl mes žingsnis per jį. 331 00:14:49,830 --> 00:14:53,290 >> Taigi, n, kuris yra mūsų plūdė, kad Mes initialized-- arba declared-- 332 00:14:53,290 --> 00:14:56,810 iki viršuje, mes dabar lygus, kad į GetFloat (). 333 00:14:56,810 --> 00:14:57,810 Taigi leiskite dėti daugiau, kad. 334 00:14:57,810 --> 00:14:59,580 Ir mes matome ne dugnas čia programa 335 00:14:59,580 --> 00:15:03,360 yra raginimo man įvesti vertės. 336 00:15:03,360 --> 00:15:08,580 Tad indėlis vertę mes norime išbandyti čia, kuris yra 0,41. 337 00:15:08,580 --> 00:15:09,160 Didysis. 338 00:15:09,160 --> 00:15:12,780 >> Taigi dabar n-- Ar jums vaikinai pamatyti čia ne bottom-- tai 339 00:15:12,780 --> 00:15:15,140 stored-- nes mes ne apvalinama dar, tai 340 00:15:15,140 --> 00:15:19,540 saugomi šiame kaip milžinas plūdė, kuri yra 0,4099999996, 341 00:15:19,540 --> 00:15:22,550 kuris yra pakankamai arti, kad mūsų tikslams, dabar, iki 0,41. 342 00:15:22,550 --> 00:15:26,090 Ir tada mes pamatysime vėliau, kaip mes toliau žengia per programa, 343 00:15:26,090 --> 00:15:29,850 po čia n tapo apvalus ir centų tapo 41. 344 00:15:29,850 --> 00:15:30,350 Didysis. 345 00:15:30,350 --> 00:15:32,230 Taigi mes žinome, kad mūsų apvalinimo darbingo. 346 00:15:32,230 --> 00:15:34,700 Mes žinome, kad mes turime teisingas skaičius centų, 347 00:15:34,700 --> 00:15:36,990 todėl mes žinome, kad tai tikrai ne problema. 348 00:15:36,990 --> 00:15:40,050 >> Taigi mes ir toliau žengia nuo šioje programoje. 349 00:15:40,050 --> 00:15:40,900 Mes einame čia. 350 00:15:40,900 --> 00:15:46,139 Ir taip po šio kodo eilutę, mes turėtų žinoti, kiek ketvirtadaliai turime. 351 00:15:46,139 --> 00:15:46,680 Mes peržengti. 352 00:15:46,680 --> 00:15:52,040 Ir matote mes, tiesą sakant, turi vieną ketvirtį, nes mes atimama 25 353 00:15:52,040 --> 00:15:53,790 iš mūsų pradinės vertės 41. 354 00:15:53,790 --> 00:15:55,890 Ir mes turime 16 išvyko į mūsų centų. 355 00:15:55,890 --> 00:15:58,830 >> Ar visi suprasti, kaip programa žengia per 356 00:15:58,830 --> 00:16:02,980 ir kodėl centų tapo 16 ir kodėl, dabar monetų tapo 1? 357 00:16:02,980 --> 00:16:04,610 Ar visi taip, kad logika? 358 00:16:04,610 --> 00:16:05,110 Saunus. 359 00:16:05,110 --> 00:16:07,860 Taigi, kaip šio punkte, Programos darbo, tiesa? 360 00:16:07,860 --> 00:16:09,797 Mes žinome, kad tai daro tiksliai ką mes norime jį. 361 00:16:09,797 --> 00:16:11,880 Ir mes iš tikrųjų nebuvo turi išspausdinti, oi, ką 362 00:16:11,880 --> 00:16:14,430 yra centų šiuo metu, kas monetų šiuo klausimu. 363 00:16:14,430 --> 00:16:17,170 >> Mes ir toliau išgyvena programą. 364 00:16:17,170 --> 00:16:18,100 Žingsnis vyresnis. 365 00:16:18,100 --> 00:16:18,620 Saunus. 366 00:16:18,620 --> 00:16:19,700 Mes einame per dimes. 367 00:16:19,700 --> 00:16:20,200 Didysis. 368 00:16:20,200 --> 00:16:22,367 Mes matome, kad tai atsižvelgti nuo $ 0,10 bulvarinis. 369 00:16:22,367 --> 00:16:23,450 Ir dabar mes turime dvi monetas. 370 00:16:23,450 --> 00:16:25,260 Teisingai. 371 00:16:25,260 --> 00:16:31,555 >> Mes einame per centus ir matome kad mes turime liko centų. 372 00:16:31,555 --> 00:16:32,680 Hmm, tai keista. 373 00:16:32,680 --> 00:16:37,540 Iki čia programos, turėjau , kad atimama savo centus. 374 00:16:37,540 --> 00:16:39,400 Galbūt aš tiesiog nebuvo daro ta linija teisę. 375 00:16:39,400 --> 00:16:42,190 Ir deja, jūs galite pamatyti čia, nes mes žinome, 376 00:16:42,190 --> 00:16:44,360 kad mes gerinimo per 32 ir 33 linijų, 377 00:16:44,360 --> 00:16:50,560 tai kur mūsų programa netinkamai buvo kintamieji paleisti. 378 00:16:50,560 --> 00:16:55,136 Taigi, mes galime pažvelgti ir pamatyti, OH, Aš atimant centų čia 379 00:16:55,136 --> 00:16:57,010 bet aš ne iš tikrųjų pridedant prie mano monetų vertės. 380 00:16:57,010 --> 00:16:57,860 Aš pridedant prie centų. 381 00:16:57,860 --> 00:17:00,234 Ir aš nenoriu įtraukti į centai, noriu įtraukti į monetas. 382 00:17:00,234 --> 00:17:05,420 Taigi, jei mes pakeisime, kad su monetomis, mes turime darbo programą. 383 00:17:05,420 --> 00:17:06,730 Galiu paleisti check50. 384 00:17:06,730 --> 00:17:11,063 Jūs galite tiesiog išeiti iš GDB teisė čia ir paleiskite check50 dar kartą. 385 00:17:11,063 --> 00:17:11,938 Galėčiau tik tai padaryti. 386 00:17:11,938 --> 00:17:14,822 387 00:17:14,822 --> 00:17:18,480 Aš turiu padaryti godus. 388 00:17:18,480 --> 00:17:19,940 0,41. 389 00:17:19,940 --> 00:17:22,819 Ir čia jis spausdinimas iš dešinės atsakymą. 390 00:17:22,819 --> 00:17:26,569 >> Taigi, kaip jūs vaikinai galite pamatyti, GDB yra tikrai galingas įrankis 391 00:17:26,569 --> 00:17:29,940 , kai mes turime tiek daug kodas vyksta ir tiek daug kintamųjų 392 00:17:29,940 --> 00:17:32,510 kad sunku mums, kaip žmogaus, sekti. 393 00:17:32,510 --> 00:17:35,360 Kompiuteris, į GDB debugeris, turi galimybę 394 00:17:35,360 --> 00:17:37,020 sekti viską. 395 00:17:37,020 --> 00:17:40,480 Žinau, visų Visionaire, vaikinai tikriausiai galėjo pataikyti keletą segmentavimo gedimus 396 00:17:40,480 --> 00:17:43,150 nes jūs naudojate iš ribų jūsų masyvo. 397 00:17:43,150 --> 00:17:46,510 Atsižvelgiant į Cezario Pavyzdžiui, tai ką aš įgyvendino čia. 398 00:17:46,510 --> 00:17:50,060 >> Taigi, aš pamiršau patikrinti kas nutiktų, jei aš 399 00:17:50,060 --> 00:17:52,510 neturėjo dviejų komandų eilutės argumentus. 400 00:17:52,510 --> 00:17:53,880 Aš tiesiog neišleido toje čekiu. 401 00:17:53,880 --> 00:17:57,380 Ir todėl, jei aš paleisti Debug-- nustatyti mano atskaitos tašką į dešinę ten. 402 00:17:57,380 --> 00:17:58,055 Aš paleisti derinti. 403 00:17:58,055 --> 00:18:15,880 404 00:18:15,880 --> 00:18:16,550 >> GERAI. 405 00:18:16,550 --> 00:18:17,050 Taip. 406 00:18:17,050 --> 00:18:20,350 Taigi iš tikrųjų, GDB turėjo kad jie ten man pasakė, 407 00:18:20,350 --> 00:18:22,300 buvo segmentavimo kaltės nėra. 408 00:18:22,300 --> 00:18:24,883 Aš nežinau, kas vyksta tiesiai ten, bet kai išbėgau, 409 00:18:24,883 --> 00:18:25,590 jis dirbo. 410 00:18:25,590 --> 00:18:29,410 Paleidus kodo eilutes per ir GDB gali tik staiga mesti jums, 411 00:18:29,410 --> 00:18:31,540 eiti ir ieškoti, kas raudona yra klaida. 412 00:18:31,540 --> 00:18:33,930 Jis jums pasakys, ei, jus turėjo segmentavimo kaltės, 413 00:18:33,930 --> 00:18:38,550 o tai reiškia, kad jūs bandėte atidaryti vietos masyve, kad neegzistavo. 414 00:18:38,550 --> 00:18:39,050 Taip. 415 00:18:39,050 --> 00:18:43,280 >> Taigi, į kitą problemą Nustatykite šią savaitę vaikinai 416 00:18:43,280 --> 00:18:45,600 tikriausiai turime daug kintamieji plūduriuojančius aplink. 417 00:18:45,600 --> 00:18:48,560 Jūs esate nesiruošia būti tikras, ką visi jie reiškia tam tikru. 418 00:18:48,560 --> 00:18:53,560 Taigi GDB tikrai padės jums suprasti , ką jie visi lygus 419 00:18:53,560 --> 00:18:55,940 ir kad galėtų pamatyti, kad vizualiai. 420 00:18:55,940 --> 00:19:01,995 Ar kas nors nežino, kaip bet, kad buvo darbo? 421 00:19:01,995 --> 00:19:02,495 Saunus. 422 00:19:02,495 --> 00:19:10,121 423 00:19:10,121 --> 00:19:10,620 Gerai. 424 00:19:10,620 --> 00:19:14,260 Taigi po to, esame ketina pasinerti į dešinę 425 00:19:14,260 --> 00:19:17,562 į keturių skirtingų tipų rūšių šią savaitę. 426 00:19:17,562 --> 00:19:19,520 Kaip daugelis iš jūsų pirmas iš visų, prieš pradedant, 427 00:19:19,520 --> 00:19:23,020 Perskaičiau visą spec už pset3? 428 00:19:23,020 --> 00:19:23,824 GERAI. 429 00:19:23,824 --> 00:19:24,740 Aš didžiuojuosi jumis vaikinai. 430 00:19:24,740 --> 00:19:29,110 Štai kaip pusė klasės, kuri yra žymiai daugiau nei paskutinį kartą. 431 00:19:29,110 --> 00:19:33,950 >> Taigi tai puiku, nes kai mes kalbame apie turinį 432 00:19:33,950 --> 00:19:36,170 į lecture-- arba Atsiprašome, į section-- man patinka 433 00:19:36,170 --> 00:19:38,210 susieti daug, kad Atgal į ką pset yra 434 00:19:38,210 --> 00:19:40,210 ir kaip norite įgyvendinti, kad jūsų pset. 435 00:19:40,210 --> 00:19:42,400 Taigi, jei tu atėjai, turintys skaityti spec, jis bus 436 00:19:42,400 --> 00:19:45,510 bus daug lengviau jums suprasti ką aš kalbu, kai sakau, 437 00:19:45,510 --> 00:19:48,720 oi ei, tai gali būti tikrai gera vieta įgyvendinti šį rūšiuoti. 438 00:19:48,720 --> 00:19:52,870 Taigi tie iš jūsų, kurie skaityti spec žinoti, kad dalį savo pset, 439 00:19:52,870 --> 00:19:54,900 jūs ketinate turi parašyti rūšiuoti tipą. 440 00:19:54,900 --> 00:19:58,670 Taigi, tai gali būti labai naudinga už jus šiandien daug. 441 00:19:58,670 --> 00:20:01,760 >> Taigi mes pradėti su, Iš esmės, pats paprasčiausias tipas 442 00:20:01,760 --> 00:20:04,580 rūšiuoti, atrankos rūšiuoti. 443 00:20:04,580 --> 00:20:06,800 Tipiškas algoritmas kaip mes norime eiti apie tai 444 00:20:06,800 --> 00:20:10,460 is-- Dovydas nuėjo per šias visi paskaita, todėl aš greitai judėti 445 00:20:10,460 --> 00:20:13,900 here-- iš esmės, jums turėti vertybių masyvo. 446 00:20:13,900 --> 00:20:17,170 Ir tada jūs rasti Mažiausias nerūšiuotos vertė 447 00:20:17,170 --> 00:20:20,200 ir jūs apsikeitimo šią vertę su pirmasis nerūšiuotos vertė. 448 00:20:20,200 --> 00:20:22,700 Ir tada jums tiesiog nuolat kartoti su savo sąrašą poilsio. 449 00:20:22,700 --> 00:20:25,740 >> Ir štai vizualus paaiškinimas kaip kad galėtų dirbti. 450 00:20:25,740 --> 00:20:30,460 Taigi, pavyzdžiui, jei mes pradėti Su iš penkių elementų masyvas, indeksas 451 00:20:30,460 --> 00:20:35,910 0 iki 4, su 3, 5, 2, 6, ir 4 reikšmės dedamas į array-- tiek dabar, 452 00:20:35,910 --> 00:20:38,530 mes tik ketina prisiimti kad jie visi nerūšiuotų 453 00:20:38,530 --> 00:20:41,130 nes mes ne testuoti kitaip. 454 00:20:41,130 --> 00:20:44,130 >> Taigi, kaip atrankos Rūšiuoti būtų darbas yra tai, kad būtų pirmas 455 00:20:44,130 --> 00:20:46,800 eina per visas iš nerūšiuotų masyvo. 456 00:20:46,800 --> 00:20:49,120 Būtų išpešti mažiausią vertę. 457 00:20:49,120 --> 00:20:51,750 Šiuo atveju, 3, dešinę dabar yra mažiausias. 458 00:20:51,750 --> 00:20:52,680 Ji gauna iki 5. 459 00:20:52,680 --> 00:20:55,620 Ne, 5, yra ne didesnė than-- arba Atsiprašome, yra ne mažesnis than-- 3. 460 00:20:55,620 --> 00:20:57,779 Taigi minimali vertė vis dar yra 3. 461 00:20:57,779 --> 00:20:58,695 Ir tada jūs gausite 2. 462 00:20:58,695 --> 00:21:00,990 Kompiuteris mato, OH, 2 yra mažesnis nei 3. 463 00:21:00,990 --> 00:21:02,750 Dabar 2, turi būti minimali vertė. 464 00:21:02,750 --> 00:21:06,630 Ir taip 2 apsikeitimo su tos pirmosios vertę. 465 00:21:06,630 --> 00:21:10,702 >> Taigi, po vieną perdavimą, mes iš tikrųjų pamatyti kad 2 ir 3 yra sukeistos. 466 00:21:10,702 --> 00:21:13,910 Ir mes tik ketina toliau daryti Tai vėl su masyvo poilsio. 467 00:21:13,910 --> 00:21:17,660 Taigi mes ketiname tiesiog paleisti per per pastaruosius ketverius indeksai masyvo. 468 00:21:17,660 --> 00:21:20,670 Pamatysime, kad 3 yra Kitas minimali vertė. 469 00:21:20,670 --> 00:21:23,240 Taigi mes ketiname apsikeitimo, kad su 4. 470 00:21:23,240 --> 00:21:26,900 Ir tada mes tik ketina išlaikyti veikia per kol, galų gale, jums 471 00:21:26,900 --> 00:21:33,730 patekti į rūšiuotų masyvo, kurioje 2, 3, 4, 5, 6, ir visi yra rūšiuojami. 472 00:21:33,730 --> 00:21:37,530 Ar visi suprasti logiką kaip atrankos Rūšiuoti veikia? 473 00:21:37,530 --> 00:21:39,669 >> Jūs tiesiog turite kokią nors minimalaus vertę. 474 00:21:39,669 --> 00:21:41,210 Jūs sekti, kas tai yra. 475 00:21:41,210 --> 00:21:45,170 Ir kiekvieną kartą, kai jūs ją rasti, galite sukeisti su pirmuoju verte array-- 476 00:21:45,170 --> 00:21:48,740 arba, ne pirmas value-- Kitas vertė masyvo. 477 00:21:48,740 --> 00:21:50,150 Saunus. 478 00:21:50,150 --> 00:21:55,460 >> Taigi, kaip jūs vaikinai rūšies pamačiau iš trumpo žvilgsnis, 479 00:21:55,460 --> 00:21:58,450 mes ketiname Pseudocode this out. 480 00:21:58,450 --> 00:22:02,510 Taigi, jei jus vaikinai gale noriu sudaro grupę, kiekvienas prie stalo 481 00:22:02,510 --> 00:22:06,170 gali susidaryti šiek tiek partnerį, aš ruošiuosi duoti jums, vaikinai kaip tris minutes 482 00:22:06,170 --> 00:22:08,190 tiesiog pasikalbėti per logika, anglų kalba, 483 00:22:08,190 --> 00:22:14,161 kaip mes galėtų įgyvendinti Pseudocode parašyti atrankos rūšiuoti. 484 00:22:14,161 --> 00:22:14,910 Ir ten saldainiai. 485 00:22:14,910 --> 00:22:16,118 Prašome ateiti ir gauti saldainių. 486 00:22:16,118 --> 00:22:19,520 Jei esate nugaros ir norite saldainiai, galiu mesti saldainiai jums. 487 00:22:19,520 --> 00:22:22,850 Tiesą sakant, tai you-- atvėsti. 488 00:22:22,850 --> 00:22:23,552 O, atsiprašau. 489 00:22:23,552 --> 00:22:26,751 490 00:22:26,751 --> 00:22:27,250 GERAI. 491 00:22:27,250 --> 00:25:23,880 492 00:25:23,880 --> 00:25:27,140 >> Taigi, jei mes norėtume, kaip klasė, rašyti Pseudocode 493 00:25:27,140 --> 00:25:30,466 kiek vienas gali kreiptis į Ši problema, tiesiog nedvejodami. 494 00:25:30,466 --> 00:25:32,340 Aš tiesiog eiti aplink ir tam, kreipkitės į grupes 495 00:25:32,340 --> 00:25:35,065 kito linijos Ką turėtume daryti. 496 00:25:35,065 --> 00:25:37,840 Taigi, jei jus vaikinai nori pradėti išjungti, kas yra pirmas dalykas, 497 00:25:37,840 --> 00:25:40,600 daryti, kai jūs bandote įgyvendinti būdas išspręsti šią programą 498 00:25:40,600 --> 00:25:43,480 selektyviai rūšiuoti sąrašą? 499 00:25:43,480 --> 00:25:46,349 Tegul tik daryti prielaidą, mes turi masyvą, gerai? 500 00:25:46,349 --> 00:25:49,088 >> Auditorija: Jūs norite sukurti kai rūšiuoti [nesigirdi], kad esate 501 00:25:49,088 --> 00:25:50,420 veikia per visą savo masyvo. 502 00:25:50,420 --> 00:25:51,128 >> ANDI Peng: Teisė. 503 00:25:51,128 --> 00:25:54,100 Taigi, jūs ketinate norite pakartoti per kiekvieną erdvę, tiesa? 504 00:25:54,100 --> 00:26:05,490 Taigi, puikus. 505 00:26:05,490 --> 00:26:08,600 Jei vaikinai nori duoti man Kitas line-- taip, gale. 506 00:26:08,600 --> 00:26:11,414 507 00:26:11,414 --> 00:26:13,290 >> Auditorija: Pabandykite juos Viskas mažiausias. 508 00:26:13,290 --> 00:26:14,248 >> ANDI Peng: Nėra mes einame. 509 00:26:14,248 --> 00:26:17,438 Taigi mes norime pereiti ir patikrinkite, pamatyti, kas minimali vertė yra tiesa? 510 00:26:17,438 --> 00:26:22,110 511 00:26:22,110 --> 00:26:24,840 Aš ruošiuosi sutrumpinti, kad į "min". 512 00:26:24,840 --> 00:26:27,658 Ką vaikinai nori daryti po radote mažiausią vertę? 513 00:26:27,658 --> 00:26:28,533 >> Auditorija: [nesigirdi] 514 00:26:28,533 --> 00:26:29,942 515 00:26:29,942 --> 00:26:33,150 ANDI Peng: Taigi jūs ketinate norite perjungti jį su pirmojo iš tos masyvą, 516 00:26:33,150 --> 00:26:33,650 tiesa? 517 00:26:33,650 --> 00:26:45,120 518 00:26:45,120 --> 00:26:46,850 Štai pradžia, aš ruošiuosi pasakyti. 519 00:26:46,850 --> 00:26:47,220 Gerai. 520 00:26:47,220 --> 00:26:50,386 Taigi dabar, kad jūs pavertė pirmas viena, ką jūs norite daryti po to? 521 00:26:50,386 --> 00:26:54,840 Taigi, dabar mes žinome, kad tai vienas čia turi būti mažiausios vertės, tiesa? 522 00:26:54,840 --> 00:26:58,310 Tada jūs turite papildomą poilsio masyvo Štai nerūšiuotos. 523 00:26:58,310 --> 00:27:01,569 Taigi, ką jūs norite daryti čia, jei jums vaikinai nori man duoti kitą eilutę? 524 00:27:01,569 --> 00:27:04,610 Auditorija: Taigi jūs norite pakartoti per masyvo likusią dalį. 525 00:27:04,610 --> 00:27:05,276 ANDI Peng: Taip. 526 00:27:05,276 --> 00:27:09,857 Ir taip ką Iteracja per rūšies reiškia, mes tikriausiai reikia? 527 00:27:09,857 --> 00:27:10,440 Kokios of-- 528 00:27:10,440 --> 00:27:12,057 >> AUDITORIJA: Oi, papildomas kintamasis? 529 00:27:12,057 --> 00:27:13,890 ANDI Peng: Tikriausiai kita kilpa, tiesa? 530 00:27:13,890 --> 00:27:28,914 Taigi, mes tikriausiai norės į pakartoti through-- didelis. 531 00:27:28,914 --> 00:27:31,830 Ir tada jūs ketinate grįžti ir tikriausiai patikrinti mažiausiai kartą 532 00:27:31,830 --> 00:27:32,100 tiesa? 533 00:27:32,100 --> 00:27:34,975 Ir jūs ketinate nuolat kartoti tai, nes kilpos tik ketina 534 00:27:34,975 --> 00:27:36,010 nuolat veikia, tiesa? 535 00:27:36,010 --> 00:27:39,190 >> Taigi, kaip jūs vaikinai galite pamatyti, mes tiesiog turėti bendrą Pseudocode 536 00:27:39,190 --> 00:27:41,480 kaip mes norime, kad tai programos ieškoti. 537 00:27:41,480 --> 00:27:46,646 Tai kartoti čia ką mes paprastai reikia parašyti mūsų kodas 538 00:27:46,646 --> 00:27:49,270 jei norime pakartoti per masyvas, kokios rūšies struktūros? 539 00:27:49,270 --> 00:27:51,030 Manau Christabel jau sakiau anksčiau. 540 00:27:51,030 --> 00:27:51,500 >> Auditorija: A kilpa. 541 00:27:51,500 --> 00:27:52,160 >> ANDI Peng: A kilpa? 542 00:27:52,160 --> 00:27:52,770 Būtent. 543 00:27:52,770 --> 00:27:56,060 Taigi tai tikriausiai bus už kilpa. 544 00:27:56,060 --> 00:27:59,240 Kas yra čekis čia ketina reikšti? 545 00:27:59,240 --> 00:28:02,536 Paprastai, jei norite patikrinti jei kažkas yra kažkas else-- 546 00:28:02,536 --> 00:28:03,270 >> Auditorija: Jei. 547 00:28:03,270 --> 00:28:06,790 >> ANDI Peng: IF, tiesa? 548 00:28:06,790 --> 00:28:10,790 Ir tada apsikeitimo čia mes eiti per vėliau, nes Dovydo 549 00:28:10,790 --> 00:28:12,770 išgyveno, kad paskaitos, taip pat. 550 00:28:12,770 --> 00:28:14,580 Ir tada antra kartoti implies-- 551 00:28:14,580 --> 00:28:15,120 >> Auditorija: Kitas kilpą. 552 00:28:15,120 --> 00:28:16,745 >> ANDI Peng: --another už kilpos, tiksliai. 553 00:28:16,745 --> 00:28:19,870 554 00:28:19,870 --> 00:28:22,000 Taigi, jei mes ieškome ne tai teisingai, mes 555 00:28:22,000 --> 00:28:24,680 galite pamatyti, kad mes tikriausiai ketinate reikia už kilpa įdėtos 556 00:28:24,680 --> 00:28:28,330 su lygtiniu pareiškimą ten ir tada tikrasis kodo fragmentą, kad tai 557 00:28:28,330 --> 00:28:31,360 ketina sukeisti vertybes. 558 00:28:31,360 --> 00:28:35,980 Taigi aš tiesiog paprastai parašyta Pseudocode kodas čia. 559 00:28:35,980 --> 00:28:38,910 Ir tada mes iš tikrųjų ketiname fiziškai, kaip klasė, 560 00:28:38,910 --> 00:28:40,700 pabandykite tai šiandien įgyvendinti. 561 00:28:40,700 --> 00:28:42,486 Grįžkime į šį 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 Kodėl taip yra not-- ten jis yra. 565 00:28:51,754 --> 00:28:52,253 GERAI. 566 00:28:52,253 --> 00:28:55,834 567 00:28:55,834 --> 00:28:57,500 Atsiprašome, leiskite man pabandyti padidinti šiek tiek daugiau. 568 00:28:57,500 --> 00:28:59,310 Čia mes eiti. 569 00:28:59,310 --> 00:29:05,060 Viskas, ką aš darau čia aš sukūriau programa, vadinama "atranka / sort.c". 570 00:29:05,060 --> 00:29:10,860 Aš sukūrė devynių masyvo vertės, 4, 8, 2, 1, 6, 9, 7, 5, 3. 571 00:29:10,860 --> 00:29:14,370 Šiuo metu, kaip jūs galite pamatyti, jie yra netvarkingai. 572 00:29:14,370 --> 00:29:17,880 n yra ketina būti numerį, jums pasakys vertybių sumą 573 00:29:17,880 --> 00:29:18,920 turite savo masyvo. 574 00:29:18,920 --> 00:29:20,670 Šiuo atveju, yra devyni reikšmes. 575 00:29:20,670 --> 00:29:23,760 Ir aš ką tik gavo už kilpos čia kad spausdina į nerūšiuotas masyvo. 576 00:29:23,760 --> 00:29:28,370 >> Ir galų gale, aš taip pat gavo už kilpa, kad tik spausdina jį dar kartą. 577 00:29:28,370 --> 00:29:32,070 Taigi, teoriškai, jeigu šios programos veikia teisingai, pabaigoje, 578 00:29:32,070 --> 00:29:35,670 Jūs turėtumėte pamatyti spausdinami kilpa kur 1, 2, 3, 4, 5, 6, 7, 8, 579 00:29:35,670 --> 00:29:39,310 9 yra visi teisingai, kad. 580 00:29:39,310 --> 00:29:43,410 >> Taigi mes turime mūsų Pseudocode čia. 581 00:29:43,410 --> 00:29:46,090 Ar kas nors nori to-- Aš tiesiog ketina eiti prašyti volunteers-- 582 00:29:46,090 --> 00:29:49,540 pasakykite man, ką rašyti, jei mes norime, pirma, tik pakartoti 583 00:29:49,540 --> 00:29:52,840 per šio masyvo pradžios? 584 00:29:52,840 --> 00:29:55,204 Koks kodo eilutę aš tikriausiai reikia čia? 585 00:29:55,204 --> 00:29:56,990 >> Auditorija: [nesigirdi] 586 00:29:56,990 --> 00:29:59,010 >> ANDI Peng: Taip, jaučia nemokama to-- Atsiprašome, bet jūs 587 00:29:59,010 --> 00:30:02,318 neturi stovėti up-- jaustis nemokama pakelti jūsų balsas truputį. 588 00:30:02,318 --> 00:30:08,190 >> Auditorija: Dėl int i lygus 0-- 589 00:30:08,190 --> 00:30:10,690 >> ANDI Peng: Taip, gerai. 590 00:30:10,690 --> 00:30:15,220 >> AUDITORIJA: i yra mažiau nei masyvo ilgį. 591 00:30:15,220 --> 00:30:19,630 >> ANDI Peng: Taigi turėkite mind čia, nes mes 592 00:30:19,630 --> 00:30:23,060 neturi funkciją, kuri pasakoja mums masyvo ilgis, 593 00:30:23,060 --> 00:30:25,790 Mes jau turime vertė, kuri saugo, kad. 594 00:30:25,790 --> 00:30:27,920 Teisė? 595 00:30:27,920 --> 00:30:31,010 Kitas dalykas, kad į mind-- masyve 596 00:30:31,010 --> 00:30:33,940 devynių vertybių, kokie yra rodikliai? 597 00:30:33,940 --> 00:30:38,720 Leiskite tik pasakyti, tai masyvas, rezultatas buvo 0 iki 3. 598 00:30:38,720 --> 00:30:41,500 Jūs matote, kad paskutinis indeksas yra iš tikrųjų 3. 599 00:30:41,500 --> 00:30:45,530 Tai ne 4, nors ten Keturi vertės masyvo. 600 00:30:45,530 --> 00:30:49,866 >> Taigi čia mes turime būti labai atsargūs, apie tai, ką mūsų sąlyga ilgio 601 00:30:49,866 --> 00:30:50,490 bus. 602 00:30:50,490 --> 00:30:51,948 >> Auditorija: Ar nebūtų n atėmus 1? 603 00:30:51,948 --> 00:30:54,440 ANDI Peng: Tai vyksta n atėmus 1, tiksliai. 604 00:30:54,440 --> 00:30:57,379 Ar tai prasminga, kodėl tai n atėmus 1, visi? 605 00:30:57,379 --> 00:30:58,920 Tai todėl, kad matricos yra nulinės indeksuojami. 606 00:30:58,920 --> 00:31:02,010 Jie pradeda nuo 0 ir paleisti iki n atėmus 1 d. 607 00:31:02,010 --> 00:31:03,210 Taip, tai šiek tiek sudėtinga. 608 00:31:03,210 --> 00:31:03,730 GERAI. 609 00:31:03,730 --> 00:31:05,929 Ir tada-- 610 00:31:05,929 --> 00:31:08,054 Auditorija: Isnt'1 kad jau pasirūpinta, nors, 611 00:31:08,054 --> 00:31:11,400 tiesiog nesakau "mažesnis arba lygi ", o tiesiog pasakyti" mažiau nei? " 612 00:31:11,400 --> 00:31:13,108 >> ANDI Peng: Tai šiek tikrai geras klausimas. 613 00:31:13,108 --> 00:31:13,630 Taigi, taip. 614 00:31:13,630 --> 00:31:17,410 Bet taip pat, kaip kad mes Įgyvendinant tikrinimo teisę, 615 00:31:17,410 --> 00:31:19,120 jums reikia palyginti dvi reikšmes. 616 00:31:19,120 --> 00:31:21,009 Taigi jūs iš tikrųjų norite palikti "į" tuščias. 617 00:31:21,009 --> 00:31:23,050 Nes jei jūs palyginkite tai viena, jūs nesiruošia 618 00:31:23,050 --> 00:31:25,530 nieko po to, kai palyginti su, tiesa? 619 00:31:25,530 --> 00:31:27,460 Taip. 620 00:31:27,460 --> 00:31:29,297 Taigi aš ++. 621 00:31:29,297 --> 00:31:30,380 Pridėkime mūsų skliausteliuose. 622 00:31:30,380 --> 00:31:30,880 Oi. 623 00:31:30,880 --> 00:31:33,950 624 00:31:33,950 --> 00:31:34,710 Didysis. 625 00:31:34,710 --> 00:31:39,117 Taigi, mes turime pradžią mūsų išorinio kontūro. 626 00:31:39,117 --> 00:31:41,450 Taigi dabar mes tikriausiai norėsite sukurti išlaikant kintamasis 627 00:31:41,450 --> 00:31:43,085 kelio mažiausio vertės, tiesa? 628 00:31:43,085 --> 00:31:45,751 Ar kas nors nori duoti man linija kodą, kuris būtų tai padaryti? 629 00:31:45,751 --> 00:31:48,700 630 00:31:48,700 --> 00:31:53,570 Ką mes turime, jei mes ketiname nori laikyti kažką? 631 00:31:53,570 --> 00:31:55,047 >> Teisė. 632 00:31:55,047 --> 00:31:57,630 Gal geriau pavadinimą, kad būtų be-- "Temp" visiškai works-- 633 00:31:57,630 --> 00:32:00,655 gal daugiau taikliai pavadino būtų, Jeigu norime, kad mažiausią value-- 634 00:32:00,655 --> 00:32:01,624 >> Auditorija: Min. 635 00:32:01,624 --> 00:32:02,790 ANDI Peng: min ten einame. 636 00:32:02,790 --> 00:32:05,230 min Būtų gerai. 637 00:32:05,230 --> 00:32:08,340 Ir todėl čia, ką mes nori inicijuoti jį? 638 00:32:08,340 --> 00:32:09,620 Tai yra šiek tiek sudėtinga. 639 00:32:09,620 --> 00:32:13,580 Nes dabar ne pradžioje šio masyvo, 640 00:32:13,580 --> 00:32:15,730 turite ne pažvelgė nieko, tiesa? 641 00:32:15,730 --> 00:32:19,200 Taigi, kas, savaime, jei Užtenka tik ant i yra lygus 0, 642 00:32:19,200 --> 00:32:22,302 ką mes norime inicijuoti mūsų pirmasis minimali vertė? 643 00:32:22,302 --> 00:32:22,802 AUDITORIJA: i. 644 00:32:22,802 --> 00:32:24,790 ANDI Peng: I, tiksliai. 645 00:32:24,790 --> 00:32:27,040 Christabel, kodėl mes norime inicijuoti jį i? 646 00:32:27,040 --> 00:32:28,510 >> Auditorija: Kadangi gerai, mes pradedant 0. 647 00:32:28,510 --> 00:32:31,660 Taigi todėl, kad mes nieko palyginti kad ji, minimalus bus baigti yra 0. 648 00:32:31,660 --> 00:32:32,451 >> ANDI Peng: Būtent. 649 00:32:32,451 --> 00:32:34,400 Taigi ji visiškai teisus. 650 00:32:34,400 --> 00:32:36,780 Nes mes ne iš tikrųjų pažvelgė nieko dar, 651 00:32:36,780 --> 00:32:38,680 mes nežinome, kas mūsų minimali vertė yra. 652 00:32:38,680 --> 00:32:41,960 Mes norime, kad tik inicijuoti jį Aš, kuris šiuo metu yra čia. 653 00:32:41,960 --> 00:32:44,750 Ir kaip mes toliau žemyn šį masyvą, 654 00:32:44,750 --> 00:32:48,122 matysime, kad vieni su Papildoma kamuolį, aš žingsniais. 655 00:32:48,122 --> 00:32:49,830 Ir taip, kad tuo momentu, Aš tikriausiai vyksta 656 00:32:49,830 --> 00:32:52,329 nori būti minimali,, nes jis bus whatever 657 00:32:52,329 --> 00:32:54,520 yra nerūšiuotų masyvo pradžia. 658 00:32:54,520 --> 00:32:55,270 Saunus. 659 00:32:55,270 --> 00:32:58,720 >> Taigi dabar mes norime pridėti už kilpos čia tai 660 00:32:58,720 --> 00:33:03,225 ketina pakartoti per nerūšiuotus, arba šio masyvo poilsio. 661 00:33:03,225 --> 00:33:05,808 Ar kas nors nori man duoti linija kodą, kuris būtų tai padaryti? 662 00:33:05,808 --> 00:33:08,870 663 00:33:08,870 --> 00:33:11,330 Hint-- Ką turime žemyn čia? 664 00:33:11,330 --> 00:33:17,320 665 00:33:17,320 --> 00:33:18,820 Kas vyksta eiti tai už kilpa? 666 00:33:18,820 --> 00:33:19,465 Taip. 667 00:33:19,465 --> 00:33:21,590 Auditorija: Taigi mes norime norite turi skirtingą sveikasis skaičius, 668 00:33:21,590 --> 00:33:25,080 nes mes paleisti per likusį masyvo vietoj I, tai gal 669 00:33:25,080 --> 00:33:25,760 j. 670 00:33:25,760 --> 00:33:27,301 >> ANDI Peng: Taip, j skamba gerai man. 671 00:33:27,301 --> 00:33:27,850 Lygu? 672 00:33:27,850 --> 00:33:33,930 >> Auditorija: Taigi būtų i plius 1, nes jūs pradedant kitą vertę. 673 00:33:33,930 --> 00:33:40,395 Ir tada į end-- Taigi dar kartą, j yra mažiau nei n minus 1, ir po to j ++. 674 00:33:40,395 --> 00:33:41,103 ANDI Peng: Didysis. 675 00:33:41,103 --> 00:33:48,510 676 00:33:48,510 --> 00:33:52,750 >> Ir tada čia mes ketiname nori patikrinti, pamatyti, jei mūsų sąlyga yra įvykdyta, 677 00:33:52,750 --> 00:33:53,250 tiesa? 678 00:33:53,250 --> 00:33:55,740 Kadangi jūs norite pakeisti mažiausią vertę 679 00:33:55,740 --> 00:33:58,700 jei tai tikrai mažesnis nei Jūs lyginant ją, tiesa? 680 00:33:58,700 --> 00:34:01,146 Taigi, ką mes ketiname nori čia? 681 00:34:01,146 --> 00:34:04,160 682 00:34:04,160 --> 00:34:04,897 Patikrinkite, pamatyti. 683 00:34:04,897 --> 00:34:06,730 Kokios ataskaitos mes tikriausiai 684 00:34:06,730 --> 00:34:08,389 TI norite naudoti, jei mes norite patikrinti kažką? 685 00:34:08,389 --> 00:34:09,360 >> Auditorija: if. 686 00:34:09,360 --> 00:34:10,485 >> ANDI Peng: if. 687 00:34:10,485 --> 00:34:13,155 Taigi if-- ir kas bus sąlyga, kad mes norime viduje 688 00:34:13,155 --> 00:34:13,988 Mūsų IF? 689 00:34:13,988 --> 00:34:18,255 690 00:34:18,255 --> 00:34:22,960 >> Auditorija: Jei j vertė yra mažesnis nei i-- vertės 691 00:34:22,960 --> 00:34:24,600 >> ANDI Peng: Būtent. 692 00:34:24,600 --> 00:34:27,480 Taigi if-- todėl šis masyvas vadinamas "masyvas". 693 00:34:27,480 --> 00:34:27,980 Didysis. 694 00:34:27,980 --> 00:34:30,465 Taigi, jei array-- kas tai buvo? 695 00:34:30,465 --> 00:34:31,090 Pakartok. 696 00:34:31,090 --> 00:34:39,590 >> AUDITORIJA: Jei masyvo-j yra mažiau nei masyvas-i, tada mes turėtume pakeisti min. 697 00:34:39,590 --> 00:34:41,590 Taigi min būtų j. 698 00:34:41,590 --> 00:34:44,590 699 00:34:44,590 --> 00:34:47,249 >> ANDI Peng: Ar tai prasminga? 700 00:34:47,249 --> 00:34:48,670 GERAI. 701 00:34:48,670 --> 00:34:52,929 Ir dabar žemyn čia, mes iš tikrųjų nori įgyvendinti apsikeitimo sandoriai, tiesa? 702 00:34:52,929 --> 00:34:58,285 Taigi prisiminti, kad paskaita, kad Dovydas, kai jis bando apsikeitimo the-- kas buvo 703 00:34:58,285 --> 00:34:59,996 it-- apelsinų sultys ir milk-- 704 00:34:59,996 --> 00:35:01,150 >> Auditorija: Tai buvo bruto. 705 00:35:01,150 --> 00:35:02,816 >> ANDI Peng: Taip, tai buvo natūra bruto. 706 00:35:02,816 --> 00:35:05,310 Bet tai buvo gana geras koncepcija parodyti laiką. 707 00:35:05,310 --> 00:35:08,430 Taigi manau, jūsų vertybėmis čia. 708 00:35:08,430 --> 00:35:10,794 Jūs turite masyvą nuo min, o tai yra i masyvas, 709 00:35:10,794 --> 00:35:12,460 ar kas mes stengiamės apsikeitimo čia. 710 00:35:12,460 --> 00:35:15,310 Ir jūs turbūt negali supilkite juos į tuo pačiu metu, vienas nuo kito, teisę? 711 00:35:15,310 --> 00:35:17,180 Taigi, ką mes ketiname kad reikia sukurti čia 712 00:35:17,180 --> 00:35:19,126 tam, kad apsikeitimo reikšmes teisingai? 713 00:35:19,126 --> 00:35:19,820 >> Auditorija: laikinai kintamasis. 714 00:35:19,820 --> 00:35:21,370 >> ANDI Peng: laikinai kintamasis. 715 00:35:21,370 --> 00:35:22,570 Taigi darykime int temp. 716 00:35:22,570 --> 00:35:25,681 Žr, tai būtų geriau, laikas to-- Whoa, kas tai buvo? 717 00:35:25,681 --> 00:35:26,180 GERAI. 718 00:35:26,180 --> 00:35:29,800 Taigi tai būtų buvę geriau laikas pavadinti kintamasis "Temp". 719 00:35:29,800 --> 00:35:30,730 Taigi darykime int temp. 720 00:35:30,730 --> 00:35:32,563 Ką mes ketiname nustatyti temp lygią čia? 721 00:35:32,563 --> 00:35:34,752 722 00:35:34,752 --> 00:35:35,335 Auditorija: Min? 723 00:35:35,335 --> 00:35:38,508 724 00:35:38,508 --> 00:35:39,716 ANDI Peng: Tai šiek tiek sudėtinga. 725 00:35:39,716 --> 00:35:43,110 726 00:35:43,110 --> 00:35:44,880 Tai iš tikrųjų nesvarbu, galų gale. 727 00:35:44,880 --> 00:35:47,690 Nesvarbu, ką Kad jūs nuspręsite apsikeitimo 728 00:35:47,690 --> 00:35:50,862 kaip ilgai, kaip jūs darote, kad esate sekti, ką jūs Swapping. 729 00:35:50,862 --> 00:35:52,250 >> Auditorija: Tai gali būti masyvas-i. 730 00:35:52,250 --> 00:35:53,666 >> ANDI Peng: Taip, darykime masyvo-I. 731 00:35:53,666 --> 00:35:55,950 732 00:35:55,950 --> 00:35:59,305 Ir kas tada bus kitas linija kodo norime turėti čia? 733 00:35:59,305 --> 00:36:00,680 Auditorija: masyvas-i yra lygus masyvo-J. 734 00:36:00,680 --> 00:36:07,154 735 00:36:07,154 --> 00:36:08,070 ANDI Peng: Ir galiausiai? 736 00:36:08,070 --> 00:36:12,070 Auditorija: masyvas-J lygus masyvo-i. 737 00:36:12,070 --> 00:36:14,525 Auditorija: arba matriciniai-j nelygiaverčiai masyvas-temp-- arba temp. 738 00:36:14,525 --> 00:36:17,135 739 00:36:17,135 --> 00:36:19,430 >> ANDI Peng: Gerai. 740 00:36:19,430 --> 00:36:21,510 Taigi leiskite veikti tai ir pamatyti jei jis vyksta į darbą. 741 00:36:21,510 --> 00:36:37,520 742 00:36:37,520 --> 00:36:39,335 Kur yra ta, kad vyksta? 743 00:36:39,335 --> 00:36:40,210 Oi, tai problema. 744 00:36:40,210 --> 00:36:44,320 Žr ant 40 eilutėje, mes bando naudoti masyvo-J? 745 00:36:44,320 --> 00:36:47,022 Bet kur j egzistuoja tik? 746 00:36:47,022 --> 00:36:48,402 >> Auditorija: Į for ciklas. 747 00:36:48,402 --> 00:36:49,110 ANDI Peng: Teisė. 748 00:36:49,110 --> 00:36:51,730 Taigi, ką mes ketiname daryti? 749 00:36:51,730 --> 00:36:53,170 >> Auditorija: Nustatykite jį ne the-- 750 00:36:53,170 --> 00:36:57,777 751 00:36:57,777 --> 00:37:00,610 Auditorija: Taip, aš manau, jūs turite naudoti kitą, jei teiginys, tiesa? 752 00:37:00,610 --> 00:37:05,230 Taigi, kaip, jei minimum-- Gerai, leiskite man galvoti. 753 00:37:05,230 --> 00:37:08,170 754 00:37:08,170 --> 00:37:09,990 >> ANDI Peng: Vaikinai, pasistenkite pažvelgti Leiskite 755 00:37:09,990 --> 00:37:11,270 Žr ką kažkas, ką galime padaryti čia? 756 00:37:11,270 --> 00:37:11,811 >> Auditorija: Gerai. 757 00:37:11,811 --> 00:37:15,900 Taigi, jei minimalus nėra lygi j-- todėl, jei minimalus vis dar i-- 758 00:37:15,900 --> 00:37:17,570 tada mes neturi apsikeitimo. 759 00:37:17,570 --> 00:37:22,450 760 00:37:22,450 --> 00:37:24,712 >> ANDI Peng: Ar tai lygūs i? 761 00:37:24,712 --> 00:37:25,920 Ką noriu pasakyti čia? 762 00:37:25,920 --> 00:37:30,494 >> Auditorija: Arba taip, jei Minimalus nėra lygi i, taip. 763 00:37:30,494 --> 00:37:39,627 764 00:37:39,627 --> 00:37:40,210 ANDI Peng: Gerai. 765 00:37:40,210 --> 00:37:42,040 Gerai, kad sprendžia, kokios mūsų problemos. 766 00:37:42,040 --> 00:37:47,265 Bet, kad vis dar nėra išspręsti problema kas atsitiks, jei j-- nes j 767 00:37:47,265 --> 00:37:49,890 neegzistuoja už jį, kas jūs norime daryti su juo? 768 00:37:49,890 --> 00:37:50,698 Pripažinti jį ne? 769 00:37:50,698 --> 00:37:59,410 770 00:37:59,410 --> 00:38:02,730 Pabandykime veikia tai. 771 00:38:02,730 --> 00:38:04,435 Uh Oh. 772 00:38:04,435 --> 00:38:06,200 Mūsų Rūšiuoti neveikia. 773 00:38:06,200 --> 00:38:10,060 >> Kaip matote, mūsų pradinis masyvas turėjo šias vertybes. 774 00:38:10,060 --> 00:38:14,800 Ir vėliau, jis turėtų būti buvo 1, 2, 3, 4, 5, 6, 7, 8, 9. 775 00:38:14,800 --> 00:38:15,530 Tai neveikia. 776 00:38:15,530 --> 00:38:16,030 Ak. 777 00:38:16,030 --> 00:38:17,184 Ką mes darome? 778 00:38:17,184 --> 00:38:17,850 Auditorija: Derinti. 779 00:38:17,850 --> 00:38:21,787 780 00:38:21,787 --> 00:38:23,370 ANDI Peng: Gerai, mes galime pabandyti tai. 781 00:38:23,370 --> 00:38:25,030 Mes galime derinti. 782 00:38:25,030 --> 00:38:26,042 Zoom out truputį. 783 00:38:26,042 --> 00:38:31,177 784 00:38:31,177 --> 00:38:33,656 Leiskite nustatyti mūsų atskaitos tašką. 785 00:38:33,656 --> 00:38:37,280 Vykime like-- OK. 786 00:38:37,280 --> 00:38:40,444 >> Taigi todėl, kad mes jau žinome, kad Šios linijos, 15 per 22, 787 00:38:40,444 --> 00:38:43,610 yra working--, nes viskas, ką aš darau yra tik Iteracja per ir printing-- 788 00:38:43,610 --> 00:38:45,406 Aš galiu eiti į priekį ir praleisti, kad. 789 00:38:45,406 --> 00:38:47,280 Pradėkime eilutėje 25 d. 790 00:38:47,280 --> 00:38:48,712 Oop, leiskite man atsikratyti, kad. 791 00:38:48,712 --> 00:38:51,598 792 00:38:51,598 --> 00:38:54,057 >> Auditorija: Taigi atskaitos tašką s kur derinimo prasideda? 793 00:38:54,057 --> 00:38:54,890 ANDI Peng: Arba sustoja. 794 00:38:54,890 --> 00:38:55,670 Auditorija: Arba sustoja. 795 00:38:55,670 --> 00:38:55,930 ANDI Peng: Taip. 796 00:38:55,930 --> 00:38:58,640 Galite nustatyti kelis ribines vertes ir jis gali tik pereiti iš vieno į kitą. 797 00:38:58,640 --> 00:39:01,590 Tačiau šiuo atveju mes nežinome, kai klaida vyksta. 798 00:39:01,590 --> 00:39:03,780 Taigi, mes tik norime pradėti nuo viršaus į apačią,. 799 00:39:03,780 --> 00:39:05,020 Yep. 800 00:39:05,020 --> 00:39:05,550 GERAI. 801 00:39:05,550 --> 00:39:08,460 >> Taigi ši eilutė čia, mes galime žingsnis. 802 00:39:08,460 --> 00:39:11,499 Jūs galite pamatyti žemyn čia mes turime masyvą. 803 00:39:11,499 --> 00:39:13,290 Tai yra vertybės kad yra masyvo. 804 00:39:13,290 --> 00:39:16,360 Ar matote, kad kaip 0 indeksas, jis atitinka value-- oh, 805 00:39:16,360 --> 00:39:17,526 Aš ruošiuosi pabandyti padidinti. 806 00:39:17,526 --> 00:39:20,650 Atsiprašome, tai tikrai sunku į see-- ne masyvo indeksas 0, 807 00:39:20,650 --> 00:39:24,090 mes vertė yra 4, ir tada taip toliau, ir taip toliau. 808 00:39:24,090 --> 00:39:25,670 Mes turime vietinius kintamuosius. 809 00:39:25,670 --> 00:39:28,570 Dabar aš yra lygus 0, o mes norime, kad ji būtų. 810 00:39:28,570 --> 00:39:31,540 811 00:39:31,540 --> 00:39:33,690 >> Ir todėl galime laikyti užlipti. 812 00:39:33,690 --> 00:39:36,850 Mūsų minimalus yra lygus 0, kurią mes taip pat norime, kad ji būtų. 813 00:39:36,850 --> 00:39:39,470 814 00:39:39,470 --> 00:39:45,560 Ir tada mes įvesti mūsų sekundę kilpa, jei masyvo-j yra mažiau nei masyvo-i, 815 00:39:45,560 --> 00:39:46,380 kurio nebuvo. 816 00:39:46,380 --> 00:39:48,130 Taigi matei, kaip kad praleista daugiau, kad? 817 00:39:48,130 --> 00:39:52,430 >> Auditorija: Taigi turėtų, jei Minimalus visi that-- turėtų ne tai, kad 818 00:39:52,430 --> 00:39:55,424 būti viduje pirmąjį kilpa? 819 00:39:55,424 --> 00:39:57,340 ANDI Peng: Ne, nes jūs vis dar norite išbandyti. 820 00:39:57,340 --> 00:40:00,329 Jūs norite padaryti palyginimą kiekvieną laikas, net po to, kai eina per jį. 821 00:40:00,329 --> 00:40:02,620 Jūs neturite tiesiog norite tai padaryti pirmą pereinamas. 822 00:40:02,620 --> 00:40:05,240 Jūs norite tai padaryti su už kiekvieną papildomą perdavimas dar kartą. 823 00:40:05,240 --> 00:40:07,198 Taigi jūs norite patikrinti Jūsų būklė viduje. 824 00:40:07,198 --> 00:40:11,610 825 00:40:11,610 --> 00:40:13,746 Taigi mes tik ketina nuolat veikia per čia. 826 00:40:13,746 --> 00:40:17,337 827 00:40:17,337 --> 00:40:18,420 Aš duosiu jums, vaikinai užuominą. 828 00:40:18,420 --> 00:40:23,910 Ji turi daryti su tuo, kad, kai jūs patikrinti jūsų sąlyginė, 829 00:40:23,910 --> 00:40:26,600 Jūs neprisijungęs tikrinti už teisingą indekso. 830 00:40:26,600 --> 00:40:32,510 Taigi dabar jūs tikrinti masyvo indeksas j yra mažesnis nei masyvo 831 00:40:32,510 --> 00:40:33,970 indeksas I priedą. 832 00:40:33,970 --> 00:40:36,580 Bet ką tu darai iki ne Iš už kilpos pradžia? 833 00:40:36,580 --> 00:40:38,260 Ar ne jūs nustatant j lygus i? 834 00:40:38,260 --> 00:40:41,260 835 00:40:41,260 --> 00:40:45,415 >> Taip, taip, mes galime iš tikrųjų išeiti debugerem čia. 836 00:40:45,415 --> 00:40:47,040 Taigi leiskite pažvelgti mūsų Pseudocode išvaizdą. 837 00:40:47,040 --> 00:40:50,070 838 00:40:50,070 --> 00:40:52,580 For-- mes ketiname prasidės I lygus 0. 839 00:40:52,580 --> 00:40:54,760 Mes ketiname eiti n atėmus 1 d. 840 00:40:54,760 --> 00:40:58,040 Leiskite patikrinti, ar mes turime tokią teisę? 841 00:40:58,040 --> 00:40:59,580 Taip, tai buvo teisus. 842 00:40:59,580 --> 00:41:02,080 >> Taigi viduje čia mes ketina sukurti mažiausią vertę 843 00:41:02,080 --> 00:41:03,630 ir nustatyti, kad lygi i. 844 00:41:03,630 --> 00:41:04,950 Ar mes tai darome? 845 00:41:04,950 --> 00:41:06,270 Taip, tai padarė. 846 00:41:06,270 --> 00:41:10,430 Dabar mūsų vidinis už kilpos, mes ketina daryti j lygi i n atėmus 1. 847 00:41:10,430 --> 00:41:11,950 Ar mes tai darome? 848 00:41:11,950 --> 00:41:15,540 Iš tiesų, mes padarėme tai. 849 00:41:15,540 --> 00:41:19,922 >> Taigi Tačiau tai, ką mes lyginti čia? 850 00:41:19,922 --> 00:41:20,925 >> Auditorija: j plius 1. 851 00:41:20,925 --> 00:41:21,716 ANDI Peng: Būtent. 852 00:41:21,716 --> 00:41:24,184 853 00:41:24,184 --> 00:41:27,350 Ir tada jūs ketinate norite nustatyti minimali lygi j plius 1 taip pat. 854 00:41:27,350 --> 00:41:31,057 855 00:41:31,057 --> 00:41:32,640 Taigi aš per, kad tikrai greitai. 856 00:41:32,640 --> 00:41:36,190 Ar jus vaikinai suprasti kodėl tai j plius 1? 857 00:41:36,190 --> 00:41:36,890 GERAI. 858 00:41:36,890 --> 00:41:40,700 >> Taigi jūsų masyvas, į Jūsų pirmasis perdavimas per, 859 00:41:40,700 --> 00:41:44,850 Jūsų for ciklas, skirtas int Aš lygus 0, tegul tiesiog 860 00:41:44,850 --> 00:41:46,740 manyti, tai nebuvo pakeistas dar. 861 00:41:46,740 --> 00:41:53,180 862 00:41:53,180 --> 00:41:56,760 Mes turime iš masyvo, visiškai, tik keturi nerūšiuotos elementai, tiesa? 863 00:41:56,760 --> 00:42:00,760 Taigi mes norime inicijuoti Aš lygus 0. 864 00:42:00,760 --> 00:42:03,650 Ir aš ketina tik paleisti per šį kilpa. 865 00:42:03,650 --> 00:42:08,560 Ir taip per pirmąjį perdavimą, mes ketiname inicijuoti kintamąjį vadinamą "min" 866 00:42:08,560 --> 00:42:11,245 kuris taip pat yra lygus i, nes mes neturime mažiausią vertę. 867 00:42:11,245 --> 00:42:12,870 Taigi, kad šiuo metu lygus 0, taip pat. 868 00:42:12,870 --> 00:42:16,182 869 00:42:16,182 --> 00:42:17,640 Ir tada mes ketiname eiti per. 870 00:42:17,640 --> 00:42:19,270 Ir mes norime pakartoti dar kartą. 871 00:42:19,270 --> 00:42:22,900 Dabar, kad mes pastebėjome, ką mūsų minimalus yra, mes norime pakartoti per 872 00:42:22,900 --> 00:42:25,190 vėl pamatyti, jei ji manimi lyginant, tiesa? 873 00:42:25,190 --> 00:42:40,440 Taigi j, čia vyksta į vienodą i, kuris yra 0. 874 00:42:40,440 --> 00:42:46,320 Ir tada, jei masyvas j plius aš, kuris yra vienas, kad yra kitas daugiau, mažiau 875 00:42:46,320 --> 00:42:49,270 nei tai, ką jūsų dabartinę minimumo reikšmė yra, jūs norite sukeisti. 876 00:42:49,270 --> 00:42:56,850 >> Taigi galime tik pasakyti, mes gavo, kaip, 2, 5, 1, 8. 877 00:42:56,850 --> 00:43:01,610 Dabar, aš lygus 0, o j yra lygus 0. 878 00:43:01,610 --> 00:43:05,210 Ir tai mūsų minimali vertė. 879 00:43:05,210 --> 00:43:09,950 Jei masyvo-j plius i-- todėl, jei vienas tai po vieną mes ieškome 880 00:43:09,950 --> 00:43:13,450 yra didesnis nei prieš vieną, jis ketina tapti minimalus. 881 00:43:13,450 --> 00:43:18,120 >> Taigi čia matome, kad 5 yra ne mažesnis nei. 882 00:43:18,120 --> 00:43:19,730 Taigi, tai bus ne 5. 883 00:43:19,730 --> 00:43:23,580 Mes matome, kad 1 yra mažesnis kaip 2, tiesa? 884 00:43:23,580 --> 00:43:32,970 Taigi, dabar mes žinome, kad mūsų minimalus yra bus indekso reikšmė, esant 0, 1, 2. 885 00:43:32,970 --> 00:43:34,030 Taip? 886 00:43:34,030 --> 00:43:39,170 Ir tada, kai jūs gaunate žemyn čia galite sukeisti teisingas reikšmes. 887 00:43:39,170 --> 00:43:42,610 >> Taigi, kai jūs vaikinai buvo tiesiog J anksčiau, jums nebuvo žiūri į vieną 888 00:43:42,610 --> 00:43:43,260 po jo. 889 00:43:43,260 --> 00:43:44,520 Jūs buvote ieško tas pats vertę, kuri 890 00:43:44,520 --> 00:43:46,290 Štai kodėl jis tiesiog buvo nieko nedaryti. 891 00:43:46,290 --> 00:43:49,721 Ar tai prasminga visiems, Kodėl mums reikia, kad ir 1 ten? 892 00:43:49,721 --> 00:43:50,220 GERAI. 893 00:43:50,220 --> 00:43:53,345 Dabar tegul tiesiog paleisti per jį padaryti Patikrinkite, ar likusia kodas yra teisinga. 894 00:43:53,345 --> 00:44:04,424 895 00:44:04,424 --> 00:44:05,340 Kodėl tai vyksta? 896 00:44:05,340 --> 00:44:14,780 897 00:44:14,780 --> 00:44:16,364 Ak, tai min čia. 898 00:44:16,364 --> 00:44:17,780 Mes buvome lyginant klaidingą vertę. 899 00:44:17,780 --> 00:44:24,944 900 00:44:24,944 --> 00:44:25,906 O ne. 901 00:44:25,906 --> 00:44:30,720 902 00:44:30,720 --> 00:44:33,482 >> Oh yeah, žemyn čia mes buvome Swapping neteisingus vertybes, taip pat. 903 00:44:33,482 --> 00:44:34,940 Kadangi mes ieškojome ne i ir j. 904 00:44:34,940 --> 00:44:36,440 Tai yra tie, buvome tikrinimą. 905 00:44:36,440 --> 00:44:39,160 Mes iš tikrųjų norite apsikeitimo Minimalus einamosios minimalus, 906 00:44:39,160 --> 00:44:40,550 su kokia viena už tai. 907 00:44:40,550 --> 00:44:59,510 908 00:44:59,510 --> 00:45:05,402 Ir kaip jus vaikinai galite pamatyti žemyn čia mes turime rūšiuotą masyvo. 909 00:45:05,402 --> 00:45:07,110 Jis tiesiog turėjo daryti su tai, kad, kai 910 00:45:07,110 --> 00:45:09,350 mes buvome pažymėdami vertės buvome palyginus, 911 00:45:09,350 --> 00:45:11,226 mes ne žiūri į dešinę vertybes. 912 00:45:11,226 --> 00:45:13,850 Mes ieškojome tuo pačiu vienas čia ne iš tikrųjų Swapping ją. 913 00:45:13,850 --> 00:45:17,135 Jūs turite pažvelgti į vieną Kitas jai ir tada jūs galite apsikeitimo. 914 00:45:17,135 --> 00:45:19,260 Taigi tai, kas buvo natūra prieš bugging mūsų kodą. 915 00:45:19,260 --> 00:45:22,460 Ir ką aš čia padariau yra viskas Debugger galėjo padaryti už jus 916 00:45:22,460 --> 00:45:23,810 Aš tiesiog padarė tai dėl lenta, nes jis lengviau 917 00:45:23,810 --> 00:45:26,320 pamatyti, o ne bandyti priartinti išriktuotojo. 918 00:45:26,320 --> 00:45:29,391 Ar tai prasminga visiems? 919 00:45:29,391 --> 00:45:29,890 Saunus. 920 00:45:29,890 --> 00:45:34,800 921 00:45:34,800 --> 00:45:35,410 >> Gerai. 922 00:45:35,410 --> 00:45:41,070 Mes galime pereiti prie kalbame apie asimptotinio žymėjimas, kuris 923 00:45:41,070 --> 00:45:44,580 yra tik išgalvotas būdas sakydamas katilas visų šių rūšių. 924 00:45:44,580 --> 00:45:47,650 Taigi aš žinau, Dovydą, į paskaitą, palietė Runtimes. 925 00:45:47,650 --> 00:45:52,124 Ir jis nuėjo per visą formulę kaip apskaičiuoti runtimes. 926 00:45:52,124 --> 00:45:53,040 Nesijaudinkite apie tai. 927 00:45:53,040 --> 00:45:54,660 Jei esate tikrai smalsu apie tai, kaip tai veikia, 928 00:45:54,660 --> 00:45:55,810 nedvejodami kreipkitės į mane, kai skyriuje. 929 00:45:55,810 --> 00:45:57,560 Mes galime eiti per formulės kartu. 930 00:45:57,560 --> 00:46:00,689 Tačiau visi vaikinai turi tikrai žinau, kad n kvadratu nei 2 931 00:46:00,689 --> 00:46:01,980 yra tas pats, kaip n kvadratu. 932 00:46:01,980 --> 00:46:04,710 Kadangi daugiausiai, eksponentinis, auga labiausiai. 933 00:46:04,710 --> 00:46:06,590 Ir taip mūsų tikslais, visi mes rūpinamės 934 00:46:06,590 --> 00:46:09,470 yra tai, kad milžiniškas skaičius, kuris auga. 935 00:46:09,470 --> 00:46:13,340 >> Taigi, kas yra geriausias atvejis Trukmė Atrankos rūšiuoti? 936 00:46:13,340 --> 00:46:15,830 Jei jūs ketinate turėti į pakartoti per sąrašą 937 00:46:15,830 --> 00:46:18,712 ir tada pakartoti per iš šio sąrašo poilsio, 938 00:46:18,712 --> 00:46:20,420 kiek kartų yra jūs ketinate tikriausiai, 939 00:46:20,420 --> 00:46:24,612 blogiausiu case-- Europos Sąjungos oficialiajame Geriausiu atveju sorry-- paleisti per? 940 00:46:24,612 --> 00:46:27,070 Gal geriau klausimas yra paklausti, kas yra blogiausias atvejis 941 00:46:27,070 --> 00:46:28,153 Trukmė Atrankos rūšiuoti. 942 00:46:28,153 --> 00:46:29,366 AUDITORIJA: N kvadratu. 943 00:46:29,366 --> 00:46:30,740 ANDI Peng: Tai n kvadratu, tiesa. 944 00:46:30,740 --> 00:46:36,986 Taigi paprastas būdas galvoti apie tai, kaip, bet kuriuo metu Jūs turite dvi įdėtos už kilpos, 945 00:46:36,986 --> 00:46:38,110 tai bus n kvadratu. 946 00:46:38,110 --> 00:46:40,386 Kadangi ne tik jūs veikia per kartą, 947 00:46:40,386 --> 00:46:42,260 jūs turite eiti atgal aplink ir paleisti per jį 948 00:46:42,260 --> 00:46:44,980 vėl viduje kiekvienam vertės. 949 00:46:44,980 --> 00:46:48,640 Taigi šiuo atveju, jūs vykdote n times n kvadratu, kuris is-- Atsiprašome, 950 00:46:48,640 --> 00:46:50,505 n kartų, n, kuris lygus n kvadratu. 951 00:46:50,505 --> 00:46:53,230 952 00:46:53,230 --> 00:46:56,360 >> Ir rūšiuoti taip pat yra šiek tiek unikalus tuo, 953 00:46:56,360 --> 00:46:59,774 kad ji neturi reikšmės, jei jas reikšmės yra jau tam. 954 00:46:59,774 --> 00:47:01,440 Jis vis dar ketina paleisti per anyways. 955 00:47:01,440 --> 00:47:03,872 Leiskite tik pasakyti, kad tai buvo 1, 2, 3, 4. 956 00:47:03,872 --> 00:47:07,080 Nepriklausomai nuo to, ar tai buvo Kad, jis vis dar būtų bėgo per 957 00:47:07,080 --> 00:47:08,620 ir vis dar tikrinamas mažiausią vertę. 958 00:47:08,620 --> 00:47:10,100 Būtų padarė pats patikrų skaičius 959 00:47:10,100 --> 00:47:12,780 kiekvieną kartą, net jei tai iš tikrųjų nebuvo paliesti bet ką. 960 00:47:12,780 --> 00:47:16,940 >> Taigi, tokiu atveju, geriausias ir labiausiai katilas yra tikrai lygiaverčiai. 961 00:47:16,940 --> 00:47:19,160 Taigi tikimasi, Runtime Atrankos rūšiuoti, 962 00:47:19,160 --> 00:47:23,790 kurį mes paskirti simboliu iš teta, teta, šiuo atveju, 963 00:47:23,790 --> 00:47:24,790 Taip pat būtų n kvadratu. 964 00:47:24,790 --> 00:47:26,480 Visi šie trys būtų n kvadrato. 965 00:47:26,480 --> 00:47:29,653 Ar visi aišku, kodėl runtime yra N kvadratu? 966 00:47:29,653 --> 00:47:33,360 967 00:47:33,360 --> 00:47:33,980 >> Gerai. 968 00:47:33,980 --> 00:47:39,120 Taigi, aš tik ketina greitai paleisti per iš rūšių poilsio. 969 00:47:39,120 --> 00:47:41,137 Už algoritmas burbulas sort-- atminkite, 970 00:47:41,137 --> 00:47:43,220 Tai buvo pirmasis Davidas perėjo į paskaitą. 971 00:47:43,220 --> 00:47:46,000 Iš esmės, jūs žingsnis per visą sąrašą 972 00:47:46,000 --> 00:47:48,950 ir jūs swap-- jums tiesiog palyginti du vienu metu. 973 00:47:48,950 --> 00:47:51,350 Ir jei vienas yra didesnis, nei jūs tiesiog apsikeitimo juos. 974 00:47:51,350 --> 00:47:53,590 Taigi, jei jie yra didesni, galima būtų sukeisti. 975 00:47:53,590 --> 00:47:56,180 Aš turiu oficialus čia. 976 00:47:56,180 --> 00:47:59,100 >> Taigi tegul tiesiog pasakyti jums buvo 8, 6, 4, 2. 977 00:47:59,100 --> 00:48:00,571 Jūs norite lyginti 8 ir 6. 978 00:48:00,571 --> 00:48:01,570 Jums reikia apsikeitimo juos. 979 00:48:01,570 --> 00:48:02,610 Galima būtų lyginti 8 ir 4. 980 00:48:02,610 --> 00:48:03,609 Jums reikia apsikeitimo juos. 981 00:48:03,609 --> 00:48:07,000 Jei jūs turite apsikeitimo 8 ir 2, jas pakeisti, taip pat. 982 00:48:07,000 --> 00:48:10,760 Taigi tokiu prasme, jūs galite pamatyti, sužaistos per ilgą laiką, 983 00:48:10,760 --> 00:48:13,730 kaip vertybės rūšies burbulas galai, kuris yra, kodėl mes jį vadiname 984 00:48:13,730 --> 00:48:15,320 burbulas rūšiuoti. 985 00:48:15,320 --> 00:48:19,950 >> Mes tiesiog paleisti per vėl Mūsų antra perdavimas, ir mūsų trečiasis perdavimas, 986 00:48:19,950 --> 00:48:21,150 ir mūsų ketvirtasis perdavimą. 987 00:48:21,150 --> 00:48:25,820 Iš esmės, burbulas rūšiuoti tiesiog veikia kol jums nereikia atlikti jokių daugiau apsikeitimo sandoriais. 988 00:48:25,820 --> 00:48:31,109 Taigi šia prasme, tai tik bendras Pseudocode už jį. 989 00:48:31,109 --> 00:48:32,650 Nesijaudinkite, tai visi bus internete. 990 00:48:32,650 --> 00:48:34,990 Neturime iš tikrųjų eiti per tai. 991 00:48:34,990 --> 00:48:38,134 >> Mes tiesiog inicijuoti skaitiklis kintamasis, kuris prasideda 0. 992 00:48:38,134 --> 00:48:39,800 Ir mes pakartoti visą masyvą. 993 00:48:39,800 --> 00:48:43,420 Ir jei viena vertė is-- jei tai vertė yra didesnė už tos vertės, 994 00:48:43,420 --> 00:48:44,610 jūs ketinate apsikeitimo juos. 995 00:48:44,610 --> 00:48:46,860 Ir tada jūs tiesiog ketina nesustoti. 996 00:48:46,860 --> 00:48:47,970 Ir jūs ketinate pasikliauti. 997 00:48:47,970 --> 00:48:50,845 Ir jūs tik ketina toliau daryti tai, o skaitiklis yra didesnis 998 00:48:50,845 --> 00:48:53,345 už 0, tai reiškia, kad kiekvieną kartą jūs turite apsikeitimo, 999 00:48:53,345 --> 00:48:55,220 jūs žinote, jūs norite eiti atgal ir vėl patikrinkite. 1000 00:48:55,220 --> 00:48:59,510 Norite nuolat tikrinti, kol jūs žinote, kad jūs neturite apsikeitimo nebėra. 1001 00:48:59,510 --> 00:49:05,570 >> Taigi, kas yra geriausia ir blogiausia atveju katilas už burbulas rūšiuoti? 1002 00:49:05,570 --> 00:49:09,300 Ir hint-- iš tikrųjų tai yra skirtingi nuo atrankos rūšiuoti ta prasme 1003 00:49:09,300 --> 00:49:11,810 , kad šie du atsakymai nėra ta pati. 1004 00:49:11,810 --> 00:49:14,709 Pagalvokite apie tai, kas nutiktų atvejis, jei jis jau buvo rūšiuojamos. 1005 00:49:14,709 --> 00:49:16,500 Ir galvoti apie tai, ką nutiktų, jei ji buvo 1006 00:49:16,500 --> 00:49:18,372 ir tuo atveju, kurioje jis buvo ne rūšiuojami. 1007 00:49:18,372 --> 00:49:20,580 Ir jūs galite rūšies paleisti per, kodėl tai vyksta. 1008 00:49:20,580 --> 00:49:22,954 Aš duosiu jums vaikinai, kaip, 30 sekundžių galvoti apie tai. 1009 00:49:22,954 --> 00:49:52,330 1010 00:49:52,330 --> 00:49:53,540 >> GERAI. 1011 00:49:53,540 --> 00:49:57,462 Ar kas nors turite, ką atspėti blogiausiu atveju Runtime burbuliukų rūšiuoti yra? 1012 00:49:57,462 --> 00:49:57,962 Taip. 1013 00:49:57,962 --> 00:50:07,810 >> Auditorija: tai būtų, pavyzdžiui, n kartų n atėmus 1 ar kažkas panašaus? 1014 00:50:07,810 --> 00:50:10,650 Kaip, kiekvieną kartą jis eina, tai tiesiog, kaip, viena apsikeitimo mažiau 1015 00:50:10,650 --> 00:50:10,960 kad ir kokia ji buvo. 1016 00:50:10,960 --> 00:50:12,668 >> ANDI Peng: Taip, taip, esate visiškai teisus. 1017 00:50:12,668 --> 00:50:15,940 Ir tai yra tokiu atveju jūsų Atsakymas iš tikrųjų buvo sudėtingesnis 1018 00:50:15,940 --> 00:50:17,240 nei vienas mes turime duoti. 1019 00:50:17,240 --> 00:50:19,772 Taigi jis ketina run-- aš ketina sunaikinti visa tai čia. 1020 00:50:19,772 --> 00:50:20,480 Ar kiekvienas geras? 1021 00:50:20,480 --> 00:50:21,869 Ar galiu ištrinti tai? 1022 00:50:21,869 --> 00:50:22,368 GERAI. 1023 00:50:22,368 --> 00:50:27,904 1024 00:50:27,904 --> 00:50:30,320 Jūs ketinate paleisti per n kartų pirmą kartą, tiesa? 1025 00:50:30,320 --> 00:50:33,200 Ir jie ketina paleisti per n atėmus 1 antrą kartą, tiesa? 1026 00:50:33,200 --> 00:50:37,130 Ir tada jūs ketinate laikyti vyksta, n kasyklos 2 et cetera. 1027 00:50:37,130 --> 00:50:40,210 Dovydas darė tai paskaitos, tam tikrais atvejais, jei įtraukėte visus šias vertybes, 1028 00:50:40,210 --> 00:50:48,080 jūs gaunate kažką, kad like-- yeah-- per 2, kuris iš esmės tik sumažina 1029 00:50:48,080 --> 00:50:49,784 iki n kvadratu. 1030 00:50:49,784 --> 00:50:51,700 Jūs ketinate gauti keistai frakcija ten. 1031 00:50:51,700 --> 00:50:53,892 Ir taip tiesiog žinau, kad n visada kvadrato 1032 00:50:53,892 --> 00:50:55,350 viršenybę prieš frakcija. 1033 00:50:55,350 --> 00:50:58,450 Ir šiuo atveju taip, blogiausia Trukmė būtų n kvadratu. 1034 00:50:58,450 --> 00:51:00,210 Jei jis buvo mažėjančia Kad, manau, jums 1035 00:51:00,210 --> 00:51:02,530 turite padaryti apsikeitimo kiekvieną kartą. 1036 00:51:02,530 --> 00:51:05,170 >> Koks būtų potencialiai, Geriausiu atveju Runtime? 1037 00:51:05,170 --> 00:51:08,580 Leiskite tik pasakyti, jei sąrašas buvo jau tam, ką runtime būti? 1038 00:51:08,580 --> 00:51:09,565 >> Auditorija: N. 1039 00:51:09,565 --> 00:51:10,690 ANDI Peng: Tai n tiksliai. 1040 00:51:10,690 --> 00:51:11,600 Ir kodėl tai n? 1041 00:51:11,600 --> 00:51:13,850 Auditorija: nes jums tiesiog turi patikrinti kiekvieną kartą. 1042 00:51:13,850 --> 00:51:14,770 ANDI Peng: Būtent. 1043 00:51:14,770 --> 00:51:17,150 Taigi geriausiu įmanomu runtime, jei šis sąrašas jau buvo 1044 00:51:17,150 --> 00:51:20,270 sorted-- tarkim 1, 2, 3, 4-- jums tiesiog eiti per, jums bus patikrinti, 1045 00:51:20,270 --> 00:51:21,720 galėtumėte pamatyti, oi, visi jie išdegti. 1046 00:51:21,720 --> 00:51:22,636 Aš neturėjau apsikeitimo. 1047 00:51:22,636 --> 00:51:23,370 Aš baigiau. 1048 00:51:23,370 --> 00:51:26,500 Taigi šiuo atveju, tai tik n ar žingsnių jūs tiesiog 1049 00:51:26,500 --> 00:51:29,870 turėjo patikrinti pirmoje sąrašo. 1050 00:51:29,870 --> 00:51:33,990 >> Ir po to mes dabar nukentėjo įterpimo rūšiuoti, kur 1051 00:51:33,990 --> 00:51:39,260 algoritmas iš esmės yra padalinti jį į rūšiuotus ir nerūšiuotus dalį. 1052 00:51:39,260 --> 00:51:42,810 Ir tada po vieną, kad nerūšiuotos vertybės 1053 00:51:42,810 --> 00:51:46,880 įdėta į jų tinkamas pozicijos į sąrašo pradžioje. 1054 00:51:46,880 --> 00:51:52,120 >> Taigi, pavyzdžiui, turime sąrašas 3, 5, 2, 6, 4 dar kartą. 1055 00:51:52,120 --> 00:51:54,750 Mes žinome, kad tai šiuo metu nerūšiuotos, nes mes tiesiog 1056 00:51:54,750 --> 00:51:57,030 pradėjo žiūri į jį. 1057 00:51:57,030 --> 00:52:00,610 Mes pažvelgti ir mes žinome, kad pirmoji vertė yra rūšiuojami, tiesa? 1058 00:52:00,610 --> 00:52:04,190 Jei jūs tik ieškote bent iš masyvo dydis vienas, jūs žinote, kad jis rūšiuojami. 1059 00:52:04,190 --> 00:52:08,230 >> Taigi mes žinome, kad kiti keturi yra nerūšiuotos. 1060 00:52:08,230 --> 00:52:10,980 Mes pereiti ir matome, kad vertę. 1061 00:52:10,980 --> 00:52:11,730 Grįžkime. 1062 00:52:11,730 --> 00:52:13,130 Žiūrėkite, kad 5 vertę? 1063 00:52:13,130 --> 00:52:14,110 Mes pažvelgsime jo išvaizdą. 1064 00:52:14,110 --> 00:52:15,204 Mes lyginame jį 3. 1065 00:52:15,204 --> 00:52:17,870 Mes žinome, kad tai yra didesnis nei 3, todėl mes žinome, kad manimi rūšiuojami. 1066 00:52:17,870 --> 00:52:22,940 Taigi dabar mes žinome, kad pirmieji du yra rūšiuojami ir paskutinis trijų nėra. 1067 00:52:22,940 --> 00:52:24,270 >> Mes pažvelgsime 2 išvaizdą. 1068 00:52:24,270 --> 00:52:25,720 Mes pirmą kartą ją patikrinti su 5. 1069 00:52:25,720 --> 00:52:26,700 Ar tai yra mažiau nei 5? 1070 00:52:26,700 --> 00:52:27,240 Tai nėra. 1071 00:52:27,240 --> 00:52:29,510 Taigi, mes turime nuolat ieško žemyn. 1072 00:52:29,510 --> 00:52:30,940 Tada jums patikrinti 2 išjungtas 3. 1073 00:52:30,940 --> 00:52:31,850 Ar tai mažiau nei? 1074 00:52:31,850 --> 00:52:32,350 Ne. 1075 00:52:32,350 --> 00:52:35,430 Taigi jūs žinote, 2, turi būti įrašomas į priekį ir 3 ir 5 1076 00:52:35,430 --> 00:52:38,200 abu turi būti išstumtas. 1077 00:52:38,200 --> 00:52:42,190 Ar tai vėl su 6 ir 4. 1078 00:52:42,190 --> 00:52:48,962 Ir mes tiesiog nuolat tikrinti iš esmės, kur mes tiesiog patikrinti, patikrinti, patikrinti. 1079 00:52:48,962 --> 00:52:51,170 Ir tol, kol jis yra dešinėje pozicija, mes natūra tik 1080 00:52:51,170 --> 00:52:54,890 įterpti jį į dešinę poziciją, kuris yra, kur jo pavadinimas atsirado. 1081 00:52:54,890 --> 00:52:59,830 >> Taigi tai tik algoritmas, Pseudocode per se, rūšies, 1082 00:52:59,830 --> 00:53:04,990 apie tai, kaip mes norėtume įgyvendinti įterpimas rūšiuoti. 1083 00:53:04,990 --> 00:53:05,954 Pseudocode yra čia. 1084 00:53:05,954 --> 00:53:06,620 Tai viskas internete. 1085 00:53:06,620 --> 00:53:10,720 Nesijaudinkite, jei jus vaikinai yra bando kopijuoti šį žemyn. 1086 00:53:10,720 --> 00:53:14,500 Taigi, dar kartą, tas pats, kas question-- būtų geriausias ir blogiausias runtimes 1087 00:53:14,500 --> 00:53:16,120 intarpas rūšiuoti? 1088 00:53:16,120 --> 00:53:17,750 Tai labai panašus į pastarąjį klausimą. 1089 00:53:17,750 --> 00:53:20,479 Aš duosiu jums vaikinai, kaip, 30 sekundžių galvoti apie tai, kaip gerai. 1090 00:53:20,479 --> 00:53:47,150 1091 00:53:47,150 --> 00:53:50,071 >> Gerai Ar kas nors nori man blogiausia runtime? 1092 00:53:50,071 --> 00:53:50,570 Taip. 1093 00:53:50,570 --> 00:53:51,490 >> AUDITORIJA: N kvadratu. 1094 00:53:51,490 --> 00:53:52,573 >> ANDI Peng: Tai n kvadratu. 1095 00:53:52,573 --> 00:53:53,730 Ir kodėl jis n kvadratu? 1096 00:53:53,730 --> 00:53:57,562 >> Auditorija: Kadangi atvirkštine tvarka, Jūs turite 1097 00:53:57,562 --> 00:54:02,619 eiti per n kartų, n, kuris is-- 1098 00:54:02,619 --> 00:54:03,660 ANDI Peng: Taip, tiksliai. 1099 00:54:03,660 --> 00:54:06,610 Taigi tas pats, kaip burbulas rūšiuoti. 1100 00:54:06,610 --> 00:54:08,720 Jei šis sąrašas yra mažėjančia tvarka, esate 1101 00:54:08,720 --> 00:54:11,240 teks patikrinti pirmą kartą. 1102 00:54:11,240 --> 00:54:13,470 Ir tada su kiekviena papildomą vertę, esate 1103 00:54:13,470 --> 00:54:16,390 teks patikrinti prieš kiekvienas vertė, tiesa? 1104 00:54:16,390 --> 00:54:20,290 Ir taip visiškai, jūs ketinate padaryti N Pass kartų dar N praeiti, kuri 1105 00:54:20,290 --> 00:54:21,750 yra N kvadratu. 1106 00:54:21,750 --> 00:54:22,860 Ką apie geriausiu atveju? 1107 00:54:22,860 --> 00:54:24,360 Taip. 1108 00:54:24,360 --> 00:54:28,840 >> AUDITORIJA: n minus 1, dėl to, kad Pirmasis jau kvadratu. 1109 00:54:28,840 --> 00:54:30,270 >> ANDI Peng: Taigi, arti. 1110 00:54:30,270 --> 00:54:31,850 Atsakymas yra iš tikrųjų n. 1111 00:54:31,850 --> 00:54:37,189 Kadangi kol pirmasis vienas yra rūšiuojamos, ji negali actually-- ją 1112 00:54:37,189 --> 00:54:38,980 mes tiesiog lucked, į kad pavyzdys, kad 2 1113 00:54:38,980 --> 00:54:40,930 atsitiko mažiausias skaičius. 1114 00:54:40,930 --> 00:54:43,680 Bet tai ne visada bus tas atvejis. 1115 00:54:43,680 --> 00:54:48,040 Jei 2 jau rūšiuojamos pradžioje bet jums atrodo ir ten 1 čia 1116 00:54:48,040 --> 00:54:49,144 1-ketina guzas. 1117 00:54:49,144 --> 00:54:51,060 Ir jis ketina baigti iki Iškilioji anyways. 1118 00:54:51,060 --> 00:54:56,250 >> Taigi geriausiu atveju, tai tikrai tik bus n. 1119 00:54:56,250 --> 00:54:59,090 Jei turite 1, 2, 3, 4, 5, 6, 7, 8, esate 1120 00:54:59,090 --> 00:55:00,940 ketina paleisti per kad visą sąrašą kartą 1121 00:55:00,940 --> 00:55:03,430 patikrinti, ar viskas gerai. 1122 00:55:03,430 --> 00:55:07,390 Ar kiekvienas aiškiai veikia kartų atrankos, taip pat? 1123 00:55:07,390 --> 00:55:09,960 Aš žinau, aš ruošiuosi per tai tikrai greitai. 1124 00:55:09,960 --> 00:55:13,330 Bet tik žinau, kad jei jūs žinote, Bendrosios sąvokos, jums turėtų būti gerai. 1125 00:55:13,330 --> 00:55:16,070 GERAI. 1126 00:55:16,070 --> 00:55:19,790 Taigi aš tiesiog suteikti jums vaikinai gal, pavyzdžiui, minutę pasikalbėti su savo kaimynais 1127 00:55:19,790 --> 00:55:21,890 apie tai, kas yra tik keletas iš pagrindinių skirtumų 1128 00:55:21,890 --> 00:55:23,540 tarp šių rūšių tipų. 1129 00:55:23,540 --> 00:56:24,571 1130 00:56:24,571 --> 00:56:25,570 Mes eiti per, kad netrukus. 1131 00:56:25,570 --> 00:56:26,444 AUDITORIJA: O, gerai. 1132 00:56:26,444 --> 00:56:27,320 ANDI Peng: Taip. 1133 00:56:27,320 --> 00:56:28,380 GERAI. 1134 00:56:28,380 --> 00:56:33,420 Cool, tegul susirinks kaip klasė. 1135 00:56:33,420 --> 00:56:34,330 GERAI. 1136 00:56:34,330 --> 00:56:37,579 Taigi tai buvo natūra Kurių neterminuotas klausimas ta prasme, 1137 00:56:37,579 --> 00:56:39,120 kad ten daug atsakymų į juos. 1138 00:56:39,120 --> 00:56:40,746 Ir mes eiti per kai kurias iš jų trumpai. 1139 00:56:40,746 --> 00:56:43,411 Aš tik norėjau jums vaikinai galvoju apie tai, ką diferencijuojamas 1140 00:56:43,411 --> 00:56:44,530 visi trys tipai rūšių. 1141 00:56:44,530 --> 00:56:47,440 Ir aš girdėjau, taip pat puikus question-- ką sujungti rūšiuoti daryti? 1142 00:56:47,440 --> 00:56:50,110 Didelis klausimas, nes tai ką mes apimantis toliau. 1143 00:56:50,110 --> 00:56:52,850 >> Taigi sujungti rūšiuoti yra vienokį, kad funkcijos 1144 00:56:52,850 --> 00:56:56,100 labai skirtingai nuo kitų rūšių. 1145 00:56:56,100 --> 00:56:58,180 Kaip jus vaikinai galite see-- Dovydas daryti kad demo 1146 00:56:58,180 --> 00:57:01,130 kur jis turėjo visą atvėsti triukšmas matyti, kaip sujungti 1147 00:57:01,130 --> 00:57:04,010 Rūšiuoti bėgo, kaip, be galo greičiau nei kitų dviejų tipų? 1148 00:57:04,010 --> 00:57:04,510 GERAI. 1149 00:57:04,510 --> 00:57:07,580 Štai dėl suliejimo Rūšiuoti įgyvendina šią atskirtį 1150 00:57:07,580 --> 00:57:11,020 ir užkariauti koncepciją, kad mes kalbėjo apie į paskaitą aikštelė. 1151 00:57:11,020 --> 00:57:14,550 Ta prasme, kad mes norėtume dirbti protingesni, o ne sunkiau, kai padalinti 1152 00:57:14,550 --> 00:57:18,120 ir užkariauti problemas ir jas laužyti žemyn, ir tada juos kartu, 1153 00:57:18,120 --> 00:57:19,930 geri dalykai visada. 1154 00:57:19,930 --> 00:57:21,960 >> Taigi taip, kad sujungti Rūšiuoti esmės veikia 1155 00:57:21,960 --> 00:57:24,660 tai, kad ji perskiria nerūšiuotų masyvas per pusę. 1156 00:57:24,660 --> 00:57:26,500 Ir tada jis gavo dvi puses matricos. 1157 00:57:26,500 --> 00:57:28,220 Ir tai tik rūšiuoja šias dvi puses. 1158 00:57:28,220 --> 00:57:31,750 Jis tiesiog išlaiko dalijant per pusę, į pusę, per pusę, kol viskas yra rūšiuojami 1159 00:57:31,750 --> 00:57:33,680 ir tada rekursyviai įdėkite jį visi kartu. 1160 00:57:33,680 --> 00:57:36,550 >> Taigi tai tikrai abstrakti. 1161 00:57:36,550 --> 00:57:38,750 Taigi tai yra tik Pseudocode tiek. 1162 00:57:38,750 --> 00:57:41,040 Ar tai prasminga taip tai veikia? 1163 00:57:41,040 --> 00:57:43,870 Taigi leiskite tiesiog pasakyti jums turėti masyvas n elementų, tiesa? 1164 00:57:43,870 --> 00:57:45,450 Jei n yra mažesnis nei 2, galite grįžti. 1165 00:57:45,450 --> 00:57:49,040 Nes jūs žinote, kad jei yra tik vienas dalykas, ji turi būti rūšiuojami. 1166 00:57:49,040 --> 00:57:52,600 Kita, galite rūšiuoti yra kairėje pusėje, ir tada rūšiuoti tinkamą pusę, 1167 00:57:52,600 --> 00:57:54,140 ir tada sujungti. 1168 00:57:54,140 --> 00:57:56,979 >> Taigi, nors, kad atrodo labai paprasta, iš tikrųjų, galvoju apie tai 1169 00:57:56,979 --> 00:58:00,270 rūšies sunku. Kadangi jūs esate kaip ir, Na, tai kokios veikia savaime. 1170 00:58:00,270 --> 00:58:00,769 Teisė? 1171 00:58:00,769 --> 00:58:02,430 Jis veikia savaime. 1172 00:58:02,430 --> 00:58:05,479 Taigi šia prasme, Davidas palietė nuo rekursijos klasėje. 1173 00:58:05,479 --> 00:58:07,270 Ir tai yra koncepcija mes kalbame apie daugiau. 1174 00:58:07,270 --> 00:58:11,430 Tai, kad ši, šios dvi linijos čia iš tikrųjų yra tik programa 1175 00:58:11,430 --> 00:58:13,860 pasakoti ją paleisti save su skirtingais įėjimo. 1176 00:58:13,860 --> 00:58:17,230 Taigi, o ne paleisti save su n elementų visuma, 1177 00:58:17,230 --> 00:58:20,530 galite ją padalyti į kairė pusė ir teisė pusę 1178 00:58:20,530 --> 00:58:22,680 ir tada paleisti jį dar kartą. 1179 00:58:22,680 --> 00:58:26,050 >> Ir tada mes pažvelgti į jį vizualiai, nes aš vizualiai besimokantysis. 1180 00:58:26,050 --> 00:58:27,270 Ji veikia geriau už mane. 1181 00:58:27,270 --> 00:58:29,890 Taigi mes pažvelgti vizualiai pavyzdyje. 1182 00:58:29,890 --> 00:58:36,237 >> Tarkime, mes turime masyvą, šeši elementai, 3, 5, 2, 6, 4, 1, nebuvo išrūšiuoti. 1183 00:58:36,237 --> 00:58:37,820 Gerai, ten Šiame puslapyje daug. 1184 00:58:37,820 --> 00:58:43,179 Taigi, jei jus vaikinai galite peržvelgti pirmas žingsnis čia, 3, 5, 2, 6, 4, 1, 1185 00:58:43,179 --> 00:58:44,220 galite padalinti per pusę. 1186 00:58:44,220 --> 00:58:45,976 Turite 3, 5, 2, 6, 4, 1. 1187 00:58:45,976 --> 00:58:48,850 Jūs žinote, kad tai aren't-- jus nežinau, jei jie rūšiuojami, ar ne, 1188 00:58:48,850 --> 00:58:52,517 todėl jūs nuolat kad juos žemyn, per pusę, per pusę, per pusę, kol galiausiai, 1189 00:58:52,517 --> 00:58:53,600 turite tik vieną elementą. 1190 00:58:53,600 --> 00:58:56,790 Ir vienas elementas visada rūšiuojamos, tiesa? 1191 00:58:56,790 --> 00:59:01,560 >> Taigi, žinome, kad 3, 5, 2, 4, 6, 1, patys, yra rūšiuojami. 1192 00:59:01,560 --> 00:59:05,870 Ir dabar mes galime įdėti juos atgal kartu. 1193 00:59:05,870 --> 00:59:07,510 Taigi mes žinome, 3, 5 d. 1194 00:59:07,510 --> 00:59:08,510 Mes įdėti tie kartu. 1195 00:59:08,510 --> 00:59:09,617 Mes žinome, kad tai Rūšiuota. 1196 00:59:09,617 --> 00:59:10,450 Į 2 "vis dar ten. 1197 00:59:10,450 --> 00:59:11,830 Mes galime įdėti 4 ir 6 kartu. 1198 00:59:11,830 --> 00:59:13,996 Mes žinome, kad manimi rūšiuojamos, todėl mes įdėti, kad kartu. 1199 00:59:13,996 --> 00:59:14,940 Ir 1 yra. 1200 00:59:14,940 --> 00:59:18,720 >> Ir tada jūs tiesiog pažvelgti Šios dvi puselės čia. 1201 00:59:18,720 --> 00:59:21,300 Čia turi 3, 5, 2, 2, 3, 5. 1202 00:59:21,300 --> 00:59:23,465 Jūs galite tiesiog lyginti pradžioje viskas. 1203 00:59:23,465 --> 00:59:26,340 Nes jūs žinote, kad tai yra rūšiuojami ir jūs žinote, kad manimi rūšiuojami. 1204 00:59:26,340 --> 00:59:29,360 Taigi jūs neturite net turi palyginti 5, jūs tiesiog palyginti 3. 1205 00:59:29,360 --> 00:59:32,070 Ir 2 yra mažesnis nei 3, taip, jūs žinote, 2 turi eiti iki galo. 1206 00:59:32,070 --> 00:59:33,120 >> Tas pats ten. 1207 00:59:33,120 --> 00:59:34,740 1 m, turi eiti čia. 1208 00:59:34,740 --> 00:59:37,330 Ir tada, kai jūs einate įdėti šios dvi vertybės kartu, 1209 00:59:37,330 --> 00:59:39,950 jūs žinote, kad tai yra rūšiuojamos ir jūs žinote, kad yra rūšiuojami. 1210 00:59:39,950 --> 00:59:43,240 Taigi, tada 1, ir 2, 1-yra mažiau nei 2. 1211 00:59:43,240 --> 00:59:45,570 Tai jums pasakys, kad 1 turėtų eiti apie tai pabaigoje 1212 00:59:45,570 --> 00:59:47,480 net žiūri 3 arba 5. 1213 00:59:47,480 --> 00:59:50,100 Ir 4 Tada galite tiesiog Tikrinti, jis eina tiesiai čia. 1214 00:59:50,100 --> 00:59:51,480 Jūs neturite pažvelgti į 5. 1215 00:59:51,480 --> 00:59:52,570 Tas pats su 6. 1216 00:59:52,570 --> 00:59:55,860 Jūs žinote, kad 6-- jis tiesiog nereikia būti pažvelgė. 1217 00:59:55,860 --> 00:59:57,870 >> Ir taip tokiu būdu, esate tik sutaupyti sau 1218 00:59:57,870 --> 00:59:59,526 žingsnių daug, kai jūs lyginant. 1219 00:59:59,526 --> 01:00:02,150 Jūs neturite palyginti kas elementas su kitais elementais. 1220 01:00:02,150 --> 01:00:05,230 Jūs tiesiog palyginti su tų, kad jums reikia palyginti jį prieš. 1221 01:00:05,230 --> 01:00:06,870 Taigi, kad tipo abstrakti sąvoka. 1222 01:00:06,870 --> 01:00:10,540 Nesijaudinkite, jei tai ne gana pataikyti jums dar teisus. 1223 01:00:10,540 --> 01:00:14,740 Tačiau paprastai, tai yra kaip sujungti rūšiuoti veikia. 1224 01:00:14,740 --> 01:00:17,750 Klausimai, klausimai, greitai kol aš pereiti? 1225 01:00:17,750 --> 01:00:18,550 Taip. 1226 01:00:18,550 --> 01:00:22,230 >> Auditorija: Taigi jūs sakėte, kad Jūs vartojate 1-, ir tada 4, ir 6 1227 01:00:22,230 --> 01:00:23,860 ir įdėti jas į. 1228 01:00:23,860 --> 01:00:26,800 Taigi nėra those-- nėra Ieškote juos 1229 01:00:26,800 --> 01:00:28,544 kaip atskiri elementai, o ne kaip į visumą? 1230 01:00:28,544 --> 01:00:29,210 ANDI Peng: Taip. 1231 01:00:29,210 --> 01:00:32,020 Taigi, kas vyksta yra ta, kad jūs iš esmės 1232 01:00:32,020 --> 01:00:33,650 yra sukurti naują masyvo. 1233 01:00:33,650 --> 01:00:36,690 Taigi jūs žinote, kad čia, aš turiu dvi matricos dydis 3, tiesa? 1234 01:00:36,690 --> 01:00:39,600 Taigi jūs žinote, kad mano Rūšiuota masyvo turi turėti šešias elementus. 1235 01:00:39,600 --> 01:00:42,270 Taigi jūs tiesiog sukurti Nauja suma atminties. 1236 01:00:42,270 --> 01:00:44,270 Taigi jūs esate lyg yra išlaidavimas atminties, 1237 01:00:44,270 --> 01:00:46,186 bet tai nesvarbu nes jis toks mažas. 1238 01:00:46,186 --> 01:00:48,590 Taigi jums pažvelgti į 1 ir jums pažvelgti į 2. 1239 01:00:48,590 --> 01:00:50,770 Ir jūs žinote, kad 1 yra mažesnis kaip 2. 1240 01:00:50,770 --> 01:00:53,840 Taigi jūs žinote, kad 1 turi eiti iš visų tų pradžia. 1241 01:00:53,840 --> 01:00:55,850 >> Jums net nereikia reikia peržvelgti 3 ir 5. 1242 01:00:55,850 --> 01:00:57,400 Taigi jūs žinote, 1 eina ten. 1243 01:00:57,400 --> 01:00:59,300 Tada jūs iš esmės nukirsti prie 1 d. 1244 01:00:59,300 --> 01:01:00,370 Tai, kaip, miręs mums. 1245 01:01:00,370 --> 01:01:03,690 Tada mes tiesiog turime 2, 3, 5, ir tada 4 ir 6. 1246 01:01:03,690 --> 01:01:06,270 Ir tuomet jūs žinote, kad jums lyginti 4 ir 2, 1247 01:01:06,270 --> 01:01:07,560 Oi, 2 reikia eiti ten. 1248 01:01:07,560 --> 01:01:09,685 Taigi jūs pūkštelėti į 2 žemyn, galite pjaustyti ant kojų. 1249 01:01:09,685 --> 01:01:12,060 Taigi jūs tiesiog turite 3 ir į 4 ir 6 5. 1250 01:01:12,060 --> 01:01:14,650 Ir jūs tiesiog laikyti jį išjungti kapojimo kol jūs įdėti juos į masyvą. 1251 01:01:14,650 --> 01:01:17,110 >> Auditorija: Taigi jūs tiesiog visada lyginant [nesigirdi]? 1252 01:01:17,110 --> 01:01:17,710 >> ANDI Peng: Būtent. 1253 01:01:17,710 --> 01:01:19,590 Taigi šia prasme, jūs tik lyginant, iš esmės, 1254 01:01:19,590 --> 01:01:21,240 vienas skaičius prieš kitą numerį. 1255 01:01:21,240 --> 01:01:22,990 Ir todėl, kad jūs žinote, kad jis rūšiuojamos, jums 1256 01:01:22,990 --> 01:01:24,350 neturi atrodyti per visus numerius. 1257 01:01:24,350 --> 01:01:25,870 Jums tereikia pažvelgti į pirmąją. 1258 01:01:25,870 --> 01:01:27,582 Ir tada galite tiesiog pūkštelėti juos žemyn, nes jūs žinote, 1259 01:01:27,582 --> 01:01:29,640 jie priklauso, kur jie turi priklausyti. 1260 01:01:29,640 --> 01:01:31,030 Taip. 1261 01:01:31,030 --> 01:01:32,920 Geras klausimas. 1262 01:01:32,920 --> 01:01:35,290 >> Ir tada, jei kas nors iš jūsų yra šiek tiek ambicinga, 1263 01:01:35,290 --> 01:01:38,660 nedvejodami pažvelgti į šį kodą. 1264 01:01:38,660 --> 01:01:40,680 Tai iš tikrųjų fizinis įgyvendinimas 1265 01:01:40,680 --> 01:01:42,150 kaip mes norėtume parašyti suliejimo rūšiuoti. 1266 01:01:42,150 --> 01:01:44,070 Ir matote, tai labai trumpas. 1267 01:01:44,070 --> 01:01:46,310 Bet idėjos atsilieka tai yra gana sudėtinga. 1268 01:01:46,310 --> 01:01:50,865 Taigi, jei jūs manote, kaip piešimo tai iš į savo namų vakarą, nedvejodami. 1269 01:01:50,865 --> 01:01:54,050 1270 01:01:54,050 --> 01:01:54,740 >> GERAI. 1271 01:01:54,740 --> 01:01:58,070 Dovydas taip pat perėjo tai paskaita. 1272 01:01:58,070 --> 01:02:00,660 Kas yra geriausias atvejis katilas, blogiausio atvejo katilas, 1273 01:02:00,660 --> 01:02:05,680 ir numatomi katilas iš merge rūšiuoti? 1274 01:02:05,680 --> 01:02:07,260 Pora sekundžių galvoti. 1275 01:02:07,260 --> 01:02:11,198 Tai yra gana sunku, tačiau natūra intuityvus, jei jūs manote apie tai. 1276 01:02:11,198 --> 01:02:20,090 1277 01:02:20,090 --> 01:02:23,054 Gerai. 1278 01:02:23,054 --> 01:02:25,269 >> Auditorija: Ar blogiausiu atveju N log N? 1279 01:02:25,269 --> 01:02:26,060 ANDI Peng: Būtent. 1280 01:02:26,060 --> 01:02:29,380 Ir kodėl jis n log n. 1281 01:02:29,380 --> 01:02:32,230 >> Auditorija: Ar ne jį, nes jis tampa eksponentiškai greičiau, 1282 01:02:32,230 --> 01:02:35,390 todėl tarsi Ši funkcija vietoj tiesiog yra n 1283 01:02:35,390 --> 01:02:37,529 kvadrato ar kažkas? 1284 01:02:37,529 --> 01:02:38,320 ANDI Peng: Būtent. 1285 01:02:38,320 --> 01:02:40,750 Taigi priežastis, kodėl Trukmė apie tai yra n Prisijungti 1286 01:02:40,750 --> 01:02:44,310 n yra because-- ką jūs daro visų šių žingsnių? 1287 01:02:44,310 --> 01:02:46,190 Jūs esate tik kapoti jį per pusę, tiesa? 1288 01:02:46,190 --> 01:02:48,750 Ir todėl, kai mes darote prisijungti, visi, kad jis tai daro 1289 01:02:48,750 --> 01:02:53,150 yra dalijant problemą pusę, per pusę, per pusę, daugiau puselės. 1290 01:02:53,150 --> 01:02:56,430 Ir šia prasme, jūs galite natūra nuo panaikinti tiesinę modelį 1291 01:02:56,430 --> 01:02:57,510 kad mes jau naudojate. 1292 01:02:57,510 --> 01:03:00,254 Nes kai jūs sukapoti viskas per pusę, tai žurnalą. 1293 01:03:00,254 --> 01:03:02,420 Tai tiesiog matematinis būdas jam atstovaujantys asmenys. 1294 01:03:02,420 --> 01:03:06,310 >> Ir galiausiai, pabaigoje, jūs tiesiog padaryti vieną paskutinį perdavimo per 1295 01:03:06,310 --> 01:03:07,930 įdėti juos visus, kad, tiesa? 1296 01:03:07,930 --> 01:03:10,330 Ir todėl, jei jums tereikia Tikrinti vieną dalyką, tai n. 1297 01:03:10,330 --> 01:03:13,420 Ir todėl jūs rūšies dauginant du kartu. 1298 01:03:13,420 --> 01:03:17,660 Taigi, tai, kaip jūs turite, kad galutinis patikrinti n žemyn čia su n log 1299 01:03:17,660 --> 01:03:18,390 čia. 1300 01:03:18,390 --> 01:03:21,060 Ir jei jūs daugintis jiems, kad manimi n log n. 1301 01:03:21,060 --> 01:03:26,100 >> Ir todėl geriausias ir blogiausią ir tikėtinų visi n log n. 1302 01:03:26,100 --> 01:03:27,943 Taip pat kaip ir kitos panašaus. 1303 01:03:27,943 --> 01:03:30,090 Tai tarsi atrankos rūšiuoti į prasme, kad ji 1304 01:03:30,090 --> 01:03:32,131 Nesvarbu, koks jūsų sąrašas, tai tiesiog vyksta 1305 01:03:32,131 --> 01:03:34,801 daryti tą patį kiekvieną kartą. 1306 01:03:34,801 --> 01:03:35,300 GERAI. 1307 01:03:35,300 --> 01:03:39,950 Taigi, kaip jūs vaikinai galite pamatyti, nors Į rūšių, kad mes Dingo through-- n 1308 01:03:39,950 --> 01:03:41,660 kvadrato, tai nėra labai veiksminga. 1309 01:03:41,660 --> 01:03:47,060 Ir net tai n log n yra ne pats efektyviausias. 1310 01:03:47,060 --> 01:03:49,720 Jei vaikinai yra smalsus, ten tarsi mechanizmai 1311 01:03:49,720 --> 01:03:54,310 kad yra toks efektyvus, kad jie beveik esmės butas aplinką. 1312 01:03:54,310 --> 01:03:55,420 >> Jūs turite šiek tiek log n-aisiais. 1313 01:03:55,420 --> 01:03:58,190 Jūs turite šiek tiek žurnalo log n-aisiais. 1314 01:03:58,190 --> 01:04:00,330 Mes nelieskite ant jų Šioje klasėje dabar. 1315 01:04:00,330 --> 01:04:02,663 Bet jei jūs vaikinai yra smalsus, nedvejodami google, kas 1316 01:04:02,663 --> 01:04:04,392 Efektyviausi rūšiavimo mechanizmai. 1317 01:04:04,392 --> 01:04:06,350 Aš nežinau, yra keletas tikrai juokingi tie, 1318 01:04:06,350 --> 01:04:09,860 like-- ten tikrai juokingi tie, kurie žmonės. 1319 01:04:09,860 --> 01:04:12,210 Ir jums įdomu, kaip jie kada nors galvojote, kad. 1320 01:04:12,210 --> 01:04:15,730 Taigi google, jei turite kokių nors atsarginių laiku,, kas yra kai kurie juokingi būdai 1321 01:04:15,730 --> 01:04:17,730 kad people-- taip pat Efektyviausi ways-- žmonės 1322 01:04:17,730 --> 01:04:20,371 galėjusi įgyvendinti rūšių. 1323 01:04:20,371 --> 01:04:20,870 GERAI. 1324 01:04:20,870 --> 01:04:22,880 Ir čia tik patogus mažai diagrama. 1325 01:04:22,880 --> 01:04:26,850 Aš žinau, jūs visi, iki tos viktorinos 0, bus jūsų kambaryje tikriausiai bando 1326 01:04:26,850 --> 01:04:27,960 įsiminti, kad. 1327 01:04:27,960 --> 01:04:30,940 Štai gražus ten jums vaikinai. 1328 01:04:30,940 --> 01:04:37,120 Tik nepamirškite logika, kad made-- kodėl šie skaičiai buvo pasikartojimui. 1329 01:04:37,120 --> 01:04:39,870 Jei jūs visada prarasti, tiesiog įsitikinkite, Įsitikinkite, kad žinote, ką rūšių yra. 1330 01:04:39,870 --> 01:04:40,820 Ir jūs galite paleisti per juos savo proto 1331 01:04:40,820 --> 01:04:42,903 išsiaiškinti, kodėl tie atsakymai yra tie atsakymai. 1332 01:04:42,903 --> 01:04:46,250 1333 01:04:46,250 --> 01:04:47,600 >> Gerai. 1334 01:04:47,600 --> 01:04:49,680 Taigi mes ketiname pereiti ant, galiausiai, paieškai. 1335 01:04:49,680 --> 01:04:51,638 Kadangi, kaip tie iš jūsų, kurie skaityti pset, 1336 01:04:51,638 --> 01:04:55,175 paieška taip pat yra dalis šią savaitę problema rinkiniai. 1337 01:04:55,175 --> 01:04:57,300 Jūsų bus paprašyta įgyvendinti dviejų tipų paieškas. 1338 01:04:57,300 --> 01:05:00,070 Vienas iš jų yra tiesinis paieškos ir Vienas iš jų yra dvejetainis paieškos. 1339 01:05:00,070 --> 01:05:01,760 >> Taigi linijinis paieška yra gana lengva. 1340 01:05:01,760 --> 01:05:04,070 Jūs tiesiog norite ieškoti elementą iš sąrašo, pamatyti, jei jūs jį gauti. 1341 01:05:04,070 --> 01:05:05,444 Jūs tiesiog turite pakartoti per. 1342 01:05:05,444 --> 01:05:08,170 Ir jeigu ji yra lygi kažką, galite tiesiog grąžinti ją, tiesa? 1343 01:05:08,170 --> 01:05:10,890 Tačiau vienas, kad mes dauguma domina kalbame apie 1344 01:05:10,890 --> 01:05:14,550 yra dvejetainis paieškos, teisė, kuri yra Skaldyk ir valdyk mechanizmą, kuris 1345 01:05:14,550 --> 01:05:18,190 Dovydas demonstruodamas paskaita. 1346 01:05:18,190 --> 01:05:20,810 >> Prisiminti telefonų knygos pavyzdį kad jis išlaiko auklėjant, 1347 01:05:20,810 --> 01:05:23,960 vienas, kad jis tipo kovojo ant šio pastaruosius metus šiek tiek, 1348 01:05:23,960 --> 01:05:27,530 kur padalinti problemą per pusę, per pusę, per pusę, vėl ir vėl, 1349 01:05:27,530 --> 01:05:30,730 kol rasite tai, ką jūs ieškote? 1350 01:05:30,730 --> 01:05:33,727 Ir jūs sutvarkysite dinaminis iš kad taip pat. 1351 01:05:33,727 --> 01:05:35,810 Ir jūs galite pamatyti, tai žymiai efektyviau 1352 01:05:35,810 --> 01:05:39,080 nei bet kokio kito tipo paieška. 1353 01:05:39,080 --> 01:05:41,880 >> Taigi taip, kad mums būtų eiti apie įgyvendinant dvejetainį paiešką 1354 01:05:41,880 --> 01:05:46,510 yra, jei mes turėjome masyvą, indeksas 0 iki 6, septynių elementų, 1355 01:05:46,510 --> 01:05:49,790 galime pažvelgti centru, right-- Atsiprašome, jei mūsų klausimą first-- 1356 01:05:49,790 --> 01:05:53,840 jei norime paprašyti klausimą, ar masyvas yra 7 elementą, 1357 01:05:53,840 --> 01:05:56,840 Akivaizdu, kad yra žmones, ir turintys tokia maža matrica, tai lengva mums 1358 01:05:56,840 --> 01:05:58,210 pasakyti "taip". 1359 01:05:58,210 --> 01:06:05,750 Bet būdas įgyvendinti dvejetainis Paieška būtų ieškoti per vidurį. 1360 01:06:05,750 --> 01:06:08,020 >> Mes žinome, kad 3 indeksas yra viduryje, nes mes 1361 01:06:08,020 --> 01:06:09,270 žinau, ten yra septyni elementai. 1362 01:06:09,270 --> 01:06:10,670 Ką 7, padalytą iš 2? 1363 01:06:10,670 --> 01:06:12,850 Jūs galite nukirsti, kad papildomą 1 d. 1364 01:06:12,850 --> 01:06:14,850 Jūs turite 3 per vidurį. 1365 01:06:14,850 --> 01:06:17,590 Taigi yra masyvas 3 yra lygus 7? 1366 01:06:17,590 --> 01:06:18,900 Tai nėra, teisę? 1367 01:06:18,900 --> 01:06:21,050 Tačiau mes galime padaryti patikrinimų pora. 1368 01:06:21,050 --> 01:06:25,380 Ar masyvas 3 mažiau kaip 7 arba yra masyvas 3 didesnis nei 7? 1369 01:06:25,380 --> 01:06:27,240 >> Ir mes žinome, kad tai mažiau kaip 7. 1370 01:06:27,240 --> 01:06:30,259 Taigi mes žinome, kad, oi, ji turi negali būti kairėje pusėje. 1371 01:06:30,259 --> 01:06:32,300 Žinome, kad ji turi būti teisinga puse, tiesa? 1372 01:06:32,300 --> 01:06:34,662 Taigi, mes galime tik nukirsti pusę masyvo. 1373 01:06:34,662 --> 01:06:36,370 Mes net turime pažvelgti į jį daugiau. 1374 01:06:36,370 --> 01:06:38,711 Nes mes žinome, kad pusė mūsų problem-- 1375 01:06:38,711 --> 01:06:41,210 mes žinome, kad atsakymas yra teisė pusė mūsų problema. 1376 01:06:41,210 --> 01:06:42,580 Taigi mes tik pažvelgti, kad dabar. 1377 01:06:42,580 --> 01:06:44,860 >> Taigi dabar mes pažvelgti į vidurys, kas liko. 1378 01:06:44,860 --> 01:06:46,880 Šis indeksas 5. 1379 01:06:46,880 --> 01:06:50,200 Mes darome tą patį vėl patikrinti ir mes matome, kad tai mažesnė. 1380 01:06:50,200 --> 01:06:52,050 Taigi, mes tikimės, kad to kairę. 1381 01:06:52,050 --> 01:06:53,430 Ir tada mes matome, kad patikrinimą. 1382 01:06:53,430 --> 01:06:57,600 Ar masyvo vertė 4 puslapis lygus 7? 1383 01:06:57,600 --> 01:06:58,260 Tai yra. 1384 01:06:58,260 --> 01:07:03,580 Taigi, mes galime grąžinti tiesa, nes mes nustatėme, kad mūsų sąraše vertę. 1385 01:07:03,580 --> 01:07:06,738 Ar kaip aš per tai prasminga visiems? 1386 01:07:06,738 --> 01:07:08,760 GERAI. 1387 01:07:08,760 --> 01:07:11,670 Aš duosiu jums vaikinai gal, pavyzdžiui, trijų, keturių minučių išsiaiškinti, 1388 01:07:11,670 --> 01:07:13,270 Kaip Pseudocode tai. 1389 01:07:13,270 --> 01:07:18,070 >> Taigi įsivaizduokite, aš paklausiau jūsų parašyti funkcija vadinama paiešką (), kad grįžo 1390 01:07:18,070 --> 01:07:20,640 vertės, Būlio vertė, tai buvo tiesa ar false-- patinka, 1391 01:07:20,640 --> 01:07:22,970 tiesa, jei radote vertė, false, jei tu negali. 1392 01:07:22,970 --> 01:07:25,230 Ir tada tu buvai priimtas vertės Jums 1393 01:07:25,230 --> 01:07:28,410 ieško į vertybes, kurios yra array-- oh, aš tikrai įdėti 1394 01:07:28,410 --> 01:07:29,410 kad ne vietoje. 1395 01:07:29,410 --> 01:07:29,580 GERAI. 1396 01:07:29,580 --> 01:07:31,829 Anyways, kad turi būti buvo į vertybių dešinėje. 1397 01:07:31,829 --> 01:07:36,280 Ir tada int n yra skaičius elementų šioje masyvo. 1398 01:07:36,280 --> 01:07:39,430 Kaip jūs einate apie bando į Pseudocode kad problemą? 1399 01:07:39,430 --> 01:07:41,630 Aš duosiu jums vaikinai, kaip tris minutes padaryti. 1400 01:07:41,630 --> 01:08:00,137 1401 01:08:00,137 --> 01:08:02,595 Ne, manau, kad ten jei jums reikia Taip, ten yra vienas teisingas čia. 1402 01:08:02,595 --> 01:08:03,261 Auditorija: Ar galiu? 1403 01:08:03,261 --> 01:08:04,388 ANDI Peng: Taip, aš turiu jums. 1404 01:08:04,388 --> 01:08:09,410 1405 01:08:09,410 --> 01:08:11,050 Ar tai darbo? 1406 01:08:11,050 --> 01:08:12,290 Gerai. 1407 01:08:12,290 --> 01:10:43,590 1408 01:10:43,590 --> 01:10:44,720 >> GERAI. 1409 01:10:44,720 --> 01:10:47,630 Visos teisės vaikinai, mes ketina pažaboti jį. 1410 01:10:47,630 --> 01:10:49,730 GERAI. 1411 01:10:49,730 --> 01:10:54,020 Taigi manyti, mes turime tai puikus mažai masyvas su n verčių jį. 1412 01:10:54,020 --> 01:10:55,170 Aš ne padaryti linijas. 1413 01:10:55,170 --> 01:10:58,649 Bet kaip mes einame apie bando rašyti tai? 1414 01:10:58,649 --> 01:11:00,440 Ar kas nors nori man pirmą eilutę? 1415 01:11:00,440 --> 01:11:02,814 Jei norite suteikti man Pirmoji eilutė šio Pseudocode. 1416 01:11:02,814 --> 01:11:06,563 1417 01:11:06,563 --> 01:11:08,430 >> Auditorija: [nesigirdi] 1418 01:11:08,430 --> 01:11:10,138 Auditorija: Jūs norėtumėte į pakartoti through-- 1419 01:11:10,138 --> 01:11:11,094 Auditorija: Tiesiog kitą kilpą? 1420 01:11:11,094 --> 01:11:11,760 Auditorija: --for. 1421 01:11:11,760 --> 01:11:15,880 1422 01:11:15,880 --> 01:11:17,780 >> ANDI Peng: Taigi tai vienas šiek tiek sudėtinga. 1423 01:11:17,780 --> 01:11:23,130 Pagalvokite about-- norite nuolat veikia šio ciklo 1424 01:11:23,130 --> 01:11:27,950 vėl ir vėl, kol kada? 1425 01:11:27,950 --> 01:11:30,819 >> Auditorija: Iki [nesigirdi] vertė yra lygi tai vertei. 1426 01:11:30,819 --> 01:11:31,610 ANDI Peng: Būtent. 1427 01:11:31,610 --> 01:11:33,900 Taigi jūs iš tikrųjų galite tik write-- mes netgi galite jį supaprastinti daugiau. 1428 01:11:33,900 --> 01:11:35,630 Mes galime tik daryti, o kilpa, tiesa? 1429 01:11:35,630 --> 01:11:39,380 Taigi, galite tiesiog loop-- mes žinome, kad tai nors. 1430 01:11:39,380 --> 01:11:42,850 Bet dabar, aš ruošiuosi pasakyti "kilpa", - per ką? 1431 01:11:42,850 --> 01:11:46,640 Ciklas until-- kas Mūsų baigiasi liga? 1432 01:11:46,640 --> 01:11:47,510 Manau, kad tai išgirdo. 1433 01:11:47,510 --> 01:11:48,530 Aš girdėjau kažkas pasakyti. 1434 01:11:48,530 --> 01:11:51,255 >> Auditorija: Vertybės yra lygus vidurį. 1435 01:11:51,255 --> 01:11:52,255 ANDI Peng: Pasakykite jį dar kartą. 1436 01:11:52,255 --> 01:11:54,470 Auditorija: Arba, kol vertė jūs ieškote 1437 01:11:54,470 --> 01:11:58,470 už yra lygus vidutinis dydis. 1438 01:11:58,470 --> 01:12:00,280 >> ANDI Peng: Ką daryti, jei tai ne ten? 1439 01:12:00,280 --> 01:12:03,113 Ką daryti, jei vertė jūs ieškote už faktiškai nėra šiame masyve? 1440 01:12:03,113 --> 01:12:05,890 Auditorija: Jūs return 1. 1441 01:12:05,890 --> 01:12:08,850 >> ANDI Peng: Bet ką mes norime kilpa, kol jei mes turime būklę? 1442 01:12:08,850 --> 01:12:09,350 Taip. 1443 01:12:09,350 --> 01:12:11,239 >> AUDITORIJA: Iki ten tik viena vertė? 1444 01:12:11,239 --> 01:12:13,530 ANDI Peng: Jūs galite kilpa until--, kad jūs žinote, kad esate 1445 01:12:13,530 --> 01:12:15,714 ketinate turėti max vertę, tiesa? 1446 01:12:15,714 --> 01:12:18,130 Ir jūs žinote, kad jūs ketinate turėti min vertę, tiesa? 1447 01:12:18,130 --> 01:12:20,379 Nes taip, kad kažkas Aš pamiršau pasakyti anksčiau, 1448 01:12:20,379 --> 01:12:22,640 kad kažkas tai kritiškai dvejetainis paieškos 1449 01:12:22,640 --> 01:12:24,182 yra tai, kad jūsų masyvas jau rūšiuojamos. 1450 01:12:24,182 --> 01:12:26,973 Kadangi nėra daryti būdas tai, jei jie tiesiog atsitiktinių dydžių. 1451 01:12:26,973 --> 01:12:29,190 Jūs nežinote, jei vienas yra didesnis nei kita, teisę? 1452 01:12:29,190 --> 01:12:32,720 >> Taigi jūs žinote, kad jūsų max ir Jūsų min esate čia, tiesa? 1453 01:12:32,720 --> 01:12:35,590 Jei jūs ketinate būti koreguojant Jūsų max jūsų min ir mid-- 1454 01:12:35,590 --> 01:12:38,470 tegul tiesiog prisiimti savo Vidutinės vertės yra teisinga here-- 1455 01:12:38,470 --> 01:12:43,910 jūs ketinate iš esmės kilpa, kol jūsų minimumas yra 1456 01:12:43,910 --> 01:12:47,510 apie tą patį kaip savo max, į dešinę, arba Jei jūsų max yra ne tas pats, kaip jūsų min. 1457 01:12:47,510 --> 01:12:48,040 Teisė? 1458 01:12:48,040 --> 01:12:51,340 Nes kai tai atsitiks, jūs žinote, kad jūs galų gale nukentėjo tą pačią vertę. 1459 01:12:51,340 --> 01:12:59,135 Taigi jūs norite kilpą, kol savo min yra mažesnis arba lygus to-- Oi, 1460 01:12:59,135 --> 01:13:01,510 ne mažiau nei arba lygus, Kitas būdas around-- max. 1461 01:13:01,510 --> 01:13:15,110 1462 01:13:15,110 --> 01:13:16,160 >> Ar tai prasminga? 1463 01:13:16,160 --> 01:13:18,810 Aš paėmė keletą bando gauti šią teisę. 1464 01:13:18,810 --> 01:13:21,869 Bet kilpa, kol jūsų max iš esmės yra beveik mažiau 1465 01:13:21,869 --> 01:13:23,410 nei arba lygus savo minimumo, tiesa? 1466 01:13:23,410 --> 01:13:25,201 Štai tada jūs žinote, kad jūs susiliejęs. 1467 01:13:25,201 --> 01:13:29,290 AUDITORIJA: Kada jūsų maksimalus vertė būti mažesnis nei minimalų? 1468 01:13:29,290 --> 01:13:31,040 ANDI Peng: Jei norite išsaugoti pritaikant jį, kuris 1469 01:13:31,040 --> 01:13:32,380 yra tai, ką mes ketiname reikia daro tai. 1470 01:13:32,380 --> 01:13:33,460 Ar tai prasminga? 1471 01:13:33,460 --> 01:13:35,750 Minimalus ir maksimalus yra tik sveikieji skaičiai, kad mes tikriausiai 1472 01:13:35,750 --> 01:13:39,260 ketinate norite sukurti išlaikyti stebėti, kur mes ieškome. 1473 01:13:39,260 --> 01:13:41,790 Kadangi masyvo egzistuoja nepriklausomai nuo to, ką mes darome. 1474 01:13:41,790 --> 01:13:45,030 Kaip mes nesame iš tikrųjų fiziškai atkirtimas masyvo, tiesa? 1475 01:13:45,030 --> 01:13:47,261 Užtenka tik koreguojant kur mes ieškome. 1476 01:13:47,261 --> 01:13:48,136 Ar tai prasminga? 1477 01:13:48,136 --> 01:13:48,472 >> Auditorija: Taip. 1478 01:13:48,472 --> 01:13:49,110 >> ANDI Peng: Gerai. 1479 01:13:49,110 --> 01:13:57,090 Taigi, jei tai už mūsų kilpa sąlyga, ką mes norime viduje šio kilpa? 1480 01:13:57,090 --> 01:13:58,700 Ką mes ketiname būti nori daryti? 1481 01:13:58,700 --> 01:14:02,390 Taigi dabar, mes turime max ir min, tiesa, 1482 01:14:02,390 --> 01:14:04,962 tikriausiai sukūrė čia kažkur. 1483 01:14:04,962 --> 01:14:07,170 Mes ketiname tikriausiai nori rasti vidurį, tiesa? 1484 01:14:07,170 --> 01:14:08,450 Kaip mes ketiname būti sugebėti rasti vidurį? 1485 01:14:08,450 --> 01:14:09,491 Koks mathematical-- 1486 01:14:09,491 --> 01:14:11,079 Auditorija: Max plius min padalinta iš 2. 1487 01:14:11,079 --> 01:14:11,870 ANDI Peng: Būtent. 1488 01:14:11,870 --> 01:14:20,300 1489 01:14:20,300 --> 01:14:21,620 Ar tai prasminga? 1490 01:14:21,620 --> 01:14:25,780 Ir vaikinai, kodėl mes buvo ne tik use-- kodėl mes tai padarė 1491 01:14:25,780 --> 01:14:27,850 užuot tiesiog n padalytą iš 2? 1492 01:14:27,850 --> 01:14:30,310 Tai todėl, kad n yra, vertės kad ketina likti tas pats. 1493 01:14:30,310 --> 01:14:30,979 Teisė? 1494 01:14:30,979 --> 01:14:34,020 Bet kaip mes reguliuoti mūsų minimalios ir didžiausios vertės, jie ketina pakeisti. 1495 01:14:34,020 --> 01:14:36,040 Ir kaip rezultatas, mūsų viduriniosios ketina per keistis. 1496 01:14:36,040 --> 01:14:37,873 Štai kodėl mes norime tai padaryti čia. 1497 01:14:37,873 --> 01:14:38,510 GERAI. 1498 01:14:38,510 --> 01:14:41,600 >> Ir tada, kad dabar mes pastebėjome our-- taip. 1499 01:14:41,600 --> 01:14:44,270 >> Auditorija: Tiesiog greitai question-- kai jūs kalbate MIN ir MAX, 1500 01:14:44,270 --> 01:14:46,410 mes prielaidą, kad jis jau rūšiuojami? 1501 01:14:46,410 --> 01:14:48,400 >> ANDI Peng: Taip, tai iš tikrųjų sąlyga dvejetainis paieškos, 1502 01:14:48,400 --> 01:14:49,816 kad jūs turite žinoti, kad manimi rūšiuojami. 1503 01:14:49,816 --> 01:14:53,660 Kuris yra, kodėl rūšiuoti, jums reikia parašyti savo problema nustatyti prieš jūsų dvejetainiai paiešką. 1504 01:14:53,660 --> 01:14:55,910 GERAI. 1505 01:14:55,910 --> 01:14:58,876 Taigi dabar, kad mes žinome, kur mūsų Mediana yra, ką jūs norite daryti čia? 1506 01:14:58,876 --> 01:15:01,789 1507 01:15:01,789 --> 01:15:04,319 >> Auditorija: Mes norime palyginti kad į kitą vieną. 1508 01:15:04,319 --> 01:15:05,110 ANDI Peng: Būtent. 1509 01:15:05,110 --> 01:15:12,280 Taigi, jūs ketinate palyginti Vidutinės vertės, tiesa? 1510 01:15:12,280 --> 01:15:14,900 1511 01:15:14,900 --> 01:15:18,670 Ir ką tai pasakyti mus, kai mes palyginti? 1512 01:15:18,670 --> 01:15:22,226 Ką mes norime daryti po to? 1513 01:15:22,226 --> 01:15:25,389 >> Auditorija: Jei vertė yra didesnė nei vidurio, mes norime nukirsk ją. 1514 01:15:25,389 --> 01:15:26,180 ANDI Peng: Būtent. 1515 01:15:26,180 --> 01:15:33,940 Taigi, jei reikšmė yra didesnė nei vidurio, mes 1516 01:15:33,940 --> 01:15:36,550 ketinate norite pakeisti jų mažiausias ir Maxes, tiesa? 1517 01:15:36,550 --> 01:15:38,980 Ką mes norime pakeisti? 1518 01:15:38,980 --> 01:15:42,145 Taigi, jei mes žinome vertė yra kažkur čia, ką jūs, mes pakeisti? 1519 01:15:42,145 --> 01:15:44,758 Mes norime pakeisti mūsų Minimalus būti vidurio, tiesa? 1520 01:15:44,758 --> 01:15:49,420 1521 01:15:49,420 --> 01:15:54,292 Ir tada kitur, jei tai šiame pusę, ką mes norime pakeisti? 1522 01:15:54,292 --> 01:15:55,306 >> AUDITORIJA: Jūsų maksimali. 1523 01:15:55,306 --> 01:15:55,972 ANDI Peng: Taip. 1524 01:15:55,972 --> 01:16:02,597 1525 01:16:02,597 --> 01:16:04,680 Ir tada jūs esate tik ketina išlaikyti kilpų, tiesa? 1526 01:16:04,680 --> 01:16:08,920 Nes dabar, po vienos iteracijos per, jūs turite maks čia. 1527 01:16:08,920 --> 01:16:10,760 Ir tada jūs galite perskaičiuoti viduryje. 1528 01:16:10,760 --> 01:16:11,990 Ir tada jūs galite palyginti. 1529 01:16:11,990 --> 01:16:14,766 Ir jūs ketinate nesustoti kol minučių ir Maxes 1530 01:16:14,766 --> 01:16:15,890 jau iš esmės sutapo. 1531 01:16:15,890 --> 01:16:17,890 Ir tai, kai jūs žinote, kad jūs nukentėjo jo pabaigos. 1532 01:16:17,890 --> 01:16:20,280 Ir nors jūs ją radau ar turite ne šiuo klausimu. 1533 01:16:20,280 --> 01:16:23,170 >> Ar tai prasminga visiems? 1534 01:16:23,170 --> 01:16:26,020 1535 01:16:26,020 --> 01:16:26,770 GERAI. 1536 01:16:26,770 --> 01:16:27,900 Tai gana svarbu, nes jūs turėsite 1537 01:16:27,900 --> 01:16:29,760 rašyti tai jūsų kodas vakarą. 1538 01:16:29,760 --> 01:16:32,660 Bet jūs vaikinai turi gana geras jausmas, ką turėtų daryti, 1539 01:16:32,660 --> 01:16:34,051 kuris yra geras. 1540 01:16:34,051 --> 01:16:34,550 GERAI. 1541 01:16:34,550 --> 01:16:38,840 Taigi mes turime apie septynis minučių liko skyrių. 1542 01:16:38,840 --> 01:16:43,170 Taigi mes ketiname kalbėti apie tai pset, kad mes daryti. 1543 01:16:43,170 --> 01:16:46,410 Taigi pset yra padalintas į dvi dalis. 1544 01:16:46,410 --> 01:16:50,230 Pirmoji pusė apima įgyvendinti randa 1545 01:16:50,230 --> 01:16:54,210 kuriame rašote linijinis paiešką A dvejetainis paieškos, ir rūšiavimo algoritmas. 1546 01:16:54,210 --> 01:16:56,690 >> Taigi, tai yra pirmasis kartą iš pset kur 1547 01:16:56,690 --> 01:17:00,050 mes būsime duoti jums, vaikinai, kas vadinama paskirstymo kodas, kuris yra kodas 1548 01:17:00,050 --> 01:17:02,740 kad mes iš anksto raštu, bet tiesiog paliko keletą vienetų išjungtas 1549 01:17:02,740 --> 01:17:04,635 jums baigti rašyti. 1550 01:17:04,635 --> 01:17:07,510 Taigi jūs vaikinai, kai jūs žiūrite į tai kodas, galite gauti tikrai išsigandęs. 1551 01:17:07,510 --> 01:17:08,630 Jei jūs tik norite, ahh, aš nežinau, kas tai daro, 1552 01:17:08,630 --> 01:17:11,670 Aš nežinau, kaip, kad atrodo taip sudėtinga, ahh, atsipalaiduoti. 1553 01:17:11,670 --> 01:17:12,170 Viskas gerai. 1554 01:17:12,170 --> 01:17:12,930 Skaityti spec. 1555 01:17:12,930 --> 01:17:16,920 SPEC jums paaiškins tiksliai Ką visas šias programas darai. 1556 01:17:16,920 --> 01:17:20,560 >> Pavyzdžiui, generate.c yra programa, kad ateis su savo pset. 1557 01:17:20,560 --> 01:17:24,060 Jūs neturite iš tikrųjų turi jį liesti, bet Jūs turite suprasti, ką jis daro. 1558 01:17:24,060 --> 01:17:28,550 Ir generate.c, visa tai daro, yra arba generuoti atsitiktinius numerius 1559 01:17:28,550 --> 01:17:32,400 arba galite suteikti jai sėklą, tarsi iš anksto susitaręs numeris, užtrunka, 1560 01:17:32,400 --> 01:17:34,140 ir jis generuoja daugiau numerių. 1561 01:17:34,140 --> 01:17:37,170 Taigi ten konkretus būdas įgyvendinti generate.c, kurioje 1562 01:17:37,170 --> 01:17:42,760 galite tiesiog padaryti skaičių krūva jums išbandyti savo kitus metodus toliau. 1563 01:17:42,760 --> 01:17:45,900 >> Taigi, jei norite, už Pavyzdžiui, išbandyti savo randa, 1564 01:17:45,900 --> 01:17:48,970 jūs norite paleisti generate.c, generuoti numerius krūva, 1565 01:17:48,970 --> 01:17:50,880 ir tada paleisti savo pagalbininkų funkciją. 1566 01:17:50,880 --> 01:17:53,930 Jūsų pagalbininkai funkcija yra kur esate iš tikrųjų fiziškai rašyti kodą. 1567 01:17:53,930 --> 01:17:59,330 Ir manau, pagalbininkų, kaip bibliotekos failą rašote, kad radinys skambina. 1568 01:17:59,330 --> 01:18:02,950 Ir taip per helpers.c, jums padaryti paieškos ir rūšiavimo. 1569 01:18:02,950 --> 01:18:06,500 >> Ir tada jūs ketinate iš esmės tiesiog įdėti juos visus kartu. 1570 01:18:06,500 --> 01:18:10,350 SPEC parodys jums, kaip įdėti, kad komandinėje eilutėje. 1571 01:18:10,350 --> 01:18:14,880 Ir jums bus suteikta galimybė išbandyti, ar ne tavo rūšiuoti ir paieška dirba. 1572 01:18:14,880 --> 01:18:15,870 Saunus. 1573 01:18:15,870 --> 01:18:18,720 Ar kas nors jau pradėjo ir kilo problemų ar klausimų 1574 01:18:18,720 --> 01:18:20,520 jie dabar su tai? 1575 01:18:20,520 --> 01:18:21,020 GERAI. 1576 01:18:21,020 --> 01:18:21,476 >> Auditorija: Palaukite. 1577 01:18:21,476 --> 01:18:21,932 Aš turiu klausimą. 1578 01:18:21,932 --> 01:18:22,844 >> ANDI Peng: Taip. 1579 01:18:22,844 --> 01:18:28,390 >> Auditorija: Taigi aš pradėjau daryti linijinis paiešką helpers.c 1580 01:18:28,390 --> 01:18:29,670 ir tai nebuvo tikrai dirba. 1581 01:18:29,670 --> 01:18:34,590 Bet vėliau, aš sužinojau, mes tiesiog turite jį ištrinti ir padaryti dvejetainis paiešką. 1582 01:18:34,590 --> 01:18:36,991 Taigi ar tai svarbu, jei jis neveikia? 1583 01:18:36,991 --> 01:18:39,700 1584 01:18:39,700 --> 01:18:41,510 >> ANDI Peng: Trumpas atsakymas yra ne. 1585 01:18:41,510 --> 01:18:42,642 Bet kadangi mes not-- 1586 01:18:42,642 --> 01:18:44,350 Auditorija: Bet Niekieno iš tikrųjų tikrinimą. 1587 01:18:44,350 --> 01:18:46,058 ANDI Peng: Mes niekada ketiname pamatyti, kad. 1588 01:18:46,058 --> 01:18:49,590 Bet jūs tikriausiai norite padaryti Įsitikinkite, kad jūsų paiešką veikia. 1589 01:18:49,590 --> 01:18:51,700 Nes jei tavo linijinis Paieška neveikia, 1590 01:18:51,700 --> 01:18:54,410 tada šansai yra jūsų dvejetainis Paieška nesiruošia dirbti taip pat. 1591 01:18:54,410 --> 01:18:56,646 Kadangi jūs turite panašios logika abu. 1592 01:18:56,646 --> 01:18:58,020 Ir ne, tai tikrai ne klausimas. 1593 01:18:58,020 --> 01:19:01,300 Taigi vieninteliai jūs pasukite Åre rūšiuoti ir dvejetainis paieškos. 1594 01:19:01,300 --> 01:19:02,490 Taip. 1595 01:19:02,490 --> 01:19:06,610 >> Ir taip pat, iš vaikams daug buvo bando surinkti helpers.c. 1596 01:19:06,610 --> 01:19:09,550 Jūs neprisijungęs tikrųjų leido tai padaryti, nes helpers.c 1597 01:19:09,550 --> 01:19:11,200 neturi pagrindinę funkciją. 1598 01:19:11,200 --> 01:19:13,550 Ir todėl jūs turite tik būtų faktiškai sudarant 1599 01:19:13,550 --> 01:19:18,670 generuoti ir sužinoti, nes rasti kvietimus helpers.c ir pagal ją funkcijas. 1600 01:19:18,670 --> 01:19:20,790 Taigi, kad daro derinimo į užpakalis skausmas. 1601 01:19:20,790 --> 01:19:22,422 Bet tai, ką mes turime daryti. 1602 01:19:22,422 --> 01:19:23,880 Auditorija: Jūs tiesiog padaryti visi, tiesa? 1603 01:19:23,880 --> 01:19:27,290 ANDI Peng: Jūs galite tiesiog kad visi taip, taip. 1604 01:19:27,290 --> 01:19:28,060 GERAI. 1605 01:19:28,060 --> 01:19:32,570 Taigi, kad viskas, kalbant apie tai, ką pset klausia jūs visi daryti. 1606 01:19:32,570 --> 01:19:35,160 Jei turite kokių nors klausimų, nedvejodami nemokama paklausti manęs po skyriuje. 1607 01:19:35,160 --> 01:19:37,580 Aš būsiu čia, kaip, 20 min. 1608 01:19:37,580 --> 01:19:40,500 >> Ir Taip, pset s tikrai ne todėl, kad blogai. 1609 01:19:40,500 --> 01:19:41,680 Vaikinai turėtų būti OK. 1610 01:19:41,680 --> 01:19:43,250 Tai, atlikite gaires. 1611 01:19:43,250 --> 01:19:47,840 Rūšis turėti jausmą, logiškai, ką turėtų būti vyksta ir jums bus gerai. 1612 01:19:47,840 --> 01:19:48,690 Ar ne per daug baisu. 1613 01:19:48,690 --> 01:19:50,220 Yra kodo daug jau parašyta ten. 1614 01:19:50,220 --> 01:19:53,011 Ar ne per daug bijo, jei jūs neturite suprasti, ką visa tai reiškia. 1615 01:19:53,011 --> 01:19:54,749 Jei tai daug, tai visiškai gerai. 1616 01:19:54,749 --> 01:19:55,790 Ir atvykti į darbo valandomis. 1617 01:19:55,790 --> 01:19:57,520 Mes padėsime jums pažvelgti. 1618 01:19:57,520 --> 01:20:00,810 >> Auditorija: Su papildoma funkcijos, mes pažvelgti tiems iki? 1619 01:20:00,810 --> 01:20:03,417 >> ANDI Peng: Taip, tie, kurie kodą. 1620 01:20:03,417 --> 01:20:05,750 Per 15 žaidimo pusę nuo tai jau parašyta jums. 1621 01:20:05,750 --> 01:20:09,310 Taigi šios funkcijos yra jau kodu. 1622 01:20:09,310 --> 01:20:12,020 Yep. 1623 01:20:12,020 --> 01:20:12,520 Gerai. 1624 01:20:12,520 --> 01:20:14,000 Na, kuo geriausios kloties. 1625 01:20:14,000 --> 01:20:15,180 Tai bjaurus dieną. 1626 01:20:15,180 --> 01:20:19,370 Taigi tikiuosi jus vaikinai nesijaučia per blogai apie buvimo viduje ir kodavimo. 1627 01:20:19,370 --> 01:20:22,133