1 00:00:00,000 --> 00:00:11,100 2 00:00:11,100 --> 00:00:12,300 >> SPEAKER 1: Hey everyone! 3 00:00:12,300 --> 00:00:13,890 Sveiki sugrįžę į skyrių. 4 00:00:13,890 --> 00:00:17,480 Taigi džiaugiuosi, kad tiek daug jūsų tiek čia, ir visiems, kurie žiūri internete. 5 00:00:17,480 --> 00:00:18,760 6 00:00:18,760 --> 00:00:20,920 Taigi, kaip įprasta laukiame sugrįžtant. 7 00:00:20,920 --> 00:00:24,360 Tikiuosi, kad jūs visi turėjo gražių savaitgalį, pilna ramybės, poilsio. 8 00:00:24,360 --> 00:00:26,026 Tai buvo gražus iš vakar. 9 00:00:26,026 --> 00:00:27,525 Taigi, tikiuosi, kad jums patiko atviras. 10 00:00:27,525 --> 00:00:28,840 11 00:00:28,840 --> 00:00:30,610 >> Taigi, pirmiausia Skelbimų pora. 12 00:00:30,610 --> 00:00:31,920 13 00:00:31,920 --> 00:00:32,700 Rūšiavimas. 14 00:00:32,700 --> 00:00:37,350 Taigi, dauguma iš jūsų turi Dotarłeś paštu nuo manęs apie savo Scratch Pset, 15 00:00:37,350 --> 00:00:39,920 taip pat klasifikavimo ir Pset 1. 16 00:00:39,920 --> 00:00:41,000 17 00:00:41,000 --> 00:00:42,220 Taigi, tiesiog pora dalykų. 18 00:00:42,220 --> 00:00:45,150 Būtinai naudokite check50 į style50. 19 00:00:45,150 --> 00:00:47,250 Tai yra skirtas būti ištekliai jums vaikinai, 20 00:00:47,250 --> 00:00:50,660 įsitikinti, kad jūs gaunate tiek taškų, kaip jūs galite 21 00:00:50,660 --> 00:00:52,390 be bereikalingo prarasti juos. 22 00:00:52,390 --> 00:00:54,407 Taigi, tokie dalykai kaip stiliaus yra labai svarbūs. 23 00:00:54,407 --> 00:00:55,740 Mes ketiname pakilti už jį. 24 00:00:55,740 --> 00:00:58,115 Kai kurie iš jūsų galbūt jau Pastebėta, kad iš savo Pset. 25 00:00:58,115 --> 00:00:58,920 26 00:00:58,920 --> 00:01:01,450 Ir check50 tik tikrai paprastas būdas įsitikinti 27 00:01:01,450 --> 00:01:05,050 kad mes iš tikrųjų grįžti kas turi būti grąžintas į vartotoją, 28 00:01:05,050 --> 00:01:06,690 ir kad viskas veikia tinkamai. 29 00:01:06,690 --> 00:01:08,690 30 00:01:08,690 --> 00:01:12,040 >> Antrąją dėmesį, įsitikinkite, kad jūsų įkelti ką tinkamą aplanką. 31 00:01:12,040 --> 00:01:14,470 Tai daro mano gyvenimą tik Šiek tiek sunkiau 32 00:01:14,470 --> 00:01:18,836 jei įkeliate Pset 2 į Pset 1 nes kai aš parsisiųsti dalykų, 33 00:01:18,836 --> 00:01:20,085 jie ne atsisiųsti teisingai. 34 00:01:20,085 --> 00:01:21,690 35 00:01:21,690 --> 00:01:24,560 Ir aš žinau, kad tai mažai Ļodzīgs sistemoje priprasti prie, 36 00:01:24,560 --> 00:01:26,950 bet tiesiog super atsargūs, jei tik man, 37 00:01:26,950 --> 00:01:30,080 kad, kai jūs gaunate laiškus ne kaip 2:00 ir aš rūšiavimas. 38 00:01:30,080 --> 00:01:33,710 Jei ne sukelti turiu ieškoti visame jūsų Pset. 39 00:01:33,710 --> 00:01:34,440 Cool. 40 00:01:34,440 --> 00:01:37,270 >> Žinau, kad tai per anksti, bet aš visiškai got imtasi užklupti 41 00:01:37,270 --> 00:01:40,800 iki esė Štai dėl šio penktadienis, ta mano profesoriai tiesiog patinka, oh yeah. 42 00:01:40,800 --> 00:01:42,550 Nepamirškite, kad jūs turite Esė dėl penktadienį. 43 00:01:42,550 --> 00:01:45,780 Taigi, aš žinau, niekas mėgsta galvoti apie kontrolinius, 44 00:01:45,780 --> 00:01:50,620 bet tavo pirmasis viktorina yra spalio 15, kuris spalio mėnesio pradžios šią savaitę. 45 00:01:50,620 --> 00:01:53,290 Taigi, tai gali būti anksčiau nei jūs tikėjotės ir viskas. 46 00:01:53,290 --> 00:01:57,510 Taigi, kad jūs ne mesti užklupti, kai Aš sakiau, kitą savaitę skyrių tą oh, 47 00:01:57,510 --> 00:02:00,560 Jūsų viktorina kitą savaitę, aš maniau Norėčiau duoti jums šiek tiek daugiau 48 00:02:00,560 --> 00:02:01,500 iš metas dabar. 49 00:02:01,500 --> 00:02:02,970 50 00:02:02,970 --> 00:02:04,660 >> Taigi, jūsų problema nustatyti, numeris trys. 51 00:02:04,660 --> 00:02:07,070 Kaip žmonės skaityti spec iš smalsumo? 52 00:02:07,070 --> 00:02:08,560 53 00:02:08,560 --> 00:02:09,199 Gerai. 54 00:02:09,199 --> 00:02:10,229 Mes turime pora. 55 00:02:10,229 --> 00:02:12,320 Rūšies žemyn nuo paskutinio savaitę, bet tai gerai. 56 00:02:12,320 --> 00:02:13,650 Aš žinau, tai buvo graži iš. 57 00:02:13,650 --> 00:02:15,120 58 00:02:15,120 --> 00:02:16,660 Taigi Break Out. 59 00:02:16,660 --> 00:02:21,010 Tikrai po gausite padaryta šiandien perskaičiau jūsų spec mažiausiai 60 00:02:21,010 --> 00:02:25,240 bandyti kaip atsisiųsti pasiskirstymas kodas ir veikia 61 00:02:25,240 --> 00:02:27,430 kaip pirmoji pradinė dalykas, kad jie paprašys. 62 00:02:27,430 --> 00:02:28,681 63 00:02:28,681 --> 00:02:32,590 Kadangi mes naudojame pasiskirstymas kodas ir biblioteka 64 00:02:32,590 --> 00:02:36,790 kad mes tik buvo using-- --It yra tik antrą kartą mes padarėme šį Pset, 65 00:02:36,790 --> 00:02:38,650 beprotiškas dalykai gali atsitikti su prietaisu, 66 00:02:38,650 --> 00:02:41,370 ir norite sužinoti, kad iš dabar versus vėliau. 67 00:02:41,370 --> 00:02:45,570 >> Nes jei tai Ketvirtadienio naktį ar tai Trečiadienis naktį kažkodėl 68 00:02:45,570 --> 00:02:48,912 Jūsų prietaisas tiesiog nėra norite paleisti su biblioteka 69 00:02:48,912 --> 00:02:50,620 ar su paskirstymo kodas, kuris būdas 70 00:02:50,620 --> 00:02:52,309 Jūs negalite net pradėti daryti kodavimas. 71 00:02:52,309 --> 00:02:54,100 Kadangi jūs negalite patikrinti norėdami pamatyti, jei ji veikia. 72 00:02:54,100 --> 00:02:55,975 Jūsų not gonna būti suteikta pamatyti, jei ji kaupia. 73 00:02:55,975 --> 00:03:00,500 Norite pasirūpinti tiems anksti savaitę, kai jūs vis dar galite rašyti man 74 00:03:00,500 --> 00:03:03,100 arba vienas iš kitų TFS, ir mes galime gauti fiksuoto telefono. 75 00:03:03,100 --> 00:03:05,410 Nes tie klausimai kad ketina sustabdyti jus 76 00:03:05,410 --> 00:03:07,120 nuo priėmimo progresuoti. 77 00:03:07,120 --> 00:03:10,055 Tai ne kaip vieną klaidą, kad galite tiesiog rūšies praleisti. 78 00:03:10,055 --> 00:03:10,712 79 00:03:10,712 --> 00:03:13,420 Jei iškilo problemų su jūsų Prietaisas ar paskirstymo kodas, 80 00:03:13,420 --> 00:03:16,211 jūs tikrai norite gauti, kad imamasi rūpintis anksčiau nei vėliau. 81 00:03:16,211 --> 00:03:20,410 Taigi, net jei jūs ne viskas iš tikrųjų pradėti kodavimo, atsisiųsti paskirstymą 82 00:03:20,410 --> 00:03:24,040 kodas, skaitykite spec, įsitikinkite viskas gerai veikia ten. 83 00:03:24,040 --> 00:03:25,134 Gerai? 84 00:03:25,134 --> 00:03:27,675 Jei galite tiesiog padaryti, kad aš žada savo gyvenimą bus lengviau. 85 00:03:27,675 --> 00:03:28,800 86 00:03:28,800 --> 00:03:31,410 Ir tokiu būdu jūs tikriausiai ketina tai padaryti dabar teisingai? 87 00:03:31,410 --> 00:03:32,100 Gerai. 88 00:03:32,100 --> 00:03:33,950 Taigi, bet kokie klausimai ten? 89 00:03:33,950 --> 00:03:35,850 Bet kokios logistikos dalykų? 90 00:03:35,850 --> 00:03:36,910 Kiekvienas yra gera? 91 00:03:36,910 --> 00:03:38,270 Gerai. 92 00:03:38,270 --> 00:03:41,700 >> Atsakomybės tiems Jūs kambaryje ir internete. 93 00:03:41,700 --> 00:03:45,437 Aš ruošiuosi bando pereiti tarp PowerPoint į prietaiso 94 00:03:45,437 --> 00:03:47,270 nes mes ketiname būti padaryti kai kurie kodavimo 95 00:03:47,270 --> 00:03:53,630 Šiandien populiarus paklausa anoniminė pasiūlymas apklausa Išsiunčiau praėjusią savaitę. 96 00:03:53,630 --> 00:03:55,480 Taigi, mes bus padaryti kai kodavimo. 97 00:03:55,480 --> 00:03:57,800 Taigi, jei jus vaikinai taip pat nori įkvėpti savo prietaisų, 98 00:03:57,800 --> 00:04:02,910 ir jūs turėtumėte būti gavau laišką nuo manęs, su pavyzdžio failą. 99 00:04:02,910 --> 00:04:04,310 Nedvejodami padaryti. 100 00:04:04,310 --> 00:04:07,340 >> Taigi, mes ketiname kalbėti apie GDB, kuris yra debuggerem. 101 00:04:07,340 --> 00:04:09,970 Jis ketina padėti jums rūšies išsiaiškinti, kur 102 00:04:09,970 --> 00:04:11,860 viskas vyksta blogai Jūsų kodas. 103 00:04:11,860 --> 00:04:15,370 Tai tikrai tik jums žingsnis būdas per savo kodą, kaip tai vyksta, 104 00:04:15,370 --> 00:04:19,100 ir galės atsispausdinti kintamuosius arba pamatyti, kas iš tikrųjų vyksta 105 00:04:19,100 --> 00:04:22,980 Pagal gaubtu Eilėraščiai savo programą tiesiog veikia, tai kaip klaida,, 106 00:04:22,980 --> 00:04:25,030 ir jūs kaip, neįsivaizduoju kas atsitiko čia. 107 00:04:25,030 --> 00:04:26,730 Aš nežinau, ką linija tai nepavyko ne. 108 00:04:26,730 --> 00:04:29,040 Aš nežinau, kur jis buvo blogai. 109 00:04:29,040 --> 00:04:31,280 Taigi, GDB ketina padėti jums, kad. 110 00:04:31,280 --> 00:04:35,240 Be to, jei jūs nuspręsite toliau taip, ir imtis 61, 111 00:04:35,240 --> 00:04:38,430 jis tikrai, tikrai bus tavo geriausias draugas, nes aš jums galiu pasakyti, 112 00:04:38,430 --> 00:04:40,840 nes aš ruošiuosi per tą grupę. 113 00:04:40,840 --> 00:04:43,620 >> Mes ketiname pažvelgti į dvejetainę paieška, kuri, jei jus vaikinai prisiminti 114 00:04:43,620 --> 00:04:47,540 puikus telefonas knyga pavyzdys spektaklis iš klasės. 115 00:04:47,540 --> 00:04:50,620 Mes bus įgyvendinti, kad ir vaikštinėjo kad šiek tiek daugiau, 116 00:04:50,620 --> 00:04:54,650 ir tada mes ketiname per keturias skirtingų rūšių, kurios yra burbulas, 117 00:04:54,650 --> 00:04:56,285 Atranka, įterpimas ir suliejimas. 118 00:04:56,285 --> 00:04:57,830 119 00:04:57,830 --> 00:04:58,330 Cool. 120 00:04:58,330 --> 00:05:00,390 Taigi, GDB kaip jau minėjau, yra debuggerem. 121 00:05:00,390 --> 00:05:01,400 122 00:05:01,400 --> 00:05:09,370 Ir tai yra rūšies didelis daiktai, didelis funkcijų arba komandas 123 00:05:09,370 --> 00:05:13,240 kad jūs naudojate per GDB, ir aš vaikščioti Jūs per daug jį demo sekundę. 124 00:05:13,240 --> 00:05:15,360 >> Taigi, tai yra ne tik ketina likti abstraktus. 125 00:05:15,360 --> 00:05:18,000 Bandysiu ir padaryti jį kaip betonas kaip galima jums vaikinai. 126 00:05:18,000 --> 00:05:19,870 Taigi, pertrauka. 127 00:05:19,870 --> 00:05:22,200 Tai bus arba būti pertrauka kaip, kai numeris, kuris 128 00:05:22,200 --> 00:05:26,900 atstovauja savo programą linija, arba galite pavadinti funkciją. 129 00:05:26,900 --> 00:05:30,150 Taigi, jei jūs sakote pertrauka pagrindinė, jis sustos pagrindinis, 130 00:05:30,150 --> 00:05:32,400 ir jums eiti per tą funkciją. 131 00:05:32,400 --> 00:05:36,350 >> Taip pat, jei turite šiek tiek išorinė funkcionuoja kaip Sukeisti arba kubo, 132 00:05:36,350 --> 00:05:38,450 kad mes pažvelgė praeitą savaitę. 133 00:05:38,450 --> 00:05:41,780 Jei sakai, kad sulaužytų bent vieną iš tų, kai jūsų programa hitai, kad 134 00:05:41,780 --> 00:05:44,290 tai lauksiu tavęs į pasakyti, ką daryti. 135 00:05:44,290 --> 00:05:47,860 Prieš tai tik vykdyti, todėl jūs iš tikrųjų galėtų įžengti funkcijos 136 00:05:47,860 --> 00:05:49,020 ir pamatyti, kas vyksta. 137 00:05:49,020 --> 00:05:50,370 138 00:05:50,370 --> 00:05:53,515 Taigi, Kitas, tiesiog praleidžia per Kitas linija, eina per funkcijas. 139 00:05:53,515 --> 00:05:54,730 140 00:05:54,730 --> 00:05:55,560 Žingsnis. 141 00:05:55,560 --> 00:05:56,810 Visa tai yra tiek abstraktus. 142 00:05:56,810 --> 00:06:00,530 Taigi, aš tik ketina važiuoti per juos, bet pamatysite juos naudoti sekundę. 143 00:06:00,530 --> 00:06:01,810 >> Įženkite į funkciją. 144 00:06:01,810 --> 00:06:04,170 Taigi, kaip aš sakiau, kaip su Swap, būtų 145 00:06:04,170 --> 00:06:07,110 leidžia realiai taip, jei esate kaip fiziškai gerinimo viduje, 146 00:06:07,110 --> 00:06:10,990 galite netvarka su tų kintamųjų, spausdinimo , kas jie yra, pamatyti, kas vyksta. 147 00:06:10,990 --> 00:06:12,140 148 00:06:12,140 --> 00:06:14,830 Sąrašas bus tiesiog tiesiog atsispausdinti iš aplinkinių kodą. 149 00:06:14,830 --> 00:06:17,570 Taigi, jei jūs rūšies pamiršti kur esate savo programą, 150 00:06:17,570 --> 00:06:19,880 ar jums įdomu, kas vyksta aplink jį, 151 00:06:19,880 --> 00:06:23,790 tai tiesiog atsispausdinti segmentą panašių penkis ar šešis linijas aplink jį. 152 00:06:23,790 --> 00:06:26,080 Taigi, galite orientuotis apie tai, kur esate. 153 00:06:26,080 --> 00:06:27,230 154 00:06:27,230 --> 00:06:28,650 >> Spausdinti šiek kintamasis. 155 00:06:28,650 --> 00:06:34,590 Taigi, jei turite kaip raktą į Cezaris, kad mes pažvelgti. 156 00:06:34,590 --> 00:06:36,220 Galite pasakyti Spausdinti Raktas bet kuriame taške. 157 00:06:36,220 --> 00:06:40,070 Jis jums pasakys, ką vertė yra tokia kad gal kažkur pakeliui, 158 00:06:40,070 --> 00:06:42,070 Jūs perrašė savo raktą. 159 00:06:42,070 --> 00:06:45,495 Jūs iš tikrųjų galite pasakyti, kad dėl to, Jūs iš tikrųjų galite stebėti šią vertę. 160 00:06:45,495 --> 00:06:46,500 161 00:06:46,500 --> 00:06:48,780 >> Be vietinių gyventojų, tiesiog spausdina iš savo vietos kintamieji. 162 00:06:48,780 --> 00:06:53,120 Taigi, bet kuriuo metu jūs per kilpą, ir jūs tiesiog norite pamatyti, kaip, oh. 163 00:06:53,120 --> 00:06:54,270 Kas yra mano aš? 164 00:06:54,270 --> 00:06:57,020 Kas tai yra esminė vertybė kad aš inicijuoti čia? 165 00:06:57,020 --> 00:06:58,537 Kas yra šioje vietoje žinutė? 166 00:06:58,537 --> 00:07:00,370 Tai bus tiesiog atsispausdinti visas tų, kad jums 167 00:07:00,370 --> 00:07:04,330 neturite atskirai pasakyti, Spausdinti I. Atspausdinti pranešimą. 168 00:07:04,330 --> 00:07:04,970 Spausdinti Key. 169 00:07:04,970 --> 00:07:06,190 170 00:07:06,190 --> 00:07:07,700 Ir tada ekrane. 171 00:07:07,700 --> 00:07:10,370 Ką tai daro, yra, kaip jūs žingsnis įgyvendinant programą, 172 00:07:10,370 --> 00:07:13,980 jis bus tiesiog įsitikinkite, kad jis rodyti nuo galimos kintamojo 173 00:07:13,980 --> 00:07:14,780 kiekviename taške. 174 00:07:14,780 --> 00:07:17,160 Taip, kad jūs also-- --it yra rūšies Trumpuoju kur 175 00:07:17,160 --> 00:07:19,530 Jūs neturite nesustoti kaip, oh. 176 00:07:19,530 --> 00:07:23,150 Spausdinti Raktas arba Print I. Jis tiesiog automatiškai padaryti tai už jus. 177 00:07:23,150 --> 00:07:25,959 >> Taigi, su tuo, kad mes ketiname pamatyti, kaip tai vyksta. 178 00:07:25,959 --> 00:07:28,000 Aš einu bandyti ir jungiklis į mano prietaiso. 179 00:07:28,000 --> 00:07:30,200 180 00:07:30,200 --> 00:07:31,271 Pamatyti, jei aš galiu tai padaryti. 181 00:07:31,271 --> 00:07:31,770 Viskas. 182 00:07:31,770 --> 00:07:40,970 183 00:07:40,970 --> 00:07:42,370 Mes tiesiog ketiname dubliuoti jį. 184 00:07:42,370 --> 00:07:44,530 Nėra nieko kvailai mano nešiojamas anyways. 185 00:07:44,530 --> 00:07:49,600 186 00:07:49,600 --> 00:07:50,100 Gerai. 187 00:07:50,100 --> 00:07:57,030 188 00:07:57,030 --> 00:08:01,054 Tai turi būti šis. 189 00:08:01,054 --> 00:08:01,795 Tai mažytis. 190 00:08:01,795 --> 00:08:03,730 191 00:08:03,730 --> 00:08:05,120 Leiskite pamatyti, jei mes galime tai padaryti. 192 00:08:05,120 --> 00:08:09,970 193 00:08:09,970 --> 00:08:10,940 >> Gerai. 194 00:08:10,940 --> 00:08:15,305 Alice akivaizdžiai kovoja čia truputį, 195 00:08:15,305 --> 00:08:17,995 bet mes gauti jį Momento. 196 00:08:17,995 --> 00:08:20,810 197 00:08:20,810 --> 00:08:22,020 Gerai. 198 00:08:22,020 --> 00:08:25,900 Mes tiesiog ketiname padidinti tai. 199 00:08:25,900 --> 00:08:28,770 200 00:08:28,770 --> 00:08:29,380 Gerai. 201 00:08:29,380 --> 00:08:31,679 Gali kiekvienas rūšies pamatyti, kad? 202 00:08:31,679 --> 00:08:32,470 Gal šiek tiek? 203 00:08:32,470 --> 00:08:33,594 Žinau, kad tai šiek tiek mažas. 204 00:08:33,594 --> 00:08:34,570 205 00:08:34,570 --> 00:08:37,530 Galite ne visai išsiaiškinti kaip padaryti, kad šis didesnis. 206 00:08:37,530 --> 00:08:38,350 Jei kas nors žino. 207 00:08:38,350 --> 00:08:40,309 Ar kas nors žino, kaip padaryti jį didesnis? 208 00:08:40,309 --> 00:08:40,932 Gerai. 209 00:08:40,932 --> 00:08:42,140 Mes ketiname įdiegti su juo. 210 00:08:42,140 --> 00:08:45,801 Nesvarbu anyways, nes tai tik tai kodas, kuris jus vaikinai turėtų 211 00:08:45,801 --> 00:08:46,300 turi. 212 00:08:46,300 --> 00:08:48,310 >> Kas svarbiau yra terminalas čia. 213 00:08:48,310 --> 00:08:52,840 214 00:08:52,840 --> 00:08:58,690 Ir mes čia Kodėl toks mažas? 215 00:08:58,690 --> 00:09:02,325 216 00:09:02,325 --> 00:09:02,825 Parametrai. 217 00:09:02,825 --> 00:09:07,920 218 00:09:07,920 --> 00:09:08,420 Oh. 219 00:09:08,420 --> 00:09:09,500 Tiesa Ike. 220 00:09:09,500 --> 00:09:10,880 Kaip tai? 221 00:09:10,880 --> 00:09:11,770 Iš ten. 222 00:09:11,770 --> 00:09:19,370 223 00:09:19,370 --> 00:09:21,810 Yra tai, kad visiems geriau,? 224 00:09:21,810 --> 00:09:22,525 Gerai ,. 225 00:09:22,525 --> 00:09:23,025 Cool. 226 00:09:23,025 --> 00:09:25,830 227 00:09:25,830 --> 00:09:28,220 >> Jūs žinote, kai esate per CS klasė techniniai sunkumai 228 00:09:28,220 --> 00:09:32,971 yra rūšies dalis the-- Taigi, galime išvalyti tai. 229 00:09:32,971 --> 00:09:33,470 Gerai. 230 00:09:33,470 --> 00:09:38,060 Taigi, čia skyrelyje, kurį mes turėjome čia. 231 00:09:38,060 --> 00:09:40,830 Cezaris yra vykdomasis failas. 232 00:09:40,830 --> 00:09:41,800 Taigi, aš padariau tai. 233 00:09:41,800 --> 00:09:46,370 Taigi, vienas dalykas, suvokti su GDB yra kad jis veikia tik ant vykdomąjį failą. 234 00:09:46,370 --> 00:09:48,040 Taigi, jūs negalite paleisti jį ant dotsy. 235 00:09:48,040 --> 00:09:50,532 Turite tikrai padaryti Įsitikinkite, kad jūsų kodas kaupia, 236 00:09:50,532 --> 00:09:51,865 ir kad ji iš tikrųjų gali būti paleisti. 237 00:09:51,865 --> 00:09:52,970 238 00:09:52,970 --> 00:09:56,186 >> Taigi, įsitikinkite, kad, jei jis nėra kaupti, gauti jį rinkti, 239 00:09:56,186 --> 00:09:57,810 taip, kad jūs galite rūšies eina per jį. 240 00:09:57,810 --> 00:10:04,590 Taigi, norint pradėti GDB, visi jūs darote, Gloria tipas GDB, ir tada tiesiog 241 00:10:04,590 --> 00:10:06,250 failą, kurį norite. 242 00:10:06,250 --> 00:10:08,240 Aš visada su klaidomis ciesorių ". 243 00:10:08,240 --> 00:10:11,730 Bet jūs norite įsitikinti, nes tai vykdomąjį, 244 00:10:11,730 --> 00:10:14,210 TI dot flash kad reiškia, kad jūs ketinate 245 00:10:14,210 --> 00:10:19,240 paleisti CSI jūs ketinate vykdyti tai failai arba su derintuvės. 246 00:10:19,240 --> 00:10:19,910 Gerai. 247 00:10:19,910 --> 00:10:22,885 Taigi, jūs, kad jūs gaunate šis svaičiojimas natūra. 248 00:10:22,885 --> 00:10:24,250 249 00:10:24,250 --> 00:10:25,750 Tai tik viską apie derintuvės. 250 00:10:25,750 --> 00:10:28,200 Jūs neturite iš tikrųjų turi nerimauti dabar. 251 00:10:28,200 --> 00:10:31,460 Ir, kaip matote, mes turime tai atviros skliaustas, BVP, artimi skliaustas, 252 00:10:31,460 --> 00:10:34,690 ir tiesiog rūšies atrodo mūsų komandinės eilutės, tiesa? 253 00:10:34,690 --> 00:10:37,010 >> Taigi, ką mes norime do-- --So, Pirmas dalykas, 254 00:10:37,010 --> 00:10:39,570 yra norime pasirinkti vieta sulaužyti. 255 00:10:39,570 --> 00:10:42,332 Taigi, yra vienas klaidą Šioje Cezario programos 256 00:10:42,332 --> 00:10:44,290 kad aš pristatyti, kad mes ketiname sužinoti. 257 00:10:44,290 --> 00:10:45,330 258 00:10:45,330 --> 00:10:56,350 Tai, ką ji daro tai mano indėlis Barfoo visais dangteliais ir kažkodėl 259 00:10:56,350 --> 00:11:01,950 tai nekeičia A. Belieka Vien tai, Ar visa kita teisingai, 260 00:11:01,950 --> 00:11:03,980 bet antra raidė Nesikeičia. 261 00:11:03,980 --> 00:11:07,120 Taigi, mes ketiname išbandyti ir išsiaiškinti, kodėl taip yra. 262 00:11:07,120 --> 00:11:10,440 Taigi, pirmas dalykas, kurį paprastai noriu daryti, kai jums pradėti GDB 263 00:11:10,440 --> 00:11:12,010 yra išsiaiškinti, kur ją padalyti. 264 00:11:12,010 --> 00:11:14,956 >> Taigi imperatorius gana trumpas programa. 265 00:11:14,956 --> 00:11:16,330 Mes tik vieną funkciją, tiesa? 266 00:11:16,330 --> 00:11:18,520 Koks buvo mūsų funkcija Cezaris? 267 00:11:18,520 --> 00:11:19,590 268 00:11:19,590 --> 00:11:24,350 Yra tik viena funkcija, Main tiesa? 269 00:11:24,350 --> 00:11:26,490 Pagrindinis yra funkcija visų jūsų programų. 270 00:11:26,490 --> 00:11:29,230 Jei nebuvo Main, galiu būti šiek tiek neramu dabar, 271 00:11:29,230 --> 00:11:31,000 bet aš tikiuosi, kad jūs visi turėjo Main ten. 272 00:11:31,000 --> 00:11:34,150 Taigi, ką mes galime padaryti, tai mes galime tiesiog pertrauka Main, kaip kad. 273 00:11:34,150 --> 00:11:35,190 Taigi, ji sako, gerai. 274 00:11:35,190 --> 00:11:37,430 Mes nustatome mūsų atskaitos tašką viena ten. 275 00:11:37,430 --> 00:11:42,870 >> Taigi, dabar, reikia atsiminti tai, Cezaris yra vienos komandinės eilutės argumentas teisę 276 00:11:42,870 --> 00:11:45,150 ir mes ne padaryti, kad dar kur nors. 277 00:11:45,150 --> 00:11:47,560 Taigi, ką jūs darote, yra tada, kai jūs iš tikrųjų eiti paleisti 278 00:11:47,560 --> 00:11:51,540 programa, bet programa, kad jūs veikia GDB, kad reikia komandų eilutę 279 00:11:51,540 --> 00:11:55,010 argumentai, kad jūs ketinate įvesti kai pirmą kartą pradėti eksploatuoti jį. 280 00:11:55,010 --> 00:11:59,280 Taigi, šiuo atveju, mes darome Paleisti su trimis pagrindiniais. 281 00:11:59,280 --> 00:12:00,770 282 00:12:00,770 --> 00:12:02,040 Ir tai tikrai bus pradėti. 283 00:12:02,040 --> 00:12:08,480 >> Taigi, jei matote čia, mes turime Jei RC nėra lygus 2. 284 00:12:08,480 --> 00:12:12,210 Taigi, jei jus vaikinai visi kad byla, aš išsiuntė iki 285 00:12:12,210 --> 00:12:15,100 pamatysite, kad tai, kaip Pirmoje eilutėje mūsų pagrindinė funkcija, tiesa? 286 00:12:15,100 --> 00:12:17,890 Tai patikrinti, pamatyti, jei mes turime Reikiamas argumentais. 287 00:12:17,890 --> 00:12:20,620 Taigi, jei jums įdomu, jei RC yra teisinga, 288 00:12:20,620 --> 00:12:23,250 jūs galite padaryti kažką tiesiog kaip Spausdinti RC. 289 00:12:23,250 --> 00:12:24,380 290 00:12:24,380 --> 00:12:28,640 RC yra du, kuris yra tikėjomės, tiesa? 291 00:12:28,640 --> 00:12:32,010 >> Taigi, mes galime eiti toliau, ir toliau per. 292 00:12:32,010 --> 00:12:33,200 Taigi, mes turime tam tikrą raktą ten. 293 00:12:33,200 --> 00:12:34,260 294 00:12:34,260 --> 00:12:37,090 Ir mes galime atspausdinti savo svarbiausius įsitikinti, kad tai teisinga. 295 00:12:37,090 --> 00:12:38,380 296 00:12:38,380 --> 00:12:39,500 Įdomi. 297 00:12:39,500 --> 00:12:41,210 Ne visai tai, ką mes tikėjomės. 298 00:12:41,210 --> 00:12:44,810 Taigi, vienas dalykas, suvokti su GDB pat yra 299 00:12:44,810 --> 00:12:49,000 kad tai nėra, kol jūs iš tikrųjų nukentėjo Kitas, kad linija, jums tik pamačiau 300 00:12:49,000 --> 00:12:50,720 iš tikrųjų įvykdytas. 301 00:12:50,720 --> 00:12:53,870 Taigi, šiuo atveju raktas nebuvo suteiktas, dar. 302 00:12:53,870 --> 00:12:57,050 Taigi, Key kai šiukšlių vertė kad matote ten apačioje. 303 00:12:57,050 --> 00:13:03,680 Neigiama $ 120-- --It s vienas milijardas ir kažkas keista dalykų teisę? 304 00:13:03,680 --> 00:13:05,340 Tai ne Key kad tikėjomės. 305 00:13:05,340 --> 00:13:10,720 Bet jei mes Hit Pirmyn, tada mes išbandyti ir Print key, tai tris. 306 00:13:10,720 --> 00:13:11,710 >> Kiekvienas matome, kad? 307 00:13:11,710 --> 00:13:13,780 Taigi, jei jūs gaunate kažką kad jūs kaip, palaukite. 308 00:13:13,780 --> 00:13:15,540 Tai yra visiškai negerai, ir aš nežinau, 309 00:13:15,540 --> 00:13:20,150 kaip tai įvyks, nes viskas, ką aš noriu padaryti, tai suteikia numerį, kintamasis, 310 00:13:20,150 --> 00:13:22,900 pabandyti pataikyti Pirmyn, bandykite spausdinti jis vėl, ir pamatyti, jei tai veikia. 311 00:13:22,900 --> 00:13:27,830 Nes tai tik ketina vykdyti ir realiai priskirti kažką po tavęs 312 00:13:27,830 --> 00:13:29,340 nukentėjo Pirmyn. 313 00:13:29,340 --> 00:13:30,336 Prasmės visiems? 314 00:13:30,336 --> 00:13:30,836 Uh huh? 315 00:13:30,836 --> 00:13:33,220 >> SPEAKER 2: Kai atsitiktinis numeriai, ką tai reiškia? 316 00:13:33,220 --> 00:13:34,790 >> SPEAKER 1: Tai tiesiog atsitiktinai. 317 00:13:34,790 --> 00:13:35,710 Tai tiesiog šiukšlių. 318 00:13:35,710 --> 00:13:38,320 Tai tiesiog kažkas, kad jūsų Kompiuteris atsitiktine priskirti. 319 00:13:38,320 --> 00:13:39,721 320 00:13:39,721 --> 00:13:40,220 Cool. 321 00:13:40,220 --> 00:13:45,760 Taigi, dabar mes galime judėti per, ir taip Dabar turime šį paprastą tekstinį GetString. 322 00:13:45,760 --> 00:13:48,600 Taigi, leiskite man tiesiog įvesti ką nutiks, kai mes Hit Next čia. 323 00:13:48,600 --> 00:13:51,320 Mūsų GDB rūšies dingsta, tiesa? 324 00:13:51,320 --> 00:13:55,720 Tai todėl, kad GetString dabar vykdo, ar ne? 325 00:13:55,720 --> 00:14:01,460 Taigi, kai mes matėme teksto lygus GetString, atviros skliaustai ir skliaustai, 326 00:14:01,460 --> 00:14:04,380 ir mes hit Pirmyn kad turi realiai atliktus dabar. 327 00:14:04,380 --> 00:14:06,580 Taigi, tai laukia mums įvesties kažką. 328 00:14:06,580 --> 00:14:13,560 >> Taigi, mes ketiname įvesti savo maistą, kuris yra tai, ką jis nesugeba, kaip aš sakiau jums, 329 00:14:13,560 --> 00:14:18,020 ir kad tiesiog sako, kad tai baigė vykdyti, kad uždarytas 330 00:14:18,020 --> 00:14:19,980 laikiklis reiškia, kad jis išeinant iš tos kilpos. 331 00:14:19,980 --> 00:14:21,170 332 00:14:21,170 --> 00:14:25,420 Taigi, mes galime paspausti Next, o dabar, kaip aš tikiu, kad esate visi susipažinę iš ciesorių 333 00:14:25,420 --> 00:14:27,260 tai, kas yra ši linija ketinate daryti. 334 00:14:27,260 --> 00:14:32,030 Jis skirtas int i lygu 0, N lygus Strlen, teksto, o vėliau 335 00:14:32,030 --> 00:14:33,960 I yra mažiau nei n, aš, plius, plius. 336 00:14:33,960 --> 00:14:35,210 Kas tai kilpa ketinate daryti? 337 00:14:35,210 --> 00:14:37,900 338 00:14:37,900 --> 00:14:39,160 Atidarykite savo žinutę. 339 00:14:39,160 --> 00:14:39,770 Cool. 340 00:14:39,770 --> 00:14:41,330 Taigi, galime pradėti daryti, kad. 341 00:14:41,330 --> 00:14:47,210 >> Taigi, jei ši sąlyga nesutampa, mūsų pirmasis? 342 00:14:47,210 --> 00:14:52,250 Jei tai B, tai teksto I. Mes galite gauti informaciją apie mūsų vietiniai. 343 00:14:52,250 --> 00:14:53,610 344 00:14:53,610 --> 00:14:57,970 Taigi, aš yra nulis, jei ir šešių, kuris tikimės, ir mūsų pagrindinis yra trys. 345 00:14:57,970 --> 00:14:59,227 Visa tai prasminga, ar ne? 346 00:14:59,227 --> 00:15:01,310 Šie skaičiai yra visi ką jie turėtų būti. 347 00:15:01,310 --> 00:15:02,590 348 00:15:02,590 --> 00:15:03,870 Taigi, niekai? 349 00:15:03,870 --> 00:15:05,620 SPEAKER 3: Turiu atsitiktiniai skaičiai, minų. 350 00:15:05,620 --> 00:15:09,156 351 00:15:09,156 --> 00:15:12,030 SPEAKER 1: Na, mes galime check-- --we galite kalbėtis apie tai per sekundę. 352 00:15:12,030 --> 00:15:14,110 353 00:15:14,110 --> 00:15:15,750 Bet jūs turite būti gauti tai. 354 00:15:15,750 --> 00:15:17,700 355 00:15:17,700 --> 00:15:20,130 Taigi, jei mes turime kapitalą B mūsų pirmasis, 356 00:15:20,130 --> 00:15:22,080 ši sąlyga turėtų sugauti jį, ar ne? 357 00:15:22,080 --> 00:15:27,120 Taigi, jei mes Hit Toliau matome kad šis Jeigu iš tikrųjų vykdo. 358 00:15:27,120 --> 00:15:29,220 Nes jei jūs po kartu savo kodą, 359 00:15:29,220 --> 00:15:33,460 Ši linija čia, kur teksto aš pakeičiamas šio aritmetinio, 360 00:15:33,460 --> 00:15:35,720 tik įvykdyti Jeigu IF sąlyga yra teisingas ar ne? 361 00:15:35,720 --> 00:15:36,905 362 00:15:36,905 --> 00:15:40,240 >> GDB yra tik ketiname parodyti jums, dalykų, kurie yra iš tikrųjų vykdomas. 363 00:15:40,240 --> 00:15:45,140 Taigi, jei tai Jei sąlyga nebuvo įvykdyta, tai tik ketina pereiti prie kito linijos. 364 00:15:45,140 --> 00:15:46,540 Gerai? 365 00:15:46,540 --> 00:15:48,510 Taigi, mes turime, kad. 366 00:15:48,510 --> 00:15:51,171 Šis laikiklis reiškia, kad jis uždaryti iš tos kilpos dabar. 367 00:15:51,171 --> 00:15:52,420 Taigi, jis ketina pradėti iš naujo. 368 00:15:52,420 --> 00:15:54,760 369 00:15:54,760 --> 00:15:56,280 Kaip, kad. 370 00:15:56,280 --> 00:15:59,120 Taigi, kad mes galime gauti informacijos apie mūsų vietinių gyventojų čia 371 00:15:59,120 --> 00:16:02,575 ir matome, kad mūsų pirmasis laiškas buvo pakeistas, ar ne? 372 00:16:02,575 --> 00:16:05,150 Tai dabar E, kaip ji turėtų būti. 373 00:16:05,150 --> 00:16:07,360 Taigi, mes galime tęsti. 374 00:16:07,360 --> 00:16:08,500 >> Ir mes turime šį patikrinimą. 375 00:16:08,500 --> 00:16:09,916 Ir šis tikrinimas turi dirbti, ar ne? 376 00:16:09,916 --> 00:16:12,570 Tai A. Jis turėtų būti pakeistas trys raidės priekį. 377 00:16:12,570 --> 00:16:14,320 378 00:16:14,320 --> 00:16:16,530 Bet jei pastebėjote, mes gauti kažką kitą. 379 00:16:16,530 --> 00:16:17,580 380 00:16:17,580 --> 00:16:22,860 Taigi šiuo atveju čia tai nustebino jis ir taip tai linija įvykdytas, 381 00:16:22,860 --> 00:16:28,620 kuris kartą mūsų B Tačiau, šiuo atveju čia, 382 00:16:28,620 --> 00:16:32,860 mes turime, kad jis tiesiog praleisti jį, ir nuėjo į [? L Siff. ?] 383 00:16:32,860 --> 00:16:34,660 Taigi kažkas vyksta ten. 384 00:16:34,660 --> 00:16:37,780 Ką tai sakau tai, kad, mes žinome, kad ji turėtų sugauti čia 385 00:16:37,780 --> 00:16:39,200 bet taip nėra. 386 00:16:39,200 --> 00:16:42,210 Ar kas nors pamatyti, ką mūsų problema yra ta linija? 387 00:16:42,210 --> 00:16:45,380 388 00:16:45,380 --> 00:16:46,969 Tai labai minutė dalykas. 389 00:16:46,969 --> 00:16:48,510 Ir jūs taip pat galėtų pažvelgti į savo kodą. 390 00:16:48,510 --> 00:16:49,980 391 00:16:49,980 --> 00:16:54,940 Jis taip pat line-- pamiršti, ką linija yra į there-- bet tai per [nesigirdi]. 392 00:16:54,940 --> 00:16:55,480 Taip? 393 00:16:55,480 --> 00:16:58,639 >> SPEAKER 4: Tai ant didesnės nei puslapis, jei jį skaityti knygą. 394 00:16:58,639 --> 00:16:59,430 SPEAKER 1: Būtent. 395 00:16:59,430 --> 00:17:02,620 Taigi, debuggerem negalėjo pasakyti Jūs, kad bet debuggerem 396 00:17:02,620 --> 00:17:05,880 gali jums žemyn į eilutę kad jūs žinote, neveikia. 397 00:17:05,880 --> 00:17:09,319 Ir kartais, kai ypač vėliau semestro, kai 398 00:17:09,319 --> 00:17:12,910 jūs susiduriame su šimto, kad šimtas keletą eilučių kodo, ir jūs 399 00:17:12,910 --> 00:17:16,190 nežinau, kur jis nesugeba, tai yra puikus būdas tai padaryti. 400 00:17:16,190 --> 00:17:17,900 401 00:17:17,900 --> 00:17:18,989 Taigi, mes nustatėme, kad mūsų klaida. 402 00:17:18,989 --> 00:17:21,530 Galite nustatyti jį į savo failą, ir tada galima paleisti jį dar kartą, 403 00:17:21,530 --> 00:17:23,029 ir viskas veikia puikiai. 404 00:17:23,029 --> 00:17:24,970 405 00:17:24,970 --> 00:17:30,590 Ir svarbiausias dalykas yra tai gali atrodyti kaip, Gerai. 406 00:17:30,590 --> 00:17:31,090 Taip. 407 00:17:31,090 --> 00:17:31,370 Cool. 408 00:17:31,370 --> 00:17:32,744 Žinai, ką jūs ieškote. 409 00:17:32,744 --> 00:17:34,910 Taigi, jūs žinojo, ką daryti. 410 00:17:34,910 --> 00:17:39,021 >> GDB gali būti itin naudinga, nes jums galite išspausdinti visus šiuos dalykus, kad jūs 411 00:17:39,021 --> 00:17:39,520 nebūtų. 412 00:17:39,520 --> 00:17:41,160 Tai daug daugiau naudingas nei printf. 413 00:17:41,160 --> 00:17:43,440 Kiek jūs naudojate kaip printf pareiškimų 414 00:17:43,440 --> 00:17:46,200 išsiaiškinti, kur klaidą buvo, tiesa? 415 00:17:46,200 --> 00:17:48,450 Taigi, su šiuo, jums nereikia turi nuolat grįžta, 416 00:17:48,450 --> 00:17:51,139 ir patinka komentuodamas į Printf arba komentuoja out, 417 00:17:51,139 --> 00:17:52,930 ir išsiaiškinti, kas Jūs turite būti spausdinti. 418 00:17:52,930 --> 00:17:55,670 Tai iš tikrųjų tik leidžia jums žingsnis per, spausdinti dalykai 419 00:17:55,670 --> 00:18:00,000 kaip jūs ketinate per, taip, galite stebėti, kaip jie keičiasi realiu laiku, 420 00:18:00,000 --> 00:18:02,190 kaip jūsų programa veikia. 421 00:18:02,190 --> 00:18:04,390 >> Ir tai dar reikia truputį tiek priprasti. 422 00:18:04,390 --> 00:18:07,850 Aš labai rekomenduoju tiesiog rūšies buvimo mažai nusivylė su juo 423 00:18:07,850 --> 00:18:08,930 už dabar. 424 00:18:08,930 --> 00:18:13,450 Jei praleisti valandą per Kitą savaitę išmokti naudotis GDB, 425 00:18:13,450 --> 00:18:16,140 Jūs sutaupysite sau tiek daug laiko vėliau. 426 00:18:16,140 --> 00:18:18,750 Ir pažodžiui. mes pasakyti tai žmonėms ir kiekvienais metais, 427 00:18:18,750 --> 00:18:23,890 ir aš atsimenu, kai aš paėmė klasė, buvau kaip aš bus gerai. 428 00:18:23,890 --> 00:18:24,700 Ne. 429 00:18:24,700 --> 00:18:27,030 Pset 6, išėjo, ir aš buvau kaip, aš gonna sužinoti 430 00:18:27,030 --> 00:18:29,500 kaip naudotis GDB nes aš ne žinoti, kas vyksta čia. 431 00:18:29,500 --> 00:18:32,940 >> Taigi, jei rasite laiko, kad naudoti jį mažesnių programų 432 00:18:32,940 --> 00:18:35,697 kad jūs ketinate būti dirba, kaip dirba 433 00:18:35,697 --> 00:18:37,530 per kažką panašaus Visionare, kaip šis. 434 00:18:37,530 --> 00:18:38,800 435 00:18:38,800 --> 00:18:42,850 Arba, jei norite papildomų praktiką, aš tikiu, Galėčiau sugalvoti Buggy programas, 436 00:18:42,850 --> 00:18:45,300 jums debug, jei norite. 437 00:18:45,300 --> 00:18:49,300 >> Bet jei jūs tiesiog šiek tiek laiko gauti naudojamas į jį, tiesiog žaisti aplink su juo, 438 00:18:49,300 --> 00:18:50,550 ji tikrai jums gerai. 439 00:18:50,550 --> 00:18:52,591 Ir tai tikrai viena iš tie dalykai, kad jūs tiesiog 440 00:18:52,591 --> 00:18:57,340 turite pabandyti ir gauti savo rankas purvinas su prieš jūs tikrai suprasti. 441 00:18:57,340 --> 00:19:02,090 Aš tikrai tik supratau vieną kartą Turėjau debug dalykų su juo, 442 00:19:02,090 --> 00:19:08,170 ir tai daug gražiau turėti idėją kaip derinti anksčiau nei vėliau. 443 00:19:08,170 --> 00:19:08,850 Gerai. 444 00:19:08,850 --> 00:19:09,625 Cool. 445 00:19:09,625 --> 00:19:12,960 Aš žinau, kad tipo kaip avarijos metu į GDB, 446 00:19:12,960 --> 00:19:16,400 ir aš tikrai darbą gauti juos atrodo didesnis, kai kitą kartą. 447 00:19:16,400 --> 00:19:17,590 448 00:19:17,590 --> 00:19:18,280 Cool. 449 00:19:18,280 --> 00:19:20,390 >> Taigi, jei mes grįžti į mūsų PowerPoint. 450 00:19:20,390 --> 00:19:27,194 451 00:19:27,194 --> 00:19:28,110 Ar tai veikia? 452 00:19:28,110 --> 00:19:29,711 453 00:19:29,711 --> 00:19:30,210 AWH. 454 00:19:30,210 --> 00:19:31,101 Taip. 455 00:19:31,101 --> 00:19:31,600 Gerai. 456 00:19:31,600 --> 00:19:35,480 Taigi, jei Jums kada nors reikės bet tie vėl ten sąrašas. 457 00:19:35,480 --> 00:19:37,160 458 00:19:37,160 --> 00:19:40,830 Taigi Dvejetainiai Paieška, kurioje kiekvienas prisimena didelį reginį Dovydo 459 00:19:40,830 --> 00:19:42,259 nepaprastas telefonų knygas per pusę. 460 00:19:42,259 --> 00:19:44,050 I do not really gauti Telefonų knygų nebėra, 461 00:19:44,050 --> 00:19:46,530 nes kaip kur tu gauti telefonų knygeles šių dienų? 462 00:19:46,530 --> 00:19:48,220 Aš tikrai nežinau. 463 00:19:48,220 --> 00:19:49,840 464 00:19:49,840 --> 00:19:50,590 Dvejetainiai Paieška. 465 00:19:50,590 --> 00:19:52,464 Ar kas nors prisiminti how Dvejetainiai paieškos darbus? 466 00:19:52,464 --> 00:19:54,380 467 00:19:54,380 --> 00:19:55,220 Taip kuo? 468 00:19:55,220 --> 00:19:56,325 Taip? 469 00:19:56,325 --> 00:19:58,283 SPEAKER 5: Jūs žinote, kai pažvelgti kurių pusė 470 00:19:58,283 --> 00:20:01,146 tai būtų, Komisija, remdamasi ta, ir atsikratyti kita pusė. 471 00:20:01,146 --> 00:20:01,896 >> SPEAKER 1 Būtent. 472 00:20:01,896 --> 00:20:06,290 Taigi, Dvejetainiai Paieška, tai tipo a-- --we vadinam skaldyk ir valdyk. 473 00:20:06,290 --> 00:20:09,170 Taigi, ką jums daryti yra jums atrodo per vidurį, 474 00:20:09,170 --> 00:20:11,990 ir pamatysite, jeigu jis atitinka ką jūs ieškote. 475 00:20:11,990 --> 00:20:15,420 O jei ne, tada jums pabandyti išsiaiškinti, ar ruošiatės 476 00:20:15,420 --> 00:20:16,450 pusė arba į dešinę pusę. 477 00:20:16,450 --> 00:20:19,325 Taigi, tai gali būti, jei jūs ieškote ne kažką, kad abėcėliniame, 478 00:20:19,325 --> 00:20:20,720 matai, oh. 479 00:20:20,720 --> 00:20:22,750 Ar Allison ateiti prieš M? 480 00:20:22,750 --> 00:20:23,250 Taip. 481 00:20:23,250 --> 00:20:25,030 Taigi, mes ketiname peržvelgti pirmojo kėlinio. 482 00:20:25,030 --> 00:20:26,450 >> Arba tai gali būti, pavyzdžiui, su numeriais. 483 00:20:26,450 --> 00:20:28,830 Viskas, ką gali palyginti, jis gali būti rūšiuojami. 484 00:20:28,830 --> 00:20:29,920 485 00:20:29,920 --> 00:20:31,260 Jūs galite naudoti dvejetainius paiešką. 486 00:20:31,260 --> 00:20:32,340 487 00:20:32,340 --> 00:20:37,455 Taigi, kas tai prisiminti Grafikas arba kas tai yra? 488 00:20:37,455 --> 00:20:39,520 Tai Asimptotiniai sudėtingumo. 489 00:20:39,520 --> 00:20:42,830 Taigi, tai tiesiog grafikas aprašoma, kaip ilgai jis 490 00:20:42,830 --> 00:20:46,230 pateksite išspręsti problemą, kaip Padidinus dalykų 491 00:20:46,230 --> 00:20:47,090 kad jūs naudojate. 492 00:20:47,090 --> 00:20:51,260 >> Taigi, mes turime N, kuri yra linijinis laikas. 493 00:20:51,260 --> 00:20:54,560 Jei per du N, kuri yra šiek tiek geriau, vis tiek auga super greitai. 494 00:20:54,560 --> 00:20:58,360 Ir tada mes prisijungti, o tai ką mes laikome Dvejetainiai Ieškoti. 495 00:20:58,360 --> 00:21:03,630 Jei pastebime, kaip jūsų problemos gauna daug ir daug didesnis, 496 00:21:03,630 --> 00:21:06,600 laiko užtrunka jums ją išspręsti tikrai ne didinti, kad daug. 497 00:21:06,600 --> 00:21:09,010 Tai kaip lyginti Čia iš pradžių. 498 00:21:09,010 --> 00:21:10,060 Jūs kaip, Gerai. 499 00:21:10,060 --> 00:21:13,000 Viskas, kas čia tikrai ne Nesvarbu, kuris iš mūsų naudoti, 500 00:21:13,000 --> 00:21:16,220 bet jūs išeiti į milijono mlrd. 501 00:21:16,220 --> 00:21:20,010 Jūs bandote rasti some-- --you're bando rasti šieno kupetoje adatą. 502 00:21:20,010 --> 00:21:21,550 >> Manau, kad jūs norite šią problemą. 503 00:21:21,550 --> 00:21:25,850 Jūs norite šio sudėtingumo, o ne tiesinė, nes visiems jums 504 00:21:25,850 --> 00:21:30,049 žinau jūsų gonna naršęs kiekvienas individas adata, dalykas šieno, 505 00:21:30,049 --> 00:21:31,340 bando ieškoti savo adata. 506 00:21:31,340 --> 00:21:34,730 Ir tai dar ne per įdomus, mano nuomone. 507 00:21:34,730 --> 00:21:35,500 Man patinka greitai. 508 00:21:35,500 --> 00:21:36,620 Man patinka veiksminga. 509 00:21:36,620 --> 00:21:40,450 Ir kaip darbštūs studentai You vaikinai, žinote dirbti racionaliai, 510 00:21:40,450 --> 00:21:43,010 ne sunkiau tipas dalykas, kaip jus gali sudaryti šiuos algoritmus. 511 00:21:43,010 --> 00:21:45,110 512 00:21:45,110 --> 00:21:47,910 >> Taigi, mes ketiname eiti per tik greitai pavyzdyje. 513 00:21:47,910 --> 00:21:51,090 Manau jums, vaikinai turėtų turėti ranka ant Binary paieška, 514 00:21:51,090 --> 00:21:54,352 bet jei kas nors yra šiek tiek fuzzy, noriu jį sustiprins, 515 00:21:54,352 --> 00:21:56,310 mes ketiname tiesiog eiti kaip pavyzdys čia. 516 00:21:56,310 --> 00:21:59,490 Taigi, mes ieškome jei masyvas yra septyni. 517 00:21:59,490 --> 00:22:00,540 518 00:22:00,540 --> 00:22:06,010 >> Taigi, pirmas dalykas, kurį mes darome, yra ieškoti viduryje, tiesa? 519 00:22:06,010 --> 00:22:09,340 Ir jūs ketinate būti kodavimas Dvejetainiai Paieška vos sekundę. 520 00:22:09,340 --> 00:22:11,310 Taigi, jis ketina būti įdomus. 521 00:22:11,310 --> 00:22:13,710 Taigi, mes pažvelgti į vidutinio mažai masyvai 3. 522 00:22:13,710 --> 00:22:15,501 Ar 3 lygus 7? 523 00:22:15,501 --> 00:22:16,000 Nėra. 524 00:22:16,000 --> 00:22:18,670 525 00:22:18,670 --> 00:22:19,550 Tai šeši. 526 00:22:19,550 --> 00:22:21,480 Taigi, tai mažiau nei arba didesnė negu septynių? 527 00:22:21,480 --> 00:22:23,080 528 00:22:23,080 --> 00:22:23,960 Mažiau nei. 529 00:22:23,960 --> 00:22:24,570 Taip. 530 00:22:24,570 --> 00:22:25,170 Nice job guys. 531 00:22:25,170 --> 00:22:25,569 532 00:22:25,569 --> 00:22:27,360 Jaučiu, kaip aš turėtų turėti saldainį, nes aš 533 00:22:27,360 --> 00:22:29,460 nori mesti jį iš į laivų statyklas. 534 00:22:29,460 --> 00:22:30,270 Tai, ką aš ketinu daryti kitą savaitę. 535 00:22:30,270 --> 00:22:31,436 Tai leis jums vaikinai aštrus. 536 00:22:31,436 --> 00:22:32,560 537 00:22:32,560 --> 00:22:34,690 >> Taigi, mes išmetame, kad pirmąjį pusmetį, tiesa? 538 00:22:34,690 --> 00:22:35,670 jis buvo mažesnis nei. 539 00:22:35,670 --> 00:22:39,325 Mes žinome, kad viskas tą dešinėje pusėje 540 00:22:39,325 --> 00:22:41,700 bus mažiau, nei mes iš tikrųjų ieško. 541 00:22:41,700 --> 00:22:43,491 Taigi, nėra reikalo atkreipti dėmesį į tai. 542 00:22:43,491 --> 00:22:45,120 Tiesiog pamiršti apie jį. 543 00:22:45,120 --> 00:22:48,720 Taigi, dabar mes pažvelgti į mūsų dešinėje, ir mes pažvelgti į vidurį ten, 544 00:22:48,720 --> 00:22:50,510 ir dabar tai yra devyni. 545 00:22:50,510 --> 00:22:55,510 Taigi, 9 is-- --Everyone? 546 00:22:55,510 --> 00:22:57,470 Didesnis, nei mes esame ieško, tiesa? 547 00:22:57,470 --> 00:22:59,860 Taigi, mes ketiname mesti toli viskas į dešinę. 548 00:22:59,860 --> 00:23:00,970 549 00:23:00,970 --> 00:23:01,940 Patinka. 550 00:23:01,940 --> 00:23:03,700 Dabar visi mes liko su viena. 551 00:23:03,700 --> 00:23:07,760 Taigi, mes patikrinti, ar tai vienas, kas mes ieškome? ji yra. 552 00:23:07,760 --> 00:23:08,970 Mes nustatėme, ką mes norėjome. 553 00:23:08,970 --> 00:23:10,440 554 00:23:10,440 --> 00:23:11,690 Taigi, mes baigsime. 555 00:23:11,690 --> 00:23:12,550 Bilinear Paieška. 556 00:23:12,550 --> 00:23:15,740 >> Ir, jei pastebėsite, mes turėjo septynis įėjimus ten. 557 00:23:15,740 --> 00:23:24,320 Tai tik buvo mums kaip tris kartus, bet jei darai kaip milijardo, 558 00:23:24,320 --> 00:23:28,190 Jūs žinote, kiek žingsnių jis būtų imtis, jei mes turėjome keturis milijardus dalykų? 559 00:23:28,190 --> 00:23:29,940 560 00:23:29,940 --> 00:23:30,455 Bet kokios spėlionės? 561 00:23:30,455 --> 00:23:32,286 562 00:23:32,286 --> 00:23:33,960 Tai 32. 563 00:23:33,960 --> 00:23:37,110 32 žingsnių, kaip rasti ką nors į keturis milijardus 564 00:23:37,110 --> 00:23:39,650 elementas masyvo, nes įgaliojimų dviejų. 565 00:23:39,650 --> 00:23:43,550 Taigi du yra 32, tai iki keturių milijardų. 566 00:23:43,550 --> 00:23:50,430 >> Taigi gana kvailai kaip jūs vis dar per lyg gana nedidelio skaičiaus žingsnių 567 00:23:50,430 --> 00:23:52,650 Surasti ką nors per keturis milijardus elementai. 568 00:23:52,650 --> 00:23:55,730 Taigi dėl šio rašto, mes ketina koduoti tai 569 00:23:55,730 --> 00:23:58,950 taip jus vaikinai galite realiai rūšies pamatyti, kaip tai veikia. 570 00:23:58,950 --> 00:24:01,520 Gerai, taigi jūs vaikinai gali koduoti. 571 00:24:01,520 --> 00:24:04,100 Aš ruošiuosi praleisti you guys kalbėti truputį. 572 00:24:04,100 --> 00:24:07,970 Gauk pažinti žmones aplink jus, kurie yra ką kažkas norėjo iš paskutinio skyrių. 573 00:24:07,970 --> 00:24:10,280 >> Taigi pažinti aplink jus žmonių. 574 00:24:10,280 --> 00:24:11,305 Kalbėti truputį. 575 00:24:11,305 --> 00:24:12,580 576 00:24:12,580 --> 00:24:15,730 Ir viskas, ką aš noriu iš jūsų vaikinai dabar yra tiesiog 577 00:24:15,730 --> 00:24:17,575 pabandyti sukurti daug Pseudocode metmenis. 578 00:24:17,575 --> 00:24:18,075 Gerai? 579 00:24:18,075 --> 00:24:20,825 580 00:24:20,825 --> 00:24:21,325 Whoa. 581 00:24:21,325 --> 00:24:23,320 582 00:24:23,320 --> 00:24:29,520 Viskas, ką aš noriu iš jūsų vaikinai yra jums tik ketina užpildyti šią while atveju. 583 00:24:29,520 --> 00:24:32,170 Taigi aš jį pasirinkote viršutinis ir apatinė ribos, kuri 584 00:24:32,170 --> 00:24:35,250 atstovauti pradžią ir pabaiga mūsų masyvas. 585 00:24:35,250 --> 00:24:40,440 Ir jūs ketinate tikrai kilpa per ir išsiaiškinti 586 00:24:40,440 --> 00:24:42,470 ką mes darome šioje while cikle. 587 00:24:42,470 --> 00:24:45,810 >> Taigi, jei galite išsiaiškinti out-- Turiu there-- kokie atvejai užuomina 588 00:24:45,810 --> 00:24:46,640 kad mes čia? 589 00:24:46,640 --> 00:24:48,100 590 00:24:48,100 --> 00:24:51,560 Taigi, jei norite suprasti, atvejai, mes Pseudocode tie 591 00:24:51,560 --> 00:24:53,350 ir tada mes iš tikrųjų kodą juos. 592 00:24:53,350 --> 00:24:55,330 Ir tai bus, aš manau, tikiuosi jis bus 593 00:24:55,330 --> 00:24:56,788 būti šiek tiek lengviau, nei jūs tikėjotės. 594 00:24:56,788 --> 00:24:57,554 595 00:24:57,554 --> 00:25:00,220 Nes tai, kad daug kodas, iš tikrųjų, tai yra tikrai cool. 596 00:25:00,220 --> 00:25:34,110 597 00:25:34,110 --> 00:25:35,018 >> Mm-hm? 598 00:25:35,018 --> 00:25:35,893 >> STUDENTŲ: [nesigirdi]? 599 00:25:35,893 --> 00:25:36,984 600 00:25:36,984 --> 00:25:37,650 Instruktorius: Taip. 601 00:25:37,650 --> 00:25:38,595 Ten buvo kažkas rasti viduryje. 602 00:25:38,595 --> 00:25:39,552 >> STUDENTŲ: Taigi, mes galime naudoti, kad. 603 00:25:39,552 --> 00:25:39,770 Gerai. 604 00:25:39,770 --> 00:25:40,603 >> Instruktorius: Puikus. 605 00:25:40,603 --> 00:25:42,950 Štai pirmas dalykas, kurį turime padaryti. 606 00:25:42,950 --> 00:25:44,330 Taigi rasti vidurį. 607 00:25:44,330 --> 00:25:45,415 608 00:25:45,415 --> 00:25:45,915 Puikus. 609 00:25:45,915 --> 00:25:47,770 610 00:25:47,770 --> 00:25:55,010 Taigi jūs turite idėją, kaip mes galime tikrai rasti vidurį su kodu? 611 00:25:55,010 --> 00:25:55,980 >> STUDENTŲ: Taip. 612 00:25:55,980 --> 00:25:57,000 n per 2? 613 00:25:57,000 --> 00:25:58,500 614 00:25:58,500 --> 00:25:59,500 Instruktorius: Taigi n virš 2. 615 00:25:59,500 --> 00:26:05,170 Taigi vienas dalykas, prisiminti tai, kad viršutinėje ir apatinė ribos keisti. 616 00:26:05,170 --> 00:26:08,110 Mes nuolat Traukiasi detalę masyvo mes ieškome. 617 00:26:08,110 --> 00:26:11,970 Taigi n per 2 veiks tik Pirmą dalyką mes. 618 00:26:11,970 --> 00:26:17,810 Taigi atsižvelgiant viršutinės ir apatinės į, kaip gali mes gauti, kad vidurinioji elementas? 619 00:26:17,810 --> 00:26:20,640 Nes mes norime, kad vidurį tarp viršutinio ir apatinio, tiesa? 620 00:26:20,640 --> 00:26:21,730 621 00:26:21,730 --> 00:26:22,494 Mm-hm? 622 00:26:22,494 --> 00:26:23,369 >> STUDENTŲ: [nesigirdi]. 623 00:26:23,369 --> 00:26:26,170 624 00:26:26,170 --> 00:26:28,080 >> Instruktorius: Taigi, mes turime šiek tiek vidurį. 625 00:26:28,080 --> 00:26:32,730 Ir tai bus viršutinė plius mažesnis nei 2. 626 00:26:32,730 --> 00:26:34,740 627 00:26:34,740 --> 00:26:35,690 Nuostabus. 628 00:26:35,690 --> 00:26:36,570 Štai taip. 629 00:26:36,570 --> 00:26:37,280 Viena eilutė žemyn. 630 00:26:37,280 --> 00:26:38,560 Jūs vaikinai yra jūsų būdas. 631 00:26:38,560 --> 00:26:41,400 Taigi, dabar, kad mes turime mūsų viduryje, ką mes norime daryti? 632 00:26:41,400 --> 00:26:45,050 633 00:26:45,050 --> 00:26:45,900 Tiesiog apskritai. 634 00:26:45,900 --> 00:26:47,734 Jūs neturite kodą jį. 635 00:26:47,734 --> 00:26:48,335 Taip. 636 00:26:48,335 --> 00:26:49,210 STUDENTŲ: [nesigirdi]? 637 00:26:49,210 --> 00:27:00,310 638 00:27:00,310 --> 00:27:10,310 Instruktorius: Taigi tai pliusas, nes esate rasti tarp dviejų vidutinių 639 00:27:10,310 --> 00:27:10,810 iš jų. 640 00:27:10,810 --> 00:27:11,890 641 00:27:11,890 --> 00:27:17,370 Taigi, jei jūs manote apie juos kaip natūra padidinti iš šonų, 642 00:27:17,370 --> 00:27:21,640 Pagalvokite apie tai, kaip jūs požiūris viduryje, norite panašaus. 643 00:27:21,640 --> 00:27:27,150 Taigi, jei jums buvo iš abiejų pusių viduryje, ir mes turime kaip 5 ir 7. 644 00:27:27,150 --> 00:27:31,440 Jei norite pridėti jas kartu jums gauti 12, padalinti iš 2, tai 6. 645 00:27:31,440 --> 00:27:33,726 >> Kartais sunku paaiškinti, kodėl tai veikia, 646 00:27:33,726 --> 00:27:35,600 bet jei jūs dirbate per pavyzdys kartais, 647 00:27:35,600 --> 00:27:37,962 tai padėsime Jums išsiaiškinti, ar ji turėtų būti plius minus. 648 00:27:37,962 --> 00:27:38,846 Taip. 649 00:27:38,846 --> 00:27:40,830 >> STUDENTŲ: [nesigirdi] tiksliai per vidurį 650 00:27:40,830 --> 00:27:43,950 jei jie buvo atvejis, kai ten mažesnį gyvūnų skaičių daug 651 00:27:43,950 --> 00:27:45,860 ir kaip vieną didelį skaičių? 652 00:27:45,860 --> 00:27:49,750 >> Instruktorius: Taigi viskas, ko jums reikia yra viduryje masyvo. 653 00:27:49,750 --> 00:27:53,010 Taigi, jei jūs turėjote mažų skaičių krūva ir tada iš tikrųjų daug 654 00:27:53,010 --> 00:27:54,799 pabaigoje, nesvarbu. 655 00:27:54,799 --> 00:27:56,840 Svarbu tik, kad jie rūšiuojami, jums tiesiog 656 00:27:56,840 --> 00:27:59,339 nori pažvelgti į vidurį masyvas, nes jūs vis dar 657 00:27:59,339 --> 00:28:00,700 nukirto savo problemą per pusę. 658 00:28:00,700 --> 00:28:03,020 659 00:28:03,020 --> 00:28:03,680 Cool. 660 00:28:03,680 --> 00:28:06,430 Taigi, dabar, kad mes turime viduryje, ką mes darome toliau? 661 00:28:06,430 --> 00:28:07,150 >> STUDENTŲ: Palyginimas. 662 00:28:07,150 --> 00:28:08,150 Instruktorius: palyginti. 663 00:28:08,150 --> 00:28:11,670 Taigi palyginti viduriu value_wanted. 664 00:28:11,670 --> 00:28:14,300 665 00:28:14,300 --> 00:28:15,160 Cool. 666 00:28:15,160 --> 00:28:17,950 Taigi, kaip matote čia turime ši vertė norime čia. 667 00:28:17,950 --> 00:28:22,012 668 00:28:22,012 --> 00:28:23,095 Atminkite, kad tai masyvas. 669 00:28:23,095 --> 00:28:24,100 670 00:28:24,100 --> 00:28:26,970 Taigi nuoroda į viduriniosios indeksą. 671 00:28:26,970 --> 00:28:29,785 Taigi, mes norime padaryti vertybes viduryje. 672 00:28:29,785 --> 00:28:32,380 673 00:28:32,380 --> 00:28:35,650 Nepamirškite, jei norite palyginti, dvigubos lygių. 674 00:28:35,650 --> 00:28:38,250 Jūs vienas lygu tu tik ketina perleisti jį, 675 00:28:38,250 --> 00:28:41,090 ir tada, žinoma, tai bus norimą reikšmę. 676 00:28:41,090 --> 00:28:42,300 Taigi nereikia daryti. 677 00:28:42,300 --> 00:28:44,350 >> Taigi, mes ketiname pamatyti, jei Viename įėjimo viduryje vertės 678 00:28:44,350 --> 00:28:46,460 yra lygi vertei norime. 679 00:28:46,460 --> 00:28:47,749 680 00:28:47,749 --> 00:28:48,790 Nepamirškite petnešos. 681 00:28:48,790 --> 00:28:50,520 682 00:28:50,520 --> 00:28:52,235 Dropbox turėtų išeiti. 683 00:28:52,235 --> 00:28:54,140 684 00:28:54,140 --> 00:28:56,200 Taigi, ką mes darome šiuo atveju? 685 00:28:56,200 --> 00:28:59,360 Jei tai, ką mes norime grįžti? 686 00:28:59,360 --> 00:29:01,510 687 00:29:01,510 --> 00:29:02,626 Mes bandome pasakyti. 688 00:29:02,626 --> 00:29:03,440 >> STUDENTŲ Spausdinti išjungtas. 689 00:29:03,440 --> 00:29:05,314 >> Instruktorius: Na, mes nenoriu atsispausdinti. 690 00:29:05,314 --> 00:29:08,220 Taigi tai yra bool čia, todėl mes nori grįžti true arba false. 691 00:29:08,220 --> 00:29:12,280 Mes sakydamas tai skaičius [? RRA? ?] Taigi, jei ji yra, 692 00:29:12,280 --> 00:29:13,788 mes tiesiog grįžti tiesa. 693 00:29:13,788 --> 00:29:16,780 694 00:29:16,780 --> 00:29:17,760 Jei aš galiu rašybos tiesa. 695 00:29:17,760 --> 00:29:18,830 696 00:29:18,830 --> 00:29:20,805 >> STUDENTŲ: Kodėl gi ne grįžti prie nulio? 697 00:29:20,805 --> 00:29:22,930 Instruktorius: Taigi tu gali grįžti prie nulio, jei norite. 698 00:29:22,930 --> 00:29:26,780 Tačiau šiuo atveju, nes Mūsų funkcija grąžina bool, 699 00:29:26,780 --> 00:29:28,962 turime grįžti arba true arba false. 700 00:29:28,962 --> 00:29:30,920 STUDENTŲ: Kai būsite sakydamas loginę išraišką, 701 00:29:30,920 --> 00:29:33,450 galite nustatyti, kad jis lygus klaidingas? 702 00:29:33,450 --> 00:29:39,860 Pavyzdžiui, jei aš noriu pasakyti, jei ši sąlyga netenkinamas, kaip yra viršutinis lygus klaidinga. 703 00:29:39,860 --> 00:29:42,332 Ar tai suprasti, jei jūs tiesiog įdėti klaidinga, o kita pusė? 704 00:29:42,332 --> 00:29:43,040 Instruktorius: Taip. 705 00:29:43,040 --> 00:29:44,820 Taigi iš tikrųjų, jei esate kada darai kažką 706 00:29:44,820 --> 00:29:49,600 kaip yra viršutinė arba apatinė, kad grąžina true arba false 707 00:29:49,600 --> 00:29:53,850 ir tai tikrai blogai stilius tarkim lygus lygus true arba kaip lygių 708 00:29:53,850 --> 00:29:54,840 lygus klaidinga. 709 00:29:54,840 --> 00:30:00,210 Norite naudoti tą rezultatą kaip pati kaip čekį. 710 00:30:00,210 --> 00:30:04,720 711 00:30:04,720 --> 00:30:05,860 Ne tai, ką norėjau. 712 00:30:05,860 --> 00:30:08,150 713 00:30:08,150 --> 00:30:09,240 Štai ką aš norėjau. 714 00:30:09,240 --> 00:30:13,205 Taigi, jus atveju esate klausia apie kažką kaip išsaugoti tai c. 715 00:30:13,205 --> 00:30:16,320 716 00:30:16,320 --> 00:30:25,150 >> Taigi, jei mes turime int main (void) ir kažkas panašaus į tai. 717 00:30:25,150 --> 00:30:31,922 Ir jūs turite jei yra viršutinė iš tų pačių įvesties ir jūs 718 00:30:31,922 --> 00:30:33,630 klausia, ar jūs galite padaryti kažkas panašaus į tai? 719 00:30:33,630 --> 00:30:35,010 720 00:30:35,010 --> 00:30:35,679 Teisė? 721 00:30:35,679 --> 00:30:37,470 STUDENTŲ: aš bandžiau daryti tai [nesigirdi]. 722 00:30:37,470 --> 00:30:38,450 Nes jei it's-- 723 00:30:38,450 --> 00:30:39,200 Instruktorius: Teisė. 724 00:30:39,200 --> 00:30:41,197 Taigi jūs norite, kad tai būtų klaidinga, tiesa? 725 00:30:41,197 --> 00:30:41,780 STUDENTŲ: Taip. 726 00:30:41,780 --> 00:30:45,960 Instruktorius: Taigi, šiuo atveju jums noriu, kad ji vykdo, jei tai nėra tiesa. 727 00:30:45,960 --> 00:30:50,510 Taigi kietas dalykas jums yra ši. 728 00:30:50,510 --> 00:30:52,900 729 00:30:52,900 --> 00:30:55,650 Taigi nepamirškite šauktuko taškas paneigia dalykus? 730 00:30:55,650 --> 00:30:58,270 Ji sako [nesigirdi] reiškia ne. 731 00:30:58,270 --> 00:31:03,590 Taigi, jei mes pažvelgti tik čia tai dalis, norite 732 00:31:03,590 --> 00:31:05,740 sako, kad vertina, kad false, kaip jūs norite. 733 00:31:05,740 --> 00:31:06,790 734 00:31:06,790 --> 00:31:09,880 Nėra netikras tiesa, kuri reiškia tai atlikti. 735 00:31:09,880 --> 00:31:11,037 Ar tai prasminga? 736 00:31:11,037 --> 00:31:11,620 STUDENTŲ: Taip. 737 00:31:11,620 --> 00:31:12,453 Instruktorius: Awesome. 738 00:31:12,453 --> 00:31:13,800 739 00:31:13,800 --> 00:31:14,300 Gerai. 740 00:31:14,300 --> 00:31:16,330 Taigi, mes galime tiesiog grįžti tiesa šiuo atveju. 741 00:31:16,330 --> 00:31:20,357 Taigi dabar mes turime dvi kitos atvejų ir šiuo atveju. 742 00:31:20,357 --> 00:31:21,565 Kokie du mūsų ir kitų atvejų? 743 00:31:21,565 --> 00:31:31,610 744 00:31:31,610 --> 00:31:32,900 Tegul tik tai padaryti tokiu būdu. 745 00:31:32,900 --> 00:31:40,660 Taigi pradėkime dar jei koncentracijos vertės viduryje 746 00:31:40,660 --> 00:31:43,230 yra mažesnis nei vertė, mes norime. 747 00:31:43,230 --> 00:31:47,200 748 00:31:47,200 --> 00:31:52,020 Taigi, mūsų vertė viduryje yra mažesnis negu vertė, mes ieškome. 749 00:31:52,020 --> 00:31:53,765 750 00:31:53,765 --> 00:31:56,720 >> Taigi, kuris jungiasi padaryti jums manau, kad mes norime atnaujinti? 751 00:31:56,720 --> 00:31:57,870 752 00:31:57,870 --> 00:31:58,780 Mažiausia ar didžiausia? 753 00:31:58,780 --> 00:32:01,440 754 00:32:01,440 --> 00:32:01,940 Viršutinė? 755 00:32:01,940 --> 00:32:03,230 756 00:32:03,230 --> 00:32:06,470 Taigi to, kurioje pusėje masyvas mes ketiname būti žiūri? 757 00:32:06,470 --> 00:32:07,500 >> STUDENTŲ: mažesnis. 758 00:32:07,500 --> 00:32:09,750 >> Instruktorius: Mes einame būtų pažvelgti į kairę. 759 00:32:09,750 --> 00:32:11,120 Taigi kitas, jei mažai vertė yra mažesnė. 760 00:32:11,120 --> 00:32:14,730 Taigi jūsų vidutinis dydis čia yra mažesnis nei tai, ką norime. 761 00:32:14,730 --> 00:32:17,202 Taigi, mes norime imtis Dešinėje mūsų masyvas. 762 00:32:17,202 --> 00:32:18,910 Taigi mes ketiname atnaujinti mūsų apatinė. 763 00:32:18,910 --> 00:32:20,210 764 00:32:20,210 --> 00:32:23,020 Taigi mes perleisti savo mažesnės. 765 00:32:23,020 --> 00:32:25,221 Ir ką jūs manote mažesnis turėtų būti? 766 00:32:25,221 --> 00:32:26,304 STUDENTŲ: vidurinioji vertė? 767 00:32:26,304 --> 00:32:27,446 768 00:32:27,446 --> 00:32:28,820 Instruktorius: Taigi vidurinioji value-- 769 00:32:28,820 --> 00:32:30,136 STUDENTŲ: Plius 1. 770 00:32:30,136 --> 00:32:31,010 Instruktorius: --plus 1. 771 00:32:31,010 --> 00:32:32,300 772 00:32:32,300 --> 00:32:34,380 Ar kas nors pasakykite man, kodėl mes turime, kad plius 1? 773 00:32:34,380 --> 00:32:35,730 >> STUDENTŲ: [? Nėra vertė?] yra lygus daugiau į jį. 774 00:32:35,730 --> 00:32:36,120 >> Instruktorius: Teisė. 775 00:32:36,120 --> 00:32:38,661 Nes mes jau žinome, kad mūsų viduriniosios vertė nėra lygus 776 00:32:38,661 --> 00:32:42,750 tai ir norime ją pašalinti nuo visų tolesnių paieškų. 777 00:32:42,750 --> 00:32:46,360 Jei pamiršote, kad plius 1, tai patiks kilpa neribotą laiką. 778 00:32:46,360 --> 00:32:49,620 Ir jūs tiesiog būsite pagauti begalinis ciklas, o tada jūs segfault 779 00:32:49,620 --> 00:32:50,370 ir viskas vyks blogai. 780 00:32:50,370 --> 00:32:54,780 Taigi visada įsitikinkite, kad esate ne įskaitant kiekį, kurį ką tik 781 00:32:54,780 --> 00:32:55,380 pažvelgė. 782 00:32:55,380 --> 00:32:58,530 Taigi, mes pasirūpinsime, kad su pliuso 1. 783 00:32:58,530 --> 00:33:04,840 >> Taigi dabar mes turime paskutinė sąlyga aš visada už saugos labui 784 00:33:04,840 --> 00:33:12,664 galite patikrinti čia dar, jeigu vertė viduryje yra didesnė, negu vertė 785 00:33:12,664 --> 00:33:13,163 norime. 786 00:33:13,163 --> 00:33:16,260 787 00:33:16,260 --> 00:33:20,230 Tai reiškia, kad mes norime kairė ranka pusė. 788 00:33:20,230 --> 00:33:21,350 789 00:33:21,350 --> 00:33:23,260 Taigi, kuris iš jų mes ketiname atnaujinti? 790 00:33:23,260 --> 00:33:23,760 Viršutinė. 791 00:33:23,760 --> 00:33:25,470 792 00:33:25,470 --> 00:33:26,970 Ir kas tai yra vienas ketina prilygti? 793 00:33:26,970 --> 00:33:31,630 794 00:33:31,630 --> 00:33:33,690 Vidurio minus 1, nes, Žinoma, mes norime, 795 00:33:33,690 --> 00:33:38,370 įsitikinti, kad mes ne žiūri šią vidutinis dydis dar kartą. 796 00:33:38,370 --> 00:33:41,830 797 00:33:41,830 --> 00:33:45,110 Ir tuomet mes jį. 798 00:33:45,110 --> 00:33:45,610 Štai ir viskas. 799 00:33:45,610 --> 00:33:46,820 Tai viskas, dvejetainis paieška. 800 00:33:46,820 --> 00:33:48,190 Tai nereiškia, kad blogai, tiesa? 801 00:33:48,190 --> 00:33:51,590 Tai kaip 10 eilučių kodas su tarpais. 802 00:33:51,590 --> 00:33:57,510 Taigi labai galingas, labai naudinga, jums naudojate jį vieną iš savo vėlesnių psets. 803 00:33:57,510 --> 00:33:59,360 Gal ne tai viena, bet vėliau. 804 00:33:59,360 --> 00:34:00,670 Taigi išmokti. 805 00:34:00,670 --> 00:34:01,510 Tai patinka. 806 00:34:01,510 --> 00:34:02,980 Jis bus su jumis elgtis gerai. 807 00:34:02,980 --> 00:34:05,370 Taigi ar kas nors turi bet klausimai dvejetainis paieškos? 808 00:34:05,370 --> 00:34:06,196 Taip. 809 00:34:06,196 --> 00:34:09,840 >> STUDENTŲ: Ar tai svarbu ar jūsų n yra lyginis ar nelyginis? 810 00:34:09,840 --> 00:34:10,750 >> Instruktorius: Ne. 811 00:34:10,750 --> 00:34:18,150 Nes mes retai jį į vidurį, kaip int, ji bus tiesiog trumpinti vartų. 812 00:34:18,150 --> 00:34:21,600 Taigi jis liks sveikasis ir jis bus galiausiai rūšiuoti per viską. 813 00:34:21,600 --> 00:34:23,909 Taigi jūs neturite jaudintis dėl to. 814 00:34:23,909 --> 00:34:24,580 Kiekvienas geras? 815 00:34:24,580 --> 00:34:25,659 816 00:34:25,659 --> 00:34:26,850 Nuostabus. 817 00:34:26,850 --> 00:34:27,919 Cool. 818 00:34:27,919 --> 00:34:30,836 Taigi, jūs vaikinai turite tai. 819 00:34:30,836 --> 00:34:33,380 820 00:34:33,380 --> 00:34:33,880 Skaidrės. 821 00:34:33,880 --> 00:34:35,719 822 00:34:35,719 --> 00:34:43,270 Taigi, kaip mes kalbame apie, aš žinau, Davidas minėta sudėtingumo runtimes. 823 00:34:43,270 --> 00:34:44,420 824 00:34:44,420 --> 00:34:50,340 >> Taigi geriausiu atveju, tai tik vienas, kurį mes vadiname pastovų laiką. 825 00:34:50,340 --> 00:34:51,909 Ar kas nors pasakykite man, kodėl tai gali būti? 826 00:34:51,909 --> 00:34:52,969 827 00:34:52,969 --> 00:34:55,800 Kokio tipo scenarijų būtų, kad sukelti? 828 00:34:55,800 --> 00:34:58,260 829 00:34:58,260 --> 00:34:58,760 Mm-hm. 830 00:34:58,760 --> 00:34:59,926 >> STUDENTŲ: [nesigirdi] first-- 831 00:34:59,926 --> 00:35:00,789 832 00:35:00,789 --> 00:35:03,830 Instruktorius: Taigi vidurinioji yra Pirmasis elementas, kad mes atėjo, ar ne? 833 00:35:03,830 --> 00:35:08,167 Taigi, arba vienas masyvas arba Mes ieškome tik kokia 834 00:35:08,167 --> 00:35:09,750 būna, Žiaurus DAB viduryje. 835 00:35:09,750 --> 00:35:11,190 836 00:35:11,190 --> 00:35:13,380 Štai mūsų geriausias atvejis. 837 00:35:13,380 --> 00:35:17,540 Gauni į realias problemas, tikriausiai ne ketina pasiekti [nesigirdi], kad dažnai. 838 00:35:17,540 --> 00:35:18,667 839 00:35:18,667 --> 00:35:19,750 Ką apie mūsų blogiausiu atveju? 840 00:35:19,750 --> 00:35:21,270 Mūsų blogiausias atvejis žurnalas n. 841 00:35:21,270 --> 00:35:25,360 Ir kad turi daryti su visa įgaliojimai dviejų dalykas, kad aš kalbėjau apie. 842 00:35:25,360 --> 00:35:30,930 >> Taigi, blogiausiu atveju tai reikštų, kad mes turėjome pjaustyti masyvas žemyn 843 00:35:30,930 --> 00:35:33,270 kol jis buvo vienas elementas. 844 00:35:33,270 --> 00:35:34,810 845 00:35:34,810 --> 00:35:38,930 Taigi mes turėjome jį nukirsti žemyn per pusę tiek kartų, kiek mes galbūt galėtų. 846 00:35:38,930 --> 00:35:41,430 Štai kodėl tai yra žurnalas n nes Jūs tiesiog nuolat dalijant iš dviejų. 847 00:35:41,430 --> 00:35:42,890 848 00:35:42,890 --> 00:35:45,830 Taigi prielaidos, dalykų, kuriuos reikia žinoti, jei jūs kada nors 849 00:35:45,830 --> 00:35:48,050 ketinate naudoti dvejetainius paiešką. 850 00:35:48,050 --> 00:35:50,680 Jūsų elementai turi būti rūšiuojami. 851 00:35:50,680 --> 00:35:53,890 Jie turi būti rūšiuojami nes kad vienintelis būdas jums 852 00:35:53,890 --> 00:35:57,060 gali žinoti, jei gali išmesti lygiai pinigų. 853 00:35:57,060 --> 00:36:00,260 >> Jei turėjo šį Pogmatwany maišą Skaičių ir jūs sakote, 854 00:36:00,260 --> 00:36:05,380 Gerai, aš einu patikrinti vidurį skaičius ir skaičius Aš ieškau 855 00:36:05,380 --> 00:36:08,510 yra mažiau nei, kad aš tik ketina savavališkai išmesti pusę. 856 00:36:08,510 --> 00:36:11,130 Jūs nežinote, jei jūsų numeriai toje kitoje pusėje. 857 00:36:11,130 --> 00:36:12,655 Jūsų sąrašas turi būti rūšiuojami. 858 00:36:12,655 --> 00:36:14,030 859 00:36:14,030 --> 00:36:16,560 Kaip gerai, tai gali būti vyksta į priekį šiek tiek, 860 00:36:16,560 --> 00:36:18,360 bet jums reikia turėti laisvą priėjimą. 861 00:36:18,360 --> 00:36:21,940 Jums reikia, kad būtų galima tiesiog eiti į tą vidurinę elemento. 862 00:36:21,940 --> 00:36:25,110 Jei turite feed per kažką 863 00:36:25,110 --> 00:36:28,630 arba pateksite papildomų priemonių patekti į šios viduriniosios elementų, 864 00:36:28,630 --> 00:36:31,750 tai nėra prisijunkite n nebėra, nes norite pridėti daugiau darbo į jį. 865 00:36:31,750 --> 00:36:34,800 Ir tai bus padaryti šiek tiek daugiau jausmas per dvi savaites, 866 00:36:34,800 --> 00:36:37,950 bet aš tiesiog rūšies norėjo įvadas, jums vaikinai, ką galite idėją 867 00:36:37,950 --> 00:36:38,999 ateiti. 868 00:36:38,999 --> 00:36:40,790 Tačiau tai du svarbios prielaidos 869 00:36:40,790 --> 00:36:44,804 kad jums reikia dvejetainėje sąrašą. 870 00:36:44,804 --> 00:36:45,720 Įsitikinkite, kad jis rūšiuojami. 871 00:36:45,720 --> 00:36:47,920 Štai vienas didelis už vaikinai dabar. 872 00:36:47,920 --> 00:36:52,170 Ir kad mes galime eiti į Mūsų rūšių poilsio. 873 00:36:52,170 --> 00:36:56,444 Taigi keturios sorts-- burbulas, įterpimo, atranka, ir sujungti. 874 00:36:56,444 --> 00:36:57,485 Jie visi cool natūra. 875 00:36:57,485 --> 00:37:02,860 Jei jus vaikinai nusprendžia imtis CS 124, Sužinosite apie visų rūšių rūšių. 876 00:37:02,860 --> 00:37:07,575 Ir jei esate XKCD ventiliatoriumi yra tikrai cool komiksų apie 877 00:37:07,575 --> 00:37:11,530 kaip tikrai neefektyvios rūšių, kurią aš labai rekomenduoju jums eiti ieškoti. 878 00:37:11,530 --> 00:37:16,170 Vienas iš jų yra kaip panikos rūšiuoti, kuris yra kaip, oh no, grįžti atsitiktinių masyvo. 879 00:37:16,170 --> 00:37:16,991 Stabdymo sistemos. 880 00:37:16,991 --> 00:37:17,490 Palikite. 881 00:37:17,490 --> 00:37:19,070 882 00:37:19,070 --> 00:37:21,500 Taigi kelianti nuotaika visada gera. 883 00:37:21,500 --> 00:37:22,620 884 00:37:22,620 --> 00:37:25,750 >> Taigi ar kas nors prisiminti natūra tiek kaip tiesiog bendra idėja 885 00:37:25,750 --> 00:37:27,810 kaip burbulas rūšiuoti veikia. 886 00:37:27,810 --> 00:37:31,130 887 00:37:31,130 --> 00:37:32,155 Jūs prisimenate? 888 00:37:32,155 --> 00:37:32,755 >> STUDENTŲ: Taip. 889 00:37:32,755 --> 00:37:33,970 >> Instruktorius: eiti į jį. 890 00:37:33,970 --> 00:37:38,980 >> STUDENTŲ: Taigi jūs ketinate per ir jei tai didesnis, tada sukeisti du. 891 00:37:38,980 --> 00:37:39,820 >> Instruktorius: Mm-hm. 892 00:37:39,820 --> 00:37:40,564 Tiksliai. 893 00:37:40,564 --> 00:37:41,730 Taigi jūs tiesiog kartoti, kad. 894 00:37:41,730 --> 00:37:43,050 Patikrinti du numeriai. 895 00:37:43,050 --> 00:37:46,510 Jei vienas prieš didesnis nei vėliau apie tą, 896 00:37:46,510 --> 00:37:50,230 tiesiog apsikeitimo juos taip, kad šis būdas visus didesnius numerius 897 00:37:50,230 --> 00:37:54,990 burbulas iki link sąrašo gale ir visi mažesni numeriai burbulas žemyn. 898 00:37:54,990 --> 00:37:59,355 >> Ar jis rodo jums, vaikinai cool Garso efektų rūšiavimas video? 899 00:37:59,355 --> 00:38:00,480 Tai tipo kietas. 900 00:38:00,480 --> 00:38:01,510 901 00:38:01,510 --> 00:38:05,200 Taip Robertas ką tik pasakė, kad algoritmas kad jūs tik žingsnis per sąrašą, 902 00:38:05,200 --> 00:38:07,930 Swapping gretimų verčių jei jie ne tam. 903 00:38:07,930 --> 00:38:10,975 Ir tada tiesiog nuolat kartoti kol jums nereikia atlikti jokių apsikeitimo sandoriais. 904 00:38:10,975 --> 00:38:11,990 905 00:38:11,990 --> 00:38:12,740 Taigi nėra blogai, tiesa? 906 00:38:12,740 --> 00:38:14,080 907 00:38:14,080 --> 00:38:16,319 Taigi mes tiesiog greitai pavyzdį čia. 908 00:38:16,319 --> 00:38:18,360 Taigi tai vyksta rūšiuoti juos didėjančia tvarka. 909 00:38:18,360 --> 00:38:19,470 910 00:38:19,470 --> 00:38:23,470 Taigi, kai mes eiti per pirmas laikas, mes žiūrime per aštuonių 911 00:38:23,470 --> 00:38:26,880 ir šeši akivaizdžiai nėra tam mes apsikeitimo. 912 00:38:26,880 --> 00:38:27,985 >> Taigi pažvelgti į kitą. 913 00:38:27,985 --> 00:38:29,430 Aštuoni ir keturi ne tam. 914 00:38:29,430 --> 00:38:30,450 Apsikeitimo. 915 00:38:30,450 --> 00:38:32,530 Ir tada aštuonių iki dviejų, apsikeitimo. 916 00:38:32,530 --> 00:38:33,470 Štai taip. 917 00:38:33,470 --> 00:38:39,519 Taigi po pirmojo perdavimo, jūs žinoti, kad jūsų didžiausias skaičius 918 00:38:39,519 --> 00:38:41,810 bus visas kelias viršuje, nes tai tik 919 00:38:41,810 --> 00:38:44,210 bus nuolat didesnis nei visa kita 920 00:38:44,210 --> 00:38:46,810 ir tai tik ketina burbulo iki visą kelią iki pabaigos ten. 921 00:38:46,810 --> 00:38:48,226 Ar tai prasminga visiems? 922 00:38:48,226 --> 00:38:48,560 923 00:38:48,560 --> 00:38:49,060 Cool. 924 00:38:49,060 --> 00:38:51,310 925 00:38:51,310 --> 00:38:53,920 >> Taigi mes pažvelgti į mūsų antrąjį perdavimą. 926 00:38:53,920 --> 00:38:54,980 Šeši ir keturi, jungiklis. 927 00:38:54,980 --> 00:38:55,920 Šeši ir du, jungiklis. 928 00:38:55,920 --> 00:38:58,700 Ir dabar mes turime keletą dalykų, kad. 929 00:38:58,700 --> 00:39:02,240 Taigi už kiekvieną perdavimą, kad mes padaryti per visą mūsų sąrašą, 930 00:39:02,240 --> 00:39:06,320 mes žinome, kad, pavyzdžiui, kad daug skaičių pabaigoje jau bus rūšiuojami. 931 00:39:06,320 --> 00:39:07,690 932 00:39:07,690 --> 00:39:09,610 Taigi mes trečią perdavimą, kuris yra vienas swap. 933 00:39:09,610 --> 00:39:10,860 934 00:39:10,860 --> 00:39:15,910 Ir tada mūsų ketvirtas praeiti, mes nulis lizdus. 935 00:39:15,910 --> 00:39:18,570 Ir todėl mes žinome, kad mūsų masyvas išrūšiuota. 936 00:39:18,570 --> 00:39:20,900 >> Ir tai yra didelis dalykas su bubble rūšiuoti. 937 00:39:20,900 --> 00:39:23,720 Mes žinome, kad, kai mes nulis apsikeitimo, kad 938 00:39:23,720 --> 00:39:26,497 reiškia, kad viskas yra visiškai tvarka. 939 00:39:26,497 --> 00:39:27,580 Tai tipo kaip mes tikriname. 940 00:39:27,580 --> 00:39:28,740 941 00:39:28,740 --> 00:39:36,480 Taigi mes taip pat ketiname kodą burbulas rūšiuoti, kuri taip pat yra ne tai, kad blogai. 942 00:39:36,480 --> 00:39:38,120 Nė vienas iš jų yra taip blogai. 943 00:39:38,120 --> 00:39:40,210 Žinau, kad jie gali atrodyti šiek tiek baisu. 944 00:39:40,210 --> 00:39:42,124 Žinau, kai aš paėmė klasė, net tada, kai aš 945 00:39:42,124 --> 00:39:44,290 dėstė klasės Pirmą kartą pernai, 946 00:39:44,290 --> 00:39:46,165 Buvau kaip, kaip man tai padaryti? 947 00:39:46,165 --> 00:39:48,540 Prasminga teoriškai, bet kaip mes iš tikrųjų tai padaryti? 948 00:39:48,540 --> 00:39:51,420 Kuris yra, kodėl aš noriu nueiti per kodą su jumis vaikinai čia. 949 00:39:51,420 --> 00:39:54,915 Taigi turiu Pseudocode už jus vaikinai šiuo metu. 950 00:39:54,915 --> 00:39:55,950 951 00:39:55,950 --> 00:39:58,970 Taigi tiesiog laikyti tai galvoje, kaip mes ruošiamės pereiti per. 952 00:39:58,970 --> 00:40:04,210 Taigi, mes turime šiek tiek skaitiklis, kad stebi mūsų apsikeitimo sandorius, 953 00:40:04,210 --> 00:40:08,370 nes mums reikia įsitikinti, kad mes patikrinti, kad. 954 00:40:08,370 --> 00:40:11,830 Ir mes pakartoti visą spektrą kaip mes tiesiog padarė su šiuo pavyzdžiu. 955 00:40:11,830 --> 00:40:12,900 956 00:40:12,900 --> 00:40:17,325 Jei elementas yra didesnis nei prieš po kur mes į elementą, 957 00:40:17,325 --> 00:40:20,760 mes apsikeitimo ir mes prieaugio DUK skaitliukas nes kai tik mes apsikeitimo, 958 00:40:20,760 --> 00:40:23,850 norime pranešti mūsų counter žinote, kad. 959 00:40:23,850 --> 00:40:26,247 Visus klausimus ten? 960 00:40:26,247 --> 00:40:27,580 Kažkas atrodo juokinga čia. 961 00:40:27,580 --> 00:40:29,225 962 00:40:29,225 --> 00:40:32,350 STUDENTŲ: Ar jums nustatykite nulį skaitliukas kiekvieną kartą jūs einate per kilpą? 963 00:40:32,350 --> 00:40:34,339 Ar ne jūs nesustoti atgal iki nulio, kiekvieną kartą? 964 00:40:34,339 --> 00:40:35,505 Instruktorius: Nebūtinai. 965 00:40:35,505 --> 00:40:39,710 Taigi, kas atsitinka, yra mes eiti per čia. 966 00:40:39,710 --> 00:40:43,830 Taigi, tai, o, atminkite, tai atliks vieną kartą, be nepavyks. 967 00:40:43,830 --> 00:40:46,480 Taigi jis ketina nustatyti skaitiklis lygus nuliui, 968 00:40:46,480 --> 00:40:48,070 tada jis ketina pakartoti per. 969 00:40:48,070 --> 00:40:50,590 Nes ji kartojasi, ji atnaujina skaitiklis. 970 00:40:50,590 --> 00:40:51,870 971 00:40:51,870 --> 00:40:56,900 Kaip jis patikslina skaitiklis, kai tai daroma, kai jis pasiekė masyvo pabaigos, 972 00:40:56,900 --> 00:41:00,830 jei mūsų sąrašas nebuvo rūšiuojamos, skaitiklis buvo atnaujintas. 973 00:41:00,830 --> 00:41:01,840 974 00:41:01,840 --> 00:41:07,150 >> Taigi tada ji patikrina sąlygą ir ji sako, gerai, yra skaitiklis didesnis už nulį. 975 00:41:07,150 --> 00:41:09,290 Jei taip yra, tai padaryti dar kartą. 976 00:41:09,290 --> 00:41:14,340 Norite pakeisti taip, kad, kai jūs eiti per, skaitiklis yra lygi nuliui. 977 00:41:14,340 --> 00:41:18,240 Jei jūs einate per Rūšiuota masyvas, niekas nesikeičia, 978 00:41:18,240 --> 00:41:21,355 tai nepadeda, ir jūs grąžinti surūšiuoti sąrašą. 979 00:41:21,355 --> 00:41:23,104 980 00:41:23,104 --> 00:41:24,020 Ar tai prasminga? 981 00:41:24,020 --> 00:41:24,940 982 00:41:24,940 --> 00:41:26,356 STUDENTŲ: Tai gali dar šiek tiek. 983 00:41:26,356 --> 00:41:27,147 Instruktorius: Gerai. 984 00:41:27,147 --> 00:41:28,980 Jei yra bet koks kitas klausimas, kuris ateina į viršų. 985 00:41:28,980 --> 00:41:30,180 986 00:41:30,180 --> 00:41:30,680 Taip. 987 00:41:30,680 --> 00:41:33,760 >> STUDENTŲ: koks būtų funkcija būti už Swapping elementus? 988 00:41:33,760 --> 00:41:36,900 >> Instruktorius: Taigi mes iš tikrųjų galite rašyti kad jei mes ketiname dabar. 989 00:41:36,900 --> 00:41:37,801 990 00:41:37,801 --> 00:41:38,300 Cool. 991 00:41:38,300 --> 00:41:42,155 Taigi dėl šio rašto, Alison vyksta pereiti atgal į prietaisą. 992 00:41:42,155 --> 00:41:43,080 Ji ketina būti įdomus. 993 00:41:43,080 --> 00:41:45,170 994 00:41:45,170 --> 00:41:47,390 Ir mes turime gražus burbulas rūšiuoti dalykas čia. 995 00:41:47,390 --> 00:41:50,800 Taigi, aš jau padariau dviračiu per masyvą. 996 00:41:50,800 --> 00:41:53,030 Mes turime apsikeitimo kad yra lygi nuliui. 997 00:41:53,030 --> 00:41:54,480 998 00:41:54,480 --> 00:41:58,440 Taigi, mes norime apsikeitimo gretimų elementai, jeigu jie iš tam. 999 00:41:58,440 --> 00:42:03,020 Taigi pirmas dalykas, kurį mes turime do yra kartoti, kad mūsų masyvas. 1000 00:42:03,020 --> 00:42:04,500 1001 00:42:04,500 --> 00:42:08,260 >> Taigi, kaip jūs manote, mes galime kartoti, kad mūsų masyvas? 1002 00:42:08,260 --> 00:42:09,720 1003 00:42:09,720 --> 00:42:13,990 Mes turime ir i lygu 0. 1004 00:42:13,990 --> 00:42:16,950 1005 00:42:16,950 --> 00:42:22,454 Mes norime būti mažiau i nei n minus 1 minuso k. 1006 00:42:22,454 --> 00:42:23,870 Ir aš paaiškinti, kad per sekundę. 1007 00:42:23,870 --> 00:42:26,280 1008 00:42:26,280 --> 00:42:32,830 Taigi tai yra čia, kur optimizavimas, Prisimenu, kaip sakiau po kiekvieno perdavimo 1009 00:42:32,830 --> 00:42:36,655 per masyvą mes žinau, kad visada kas on-- 1010 00:42:36,655 --> 00:42:43,590 1011 00:42:43,590 --> 00:42:46,295 >> Taigi, po vieną perdavimą mes žinau, kad tai yra rūšiuojami. 1012 00:42:46,295 --> 00:42:47,370 1013 00:42:47,370 --> 00:42:50,060 Po dviejų važiavimų žinome kad visa tai yra rūšiuojami. 1014 00:42:50,060 --> 00:42:52,750 Po trijų važiavimų mes žinau, kad manimi rūšiuojami. 1015 00:42:52,750 --> 00:42:55,620 Taigi, kaip aš Iteracja per masyvas čia 1016 00:42:55,620 --> 00:43:01,090 yra tai įsitikinkite, kad eiti tik per tai, ką mes žinome, yra nerūšiuotas. 1017 00:43:01,090 --> 00:43:01,644 Gerai? 1018 00:43:01,644 --> 00:43:02,810 Tai tiesiog optimizavimas. 1019 00:43:02,810 --> 00:43:04,430 1020 00:43:04,430 --> 00:43:08,210 Galite rašyti naiviai tik Iteracja per viską, 1021 00:43:08,210 --> 00:43:09,970 jis tiesiog trunka ilgiau. 1022 00:43:09,970 --> 00:43:12,470 Su šia keturių kilpa tai tiesiog gražus optimizavimas 1023 00:43:12,470 --> 00:43:18,460 nes mes žinome, kad po kiekvieno pilnas iteracijoje masyvo čia 1024 00:43:18,460 --> 00:43:24,050 Kaip ir kiekvieną pilną kilpą čia, mes žinome, kad vienas daugiau iš šių elementų 1025 00:43:24,050 --> 00:43:25,760 bus surūšiuoti pabaigoje. 1026 00:43:25,760 --> 00:43:28,294 >> Taigi mes neturime nerimauti tiems. 1027 00:43:28,294 --> 00:43:29,710 Ar tai prasminga visiems? 1028 00:43:29,710 --> 00:43:30,950 Kad kietas mažai triukas? 1029 00:43:30,950 --> 00:43:32,060 1030 00:43:32,060 --> 00:43:37,270 Taigi šiuo atveju, jei mes Iteracja per, 1031 00:43:37,270 --> 00:43:50,590 mes žinome, kad mes norime patikrinti, ar masyvas n ir n yra 1 plius tvarka. 1032 00:43:50,590 --> 00:43:52,640 1033 00:43:52,640 --> 00:43:53,559 Gerai. 1034 00:43:53,559 --> 00:43:54,600 Taigi čia Pseudocode. 1035 00:43:54,600 --> 00:43:57,540 Norime patikrinti, ar masyvas n ir n yra 1 plius tvarka. 1036 00:43:57,540 --> 00:43:59,520 Taigi, kas gali šiuo metu ten? 1037 00:43:59,520 --> 00:44:01,090 1038 00:44:01,090 --> 00:44:03,120 Ji ketina būti šiek tiek sąlygiškas. 1039 00:44:03,120 --> 00:44:04,220 Tai bus jei. 1040 00:44:04,220 --> 00:44:07,066 >> STUDENTŲ: Jei masyvas n mažiau nei masyvo n plius 1. 1041 00:44:07,066 --> 00:44:07,816 Instruktorius: Mm-hm. 1042 00:44:07,816 --> 00:44:09,000 1043 00:44:09,000 --> 00:44:10,699 Na, yra mažesnis arba didesnis nei. 1044 00:44:10,699 --> 00:44:11,615 STUDENTŲ: Daugiau nei. 1045 00:44:11,615 --> 00:44:15,850 1046 00:44:15,850 --> 00:44:17,620 Tada mes norime apsikeitimo. 1047 00:44:17,620 --> 00:44:18,570 Tiksliai. 1048 00:44:18,570 --> 00:44:23,570 Taigi, dabar mes į tai, kas mechanizmas Swapping juos? 1049 00:44:23,570 --> 00:44:24,840 1050 00:44:24,840 --> 00:44:28,137 Taigi mes perėjome šį trumpai, Swap funkcija praėjusią savaitę tipas. 1051 00:44:28,137 --> 00:44:29,595 Ar kas nors prisimena, kaip jis dirbo? 1052 00:44:29,595 --> 00:44:32,300 1053 00:44:32,300 --> 00:44:34,950 Taigi, mes galime ne tik perleisti juos, tiesa? 1054 00:44:34,950 --> 00:44:36,640 Kadangi vienas iš jų bus prarasti. 1055 00:44:36,640 --> 00:44:41,696 Jei mes sakėme yra lygi B ir tada B yra lygi į A, visi staiga abu 1056 00:44:41,696 --> 00:44:43,150 tik lygus B. 1057 00:44:43,150 --> 00:44:45,720 >> Taigi, ką mes turime padaryti, tai mes turėti laikiną kintamąjį, kad manimi 1058 00:44:45,720 --> 00:44:49,055 ketina surengti vieną Voyager "Mūsų laiką mes į Swapping procese. 1059 00:44:49,055 --> 00:44:50,200 1060 00:44:50,200 --> 00:44:56,464 Taigi, ką mes turime, yra mes turime šiek tiek int temp lygus to-- galite priskirti jį 1061 00:44:56,464 --> 00:44:59,130 į bet kurio norite, tiesiog Įsitikinkite, kad jums sekti it-- 1062 00:44:59,130 --> 00:45:01,840 Taigi šiuo atveju, aš ruošiuosi priskirti ją masyvo n plius 1. 1063 00:45:01,840 --> 00:45:03,360 1064 00:45:03,360 --> 00:45:07,674 Kad ketina surengti kokia vertė yra toje antrojo bloko 1065 00:45:07,674 --> 00:45:08,590 kad mes ieškome. 1066 00:45:08,590 --> 00:45:09,700 1067 00:45:09,700 --> 00:45:13,240 >> Ir tada mes galime padaryti, tai mes galime eiti į priekį ir Priskirti masyvas n plius 1, 1068 00:45:13,240 --> 00:45:14,990 nes mes žinome, mes turi tą reikšmę, registravimo. 1069 00:45:14,990 --> 00:45:16,645 1070 00:45:16,645 --> 00:45:19,270 Tai taip pat viena iš didžiausių Quake aš nežinau, jei kas nors iš jūsų 1071 00:45:19,270 --> 00:45:23,780 turėjo problemų, kur, jei jums pereiti du eilučių kodo staiga viskas dirbo. 1072 00:45:23,780 --> 00:45:25,880 Užsakyti Labai svarbu CS. 1073 00:45:25,880 --> 00:45:29,450 Todėl įsitikinkite, kad žy dalykų, jei įmanoma 1074 00:45:29,450 --> 00:45:31,230 kaip į tai, kas iš tikrųjų vyksta. 1075 00:45:31,230 --> 00:45:34,256 Taigi, dabar mes ketiname perleisti masyvo n plius 1, 1076 00:45:34,256 --> 00:45:36,005 nes mes žinome, mes turi tą reikšmę, registravimo. 1077 00:45:36,005 --> 00:45:37,090 1078 00:45:37,090 --> 00:45:41,560 >> Ir mes galime priskirti, kad į masyvą n ar šiuo atveju masyvo i. 1079 00:45:41,560 --> 00:45:50,540 1080 00:45:50,540 --> 00:45:51,465 Per daug kintamųjų. 1081 00:45:51,465 --> 00:45:54,230 1082 00:45:54,230 --> 00:45:55,470 Gerai. 1083 00:45:55,470 --> 00:46:01,500 Taigi, dabar mes perskirstomas masyvas I plius 1 prilygti kas išsirikiavo i. 1084 00:46:01,500 --> 00:46:08,240 Ir dabar mes galime grįžti ir priskirti masyvo I-ką? 1085 00:46:08,240 --> 00:46:10,680 1086 00:46:10,680 --> 00:46:11,180 Kiekvienas? 1087 00:46:11,180 --> 00:46:13,490 1088 00:46:13,490 --> 00:46:14,010 >> STUDENTŲ: 10. 1089 00:46:14,010 --> 00:46:14,680 >> Instruktorius: 10. 1090 00:46:14,680 --> 00:46:15,180 Tiksliai. 1091 00:46:15,180 --> 00:46:16,930 1092 00:46:16,930 --> 00:46:18,640 Ir paskutinis dalykas. 1093 00:46:18,640 --> 00:46:21,840 Jei mes pavertė jį dabar, ką mes turime padaryti? 1094 00:46:21,840 --> 00:46:23,740 Kas vienas dalykas kad ketina pasakyti mums 1095 00:46:23,740 --> 00:46:27,542 jei mes kada nors nutraukia programą? 1096 00:46:27,542 --> 00:46:29,250 Ką mums sako, kad mes turi surūšiuoti sąrašą? 1097 00:46:29,250 --> 00:46:31,560 1098 00:46:31,560 --> 00:46:33,750 Jei mes neturime eiti jokių apsikeitimo, tiesa? 1099 00:46:33,750 --> 00:46:36,900 Jei apsikeitimo lygus lygiu nuliui tai pabaigoje. 1100 00:46:36,900 --> 00:46:42,975 Taigi, jei jums atlikti swap, nes mes tiesiog padariau čia, mes norime atnaujinti apsikeitimo sandoriais. 1101 00:46:42,975 --> 00:46:45,002 1102 00:46:45,002 --> 00:46:47,210 Ir aš žinau, ten buvo klausimas anksčiau apie jūs galite 1103 00:46:47,210 --> 00:46:49,689 naudoti nulį arba vieną vietoj iš true arba false. 1104 00:46:49,689 --> 00:46:50,980 Ir tai, kas tai daro čia. 1105 00:46:50,980 --> 00:46:52,750 Taigi tai sako jei ne apsikeitimo sandoriais. 1106 00:46:52,750 --> 00:47:01,310 Taigi, jei apsikeitimo yra lygus nuliui, kuris is-- Visada gauti savo tiesas ir mano falses sumaišyti. 1107 00:47:01,310 --> 00:47:03,960 Norime mums įvertinti true, ir tai ne. 1108 00:47:03,960 --> 00:47:07,680 1109 00:47:07,680 --> 00:47:09,630 Taigi, jei tai nulis, tada tai klaidinga. 1110 00:47:09,630 --> 00:47:12,560 Jei paneigti ją [? bang?] tampa tiesa. 1111 00:47:12,560 --> 00:47:13,975 Taigi ši eilutė vykdo. 1112 00:47:13,975 --> 00:47:15,060 1113 00:47:15,060 --> 00:47:17,370 >> Tiesos ir netikras nulių ir gauti iš proto. 1114 00:47:17,370 --> 00:47:20,690 Tiesiog jei jums lėtai vaikščioti per ją jis bus prasminga. 1115 00:47:20,690 --> 00:47:23,320 Bet tai, ką ši maža tiek kodą čia veikia. 1116 00:47:23,320 --> 00:47:26,490 Taigi ši tikrina, mes padarėme jokių apsikeitimo sandoriais. 1117 00:47:26,490 --> 00:47:30,054 Taigi, jei tai nieko, be nulis, jis ketina būti klaidinga 1118 00:47:30,054 --> 00:47:31,970 ir visa tai yra ketina vykdyti dar kartą. 1119 00:47:31,970 --> 00:47:33,150 1120 00:47:33,150 --> 00:47:33,650 Cool? 1121 00:47:33,650 --> 00:47:34,660 1122 00:47:34,660 --> 00:47:36,000 >> STUDENTŲ: Ką pertrauka daryti? 1123 00:47:36,000 --> 00:47:38,990 >> Instruktorius: Break tiesiog pertraukos jus iš kilpos. 1124 00:47:38,990 --> 00:47:41,570 Taigi šiuo atveju tai būtų tik norėčiau baigti programą 1125 00:47:41,570 --> 00:47:43,828 ir jūs, tiesiog turėti savo surūšiuoti sąrašą. 1126 00:47:43,828 --> 00:47:44,536 STUDENTŲ: Amazing. 1127 00:47:44,536 --> 00:47:48,094 1128 00:47:48,094 --> 00:47:49,010 Instruktorius: Aš atsiprašau? 1129 00:47:49,010 --> 00:47:52,110 STUDENTŲ: Kadangi anksčiau mes panaudodavo 1 per parašyta nulis 1130 00:47:52,110 --> 00:47:54,170 pateikti, kad jei kad dirbs, ar ne. 1131 00:47:54,170 --> 00:47:54,878 >> Instruktorius: Taip. 1132 00:47:54,878 --> 00:47:56,410 Taigi galite grįžti prie nulio arba 1. 1133 00:47:56,410 --> 00:47:58,950 Šiuo atveju, nes mes ne iš tikrųjų ką nors su funkcija, 1134 00:47:58,950 --> 00:48:00,150 mes tiesiog norime, kad ji nutraukti. 1135 00:48:00,150 --> 00:48:02,680 Mes tikrai rūpi tai. 1136 00:48:02,680 --> 00:48:06,960 Stabdžių pat gera, jei ji naudojama išeities 1137 00:48:06,960 --> 00:48:10,710 iš keturių kilpų ar sąlygas Jūs nenorite išsaugoti vykdomas. 1138 00:48:10,710 --> 00:48:12,110 Tai tik mano jus iš jų. 1139 00:48:12,110 --> 00:48:13,587 1140 00:48:13,587 --> 00:48:14,795 Tai iš niuansas dalykas tiek. 1141 00:48:14,795 --> 00:48:16,737 1142 00:48:16,737 --> 00:48:18,445 Jaučiu, kaip ten rankų garbanojimo daug, 1143 00:48:18,445 --> 00:48:19,740 kaip jūs sužinosite apie tai netrukus. 1144 00:48:19,740 --> 00:48:20,955 >> Bet jūs sužinosite apie tai netrukus. 1145 00:48:20,955 --> 00:48:21,500 Pažadu. 1146 00:48:21,500 --> 00:48:22,670 1147 00:48:22,670 --> 00:48:23,170 Gerai. 1148 00:48:23,170 --> 00:48:24,840 Taigi ar visi gauti burbulas rūšiuoti? 1149 00:48:24,840 --> 00:48:25,550 Neblogai. 1150 00:48:25,550 --> 00:48:31,910 Kartoti, kad, apsikeitimo dalykų, naudojant temp kintamasis, ir mes visi nustatyti ten? 1151 00:48:31,910 --> 00:48:32,960 Cool. 1152 00:48:32,960 --> 00:48:34,080 Nuostabus. 1153 00:48:34,080 --> 00:48:34,807 Gerai. 1154 00:48:34,807 --> 00:48:35,765 Atgal į PowerPoint. 1155 00:48:35,765 --> 00:48:38,140 1156 00:48:38,140 --> 00:48:40,130 Bet kokie apskritai klausimai apie tai iki šiol? 1157 00:48:40,130 --> 00:48:41,200 1158 00:48:41,200 --> 00:48:41,700 Cool. 1159 00:48:41,700 --> 00:48:43,110 1160 00:48:43,110 --> 00:48:43,695 Mm-hm. 1161 00:48:43,695 --> 00:48:45,279 >> STUDENTŲ: [nesigirdi] int main paprastai. 1162 00:48:45,279 --> 00:48:46,695 Ar jūs turite turėti, kad už tai? 1163 00:48:46,695 --> 00:48:48,400 1164 00:48:48,400 --> 00:48:53,550 >> Instruktorius: Taigi mes tiesiog ieškote tiesiog faktiniu rūšiavimo algoritmą. 1165 00:48:53,550 --> 00:48:54,559 1166 00:48:54,559 --> 00:48:56,350 Jei turėjo jį per kaip didesnės programos, 1167 00:48:56,350 --> 00:48:57,891 jūs turite int main kažkur. 1168 00:48:57,891 --> 00:49:00,070 1169 00:49:00,070 --> 00:49:02,880 Priklausomai nuo to, kur jums naudoti šį algoritmą, 1170 00:49:02,880 --> 00:49:05,860 būtų nustatyti, kas , grąžinami jį. 1171 00:49:05,860 --> 00:49:09,960 Bet mūsų atveju, mes griežtai žiūri kaip tai iš tikrųjų 1172 00:49:09,960 --> 00:49:11,300 kartoti, kad masyvo. 1173 00:49:11,300 --> 00:49:12,570 Taigi mes ne nerimauti apie tai. 1174 00:49:12,570 --> 00:49:14,150 1175 00:49:14,150 --> 00:49:19,830 >> Taigi mes kalbame apie geriausią atvejį ir blogiausio atvejo scenarijai dvejetainis paieškos. 1176 00:49:19,830 --> 00:49:22,470 Taigi tai taip pat svarbu daryti kad už kiekvieną iš mūsų rūšių. 1177 00:49:22,470 --> 00:49:24,200 1178 00:49:24,200 --> 00:49:27,560 Taigi, ką jūs manote yra blogiausia atvejis runtime iš burbulo rūšiuoti? 1179 00:49:27,560 --> 00:49:29,560 1180 00:49:29,560 --> 00:49:30,700 Vaikinai prisiminti? 1181 00:49:30,700 --> 00:49:31,784 >> STUDENTŲ: N minus 1. 1182 00:49:31,784 --> 00:49:32,700 Instruktorius: N minus 1. 1183 00:49:32,700 --> 00:49:35,070 Taigi tai reiškia, kad yra n minus 1 palyginimai. 1184 00:49:35,070 --> 00:49:40,060 Taigi vienas dalykas suprasti, kad remiantis pirmajam iteracijos procesui apskaičiavimas, 1185 00:49:40,060 --> 00:49:43,360 mes pereiti per, mes palyginti tai two-- todėl tai 1. 1186 00:49:43,360 --> 00:49:46,685 Šie du, trys, keturi. 1187 00:49:46,685 --> 00:49:48,070 1188 00:49:48,070 --> 00:49:55,050 Taigi, po vieną iteracijos mes jau turi keturis palyginimų. 1189 00:49:55,050 --> 00:49:58,230 Kai aš kalbu apie runtime ir n. 1190 00:49:58,230 --> 00:50:04,680 N atstovauja palyginimų skaičių kaip kaip daug elementų funkcijos 1191 00:50:04,680 --> 00:50:05,570 turime. 1192 00:50:05,570 --> 00:50:06,430 Gerai? 1193 00:50:06,430 --> 00:50:08,860 >> Taigi mes pereiti, mes turime keturis. 1194 00:50:08,860 --> 00:50:11,780 Kitą kartą jūs žinote, mes ne turi rūpintis šio. 1195 00:50:11,780 --> 00:50:15,140 Palyginus šias dvi, šie du, tai du, 1196 00:50:15,140 --> 00:50:20,050 ir jei mes neturėjo tokio optimizavimas su keturių kilpa, kad aš parašiau, 1197 00:50:20,050 --> 00:50:22,750 jums bus palyginti čia anyways. 1198 00:50:22,750 --> 00:50:26,170 Taigi jums reikės paleisti per masyvo 1199 00:50:26,170 --> 00:50:34,380 ir padaryti n palyginti n kartų, nes kiekvieną kartą 1200 00:50:34,380 --> 00:50:36,670 paleisti per jį mes rikiuoti vieną dalyką. 1201 00:50:36,670 --> 00:50:38,300 1202 00:50:38,300 --> 00:50:41,475 >> Ir kiekvieną kartą, kai mes paleisti per masyvas, mes n palyginimų. 1203 00:50:41,475 --> 00:50:42,920 1204 00:50:42,920 --> 00:50:46,330 Taigi, mūsų runtime už tai tikrai n kvadratu, kuris 1205 00:50:46,330 --> 00:50:48,400 yra daug blogesnė mūsų prisijungti pabaigą, nes tai 1206 00:50:48,400 --> 00:50:51,965 reiškia, jei mes turėjome keturis Milijardas elementai, tai 1207 00:50:51,965 --> 00:50:55,260 ketina imtis mums keturis milijardus kvadrato, o ne 32. 1208 00:50:55,260 --> 00:51:01,240 Taigi ne pats geriausias runtime, tačiau dėl tam tikrų dalykų, 1209 00:51:01,240 --> 00:51:04,610 žinote, jei esate per tikras asortimentas elementų 1210 00:51:04,610 --> 00:51:06,540 burbulas rūšiuoti gali būti bauda naudoti. 1211 00:51:06,540 --> 00:51:07,530 >> Gerai. 1212 00:51:07,530 --> 00:51:12,290 Taigi, dabar, kas yra geriausias atvejis runtime? 1213 00:51:12,290 --> 00:51:14,357 1214 00:51:14,357 --> 00:51:14,940 STUDENTŲ: Zero? 1215 00:51:14,940 --> 00:51:16,420 Arba 1? 1216 00:51:16,420 --> 00:51:18,140 >> Instruktorius: Taigi 1 būtų vienas palyginimas. 1217 00:51:18,140 --> 00:51:19,114 Teisė. 1218 00:51:19,114 --> 00:51:20,002 >> STUDENTŲ: N minus 1? 1219 00:51:20,002 --> 00:51:21,380 1220 00:51:21,380 --> 00:51:22,320 >> Instruktorius: Taigi, yeah. 1221 00:51:22,320 --> 00:51:22,990 Taigi n minus 1. 1222 00:51:22,990 --> 00:51:26,510 Kiekvieną kartą, kai jūs turite kaip n koncepciją minus 1, mes linkę tiesiog įmeskite 1223 00:51:26,510 --> 00:51:31,680 ir mes tiesiog pasakyti n, nes jūs turite Palyginimui kiekviena iš kiekvienos poros these--. 1224 00:51:31,680 --> 00:51:36,470 Taigi būtų n minus 1, kurį mes mes ką tik pasakyti maždaug n. 1225 00:51:36,470 --> 00:51:39,280 Kai jūs susiduriame su runtime, viskas yra artima. 1226 00:51:39,280 --> 00:51:43,860 Tol eksponentė yra teisinga, jūs gana gera. 1227 00:51:43,860 --> 00:51:45,700 >> Štai kaip mes susidoroti su juo. 1228 00:51:45,700 --> 00:51:47,410 1229 00:51:47,410 --> 00:51:51,780 Taigi, kad geriausiai atvejis yra n, kuris reiškia, kad sąraše jau rūšiuojamos, 1230 00:51:51,780 --> 00:51:54,320 ir visi mes darome, yra persmelkti ir patikrinkite, ar jis rūšiuojami. 1231 00:51:54,320 --> 00:51:56,110 1232 00:51:56,110 --> 00:51:56,855 Cool. 1233 00:51:56,855 --> 00:51:57,355 Gerai. 1234 00:51:57,355 --> 00:51:58,980 1235 00:51:58,980 --> 00:52:01,920 Taigi, kaip matote čia, mes tereikia šiek tiek daugiau grafikus. 1236 00:52:01,920 --> 00:52:02,660 Taigi n kvadratu. 1237 00:52:02,660 --> 00:52:03,780 1238 00:52:03,780 --> 00:52:05,120 Pramogos. 1239 00:52:05,120 --> 00:52:09,730 Daug blogiau nei n kaip matome, ir daug, daug blogiau, nei žurnalo 2n. 1240 00:52:09,730 --> 00:52:12,060 Ir tada jūs taip pat patekti į žurnalo rąstų. 1241 00:52:12,060 --> 00:52:18,020 Ir jūs imtis 124, gausite į kaip žurnalo žvaigždė, kuri yra kaip crazy. 1242 00:52:18,020 --> 00:52:20,172 Taigi, jei jus domina, lookup žurnalas žvaigždė. 1243 00:52:20,172 --> 00:52:20,880 Tai koks įdomus. 1244 00:52:20,880 --> 00:52:22,800 1245 00:52:22,800 --> 00:52:24,220 Taigi, mes turime šį puikų grafiką. 1246 00:52:24,220 --> 00:52:25,360 1247 00:52:25,360 --> 00:52:28,720 Tik metas, tai nuostabus schema turi 1248 00:52:28,720 --> 00:52:31,350 Jūsų įpusėjusi, nes mes ilgai jums užduoti šiuos plonina. 1249 00:52:31,350 --> 00:52:36,090 Taigi vos metas, turite šį savo laikotarpio vidurio savo gražiu Cheat sheet 1250 00:52:36,090 --> 00:52:36,616 ten. 1251 00:52:36,616 --> 00:52:37,990 Taigi mes tiesiog pažvelgė burbulas rūšiuoti. 1252 00:52:37,990 --> 00:52:39,510 1253 00:52:39,510 --> 00:52:42,370 Blogiausiu atveju, n kvadratu, geriausiu atveju, n. 1254 00:52:42,370 --> 00:52:43,367 1255 00:52:43,367 --> 00:52:44,950 Ir mes ketiname pažvelgti į kitus. 1256 00:52:44,950 --> 00:52:47,940 >> Ir, kaip matote, tik vienas, kad tikrai gerai 1257 00:52:47,940 --> 00:52:50,910 yra sujungti rūšiuoti, kuri mes gauti į, kodėl. 1258 00:52:50,910 --> 00:52:52,690 1259 00:52:52,690 --> 00:52:55,215 Taigi, mes ketiname eiti Kitas vienas here-- pasirinkimas rūšiuoti. 1260 00:52:55,215 --> 00:52:56,360 1261 00:52:56,360 --> 00:52:58,420 Ar kas nors prisimena, kaip pasirinkimas rūšiuoti dirbo? 1262 00:52:58,420 --> 00:53:05,200 1263 00:53:05,200 --> 00:53:05,700 Eiti į jį. 1264 00:53:05,700 --> 00:53:08,210 >> STUDENTŲ: Iš esmės pereiti Kad ir sukurti naują sąrašą. 1265 00:53:08,210 --> 00:53:11,001 Ir kaip jūs pateikėte elementai į, įdėti juos į tinkamą vietą 1266 00:53:11,001 --> 00:53:11,750 į naują sąrašą. 1267 00:53:11,750 --> 00:53:14,040 >> Instruktorius: Taigi, kad garsai daugiau kaip įterpimo rūšiuoti. 1268 00:53:14,040 --> 00:53:15,040 Bet jūs tikrai arti. 1269 00:53:15,040 --> 00:53:15,915 Jie labai panašūs. 1270 00:53:15,915 --> 00:53:17,440 Net man juos sumaišyti kartais. 1271 00:53:17,440 --> 00:53:18,981 Prieš šioje dalyje Aš, pavyzdžiui, palaukti. 1272 00:53:18,981 --> 00:53:20,130 1273 00:53:20,130 --> 00:53:20,630 Gerai. 1274 00:53:20,630 --> 00:53:24,141 Taigi, ką jūs norite padaryti, tai pasirinkimas rūšiuoti, 1275 00:53:24,141 --> 00:53:25,890 Taip galite galvoti apie tai ir tai, kaip 1276 00:53:25,890 --> 00:53:30,140 Aš įsitikinkite, kad aš stengiuosi ne gauti juos sumaišyti, tai eina per 1277 00:53:30,140 --> 00:53:33,280 ir jis atrenka Mažiausiai ir 1278 00:53:33,280 --> 00:53:36,070 kelia, kad jūsų sąrašo pradžioje. 1279 00:53:36,070 --> 00:53:37,730 Ji apsikeitimo su tos pirmosios vietoje. 1280 00:53:37,730 --> 00:53:42,600 1281 00:53:42,600 --> 00:53:45,370 Jie iš tikrųjų turi būti pavyzdžiu man. 1282 00:53:45,370 --> 00:53:46,540 Nuostabus. 1283 00:53:46,540 --> 00:53:50,130 Taigi tiesiog būdas galvoti apie it-- atrankos rūšiuoti, pasirinkite mažiausią vertę. 1284 00:53:50,130 --> 00:53:51,940 Ir mes ketiname paleisti kaip pavyzdys 1285 00:53:51,940 --> 00:53:55,320 kad manau, padės, nes Manau vizualizacijomis visada padeda. 1286 00:53:55,320 --> 00:53:58,510 Taigi, mes pradėti su kažkuo kad yra visiškai nerūšiuotas. 1287 00:53:58,510 --> 00:54:00,730 Raudona bus nerūšiuotos, žalia bus surūšiuoti. 1288 00:54:00,730 --> 00:54:02,190 Tai bus visų prasmės per sekundę. 1289 00:54:02,190 --> 00:54:08,950 >> Taigi mes pereiti ir mes pakartoti nuo pradžios iki pabaigos. 1290 00:54:08,950 --> 00:54:12,320 Ir mes sakome, gerai, 2 yra mūsų mažiausias skaičius. 1291 00:54:12,320 --> 00:54:15,680 Taigi, mes ketiname imtis 2 ir mes ketiname norėdami perkelti ją į mūsų aukštos klasės priekyje 1292 00:54:15,680 --> 00:54:17,734 nes tai Mažiausiai, ką turime. 1293 00:54:17,734 --> 00:54:19,150 Štai, ką šis čia veikia. 1294 00:54:19,150 --> 00:54:20,820 Tai tiesiog vyksta apsikeitimo šių dviejų. 1295 00:54:20,820 --> 00:54:21,850 1296 00:54:21,850 --> 00:54:25,450 Taigi dabar mes turime sutvarkyti dalis ir nerūšiuotus dalis. 1297 00:54:25,450 --> 00:54:27,810 Ir kas gera prisiminti apie atrankos rūšiuoti 1298 00:54:27,810 --> 00:54:30,690 yra mes tik pasirinkus nuo nerūšiuotų dalis. 1299 00:54:30,690 --> 00:54:32,220 1300 00:54:32,220 --> 00:54:34,527 >> Rūšiuota dalis tiesiog palikti ramybėje. 1301 00:54:34,527 --> 00:54:35,660 Mm-hm? 1302 00:54:35,660 --> 00:54:38,452 >> STUDENTŲ: Kaip ji žino, kas yra mažiausia be lyginant jį 1303 00:54:38,452 --> 00:54:39,868 kiekvienam kitos vertės masyvo. 1304 00:54:39,868 --> 00:54:41,250 Instruktorius: Ji palyginti. 1305 00:54:41,250 --> 00:54:42,041 Mums patinka praleisti jį. 1306 00:54:42,041 --> 00:54:43,850 Tai tik Bendru. 1307 00:54:43,850 --> 00:54:44,831 Taip. 1308 00:54:44,831 --> 00:54:47,205 Kai mes rašome kodą aš kad jums bus labiau patenkinti. 1309 00:54:47,205 --> 00:54:48,696 1310 00:54:48,696 --> 00:54:53,030 Bet jums laikyti tai pirmasis elementas, kaip mažiausias. 1311 00:54:53,030 --> 00:54:56,110 Jei lygintume ir jūs pasakyti, GERAI, tai mažesnė? 1312 00:54:56,110 --> 00:54:56,660 Taip. 1313 00:54:56,660 --> 00:54:57,460 Laikykite jį. 1314 00:54:57,460 --> 00:54:58,640 Štai jis mažesnis? 1315 00:54:58,640 --> 00:54:59,660 Ne? 1316 00:54:59,660 --> 00:55:02,510 >> Tai jūsų mažiausias, perleisti jį į savo vertę. 1317 00:55:02,510 --> 00:55:06,340 Ir jums bus daug laimingesni kai mes einame per kodą. 1318 00:55:06,340 --> 00:55:07,510 1319 00:55:07,510 --> 00:55:13,970 Taigi mes pereiti, mes sukeisti, todėl tada mes pažvelgti į šią nerūšiuotų dalį. 1320 00:55:13,970 --> 00:55:15,810 Taigi mes ketiname pasirinkti trys iš. 1321 00:55:15,810 --> 00:55:18,890 Mes ketiname įdėti ją ne Mūsų išrūšiuotų dalį pabaiga. 1322 00:55:18,890 --> 00:55:20,267 1323 00:55:20,267 --> 00:55:23,100 Ir mes tik ketina toliau daryti kad tai daro ir tai, kad. 1324 00:55:23,100 --> 00:55:24,130 1325 00:55:24,130 --> 00:55:27,420 Taigi tai yra mūsų rūšies Pseudocode čia. 1326 00:55:27,420 --> 00:55:29,470 1327 00:55:29,470 --> 00:55:31,380 Mes kodą jį čia per sekundę. 1328 00:55:31,380 --> 00:55:34,140 1329 00:55:34,140 --> 00:55:37,270 Bet tiesiog kažkas vaikščioti per aukšto lygio. 1330 00:55:37,270 --> 00:55:40,275 Jūs ketinate eiti iš i lygu 0 iki n minus 2. 1331 00:55:40,275 --> 00:55:41,570 1332 00:55:41,570 --> 00:55:43,530 Štai dar vienas optimizavimas. 1333 00:55:43,530 --> 00:55:45,020 Nesijaudinkite, per daug apie ją. 1334 00:55:45,020 --> 00:55:46,620 Taigi, kaip jūs kalbėjo. 1335 00:55:46,620 --> 00:55:49,660 1336 00:55:49,660 --> 00:55:54,406 Kaip Jokūbas sako, kaip mes sekti, kas mūsų minimalus yra? 1337 00:55:54,406 --> 00:55:55,030 Kaip mes žinome,? 1338 00:55:55,030 --> 00:55:57,060 Mes turime palyginti viskas mūsų sąraše. 1339 00:55:57,060 --> 00:55:59,600 >> Taigi minimalus lygus i. 1340 00:55:59,600 --> 00:56:03,870 Tai tiesiog pasakyti šiuo atveju mūsų mažiausios vertės indeksas. 1341 00:56:03,870 --> 00:56:07,660 Taigi viskas vyksta paeiliui per ir jis eina iš j yra lygus i plius 1. 1342 00:56:07,660 --> 00:56:11,420 Taigi, mes jau žinome, kad kad mūsų pirmasis elementas. 1343 00:56:11,420 --> 00:56:13,240 Mums nereikia lyginti ją sau. 1344 00:56:13,240 --> 00:56:16,970 Taigi, mes pradedame lyginti ją į kitą tas, kuris yra, kodėl ji yra i plius 1 iki n 1345 00:56:16,970 --> 00:56:20,110 minus 1, tai yra pabaigoje ten masyvo. 1346 00:56:20,110 --> 00:56:25,090 Ir mes pasakėme, jei masyvas ne j yra mažiau kaip masyvo min 1347 00:56:25,090 --> 00:56:29,200 tada mes perleisti kur Mūsų minimalus indeksai yra. 1348 00:56:29,200 --> 00:56:37,470 >> Ir jei min nėra lygus i, kaip į kur buvome atgal čia. 1349 00:56:37,470 --> 00:56:38,950 1350 00:56:38,950 --> 00:56:41,790 Taigi norėčiau, kai mes pirmą padarė šį vieną. 1351 00:56:41,790 --> 00:56:49,310 Šiuo atveju, ji būtų pradėti nulis, tai galų gale yra du. 1352 00:56:49,310 --> 00:56:53,010 Taigi min nebūtų lygus i galo. 1353 00:56:53,010 --> 00:56:55,720 Kuri leidžia mums žinoti, kad turime apsikeitimo. 1354 00:56:55,720 --> 00:56:57,420 1355 00:56:57,420 --> 00:57:00,470 Jaučiu, kaip konkretų pavyzdį padės daug daugiau nei tai. 1356 00:57:00,470 --> 00:57:04,970 Taigi aš taisykles Šis su jumis vaikinai dabar ir aš manau, kad tai bus geriau. 1357 00:57:04,970 --> 00:57:07,380 1358 00:57:07,380 --> 00:57:11,350 >> Rūšys linkę dirbti tą kelią, kad tai dažnai geriau tiesiog juos matyti. 1359 00:57:11,350 --> 00:57:12,780 1360 00:57:12,780 --> 00:57:17,280 Taigi, ką mes norime padaryti, tai mes pirmą kartą noriu mažiausias 1361 00:57:17,280 --> 00:57:19,890 elementas į jos padėtį masyvo. 1362 00:57:19,890 --> 00:57:21,280 Būtent tai, ko Jokūbas sako. 1363 00:57:21,280 --> 00:57:23,090 Jums reikia laikyti, kad kažkaip. 1364 00:57:23,090 --> 00:57:25,900 Taigi, mes ketiname pradėti čia Iteracja per masyvo. 1365 00:57:25,900 --> 00:57:28,970 Mes ketiname pasakyti, kad tai mūsų Pirmoji tiesiog pradėti. 1366 00:57:28,970 --> 00:57:38,308 Taigi, mes ketiname turėti int Mažiausias yra lygus masyvo ne i. 1367 00:57:38,308 --> 00:57:40,500 1368 00:57:40,500 --> 00:57:45,050 >> Taigi vienas dalykas, kad pranešimas, kiekvienas laikas tai kilpa vykdo, 1369 00:57:45,050 --> 00:57:48,550 mes pradedame dar vieną žingsnį į priekį. 1370 00:57:48,550 --> 00:57:54,780 1371 00:57:54,780 --> 00:57:57,440 Kai mes pradėjome mes pažvelgti į šį vieną. 1372 00:57:57,440 --> 00:58:00,840 Kitą kartą mes kartoti, kad, mes pradedant šį vieną 1373 00:58:00,840 --> 00:58:02,680 ir paskiriant ją mūsų mažiausias dydis. 1374 00:58:02,680 --> 00:58:10,450 Taigi, tai labai panaši į burbulų rūšiuoti kur mes žinome, kad po vienu pravažiavimu, 1375 00:58:10,450 --> 00:58:11,700 tai paskutinis elementas yra rūšiuojama. 1376 00:58:11,700 --> 00:58:12,810 1377 00:58:12,810 --> 00:58:15,120 Su atrankos rūšiuoti, tai kaip tik priešingas. 1378 00:58:15,120 --> 00:58:18,950 >> Kiekviename perdavimą, mes žinome, kad Pirmasis yra rūšiuojami. 1379 00:58:18,950 --> 00:58:21,360 Po antrojo kalibre, Antrasis bus surūšiuoti. 1380 00:58:21,360 --> 00:58:26,470 Ir kaip matėte su skaidrių pavyzdžiai, mūsų rūšiuojami dalis tiesiog auga. 1381 00:58:26,470 --> 00:58:34,020 Taigi nustatant mūsų mažiausias į masyvų i visa tai daro 1382 00:58:34,020 --> 00:58:37,340 yra Traukiasi kas mes ieškome tiek kaip 1383 00:58:37,340 --> 00:58:40,164 siekiant sumažinti skaičių lyginimų mes. 1384 00:58:40,164 --> 00:58:41,770 Ar tai prasminga visiems? 1385 00:58:41,770 --> 00:58:42,920 1386 00:58:42,920 --> 00:58:46,380 Ar jums reikia manęs paleisti per, kad vėl lėčiau arba kitais žodžiais? 1387 00:58:46,380 --> 00:58:47,180 Man malonu. 1388 00:58:47,180 --> 00:58:48,095 1389 00:58:48,095 --> 00:58:48,595 Gerai. 1390 00:58:48,595 --> 00:58:50,060 1391 00:58:50,060 --> 00:58:55,540 >> Taigi mes saugoti vertė šiuo metu, 1392 00:58:55,540 --> 00:58:57,840 bet mes taip pat norime, kad išsaugotumėte indeksas. 1393 00:58:57,840 --> 00:59:01,010 Taigi mes ketiname saugoti pozicija iš mažiausių 1394 00:59:01,010 --> 00:59:02,770 vienas, kuris yra tik ketina būti i. 1395 00:59:02,770 --> 00:59:04,357 1396 00:59:04,357 --> 00:59:05,440 Taigi dabar Jokūbas, yra įvykdyta. 1397 00:59:05,440 --> 00:59:06,870 Mes turime ką saugomi. 1398 00:59:06,870 --> 00:59:08,240 1399 00:59:08,240 --> 00:59:11,870 Ir dabar mes turime pažvelgti per nerūšiuotus dalis masyvo. 1400 00:59:11,870 --> 00:59:18,170 Taigi šiuo atveju toks būtų mūsų nerūšiuotas. 1401 00:59:18,170 --> 00:59:20,980 1402 00:59:20,980 --> 00:59:22,462 Tai i. 1403 00:59:22,462 --> 00:59:25,430 1404 00:59:25,430 --> 00:59:26,210 Gerai. 1405 00:59:26,210 --> 00:59:30,040 >> Taigi, ką mes ketiname daryti, bus kilpa. 1406 00:59:30,040 --> 00:59:32,066 Kiekvieną kartą, kai jums reikia kartoti, kad masyvo 1407 00:59:32,066 --> 00:59:33,440 jūsų protas gali eiti į kilpa. 1408 00:59:33,440 --> 00:59:34,760 1409 00:59:34,760 --> 00:59:38,090 Dar kurį int k equals-- ką mes galvojame 1410 00:59:38,090 --> 00:59:39,700 k ketina prilygti pradėti? 1411 00:59:39,700 --> 00:59:41,580 1412 00:59:41,580 --> 00:59:44,766 Tai yra tai, ką mes nustatyti kaip mūsų mažiausias vertė, ir mes norime jį palyginti. 1413 00:59:44,766 --> 00:59:47,090 Ką mes norime jį palyginti su? 1414 00:59:47,090 --> 00:59:48,730 Ji ketina būti tai šalia vienas, tiesa? 1415 00:59:48,730 --> 00:59:53,200 Taigi, mes norime k inicializuoti į i plius 1 paleisti. 1416 00:59:53,200 --> 00:59:55,350 1417 00:59:55,350 --> 01:00:02,800 >> Ir mes norime k šiuo atveju mes jau dydis saugomi čia, 1418 01:00:02,800 --> 01:00:03,930 todėl galime tiesiog naudokite dydį. 1419 01:00:03,930 --> 01:00:06,240 Dydis yra masyvo dydis. 1420 01:00:06,240 --> 01:00:09,620 Ir mes tik norime atnaujinti k vieno kaskart. 1421 01:00:09,620 --> 01:00:17,410 1422 01:00:17,410 --> 01:00:17,910 Cool. 1423 01:00:17,910 --> 01:00:19,650 1424 01:00:19,650 --> 01:00:23,430 Taigi dabar mes turime rasti Mažiausias elementas čia. 1425 01:00:23,430 --> 01:00:24,470 1426 01:00:24,470 --> 01:00:31,380 Taigi, jei mes kartoti, kad mes noriu pasakyti, jei masyvas prie k 1427 01:00:31,380 --> 01:00:37,080 yra mažesnis nei mūsų mažiausias value-- tai kur mes iš tikrųjų 1428 01:00:37,080 --> 01:00:42,950 sekti kas mažiausia here-- 1429 01:00:42,950 --> 01:00:47,740 tada mes norime perleisti kas mūsų mažiausias dydis yra. 1430 01:00:47,740 --> 01:00:50,645 >> Tai reiškia, kad, oi, mes Iteracja per čia. 1431 01:00:50,645 --> 01:00:51,699 1432 01:00:51,699 --> 01:00:53,740 Nepriklausomai vertė yra čia ne mūsų mažiausias dalykas. 1433 01:00:53,740 --> 01:00:54,448 Mes nenorime, kad. 1434 01:00:54,448 --> 01:00:56,100 Norime perleisti jį. 1435 01:00:56,100 --> 01:01:02,050 Taigi, jei mes perskirstymo tai, ką daryti, manote, gali būti šio kodekso čia? 1436 01:01:02,050 --> 01:01:04,160 Norime perleisti Mažiausias ir pozicija. 1437 01:01:04,160 --> 01:01:05,740 1438 01:01:05,740 --> 01:01:07,010 Taigi, kas yra mažiausias šiuo metu? 1439 01:01:07,010 --> 01:01:08,422 1440 01:01:08,422 --> 01:01:09,130 STUDENTŲ: Array k. 1441 01:01:09,130 --> 01:01:09,963 Instruktorius: Array k. 1442 01:01:09,963 --> 01:01:13,480 1443 01:01:13,480 --> 01:01:15,956 Ir kas yra pozicijoje dabar? 1444 01:01:15,956 --> 01:01:20,940 1445 01:01:20,940 --> 01:01:23,000 Kokia indeksai mūsų mažiausias vertė? 1446 01:01:23,000 --> 01:01:24,030 1447 01:01:24,030 --> 01:01:24,530 Tai tiesiog k. 1448 01:01:24,530 --> 01:01:25,690 1449 01:01:25,690 --> 01:01:27,790 Taigi masyvo k, k, jie atitikmenys. 1450 01:01:27,790 --> 01:01:31,670 1451 01:01:31,670 --> 01:01:33,120 Taigi mes norėjome perskirstyti, kad. 1452 01:01:33,120 --> 01:01:34,390 1453 01:01:34,390 --> 01:01:39,950 Ir tada, kai mes rasti mūsų mažiausias, būdamas tai pabaigoje kilpa 1454 01:01:39,950 --> 01:01:45,100 Čia mes nustatėme, ką mūsų mažiausias vertė yra, todėl mes tiesiog sukeisti. 1455 01:01:45,100 --> 01:01:47,100 1456 01:01:47,100 --> 01:01:50,816 Šiuo atveju, pavyzdžiui, pasakyti DUK mažiausia reikšmė yra čia. 1457 01:01:50,816 --> 01:01:51,940 Tai mūsų mažiausią reikšmę. 1458 01:01:51,940 --> 01:01:57,690 >> Mes tik norime sukeisti čia, kuris yra kas, kad swap funkcija apačioje 1459 01:01:57,690 --> 01:02:01,270 darė, kurią mes ką tik rašė savo kartu pora min. 1460 01:02:01,270 --> 01:02:02,775 Todėl ji turėtų atrodyti pažįstamas. 1461 01:02:02,775 --> 01:02:04,320 1462 01:02:04,320 --> 01:02:08,030 Ir tada jis tiesiog pakartoti per, kol jis pasiekia visą kelią 1463 01:02:08,030 --> 01:02:13,100 iki galo, o tai reiškia, kad jūs nulis elementus, kurie yra nerūšiuotas 1464 01:02:13,100 --> 01:02:14,800 ir visa kita buvo rūšiuojami. 1465 01:02:14,800 --> 01:02:16,216 1466 01:02:16,216 --> 01:02:16,715 Prasmės? 1467 01:02:16,715 --> 01:02:18,010 1468 01:02:18,010 --> 01:02:19,280 Mažai konkrečiau? 1469 01:02:19,280 --> 01:02:19,990 Kodas padėti? 1470 01:02:19,990 --> 01:02:21,720 1471 01:02:21,720 --> 01:02:26,410 >> STUDENTŲ: Dėl dydžio, jums niekada tikrai nustatyti, ar jį pakeisti, 1472 01:02:26,410 --> 01:02:27,340 kaip tai žinoti? 1473 01:02:27,340 --> 01:02:32,380 >> Instruktorius: Taigi vienas dalykas pastebėsite čia yra int dydis. 1474 01:02:32,380 --> 01:02:35,680 Taigi mes sakydamas šiame sort-- rūšiuoti yra ši funkcija case-- tai 1475 01:02:35,680 --> 01:02:40,770 pasirinkimas rūšiuoti, tai praėjo su funkcija. 1476 01:02:40,770 --> 01:02:43,460 Taigi, jei ji buvo neišlaikė į, jūs padaryti kažką 1477 01:02:43,460 --> 01:02:47,840 kaip su masyvo ilgis ar jums būtų pakartoti per 1478 01:02:47,840 --> 01:02:49,390 rasti ilgį. 1479 01:02:49,390 --> 01:02:52,680 Bet todėl, kad jis praėjo į, mes galime tik jį naudoti. 1480 01:02:52,680 --> 01:02:55,720 Jūs tiesiog manyti, kad vartotojas padovanojo tau galiojantį dydį 1481 01:02:55,720 --> 01:02:57,698 iš tikrųjų atstovauja Jūsų masyvo dydis. 1482 01:02:57,698 --> 01:02:59,461 1483 01:02:59,461 --> 01:02:59,960 Cool? 1484 01:02:59,960 --> 01:03:01,610 1485 01:03:01,610 --> 01:03:05,870 >> Jei jus vaikinai jokių problemų su jų ar nori daugiau praktikos kodavimo rūšių 1486 01:03:05,870 --> 01:03:08,050 savo, jums reikia eiti į study.cs50. 1487 01:03:08,050 --> 01:03:11,560 1488 01:03:11,560 --> 01:03:12,670 Tai įrankis. 1489 01:03:12,670 --> 01:03:15,040 Jie turi šaškę, kad Jūs iš tikrųjų galite rašyti. 1490 01:03:15,040 --> 01:03:16,180 Jie Pseudocode. 1491 01:03:16,180 --> 01:03:19,310 Jie turi daugiau vaizdo įrašų ir skaidres įskaitant tuos, aš naudoju čia. 1492 01:03:19,310 --> 01:03:23,150 Taigi, jei jūs vis dar jaučiasi tiek neaiškus, pabandykite, kad iš. 1493 01:03:23,150 --> 01:03:25,670 Kaip visada, ateis pasikalbėti su manimi, taip pat. 1494 01:03:25,670 --> 01:03:26,320 Klausimas? 1495 01:03:26,320 --> 01:03:28,611 >> STUDENTŲ: Ar tu sakai, dydis iš anksto numatytam? 1496 01:03:28,611 --> 01:03:29,234 1497 01:03:29,234 --> 01:03:29,900 Instruktorius: Taip. 1498 01:03:29,900 --> 01:03:35,570 Dydis anksčiau apibrėžta iki čia funkciniam deklaracijoje. 1499 01:03:35,570 --> 01:03:39,060 Taigi jūs prielaidą, kad jis buvo priimtas vartotojas, ir už Paprastumo dėlei, 1500 01:03:39,060 --> 01:03:41,896 mes ketiname daryti prielaidą, kad vartotojas davė mums tinkamą dydį. 1501 01:03:41,896 --> 01:03:43,240 Cool. 1502 01:03:43,240 --> 01:03:44,390 Štai atranka rūšiuoti. 1503 01:03:44,390 --> 01:03:45,590 1504 01:03:45,590 --> 01:03:47,640 Vaikinai, aš žinau, mes tiek daug išmokti šiandien. 1505 01:03:47,640 --> 01:03:49,710 Tai tankus duomenys skyriuje. 1506 01:03:49,710 --> 01:03:51,880 1507 01:03:51,880 --> 01:03:57,340 Taigi su tuo, mes ketiname eiti į įterpimo rūšiuoti. 1508 01:03:57,340 --> 01:04:01,550 1509 01:04:01,550 --> 01:04:02,510 >> Gerai. 1510 01:04:02,510 --> 01:04:06,100 Taigi, prieš tai mes turime padaryti, mūsų runtime analizė čia. 1511 01:04:06,100 --> 01:04:10,190 Taigi geriausiu atveju, suteikta, nes aš jums parodė 1512 01:04:10,190 --> 01:04:11,960 Aš jau lentelė rūšies davė jai toli. 1513 01:04:11,960 --> 01:04:15,430 Bet geriausias atvejis runtime, ką mes galvojame? 1514 01:04:15,430 --> 01:04:17,310 1515 01:04:17,310 --> 01:04:18,130 Viskas rūšiuojami. 1516 01:04:18,130 --> 01:04:21,040 1517 01:04:21,040 --> 01:04:22,070 N kvadratu. 1518 01:04:22,070 --> 01:04:24,780 Kiekvienas turi paaiškinimą kodėl jūs manote? 1519 01:04:24,780 --> 01:04:29,060 1520 01:04:29,060 --> 01:04:30,519 >> STUDENTŲ: Jūs lyginate through-- 1521 01:04:30,519 --> 01:04:31,268 Instruktorius: Teisė. 1522 01:04:31,268 --> 01:04:32,540 Jūs lyginate per. 1523 01:04:32,540 --> 01:04:35,630 Kiekviename iteracijos, nors mes mažėjančio tai vieną, 1524 01:04:35,630 --> 01:04:38,950 Jūs vis dar ieškoti per viskas rasti mažiausias. 1525 01:04:38,950 --> 01:04:42,390 Taigi net jei jūsų mažiausias, vertė yra čia pradžioje, 1526 01:04:42,390 --> 01:04:44,710 Jūs vis dar lyginant prieš visa kita 1527 01:04:44,710 --> 01:04:46,550 įsitikinkite, kad jis yra mažiausias dalykas. 1528 01:04:46,550 --> 01:04:49,820 Taigi jūs galų gale eina per maždaug n kvadrato kartus. 1529 01:04:49,820 --> 01:04:51,090 1530 01:04:51,090 --> 01:04:51,590 Gerai. 1531 01:04:51,590 --> 01:04:52,785 Ir kas blogiausiu atveju? 1532 01:04:52,785 --> 01:04:54,350 1533 01:04:54,350 --> 01:04:57,980 Taip pat n kvadratu, nes jūs ketinate reikia daryti, kad ta pačia tvarka. 1534 01:04:57,980 --> 01:05:01,670 Taigi šiuo atveju, atrankos rūšiuoti turi kažką 1535 01:05:01,670 --> 01:05:04,010 kad mes taip pat vadiname tikimasi runtime. 1536 01:05:04,010 --> 01:05:07,400 Taigi kiti, mes tik žinoti viršutinė ir apatinė ribos. 1537 01:05:07,400 --> 01:05:11,180 Priklausomai nuo to, kaip kvailai mūsų sąrašas arba kaip nerūšiuotos tai, 1538 01:05:11,180 --> 01:05:15,350 jie skiriasi n ar n kvadrato. 1539 01:05:15,350 --> 01:05:16,550 Mes nežinome. 1540 01:05:16,550 --> 01:05:22,820 >> Bet todėl, kad pasirinkimas rūšiuoti turi pats Blogiausia ir geriausia atveju, kad sako, kad 1541 01:05:22,820 --> 01:05:25,880 nesvarbu, kokio tipo įėjimo mes turėti, ar tai visiškai 1542 01:05:25,880 --> 01:05:29,130 rūšiuojami arba visiškai atgal rūšiuojamos, tai 1543 01:05:29,130 --> 01:05:30,740 ketina imtis pat laiko. 1544 01:05:30,740 --> 01:05:33,760 Taigi šiuo atveju, jei jūs prisiminti iš mūsų stalo, 1545 01:05:33,760 --> 01:05:38,610 ji iš tikrųjų turėjo tokią vertę, kuri šios dvi rūšys neturi, 1546 01:05:38,610 --> 01:05:40,390 kuris yra laukiamas runtime. 1547 01:05:40,390 --> 01:05:43,350 Taigi mes žinome, kad, kai mes paleisti atrankos rūšiuoti, 1548 01:05:43,350 --> 01:05:45,380 tai garantuoja, kad paleisti n kvadrato laiką. 1549 01:05:45,380 --> 01:05:46,630 Nėra kintamumas yra. 1550 01:05:46,630 --> 01:05:47,630 Tai tiesiog buvo tikėtasi. 1551 01:05:47,630 --> 01:05:48,820 1552 01:05:48,820 --> 01:05:52,140 Ir vėl, jei norite sužinoti daugiau, imtis CS 124 pavasarį. 1553 01:05:52,140 --> 01:05:55,370 1554 01:05:55,370 --> 01:05:56,712 Gerai. 1555 01:05:56,712 --> 01:05:57,545 Mes matėme šį vieną. 1556 01:05:57,545 --> 01:05:58,530 1557 01:05:58,530 --> 01:05:59,030 Cool. 1558 01:05:59,030 --> 01:06:00,930 Taigi įterpimo rūšiuoti. 1559 01:06:00,930 --> 01:06:03,330 Ir aš tikriausiai bus į Blaze per tai. 1560 01:06:03,330 --> 01:06:05,440 Aš nenoriu, kad jūs, vaikinai kodą jį. 1561 01:06:05,440 --> 01:06:06,580 Mes tiesiog vaikščioti per ją. 1562 01:06:06,580 --> 01:06:10,500 Taigi įterpimo rūšiuoti yra natūra panašių į pasirinkimo rūšiuoti 1563 01:06:10,500 --> 01:06:14,460 tuo, kad mes turime tiek nerūšiuotas ir rūšiuoti dalį masyvo. 1564 01:06:14,460 --> 01:06:20,260 >> Bet kas skiriasi, kad kaip mes pereiti per vieną, 1565 01:06:20,260 --> 01:06:24,210 mes tiesiog kad ir kiek yra šalia mūsų nerūšiuotas, 1566 01:06:24,210 --> 01:06:28,507 ir teisingai rūšiuoti į mūsų išrūšiuotų masyvo. 1567 01:06:28,507 --> 01:06:30,090 Tai bus daugiau prasmės, pavyzdys. 1568 01:06:30,090 --> 01:06:31,140 1569 01:06:31,140 --> 01:06:35,430 Taigi viskas prasideda nerūšiuotas, Kaip ir su atrankos rūšiuoti. 1570 01:06:35,430 --> 01:06:38,740 Ir mes ketiname rūšiuoti tai Didėjančia tvarka kaip mes buvome. 1571 01:06:38,740 --> 01:06:40,360 1572 01:06:40,360 --> 01:06:43,340 Taigi mūsų pirmojo perdavimo mes žengti pirmą vertę 1573 01:06:43,340 --> 01:06:46,700 ir sakome, gerai, jūs esate dabar vieni patys sąrašą. 1574 01:06:46,700 --> 01:06:49,150 >> Nes esate sąrašą patys, jums bus rūšiuojami. 1575 01:06:49,150 --> 01:06:52,460 Sveikiname yra Pirmasis elementas šiame masyve. 1576 01:06:52,460 --> 01:06:54,800 Jūs jau Surikiuota visa savo. 1577 01:06:54,800 --> 01:06:58,900 Taigi dabar mes turime sutvarkyti ir nerūšiuotus masyvas. 1578 01:06:58,900 --> 01:07:01,760 Taigi, dabar mes pirmiausia. 1579 01:07:01,760 --> 01:07:05,600 Kas atsitinka, tarp čia ir čia yra tai, kad mes sakome, 1580 01:07:05,600 --> 01:07:08,890 Gerai, kad mes ketiname pažvelgti Pirmoji vertybė mūsų nerūšiuotų masyvo 1581 01:07:08,890 --> 01:07:13,270 ir mes ketiname įvesti ją į savo teisinga vieta išrūšiuotų masyvo. 1582 01:07:13,270 --> 01:07:21,460 >> Taigi, ką mes darome, yra mes 5 ir mes sakome, gerai, 5 yra didesnis nei 3, 1583 01:07:21,460 --> 01:07:24,630 todėl mes tiesiog įdėkite jį į dešinę į šią teisę. 1584 01:07:24,630 --> 01:07:25,130 Mes gerai. 1585 01:07:25,130 --> 01:07:26,200 1586 01:07:26,200 --> 01:07:28,420 Taigi mes einame į mūsų kitą. 1587 01:07:28,420 --> 01:07:29,720 Ir mes 2. 1588 01:07:29,720 --> 01:07:34,330 Mes sakome, gerai, 2 mažiau nei 3, todėl mes žinome, kad jo 1589 01:07:34,330 --> 01:07:36,220 turi būti ne frontas mūsų sąraše dabar. 1590 01:07:36,220 --> 01:07:41,800 Taigi, ką mes darome, yra mūsų numušti 3 ir 5 ir mes judėti 2 į tą pirmą lizdą. 1591 01:07:41,800 --> 01:07:42,990 1592 01:07:42,990 --> 01:07:45,870 Taigi mes tiesiog įdėti jį į teisinga vieta turėtų būti. 1593 01:07:45,870 --> 01:07:46,960 1594 01:07:46,960 --> 01:07:49,470 >> Tada mes pažvelgti į mūsų Kitas vienas, ir mes sakome 6. 1595 01:07:49,470 --> 01:07:53,620 GERAI, yra didesnis kaip 6 viskas mūsų išrūšiuotų masyvo, 1596 01:07:53,620 --> 01:07:56,000 todėl mes tiesiog pažymėti jį iki galo. 1597 01:07:56,000 --> 01:07:56,960 Ir tada mes pažvelgti 4. 1598 01:07:56,960 --> 01:07:58,130 1599 01:07:58,130 --> 01:08:03,020 4 yra mažesnis nei 6, tai mažiau nei 5, bet tai didesnės negu 3. 1600 01:08:03,020 --> 01:08:06,270 Taigi mes tiesiog įdėkite jį į dešinę tarp 3 ir 5 vidurinės. 1601 01:08:06,270 --> 01:08:07,380 1602 01:08:07,380 --> 01:08:10,530 Taigi, norint, kad mažai tiek daugiau betono, 1603 01:08:10,530 --> 01:08:12,280 čia yra tipo idėja, kas atsitiko. 1604 01:08:12,280 --> 01:08:16,430 Taigi už kiekvieną nerūšiuotų elementą, mes nustatyti, kur iš išrūšiuotų dalis 1605 01:08:16,430 --> 01:08:17,090 ji yra. 1606 01:08:17,090 --> 01:08:20,680 >> Taigi atsižvelgiant į tai, kad rūšiuotus ir nerūšiuotus, 1607 01:08:20,680 --> 01:08:26,080 mes turime išanalizuoti per ir figūra iš kur jis telpa į rūšiuotų masyvo. 1608 01:08:26,080 --> 01:08:31,460 Ir mes jį įterpti perkeliant elementai į dešinę nuo jos žemyn. 1609 01:08:31,460 --> 01:08:34,910 Ir tada mes tiesiog laikyti Iteracja per kol mes 1610 01:08:34,910 --> 01:08:39,270 turi visiškai surūšiuoti sąrašą kur nerūšiuotas dabar nulis 1611 01:08:39,270 --> 01:08:41,720 ir rūšiuoti užima visuma mūsų sąraše. 1612 01:08:41,720 --> 01:08:43,146 1613 01:08:43,146 --> 01:08:45,854 Taigi, dar kartą, kad viskas dar konkretesnis, turime Pseudocode. 1614 01:08:45,854 --> 01:08:47,979 1615 01:08:47,979 --> 01:08:52,410 >> Taigi, iš esmės, nes aš tai lygus 0 iki n minus 1, 1616 01:08:52,410 --> 01:08:54,790 tai tik mūsų masyvas ilgis. 1617 01:08:54,790 --> 01:09:00,979 Mes turime tam tikrą elementą, kuris yra lygus pirmasis masyvas arba pirmieji indeksai. 1618 01:09:00,979 --> 01:09:03,200 Mes nustatėme j lygią. 1619 01:09:03,200 --> 01:09:04,649 1620 01:09:04,649 --> 01:09:09,210 Taigi, nors j yra didesnis nei nulis ir masyvas, j minus 1 1621 01:09:09,210 --> 01:09:11,660 yra didesnis nei elementas, taigi visi tai daro 1622 01:09:11,660 --> 01:09:17,479 yra užtikrinti, kad Jūsų j tikrai atstovauja 1623 01:09:17,479 --> 01:09:20,010 nerūšiuotus dalis masyvo. 1624 01:09:20,010 --> 01:09:30,745 >> Taigi, nors vis dar yra dalykų, rūšiuoti ir j minus vienas is-- ką 1625 01:09:30,745 --> 01:09:31,840 yra elementas jai? 1626 01:09:31,840 --> 01:09:34,760 J nebuvo apibrėžta čia. 1627 01:09:34,760 --> 01:09:35,677 Tai tipo erzina. 1628 01:09:35,677 --> 01:09:36,176 Gerai. 1629 01:09:36,176 --> 01:09:36,689 Anyways. 1630 01:09:36,689 --> 01:09:39,899 Taigi j minus 1, jūs Tikrindami prieš jį elementas. 1631 01:09:39,899 --> 01:09:46,460 Jūs sakote, gerai, yra elementas prieš kur aš am-- tegul 1632 01:09:46,460 --> 01:09:47,540 iš tikrųjų tai atkreipia dėmesį. 1633 01:09:47,540 --> 01:09:52,580 1634 01:09:52,580 --> 01:09:56,830 Taigi galime sakyti, tai yra kaip mūsų antrąjį perdavimą. 1635 01:09:56,830 --> 01:09:59,525 Taigi aš bus lygus 1, kuris yra čia. 1636 01:09:59,525 --> 01:10:03,310 1637 01:10:03,310 --> 01:10:06,025 >> Taigi aš bus lygus 1. 1638 01:10:06,025 --> 01:10:09,510 1639 01:10:09,510 --> 01:10:13,702 Tai būtų 2, 4, 5, 6, 7. 1640 01:10:13,702 --> 01:10:16,060 1641 01:10:16,060 --> 01:10:16,750 Gerai. 1642 01:10:16,750 --> 01:10:20,945 Taigi, mūsų elementas šioje byloje bus lygus 4. 1643 01:10:20,945 --> 01:10:22,110 1644 01:10:22,110 --> 01:10:24,946 Ir mes kai j, kad yra bus lygus 1. 1645 01:10:24,946 --> 01:10:29,770 1646 01:10:29,770 --> 01:10:30,971 Oi, j yra mažėjančio. 1647 01:10:30,971 --> 01:10:31,720 Štai ką ji yra. 1648 01:10:31,720 --> 01:10:35,680 Taigi j yra lygus i, todėl, kas tai yra pasakyti, kad, kaip mes judėti į priekį, 1649 01:10:35,680 --> 01:10:37,530 mes tiesiog įsitikinkite kad mes ne per 1650 01:10:37,530 --> 01:10:43,520 indeksavimo šį kelią, kai mes bandome įterpti daiktus į mūsų surūšiuoti sąrašą. 1651 01:10:43,520 --> 01:10:49,850 >> Taigi, kai j yra lygus 1 ir šiuo atveju masyvas j minus one-- todėl masyvas j minus 1 1652 01:10:49,850 --> 01:10:54,610 yra 2 šio case-- jei tai didesnė negu elementų, 1653 01:10:54,610 --> 01:10:57,700 tada visa tai daro Stumdomi dalykų žemyn. 1654 01:10:57,700 --> 01:11:04,790 Taigi, šiuo atveju, masyvas j minus vienas būtų masyvas nulis, kuris yra 2. 1655 01:11:04,790 --> 01:11:08,430 2 yra ne didesnis nei 4, todėl šis nevykdo. 1656 01:11:08,430 --> 01:11:11,460 Taigi perėjimas nepereis žemyn. 1657 01:11:11,460 --> 01:11:18,790 Kas tai čia yra tik perkelti savo rūšiuotą masyvas žemyn. 1658 01:11:18,790 --> 01:11:22,340 1659 01:11:22,340 --> 01:11:26,400 Šiuo atveju, iš tikrųjų, mes gali do-- padarykime šį 3. 1660 01:11:26,400 --> 01:11:28,080 1661 01:11:28,080 --> 01:11:31,970 Taigi, jei mes vaikščioti per su Šiame pavyzdyje mes dabar čia. 1662 01:11:31,970 --> 01:11:32,740 Išrūšiuojama. 1663 01:11:32,740 --> 01:11:34,492 1664 01:11:34,492 --> 01:11:35,200 Tai nerūšiuotas. 1665 01:11:35,200 --> 01:11:39,090 1666 01:11:39,090 --> 01:11:39,860 Cool? 1667 01:11:39,860 --> 01:11:46,620 Taigi, aš, yra lygus 2, todėl mūsų elementas yra lygus 3. 1668 01:11:46,620 --> 01:11:47,920 1669 01:11:47,920 --> 01:11:52,270 Ir mūsų j yra lygus 2. 1670 01:11:52,270 --> 01:12:00,620 Taigi, mes pažvelgti pro ir mes pasakyti, GERAI, yra masyvas j minus vienas 1671 01:12:00,620 --> 01:12:03,470 didesnė negu elemento kad mes ieškome? 1672 01:12:03,470 --> 01:12:05,540 Ir atsakymas yra "taip", ar ne? 1673 01:12:05,540 --> 01:12:11,275 4 yra didesnis nei 3 ir j yra 2, todėl šis kodas vykdo. 1674 01:12:11,275 --> 01:12:12,510 1675 01:12:12,510 --> 01:12:18,550 >> Taigi, dabar, ką mes darome masyvą ne 2, todėl čia mes apsikeitimo. 1676 01:12:18,550 --> 01:12:25,620 Taigi mes tiesiog pasakyti, GERAI, masyvas ne 2 dabar bus 3. 1677 01:12:25,620 --> 01:12:28,130 1678 01:12:28,130 --> 01:12:32,340 Ir j ketina prilygti j minus 1, tai yra 1. 1679 01:12:32,340 --> 01:12:34,590 1680 01:12:34,590 --> 01:12:37,200 Kad siaubinga, bet vaikinai gaunate idėja. 1681 01:12:37,200 --> 01:12:38,360 J yra dabar lygus 1. 1682 01:12:38,360 --> 01:12:44,360 Ir masyvas j tiesiog bus lygus mūsų elementas, kuris buvo 4. 1683 01:12:44,360 --> 01:12:45,950 1684 01:12:45,950 --> 01:12:48,570 Aš ištrinti kažką aš ne turėti ar miswrote kažkas, 1685 01:12:48,570 --> 01:12:49,910 bet jus vaikinai gaunate idėja. 1686 01:12:49,910 --> 01:12:50,640 >> Tai judėti n. 1687 01:12:50,640 --> 01:12:51,920 1688 01:12:51,920 --> 01:12:57,960 Ir tada, jei tai būtų, tai būtų kilpa kartą ir jis pasakytų, OK, j yra 1 metu. 1689 01:12:57,960 --> 01:13:00,665 Ir masyvas j minus 1 yra dabar 2. 1690 01:13:00,665 --> 01:13:01,750 1691 01:13:01,750 --> 01:13:03,760 Ar 2 mažiau nei mūsų elementą? 1692 01:13:03,760 --> 01:13:04,540 Ne? 1693 01:13:04,540 --> 01:13:07,970 Tai reiškia, kad mes įterpti šį elementą 1694 01:13:07,970 --> 01:13:10,110 teisinga vietoje mūsų išrūšiuotų masyvo. 1695 01:13:10,110 --> 01:13:14,400 Tada mes galime priimti tai ir sakome, Gerai, mūsų Rūšiuota masyvas yra čia. 1696 01:13:14,400 --> 01:13:19,940 Ir tai užtruktų šį numerį 6 ir būti kaip, gerai, yra 6 mažiau nei šis skaičius? 1697 01:13:19,940 --> 01:13:20,480 Ne? 1698 01:13:20,480 --> 01:13:21,080 Cool. 1699 01:13:21,080 --> 01:13:22,680 Mes gerai. 1700 01:13:22,680 --> 01:13:23,530 >> Dar kartą. 1701 01:13:23,530 --> 01:13:24,740 Mes sakome 7. 1702 01:13:24,740 --> 01:13:29,010 Yra 7 mažiau nei pabaigos Mūsų išrūšiuotų masyvo? 1703 01:13:29,010 --> 01:13:29,520 Ne. 1704 01:13:29,520 --> 01:13:30,430 Taigi mes puikiai. 1705 01:13:30,430 --> 01:13:32,760 Taigi tai būtų rūšiuojamos. 1706 01:13:32,760 --> 01:13:38,610 Iš esmės visa tai daro jis sako, imk 1707 01:13:38,610 --> 01:13:42,060 pirmasis elementas Jūsų nerūšiuotas masyvas, 1708 01:13:42,060 --> 01:13:46,010 išsiaiškinti, kur jis eina savo išrūšiuotų masyvo. 1709 01:13:46,010 --> 01:13:48,780 Ir tai tik rūpinasi apsikeitimo sandorių daryti. 1710 01:13:48,780 --> 01:13:51,300 Jūs iš esmės tiesiog Swapping kol jis yra reikiamoje vietoje. 1711 01:13:51,300 --> 01:13:53,600 1712 01:13:53,600 --> 01:13:56,990 Vaizdo vaizdą, kad jūs juda viską nustato tai, kad. 1713 01:13:56,990 --> 01:13:59,420 >> Taigi, tai, kaip puse burbulo rūšiuoti esque. 1714 01:13:59,420 --> 01:14:02,280 1715 01:14:02,280 --> 01:14:03,420 Patikrinkite tyrimą 50. 1716 01:14:03,420 --> 01:14:06,000 Aš labai rekomenduoju bando koduoti tai savo. 1717 01:14:06,000 --> 01:14:07,220 1718 01:14:07,220 --> 01:14:12,450 Jei turite kokių nors klausimų ar norite pamatyti pavyzdį kodą įterpties rūšiuoti, 1719 01:14:12,450 --> 01:14:13,750 Please let me know. 1720 01:14:13,750 --> 01:14:14,500 Aš visada aplink. 1721 01:14:14,500 --> 01:14:16,600 1722 01:14:16,600 --> 01:14:20,200 Taigi blogiausiu atveju runtime ir geriausio atvejo runtime. 1723 01:14:20,200 --> 01:14:30,700 Kaip jums vaikinas pamatė nuo stalo aš jau jums parodė, tai tiek n kvadrato ir n. 1724 01:14:30,700 --> 01:14:35,590 >> Tiek rūšies nenukryptų, ką mes kalbėjome apie su mūsų ankstesnių rūšių, blogiausia 1725 01:14:35,590 --> 01:14:38,760 atvejis runtime yra tai, kad jei Tai visiškai Nerūšiuotos, 1726 01:14:38,760 --> 01:14:42,530 turime palyginti visus šių n kartų. 1727 01:14:42,530 --> 01:14:47,020 Mes apskritai daug palyginimų nes jei tai vyksta atvirkštine eilės tvarka, 1728 01:14:47,020 --> 01:14:50,360 mes ketiname pasakyti, GERAI, tai yra tas pats, tai yra gerai, 1729 01:14:50,360 --> 01:14:54,650 ir tai vienas bus turi būti lyginami nuo pirmojo vieno iki būti perkeltas atgal. 1730 01:14:54,650 --> 01:14:56,710 Ir kaip mes gauti į galine, turime 1731 01:14:56,710 --> 01:14:59,440 palyginti, palyginti ir palyginti su viskuo. 1732 01:14:59,440 --> 01:15:03,030 >> Todėl galų gale buvo maždaug n kvadratu. 1733 01:15:03,030 --> 01:15:09,510 Jei ji teisinga, tada jūs pasakyti, GERAI, 2, jūs gerai. 1734 01:15:09,510 --> 01:15:11,330 3, jūs palyginti su 2. 1735 01:15:11,330 --> 01:15:12,310 Jūs gerai. 1736 01:15:12,310 --> 01:15:14,150 4, tiesiog palyginti su uodega. 1737 01:15:14,150 --> 01:15:14,990 Jūs gerai. 1738 01:15:14,990 --> 01:15:17,140 6, palyginti su uodega, tu gerai. 1739 01:15:17,140 --> 01:15:20,870 Taigi už kiekvieną vietoje, jei tai jau rūšiuojami, kad darote vieną palyginimą. 1740 01:15:20,870 --> 01:15:22,320 Taigi tai tiesiog n. 1741 01:15:22,320 --> 01:15:26,840 Ir todėl, kad mes turime geriausiu atveju runtime n ir blogiausio atvejo runtime n 1742 01:15:26,840 --> 01:15:28,680 kvadrato, mes neturime laukiamą runtime. 1743 01:15:28,680 --> 01:15:31,290 1744 01:15:31,290 --> 01:15:34,020 >> Tai tiesiog priklauso nuo chaosas mūsų sąraše ten. 1745 01:15:34,020 --> 01:15:35,860 1746 01:15:35,860 --> 01:15:39,530 Ir vėl, kita grafikas ir kita lentelė. 1747 01:15:39,530 --> 01:15:41,170 Taigi skirtumai tarp rūšių. 1748 01:15:41,170 --> 01:15:44,180 Aš tik ketina vėjas per, aš jaustis kaip mes kalbėjome plačiai 1749 01:15:44,180 --> 01:15:46,570 apie tai, kaip jie visų tipų iš skirtis ir susieti kartu. 1750 01:15:46,570 --> 01:15:50,564 Taigi Merge sort yra paskutinis Aš pagimdė jums, vaikinai su. 1751 01:15:50,564 --> 01:15:52,105 Mes turime gana spalvingas vaizdas. 1752 01:15:52,105 --> 01:15:53,860 1753 01:15:53,860 --> 01:15:56,040 Taigi sujungti rūšiuoti yra grįžtamojo algoritmas. 1754 01:15:56,040 --> 01:15:59,910 Taigi jūs žinote, ką grįžtamojo funkcija? 1755 01:15:59,910 --> 01:16:01,550 1756 01:16:01,550 --> 01:16:03,320 >> Kiekvienas nori pasakyti? 1757 01:16:03,320 --> 01:16:04,739 Jūs norite išbandyti? 1758 01:16:04,739 --> 01:16:07,280 Taigi grįžtamojo funkcija yra tik funkcija, kuri vadina save. 1759 01:16:07,280 --> 01:16:08,570 1760 01:16:08,570 --> 01:16:11,590 Taigi, jei jus vaikinai žino su Fibonačio seka, 1761 01:16:11,590 --> 01:16:15,670 Štai laikoma rekursywny nes vartojate praėjusius dvejus 1762 01:16:15,670 --> 01:16:17,530 ir įtraukti juos kartu gauti savo kitą. 1763 01:16:17,530 --> 01:16:21,440 Taigi grįžtamojo aš visada manau, Rekursija kaip kaip spiralė 1764 01:16:21,440 --> 01:16:24,430 todėl jūs, kaip spirale žemyn į jį. 1765 01:16:24,430 --> 01:16:27,150 Bet tai tik funkcija kad save vadina. 1766 01:16:27,150 --> 01:16:32,660 >> Ir, iš tikrųjų, tikrai greitai aš gali parodyti jums, ką tai atrodo. 1767 01:16:32,660 --> 01:16:34,260 1768 01:16:34,260 --> 01:16:41,840 Taigi grįžtamojo čia jei pažvelgsime, tai grįžtamojo būdas Apibendrinant per masyvą. 1769 01:16:41,840 --> 01:16:45,900 1770 01:16:45,900 --> 01:16:47,880 Taigi visi tai mes darome, yra turime sumą funkciją 1771 01:16:47,880 --> 01:16:52,210 suma, kad užtrunka dydį ir masyvą. 1772 01:16:52,210 --> 01:16:55,210 Ir, jei pastebėsite, dydis mažinimą pagal vieną kiekvieną kartą. 1773 01:16:55,210 --> 01:17:00,365 Ir visa tai daro, yra jei x yra lygi zero-- tad jei masyvo dydis 1774 01:17:00,365 --> 01:17:02,710 yra lygus zero-- jis grįžta prie nulio. 1775 01:17:02,710 --> 01:17:10,440 >> Priešingu atveju jis apibendrina tai paskutinis elementas masyve, 1776 01:17:10,440 --> 01:17:14,790 ir tada užima sumą masyvo poilsio. 1777 01:17:14,790 --> 01:17:17,555 Taigi tai tiesiog reikia suskirstyti į mažesnius ir mažesnius problemų. 1778 01:17:17,555 --> 01:17:18,990 1779 01:17:18,990 --> 01:17:21,890 Trumpai tariant, rekursija, funkcija, kuri vadina save. 1780 01:17:21,890 --> 01:17:25,740 Jei tai viskas, ką gavau iš to, kad tai, ką rekursywny funkcija. 1781 01:17:25,740 --> 01:17:29,870 Pavartojus 51, jūs gausite labai, labai patogu su rekursijos. 1782 01:17:29,870 --> 01:17:31,110 1783 01:17:31,110 --> 01:17:32,370 Tai tikrai cool. 1784 01:17:32,370 --> 01:17:34,660 Buvo logiška ne kaip 03:00 Vienos nakties out. 1785 01:17:34,660 --> 01:17:37,900 Ir man buvo kaip, kodėl aš niekada naudoti? 1786 01:17:37,900 --> 01:17:39,170 1787 01:17:39,170 --> 01:17:42,430 >> Taigi merge rūšiuoti, iš esmės ką jis ketina padaryti, tai jis 1788 01:17:42,430 --> 01:17:45,620 ketina ją padalyti ir sumušė jį žemyn, kol jis tiesiog pavieniai elementai. 1789 01:17:45,620 --> 01:17:47,570 Pavieniai elementai lengvai rūšiuoti. 1790 01:17:47,570 --> 01:17:48,070 Mes matome, kad. 1791 01:17:48,070 --> 01:17:50,760 Jei turite vieną elementą, tai jau laikomas Rūšiuota. 1792 01:17:50,760 --> 01:17:53,800 Taigi ant n elementų įvedimo, jei n yra mažiau nei 2, 1793 01:17:53,800 --> 01:17:58,120 tiesiog grįžti, nes tuo būdu tai arba 0 arba 1, kaip mes matėme. 1794 01:17:58,120 --> 01:18:00,050 Tie laikomi rūšiuotas elementai. 1795 01:18:00,050 --> 01:18:02,170 >> Kitaip sulaužyti per pusę. 1796 01:18:02,170 --> 01:18:06,336 Rūšiuoti pirmąjį pusmetį, rūšiuoti sekundę pusė, ir tada sujungti juos kartu. 1797 01:18:06,336 --> 01:18:07,460 Kodėl jis vadinamas merge sort. 1798 01:18:07,460 --> 01:18:08,700 1799 01:18:08,700 --> 01:18:12,155 Taigi, mes turime čia mes rūšiuoti juos. 1800 01:18:12,155 --> 01:18:13,410 1801 01:18:13,410 --> 01:18:17,210 Taigi mes nuolat turėti juos iki masyvo dydis yra 1. 1802 01:18:17,210 --> 01:18:20,790 Taigi, kai jis 1, mes tiesiog grįžti nes tai yra surūšiuoti masyvas, 1803 01:18:20,790 --> 01:18:23,940 ir tai yra surūšiuoti masyvas, o tai Rūšiuota masyvas, mes visi rūšiuojami. 1804 01:18:23,940 --> 01:18:25,390 1805 01:18:25,390 --> 01:18:29,420 Taigi, ką mes darome, yra mūsų pradėti sujungia juos kartu. 1806 01:18:29,420 --> 01:18:31,820 >> Taigi, kaip jūs galite galvoti apie sujungimas yra 1807 01:18:31,820 --> 01:18:36,240 tiesiog pašalinti mažesni numeris kiekvieno sub masyvų 1808 01:18:36,240 --> 01:18:38,330 ir tiesiog pridėti jį prie susiformavusio masyvo. 1809 01:18:38,330 --> 01:18:44,290 Taigi, jei jums atrodo čia, kai mes turime Šie rinkiniai mes turime 4, 6 ir 1. 1810 01:18:44,290 --> 01:18:47,280 Kai mes norime sujungti jų mes žiūrime į šiuos du pirmuosius 1811 01:18:47,280 --> 01:18:50,730 ir sakome, gerai, 1 yra mažesnis, jis eina į priekį. 1812 01:18:50,730 --> 01:18:54,330 4 ir 6, nėra nieko palyginti jis, tiesiog pažymėti jį iki galo. 1813 01:18:54,330 --> 01:18:58,020 >> Kai mes sujungti šias dvi, mes tiesiog imtis mažesnioji iš šių dviejų, 1814 01:18:58,020 --> 01:18:59,310 todėl 1. 1815 01:18:59,310 --> 01:19:01,690 Ir dabar mes mažesnis iš šių dviejų, SO2. 1816 01:19:01,690 --> 01:19:03,330 Mažesnis iš šių dviejų, 3. 1817 01:19:03,330 --> 01:19:06,260 Mažesnis iš šių dviejų, 4, 5, 6. 1818 01:19:06,260 --> 01:19:08,630 Taigi jūs tiesiog traukiant juos. 1819 01:19:08,630 --> 01:19:11,210 Ir todėl, kad jie jau anksčiau rūšiuojamos, 1820 01:19:11,210 --> 01:19:14,300 jums tereikia vieną palyginimas kiekvieną kartą. 1821 01:19:14,300 --> 01:19:19,610 Taigi daugiau kodo čia, tiesiog atstovavimas. 1822 01:19:19,610 --> 01:19:24,410 Taigi galite pradėti vidurį ir Jūs tarsi kairė ir dešinė 1823 01:19:24,410 --> 01:19:26,180 ir tada jums tiesiog sujungti juos. 1824 01:19:26,180 --> 01:19:30,080 >> Ir mes neturime kodą už sulieti čia. 1825 01:19:30,080 --> 01:19:34,110 Bet vėl gi, jei jūs einate į studijuoti 50, tai bus ten. 1826 01:19:34,110 --> 01:19:36,860 Kitaip ateiti pasikalbėti su manimi jei jūs vis dar painiojama. 1827 01:19:36,860 --> 01:19:42,340 Toks kietas dalykas čia yra tai, kad geriausias atvejis, blogiausiu atveju, ir tikimasi, Runtime 1828 01:19:42,340 --> 01:19:46,250 visi esame žurnalas n, kuris yra daug geriau, nei mes 1829 01:19:46,250 --> 01:19:48,000 matyti, kad mūsų dvasia poilsio. 1830 01:19:48,000 --> 01:19:51,840 Mes matėme n kvadratu ir tai, ką mes iš tikrųjų 1831 01:19:51,840 --> 01:19:54,380 gauti čia n log n, kuris yra puikus. 1832 01:19:54,380 --> 01:19:55,830 >> Pažvelkite, kiek daug geriau, kad yra. 1833 01:19:55,830 --> 01:19:56,780 Toks gražus kreivė. 1834 01:19:56,780 --> 01:19:58,130 1835 01:19:58,130 --> 01:20:00,120 Taigi yra daug veiksmingiau. 1836 01:20:00,120 --> 01:20:03,510 Jei kada nors gali, naudojimas sujungti rūšiuoti. 1837 01:20:03,510 --> 01:20:04,810 Tai bus jums sutaupyti laiko. 1838 01:20:04,810 --> 01:20:07,670 Ir vėl, kaip mes sakėme, jei esate šiame apatinėje regione, 1839 01:20:07,670 --> 01:20:09,480 tai nereiškia, kad kad daug skirtumų. 1840 01:20:09,480 --> 01:20:11,360 Jūs gausite iki tūkstančių ir tūkstančiai įėjimai, 1841 01:20:11,360 --> 01:20:13,318 jūs tikrai norite efektyvesnis algoritmas. 1842 01:20:13,318 --> 01:20:14,730 1843 01:20:14,730 --> 01:20:19,400 Ir vėl, mūsų mielas lentelėje visi rūšių, kad jums, vaikinai šiandien išmokote. 1844 01:20:19,400 --> 01:20:21,157 >> Taigi aš žinau, tai buvo tankus dieną. 1845 01:20:21,157 --> 01:20:23,490 Tai ne visada yra siekiant padėti jums su jūsų pset. 1846 01:20:23,490 --> 01:20:28,250 Bet aš tik noriu padaryti atsisakymas kad skyriuje yra ne tik apie psets. 1847 01:20:28,250 --> 01:20:31,240 Visa tai medžiaga yra teisingas žaidimas jūsų kontrolinius. 1848 01:20:31,240 --> 01:20:35,430 Ir taip pat, jei jūs darote tęsti su CS, tai tikrai svarbu pagrindai 1849 01:20:35,430 --> 01:20:37,870 kad jums reikės žinoti. 1850 01:20:37,870 --> 01:20:41,700 Taigi keletą dienų bus šiek tiek daugiau pset pagalba, 1851 01:20:41,700 --> 01:20:44,600 bet kelios savaitės bus daug tikrasis turinys 1852 01:20:44,600 --> 01:20:46,600 kad gali atrodyti super naudinga jums dabar, 1853 01:20:46,600 --> 01:20:51,215 bet pažadu, jeigu jūs ir toliau dėl bus labai, labai naudinga. 1854 01:20:51,215 --> 01:20:52,560 1855 01:20:52,560 --> 01:20:54,250 >> Štai jį skyriuje. 1856 01:20:54,250 --> 01:20:55,250 Žemyn į vielos. 1857 01:20:55,250 --> 01:20:56,570 Aš tai padariau per vieną minutę. 1858 01:20:56,570 --> 01:20:58,262 1859 01:20:58,262 --> 01:20:58,970 Bet ten jūs einate. 1860 01:20:58,970 --> 01:21:01,240 Ir aš turiu spurgos ar saldainiai. 1861 01:21:01,240 --> 01:21:03,464 Ar kas nors alergiškas nieko, beje? 1862 01:21:03,464 --> 01:21:05,307 1863 01:21:05,307 --> 01:21:05,890 Kiaušiniai ir pieno. 1864 01:21:05,890 --> 01:21:08,120 Taigi spurgos ne? 1865 01:21:08,120 --> 01:21:09,400 1866 01:21:09,400 --> 01:21:10,160 Gerai. 1867 01:21:10,160 --> 01:21:10,770 Gerai. 1868 01:21:10,770 --> 01:21:12,120 Šokoladas ne? 1869 01:21:12,120 --> 01:21:12,620 Starburst. 1870 01:21:12,620 --> 01:21:13,837 1871 01:21:13,837 --> 01:21:14,670 Pliūpsniais yra geros. 1872 01:21:14,670 --> 01:21:15,170 Gerai. 1873 01:21:15,170 --> 01:21:17,045 Mes ketiname turėti Starburst kitą savaitę tada. 1874 01:21:17,045 --> 01:21:18,240 Štai ką aš gausiu. 1875 01:21:18,240 --> 01:21:19,690 Jūs vaikinai turi labai savaitės. 1876 01:21:19,690 --> 01:21:20,460 Skaitykite savo spec. 1877 01:21:20,460 --> 01:21:22,130 >> Leiskite man žinoti, jei turite kokių nors klausimų. 1878 01:21:22,130 --> 01:21:25,300 Pset dvi rūšys turėtų būti iš jums ketvirtadienis. 1879 01:21:25,300 --> 01:21:28,320 Jei turite kokių nors klausimų, apie tai, kaip aš surūšiuoti kažką 1880 01:21:28,320 --> 01:21:32,250 arba kodėl aš surūšiuoti kažką taip, kaip man nebuvo, rašykite man, atėjo pasikalbėti su manimi. 1881 01:21:32,250 --> 01:21:34,210 Aš šiek tiek kvailai tai savaitę, bet aš pažadu 1882 01:21:34,210 --> 01:21:36,340 Aš vis dar atsakyti per 24 valandas. 1883 01:21:36,340 --> 01:21:38,240 Taigi turite puikią savaitę, kiekvieną. 1884 01:21:38,240 --> 01:21:40,090 Sėkmės jūsų pset. 1885 01:21:40,090 --> 01:21:41,248