[Musika jotzen] ANDI Peng: Ongi aste 3. ataleko izateko. Eskerrik asko, you guys etortzeagatik Gaur, hasteko, honek denbora lehenago. Lortu dugu polit bat, gutxi gaur intimo taldea. Beraz, espero dugu lortu dugu akabera, agian, hasieran, Pixka bat gaur goiz. Beraz, azkar, besterik batzuk gaur agenda deialdiak. Hasi aurretik dugu, ez gara besterik gabe, joan baino gehiago joan arazo logistiko batzuk laburrak, pset galdera, debrief, horrelako gauzak. Eta gero, eskuin murgiltze egingo dugu. GDB izeneko arazteko bat erabiliko dugu hasteko gure kodea, desmitifikatzeko bertan David Lehengo egunean hitzaldian azaldu. Lau ordenatzen mota baino gehiago dugu. Horien gainean dugu nahiko azkar joan Nahiko intentsiboa ari baitira. Baina jakin diapositiba guztiak eta iturburu-kodea online dira beti. Beraz, sentitzen free, zure marrazki berean, atzera egin eta begirada bat hartu. Egingo da pasatzen dugu Notazio asintotikoa, bertan modu dotore bat besterik ez da esaten "runtimes," non handi O, ez dugu bertan David hitzaldia azaldu. Eta guk ere Omega, bertan behekoan lotuak runtime da. Eta hitz egin dugu pixka bat gehiago Sakona nola lan dagokienez. Eta, azkenik, dugu bilaketa bitarra baino gehiago joan, duzulako asko dituzten dagoeneko zure psets at begiratu seguruenik ezagutzen duten duten galdera bat, zure pset ere egin da. Beraz, guztiak izango zara zoriontsu Gaur hau estali garela. Eta, azkenik, per zure feedback atal, I actually 15 minutu inguru utzi at amaierara Joan besterik pset3 logistika, edozein galdera, agian, orientazio apur bat, izango bada, programazio hasi aurretik. Beraz, saia gaitezen bidez lortu material nahiko azkar. Eta gero, denbora pixka bat pasatzeko aukera izango dugu pset egiteko galdera gehiago hartzeko. ONDO DA. Azkar, beraz, gutxi batzuk besterik ez dugu aurretik deialdiak hasiko da gaur. Lehenik eta behin, egiteko ongi etorria zure psets bi bidez. Begirada bat hartu nuen your-- en bai, utzi at txalo txanda horretarako nahikoa lortu. Egia esan, benetan izan dut, benetan harrituta. Lehen pset kalifikatu I zaudete azken astean, eta you guys egin sinestezina. Style puntua izan zen batzuk iruzkinak gainera. Ziurtatu Oraindik beti Zure kodea komentatuz. Baina zure psets puntua izan ziren. Eta mantentzeko sortu. Eta kalifikatzailearen ona da Ikusten duzu guys duten jarriz Zure estilo ahalegin askoz ere eta zure diseinu zure kodea Hori nahi dugu ikusiko duzu. Beraz, nire eskerrona batera pasatzen ari naiz IL du osorako. Hala ere, badaude debrief galdera batzuk Pasatxo joan nahi dut Nire bizitzako bi egingo luke eta beste asko IL 'bizi pixka bat errazagoa. Lehenik eta behin, nabaritu dut honetan iragan astean Zuetako zenbatek izan check50 exekutatzen on Zure kodea duzu lehenago aurkeztu? ONDO DA. Beraz, denek izango check50 egiten behar, zeren, sekretu bat dugu benetan exekutatu check50 gure zuzentasun baitan Zure kodea probatzen gidoiak. Beraz, zure kodea ezean bada check50, aukera guztiak, seguruenik joan huts egin gure check baita. Batzuetan mutilak erantzun egokia dute. Bezala, Greedy ere, zenbait zenbaki egokiak behar duzu, Aparteko gauza batzuk besterik ez duzu inprimatzeko. Eta gauza hori aparteko benetan egiaztapenak huts, Ordenagailua ez delako dakit zer da bilatzen. Eta horrela, besterik gabe exekutatu bidez egingo da, Ikus zure irteera Ez du etortzeko zer erantzuna espero dugu izan, eta markatu okerra da. Eta hori gertatu zen jakin dut Zure kasu batzuk aste honetan. Beraz, atzera eta eskuz joan nintzen regraded guztion kodea. Etorkizunean, nahiz eta, mesedez, mesedez, ziurtatu Hori exekutatzen ari zaren egiaztatu 50 zure kodea. TA mina bat mota delako atzera joan eta eskuz berriz kalifikatzeko dute bakoitzean pset bakoitzean bakarra bakar, gutxi faltan botatzen adibidez. Beraz, ez nuen hartu off postuetatik. Uste dut off hartu dut, agian, Bat edo bi diseinua egiteko. Etorkizunean arren, balitz check50 ezean zu, puntuak hartuko dira zuzentasuna off. Gainera, psets dira Eguerdian ostiraletan ondorioz. Nik uste dut ez zazpi minutu bateko grazia berantiarreko ematen dizugu. Harvard denbora Per, ari dira onartzen zazpi minutu guztia berandu. Hortaz, hona hemen Yale, dizkizugu Hori atxikitzen baita. Baina nahiko askoz, 12:07 etan, Zure pset ez bada ere, nik bezala berandu markatuta egongo da. Eta berriz, orain dela markatuko da berandu, TA-- naiz oraindik ere zure psets kalifikatzean joan. Beraz, oraindik ere izango duzu ikusi nota bat agertzen. Hala ere, jakin artan seihilekoaren amaieran, psets berandu guztiak bakarrik izango automatikoki ordenagailu bidez zeroed. Horretarako dugu, bi arrazoirengatik. Bat, batzuetan lortu dugu desenkusatu, dean en aitzakiak bezala, Horrela, denborarekin, ez dut oraindik ezagutzen. Beraz, ziur kalifikatzean ari gara egin nahi dugu badaezpada dena, bezala, ez naiz dean baten aitzakia falta. Eta, bestetik, mantendu ere gogoan, oraindik dezakezu jaregin pset bat dagoela esparrua puntu osoa du. Eta beraz, nahi dugun hori kalifikazioa zure psets guztia besterik ziur zure esparrua en Han eta horietako saiatzen ari zaren. Berandu Beraz, nahiz eta, oraindik ere izango duzu eskuratu kreditu esparrua puntu, uste dut. Beraz moral istorioa da, egiteko Ziur zure psets Hemen on-time. Eta ez dira on-denboran bada, Ezagutzen ez dela handia. Bai, aurrera egin nuen aurretik, ez du inor pset feedback edozein galdera? Bai. Ikusleak: egin dugu esan duzu psets bat askatu ahal? ANDI Peng: Bai. Beraz, ez da bederatzi psets orokorra seihilekoan zehar. Eta esparrua baldin baduzu erakuslea puntu hain esparrua besterik ez da, nahiko askoz, ari zaren saiatzen du Arazoa, ari zara jartzen denboran, dira, amesten duzun erakutsiz duzu frogatu zehaztapenak irakurri duzun. Hori nahiko askoz esparrua da. Eta betetzen ari bazara esparrua puntuak, dugu txikiena askatu ahal Bat esparrua beteta daudelarik. Beraz, zure abantaila ere egin nahi osatzeko eta saiatu pset guztietan. Nahiz upload-- bat ere ez bada , lan horiek horiek guztiak igo. Eta gero, dugu, zorionez, izan gai emango dizu puntu horietako batzuk atzera. Cool. Beste edozein galdera? Great. Bigarrenik, bulego hours-- gutxi barru bulego orduetan buruzko ohar azkar. Beraz, lehenik eta behin, etortzen aste hasieran. Inor ez da inoiz bulego astelehenetan ordu. Christabel iritsi zen bulego orduetan bart. Bai, Christabel. Eta zer egin behar bulegoan dugu ordu bart, Christabel? Ikusleak: izozkiak izan genuen. ANDI Peng: Beraz, hori da, izan genuen izozkia bulego orduetan bart. Ezin dut ez bitartean agintzen duten Izotz bulego orduetan krema izan dugu Astero, zer duzu agintzen dut da, ez dagoela bat izango da, nabarmen TA ratioa ikaslea hobea. Egiaztatzeko bezala, hiru bat bezalakoa da. Berriz, kontrastatu horrekin Osteguna, 150 bat lortu duzun benetan azpimarratu haurrekin eta izozkiak ez. Eta besterik edonork produktiboa ez da. Beraz, istorioaren morala da, goiz etorri bulego orduetan eta gauza onak gertatuko da. Era berean, zatoz prestatu galderak. Badakizu? Zer IL edozein izanda ere, I Nik uste, esaten dute, izan dugu pare ikasle bat lortzeko atzo, eta atsegin, 10:50 diradenéc ez balitz zehaztapenak irakurri lagundu dit honela izanik ere, lagundu dit. Zoritxarrez, puntu horretan, ez da lagunduko den, ez da hainbeste egin ahal izango dugu. Beraz, mesedez, aste hasieran. Zatoz goiz bulego ordu. Goazen prestatutako galderak. Ziurtatu duzula, jo Ikasle bat, non horrela izan behar duzu IL batera gidatu ahal, bertan bulegoan zer ordutan da beharko liratekeen emandako. Bigarrenik, beraz, irakasleek ezagutzen dut nahi digu harritzen probak. Irakasle batek horiek izan nuen bezala, yo, bide batez, epe ertainera gogoratzen Datorren astelehenean duzu. Bai, ez nuen epe ertainera dute ezagutu. Beraz, ez dut nahi hori izan joan TA galdetegi hori guztia gogorarazten 0-- badakizu, zeren, CS gaude. Orain egin arrayak ditudan dugu, lortuko duzu zergatik galdetegi 0 da, ez lehiaketa 1, eh? ONDO DA. Oh, inork horretan Chuckles batzuk lortu nuen. ONDO DA. Beraz galdetegi 0 urriaren 14an izango da, bada Oraindik astelehenetik asteazkenera atalean duzu eta urriaren 15 Oraindik ere bada Asteartetik ostegunera atalean. Horrek ez du esan eskatzeko duzuenontzat Harvard who-- guztiak izango zara, uste dut 14an zure galdetegiak hartuz. Beraz, bai, datorren astean, bada David, hitzaldia, doa, Bai, beraz, horri buruz galdetegi datorren astean, duzun guztia Ezin izango delako harritu atal heldu ziren eta badakiela zure galdetegi 0 bi asteetan da. Eta berrikuspena izan dugu saioak eta dena. Beraz, kezkak ez ari dela beldur. Edozein zalantza edozein galdera aurretik buruzko gaiak logistiko guztietan, kalifikatzeko, bulego orduetan, atal? Bai. IKUSLEEN: galdetegi da den hitzaldian zehar izango da? ANDI Peng: Bai. Beraz, galdetegi, nire aburuz, 60 da ordutegian horretan emandako minutu Besterik ez duzu hartu duten areto batean. Beraz, ez duzu ere etortzen , on bezala, ausazko 7:00 PM. Da dena ona. Bai. Cool. Ados. Beraz, goaz kontzeptu bat aurkeztu nahi aste honetan David dagoeneko mota ukitu buruzko hitzaldia iragan aste honetan. Honez GDB deitzen. Zenbat eta zuetako askok, berriz, zure psets idazteko ikastaroa, botoia handi bat dela dio nabaritu dute "Aratze" Zure IDE goiko aldean? ONDO DA. Beraz, orain benetan dugu lortu ditu unearth Zertan botoia misterioa benetan egiten du. Eta bermatzen dut, bat da eder, gauza ederra. Beraz, orain arte, uste dut Ez da bi gauza izan dira ikasleak dute normalean egon psets arazketa denean egiten. One, bai gehitu dute printf () - lerro batzuk behin eta beraz, gehitu printf () dute - Oh, zer aldagai hau? Oh, zer aldagai hau da da gaur egun eta ikus-mota duzu aurrerapena Zure kodea exekutatzen bezala. Edo bigarren metodoa haurrekin egin da gauza osoa idatzi besterik ez dutela eta, ondoren, hau bezalako joan amaieran. Zorionez funtzionatzen duen. Bermatzen dut, GDB hobea da metodo horiek biak baino. Bai. Beraz, hau da zure lagunik onena izango da. Gauza eder bat delako ikusmen pantailetan bai Zein da zure kodea ari da Puntu jakin batean baita zer guztietan bezala, zure aldagaiak, egiten ari dira zer bere baloreak dira bezala, Puntu zehatz hartan. Eta horrela, benetan dezakezu Zure kodea eten ezarri. Lerro bidez dezakezu exekutatu lerro. Eta GDB besterik ez egiteko duzu, zuretzat zabalduta, zer guztiak zure aldagai- dira, zer diren, egiten Zer gertatzen ari kodean. Eta, besteak beste, modu batean, da beraz, askoz errazago ikusi ordez zer gertatzen printf-ing edo behera zure adierazpenak idaztea. Beraz, horren adibide bat egin dugu geroago. Beraz, hau abstraktu samarra dirudi. Kezkak, adibide egingo dugu. Eta, beraz, funtsean, hiru handienak, gehien erabiltzen diren funtzio izango GDB behar duzu Hurrengo dira, urrats baino gehiago, eta botoiak sartu urratsa. Noa buru han, benetan, oraintxe. Beraz, ezin duzu guys guztiak ikusten edo behar dut mapan pixka batean? Atzerago, ahal dela ikusten duzu? Beharko dut mapan ere? Pixka bat? Ados, cool. Hor dugu. ONDO DA. Beraz, hemen daukat, nire Greedy ezartzeko. Eta zuk mutil asko idatzi zuen bitartean berriz, begizta hori form-- ere greedy a egiteko modurik onargarria da da, besterik gabe, beste era batera egiteko it modulo banatzeko. Orduan izan delako dezakezu zure balio eta, ondoren, zure gainerako. Eta gero bakarrik egin ahal izango dituzu gehitu guztiak elkarrekin. Zer egiten ari naiz logikatik egiten du Hemen zentzurik guztiontzat, dugu hasi aurretik? Kind of? Cool. Great. Nahiko sexy zati bat da Kode-, esango nuke. Atsegin dut, esan nuen David, in Hitzaldia, pixka bat egin ondoren, Egingo guztiak kodea ikusten hasten zara hori ederra den zerbait bezala. Eta batzuetan ederrak ikusten duzu kodea, besteak beste, sentimendu zoragarri bat da. Beraz, ordea, kode hau berriz, oso da ederra, ez du behar bezala funtzionatuko. Hargatik hau exekutatu check50. Check 50, 20 oop. 2? Pset2 dela? Bai. Oh, pset1. ONDO DA. Beraz check50 exekutatu dugu. Eta gisa you guys hemen ikusi ahal izango da, kasu pare bat izan ezean ari da. Eta batzuk, egiteko zure arazoa ezartzen ari jakina, Oraindik, hala ah, zergatik ez da lan. Zergatik da batzuentzat lan egiten balioen baina ez da besteak? Beno, GDB duzun figura laguntzeko va zergatik egindako sarrera horiek ez ziren lanean. ONDO DA. Beraz, ikus dezagun, bat txekeak check50 I ezean zen sarrerako 0,41 balioa izan zen. Beraz, erantzun zuzena dela lortzean egon behar duzu 4 da. Baina horren ordez, zer naiz inprimatzen 3-n, eta hori ez da zuzena. Hargatik exekutatu en besterik honetan eskuz, besterik ziurtatu check50 hori lanean. Egin ./greedy utzi. Ene, Greedy egin nahi izan dut. Hor dugu. Orain ./greedy. Zenbat zor da? Egin dezagun 0.41. Eta bai, hemen ikusten dugu Honez irteera dela 3 Erantzun zuzena, hain zuzen ere, 4 izan behar du. Hargatik, sartu GDB eta ikusi nola egiten dugu daiteke arazoa konpontzen joango. Beraz, lehen urratsa Beti zure kodea arazketa da etendura ezarri den, edo, une batetik duzu Ordenagailuan edo nahi begira hasteko araztailea. Beraz, ez baduzu, ez benetan Badakizu zure arazoa zein den, normalean, ohiko gauza egin nahi dugu ez da gure etendura ezartzeko nagusian. Beraz, zuk mutil hau ikus daiteke gorria botoia bertan, Bai, izan zen niretzat ezarpena bat funtzio nagusia for eten-puntua. Hori sakatu dut. Eta gero Igo dezaket nire Debug botoia. Botoia jo nuen. Gerturatzeko atzera me out ahal badut. Hor dugu. Beraz, ez dugu hemen, eskuin aldean panel bat. Sentitzen dut, mutilak atzealdean, zuk ezin benetan oso ondo ikusten. Baina, funtsean, guztiek eskuineko panel hori egiten ari da bai nabarmendutako jarraipena da line, eta kode-lerro da Ordenagailua: exekutatzen ari da, baita zure aldagai guztiak bezala Hemen behera. Beraz, lortu duzun zentimo, txanponak, n, guztiak gauza desberdinak deklaratu puntu honetan. Kezkak, izan dugulako, ez benetan hasieratu horiek aldagai Edozein oraindik. Zure ordenadorean Beraz, zure ordenagailua besterik ez da ikusten, Oh, 32767 erabilitako azken funtzioa zen memoria nire ordenadorean espazio hori. Eta beraz, non zentimo da gaur egun. Baina ez hori behin-kodea exekutatzen, hasieratu bihurtu behar da. Beraz, goazen bidez, lerroz lerroan, zer gertatzen da hemen. ONDO DA. Hauxe dira hirurak Hori azaldu besterik ez dut botoiak. Play, edo exekutatu funtzioa daukazu, botoia, botoi baino gehiago Step duzu, eta, era berean, botoia sartu urratsa egin behar duzu. Eta, funtsean, guztiek hiru Zure kodea bidez bakarrik beraientzat joan eta hainbat gauza egin. Beraz, normalean, noiz ari zaren arazteko ez dugu nahi, besterik hit Play, Play aski da delako Zure haren amaierara kodea. Eta gero, ez duzu benetan Badakizu zein den zure arazoa da anitz eten ezarri ez baduzu. Anitz eten ezartzen baduzu, besterik automatikoki geratuko da Etendura bat exekutatu, hurrengo, hurrengo etorri dira. Baina kasu honetan dugu bat besterik ez dela, garelako Gure bidean lan egin nahi gora behera behera from. Beraz, botoi hori alde batetara joan oraintxe programa honen helburuetarako. Beraz, funtzio gehiagoko urratsa besterik lerro bakar behin baino urrats eta esaten dizu zer Ordenagailua egiten ari da. Funtzio sartu urratsa doa benetako funtzioa sartu Hori da zure kode line on da. Beraz, adibidez, printf bezala (), duten funtzio bat da, ezta? Nahi izanez gero, fisikoki urratsa printf () funtzioak sartu, Benetan nuke pieza sartzen joan non printf () idatzi zuen, eta ikusi kodea zer ari den gertatzen ez. Baina normalean, suposatuko dugu hori Kodea emango dugu lan. Printf () ari da lanean, bere gain hartzen dugu. Suposatuko dugu GetInt () funtzionatzen duela. Beraz, ez da ez da beharrezkoa funtzio horiek aukera ematen dute. Baina ez da funtzio bada zeuk idatzi duzula egiaztatu nahi duzula Zer gertatzen ari out, zapaldu nahi zenuke Funtzio hori sartu. Beraz, oraintxe besterik goaz to Kode zati hura gainetik. Beraz, ikus dezagun. Oh, inprimatu, "Oh hai, nola askoz aldaketa zor da? " Guk ez dugu axola. Duten lan ezagutzen dugu, beraz, etsaiak pasatu genuen. Beraz, n, eta horrek gure karroza dela initialized-- dugu edo declared-- goialdean gora, orain gaude (hori lortzea GetFloat izateko). Hargatik zapaldu baino. Eta ikusi dugun beheko hemen, programaren da niretzat balio bat galdetu sarrera. Hargatik sarrerako balioa nahi dugu Hemen probatzeko, horietatik 0,41 da. Great. Beraz, orain n-- egiten duzu guys ikusi Hemen,, beheko aldean da gordeko dugulako ez dute oraindik biribila, da bezalako erraldoi honetan gordeta karroza duten 0,4099999996 da, hau da, nahikoa hurbil gure helburuetarako, oraintxe, 0,41 da. Eta gero, geroago ikusiko dugun bezala dugu programa baino gehiago zapaltzeko jarraitzeko, Hemen gaude, n bihurtu biribildu eta zentimo ditu 41 bihurtu. Great. Beraz, badakizu, gure biribilketak lan garela. Badakigu dugula zentimo kopuru zuzena, beraz, ezagutzen dugun hori da Ez benetan arazoa. Beraz, pauso batzuk jarraitu dugu Programa honen gainean. Hemen dugu. Eta beraz, kode lerro honen ondoren, dugu Jakin behar zenbat laurden behar dugu. Jauzi dugu. Eta ikusten duzu egiten dugu, hain zuzen ere, behar bat hiruhilekoan Nik kentzen ditugu 25 delako Gure 41 hasierako balio from. Eta 16 ezkerretik gure zentimo ditugu. Denek ulertu nola programaren bidez zapaltzeko da eta zergatik zentimo bihurtu da orain 16 eta horregatik, gaur egun, txanpon bihurtu 1? Da guztiontzat logika hori honako? Cool. Puntu honetan, beraz, etorri programan lan, ezta? Badakigu zehazki egiten da zer nahi dugun. Eta ez dugu benetan inprimatu behar, ai, zer puntu honetan zentimo da, zer puntu honetan txanponak da. Programaren bidez ari Jarraitu. Urratsera baino. Cool. Dimes errepasatuko ditugu. Great. Duela horrek hartutako ikusi dugu off $ 0.10 dime bat. Eta orain, bi txanpon ditugu. Hori da zuzena. Eta pennies errepasatuko ditugu ikusiko dugu Nik dugun zentimo baino gehiago utzi egin da. Hmm, hori arraroa da. Hemen programa ireki, I zen ustezko Nire pennies kentzen dute. Agian besterik ez nengoen lerro eskubide hori egiten. Eta, ai, ikusi ahal izango duzu Hemen, ezagutzen dugulako hori zapaltzeko dugu 32 eta 33 lerro bidez, Hori non gure programa da gaizki izan aldagai exekutatu. Beraz, begiratu eta ikusi, ai dezakegu, Zentimo kenduz naiz hemen, baina ez naiz benetan nire txanpon balio gehituz. Zentimo I gehituz naiz. Eta ez dut nahi gehitzeko zentimo, gehitu txanponak nahi dut. Beraz, aldatu dugu txanpon hori bada, Nik, lan-programa bat lortu dugu. Check50 exekutatu ahal izango dut. Besterik irteteko ditzakezu GDB eskubideaz Hemen, eta gero berriro exekutatu check50. Besterik ezin dut egin. Greedy egin nahi izan dut. 0.41. Eta hemen, argitalpena da erantzun egokia out. Beraz Ikus dezakezuenez bezala, GDB tresna benetan boteretsua da denean hainbeste kodea daukagu ​​egiteko gertatzen eta aldagai hainbeste guretzat gogorra dela, gisa giza, segimendua egiteko. Ordenagailua, GDB batean araztailea, gaitasuna du dena segimendua egiteko. Badakit, Visionaire ere, ziurrenik mutil duzu segmentazio hutsegite batzuk jo izan liteke exekutatzen ari duzulako Zure array mugetatik kanpo. Zesarren Adibide gisa, hori da zehazki zer dut hemen inplementatu. Beraz egiaztatzeko ahaztua dut zer gertatuko litzateke I ez bi komando lerroko argumentuak dute. I besterik ez check horretan jarri. Eta beraz Debug-- exekutatu bada I ezarri Han eskuinera nire etendura-. Araztu exekutatu dut. ONDO DA. Bai. Beraz, benetan, GDB zen ustezko Esan zidan ez segmentazio errua bat zegoen. Ez dakit zer gertatzen zen bertan, baina denean ran I, zen lanean. When bidez kode lerro exekutatzen duzun eta GDB agian besterik-batean zuk irten, igo eta begiratu errore gorri zein den. Esango It dituzu, beno, zuk segmentazio matxura bat izan zuen, horrek esan saiatu duzula sarbidea izateko sorta bat espazio hori ez da existitzen. Bai. Beraz, hurrengo arazoa ere Aste honetan ezarri, you guys izango da ziurrenik asko izan aldagai inguruan flotatzen. Oraindik ez duzu ziur izan behar du zer denek ere esan nahi puntu jakin batean. Beraz GDB izango da benetan lagunduko duzu kalkulatzen dutena guztiak berdindu dira eta ikusmen ikusi ahal izatea. Da inor nola nahastu Hori edozein zen lanean? Cool. Ados. Beraz, horren ondoren, gauden eskubidea murgiltze joan lau ezberdinak dira Aste honetarako mota mota. Nola asko, lehenik guztia, hasi aurretik, Irakurri egin pset3 zehaztapenak osoan zehar? ONDO DA. You guys harro nago. Hori da, klase erdia, adibidez, horiek Azken ordua baino nabarmen gehiago da. Beraz, hori da handia, zeren edukiari buruz hitz egiten dugu lecture-- edo Sentitzen ere, Atal hasi zait gustatzen Hori asko erlazionatzeko pset du zein atzera eta nola nahi duzun ezartzea zure pset direla. Beraz, bada ethor bada zehaztapenak irakurri, egingo Errazagoa izan daiteke ulertzen duzun zer esango dizut buruz ari naiz, oh beno, hau benetan izan liteke leku ona moduko hau martxan jarri ahal izateko. Beraz, nork irakurri duzuenontzat du Badakizu zehaztapenak, zure pset parte gisa, ra izan zaren joan moduko mota bat idazteko. Beraz, hau oso lagungarria izan daiteke zuk asko gaur. Beraz, hasi egingo off dugu, funtsean, mota gehien simple ordenatu, aukeraketa sort. Algoritmoa tipikoak nola litzaidake honetan joan gara is-- David hauen bidez joan guztietan hitzaldia, beraz, ez dut azkar mugitu batera funtsean da hemen, zuk balioak array bat. Eta gero aurkituko dituzu Sailkatu balio txikiena eta balio hori trukatu duzu Lehenengo Sailkatu balio. Eta gero, besterik gabe, gorde duzu errepikatuz Zerrendako gainerako. Eta hemen azalpen bisuala da nola funtzionatuko lukeen ere. Beraz, adibidez, hasteko bagenitu bost elementu multzo bat, indize 0 eta 4, 3, 5, 2, 6, eta 4 balioak array batean jartzen da, beraz, oraintxe, Ari gara suposatuko joan Sailkatu ari dira guztiak ez ditugun bestela probatu delako. Beraz, nola aukeraketa moduko bat litzateke lana da lehenengo zela osotasunean zehar ibiltzen Unsorted array. Jaso luke balio txikiena. Kasu honetan, 3, eskuineko orain, txikiena da. Lortzen den 5 da. Laguia, 5 da ez baino handiagoa edo barkatu, ez da gutxiago 3 hau baino. Beraz, gutxieneko balioa da oraindik 3. Eta gero 2 dituzu. Ordenagailua ikusten, ai, 2 3 baino txikiagoa da. 2 orain gutxieneko balioa izan behar du. Eta, beraz, lehen balio duten 2 swaps. Beraz pass bat egin ondoren, hain zuzen ere, ikusi dugu 2 eta 3 trukatu dira. Eta ari gara egiten jarraituko du hau berriro gainerako array batera. Beraz, besterik gabe, ihes igaro Azken lau array-indizeak. Ikusiko dugu hori 3 da hurrengo gutxieneko balio. Beraz, hori trukatu 4 doa. Eta gero, besterik ez gabiltza mantentzeko joan exekutatzen bidez, arte, azkenean, zuk ordenatuko array bat lortu eta bertan 2, 3, 4, 5, eta 6 ordenatuko dira guztiak. Denek logika ulertzeko nola aukeraketa moduko bat lan egiten du? Nolabaiteko Nahikoa duzu gutxieneko balioa. Zer den pista mantenduz ari zara. Eta guztietan aurkituko duzu, trukatu duzu array batean lehen balioa edo, ez da lehen balioa Array en hurrengo balioa. Cool. Beraz, mota you guys gisa ohi labur bat ikusi, hau pseudocode kanpo goaz. Beraz, bada atzealdean mutil duzu nahi talde bat, denok mahai batean osatzeko bazkide apur bat era daiteke, noa duzu hiru minutu bezalako mutil emateko besterik hitz bitartez logika, ingelesez, la nola ezartzeko ahal izango dugu pseudocode aukeraketa moduko bat idazteko. Eta han, gozoki da. Mesedez, zatoz gora eta gozokiak. Oraindik atzealdean bada eta nahi duzun gozokiak, gozokiak bota dezake dizkizut. Egia esan, ez zu cool. Oh Barkatu. ONDO DA. Beraz, bada, nahi den bezala genuke klasea, idazketa pseudocode bat nola liteke hurbiltzen batentzat Arazo hau, besterik gabe, sentitzen free. Dut joan inguruan eta, ordenan, eskatu talde hurrengo lerroa erabiliz egiten egon beharko dugu. Beraz, zuk mutil hasi nahi izanez gero off, zer da lehenengo gauza denean saiatzen ari zarela egin programa hau konpontzeko modu bat ezartzeko Zerrenda bat selektibo ordenatzeko? Dezagun, besterik gabe, bere gain hartzen dugu Array, eskuineko guztiek dute? Ikusleak: batzuk sortu nahi duzu Sort [INAUDIBLE] zarela Zure array osoa zeharkatzen. ANDI Peng: Eskuin. Beraz ari den batetik bestera joateko nahi zoazen espazio guztietan barrena, ezta? Beraz, handia. You guys me emateko nahi baduzu hurrengo yeah lerroan, atzealdean. Ikusleak: Begiratu itzazu guztiak txikiena da. ANDI Peng: Bertan dugu. Beraz, bidez joan eta begiratu nahi dugu ikusi zer gutxieneko balioa da, ezta? Laburtu nahi duten noa "min". Zer egin ondoren egin nahi duzu guys Agertu den gutxieneko balioa? Ikusleak: [INAUDIBLE] ANDI Peng: Beraz zu nahi joan piztu array hori lehen batera, ezta? Hori da hasieratik, esatera noa. Ados. Beraz, orain trukatu duzula lehena bat, zer egin behar duten ondoren egin nahi duzu? Beraz, gaur egun ezagutzen dugun hau hemen balio txikiena izan behar du, ezta? Ondoren, gainerako osagarri bat behar duzu Array hori Sailkatu of. Beraz, zer egin behar dugu hemen, nahi izanez gero, nahi duzun Mutil dit hurrengo lerroan eman nahi? Ikusleak: Orduan batetik bestera joateko nahi duzu Array gainerako zehar. ANDI Peng: Bai. Eta beraz, zer dauka bidez errepikatzean motatako esan nahiko ziurrenik dugu behar? Zer nolako of-- Ikusleak: Oh, aldagai gehigarri bat? ANDI Peng: Seguruenik beste begizta, ezta? Beraz, ziurrenik nahi joan , bidez handi batetik bestera joateko. Eta orduan goazen atzera joan eta ziurrenik egiaztatu gutxienekoa berriro, ezta? Eta zu errepikatuz jarraitzea honek, loops delako, besterik joan exekutatzen eduki nahi, ezta? Beraz, ahalik eta Ikus dezakezuenez, dugu besterik ez dute pseudocode orokor bat nola nahi dugu programa hau begiratzen. Batetik bestera joateko, hau hemen, zer egiten dugu normalean behar den gure kodea idatzi to bidez batetik bestera joateko nahi badugu array, zer egitura mota? Uste dut Christabel Dagoeneko esan aurretik. Ikusleak: begizta. ANDI Peng: begizta for A? Hain zuzen ere. Beraz, hau da, ziurrenik, bat izan behar begizta joan. Zer da txeke bat hemen du esan nahi da? Normalean, egiaztatu nahi baduzu Zerbait zerbait bada Bestela Ikusleak: bada. ANDI Peng: An bada, ezta? Eta gero swap hemen, dugu joan baino beranduago, David delako igaro hitzaldian baita. Eta, ondoren, bigarren bestera joateko implies-- Ikusleak: Another begizta. ANDI Peng: begizta for --another, zehazki. Beraz, bada begira ari gara hau behar bezala at, ez dugu ikusiko seguruenik ari garela begizta for nested bat behar du baldintzapeko han adierazpen batekin eta, ondoren, benetako kode zati bat hori da, balioak aldatu behar dugu. Beraz, ez dut, oro har, idatzizko pseudocode kode bat hemen. Eta orduan, benetan ari gara joan fisikoki, klase bezala, saiatu gaur hau martxan jarri ahal izateko. Goazen atzera IDE honetan sartu. Uh-oh. Zergatik da hori ez egun ez da. ONDO DA. Sentitzen dut, utzi pixka bat gehiago ikusteko gerturatzen saiatu me. Hor dugu. Guztiak hemen ari naiz, sortu dut izeneko programa bat "aukeraketa / sort.c." Bederatzi array bat sortu dut balioak, 4, 8, 2, 1, 6, 9, 7, 5, 3. Gaur egun, ahal duzun ikusi, desordenatuak dira. n zenbaki izango da hori balioak zenbatekoa esaten dizu Zure array duzu. Kasu honetan, bederatzi balioak ditugu. Eta besterik ez dut lortu loop hemen Hori Unsorted array inprimatzen. Eta amaieran, Nik ere lortu for begizta hori besterik bistaratzen da berriro. Beraz, teorikoki, programa honetan bada ondo dabilen, amaieran, loop inprimatuta ikusi beharko duzu bertan, 1, 2, 3, 4, 5, 6, 7, 8, 9 guztiak ondo daude ordenan. Beraz, lortu gure pseudocode hemen dugu. Norbaitek nahi zaie besterik ez naiz joan boluntarioek eskatu esan dit zehazki zer nahi izanez gero idatzi den, lehenik eta behin, batetik bestera joateko nahi dugu array honen hasieran bidez? Zer da kode lerro naiz ziurrenik, hemen behar joan? Ikusleak: [INAUDIBLE] ANDI Peng: Bai, sentitzen zaie doan Barkatu, ez dute up-- feel stand free zure ahotsa pixka bat igotzeko. Ikusleak: For int i berdin 0-- ANDI Peng: Bai, ona. Ikusleak: i array luzera baino txikiagoa da. ANDI Peng: Beraz mantentzeko in Axola hemen, garelako ez dute funtzio bat duzula Array baten luzera kontatzen digu, dute dagoeneko bat dugu balio hori gordetzen duen. Eskuin? Beste gauza bat gorde array batean mind-- ere Bederatzi balioen, zer diren indizeak? Dezagun esan array honetan 0 amaitu eta 3. Ikusi azken duzula indizea da benetan 3. Ez da 4, ez nahiz array lau balio. Beraz, hemen ere, oso kontuz ibili behar dugu gure zer luzera baldintzaren izango da. Ikusleak: Ez ote da n ken 1? ANDI Peng: Honez joan n ken 1, zehazki. Ez duela zentzurik, zergatik da n ken 1, denek? Da array dira zero-indexed delako. Hasteko 0 dute, eta exekutatu sortu n ken 1 da. Bai, pixka bat zaila da. ONDO DA. Eta gero-- Ikusleak: Isnt'1 dagoela Dagoeneko tratua arren, besterik ez esanez "edo baino gutxiago berdina da ", eta besterik esaten" baino gutxiago? " ANDI Peng: Hori a Galdera benetan ona. Bai, beraz. Baina, era berean, modu ari garela egiaztatuz eskubidea gauzatzeko, Bi balio konparatu behar dituzu. Beraz, benetan nahi utzi du "eta" hutsik. Alderatu duzu delako hau, ez zaren joan ezer ondoren konparatu, ezta? Bai. Beraz, i ++. Dezagun gehitu gure Parentesi artean. Whoops. Great. Beraz abian dugu Gure kanpoaldeko begizta. Beraz, orain dugu ziurrenik nahi mantenduz aldagai bat sortu balio txikiena pista, ezta? Norbaitek me emateko nahi kode lerro bat egin nahi? Zer egin behar dugu, bada behar dugu zerbait gorde nahi al duzu? Eskuin. Agian hori izen hobea izango litzateke "temp" guztiz works-- agian, gehiago egokiekin izeneko litzateke, balioa txikiena nahi badugu Ikusleak: Min. ANDI Peng: min, ez gara. min ona izango litzateke. Eta beraz, hemen, zer egiten dugu Nahi, abiarazi nahi? Hau da, apur bat zaila. Delako oraintxe at the array honen hasieran, Ez duzu ezer begiratu zion, ezta? Beraz, zer, automatikoki, bada besterik berdin i 0 ari gara, zer ez hasieratu nahi dugu Gure lehenengo gutxieneko balioa? Ikusleak: i. ANDI Peng: i, zehazki. Christabel, zergatik egin nahi dugu abiarazi i nahi? Ikusleak: ondo delako, 0 dugu hasten ari. Beraz, ezer alderatu delako daukagu den, gutxienekoa azkenean egingo da, eta 0 izanik. ANDI Peng: Zehazki. Beraz, zehazki eskubidea du. Ez dugu benetan delako ezer begiratu zion oraindik, ez dakigu zein den gure gutxieneko balioa da. Besterik abiarazi nahi dugu i, eta horrek, gaur egun, ez da hemen. Eta jarraituko dugu eraman behera array honetan, Ikusiko dugu hori, bakoitzari pass gehigarri gehikuntzak i. Eta beraz, une horretan, i da ziurrenik joan gutxienekoa izan nahi den, delako edozein izanda ere izango da Unsorted array hasieran da. Cool. Beraz, gaur gehitu nahi dugu begizta hemen dagoen hori da to bidez batetik bestera joateko joan Sailkatu edo array hau gainerako. Norbaitek me emateko Nahi kode lerro bat egin nahi? Hint-- zer behera behar dugu hemen? Zer ari den honetan joan loop da? Bai. IKUSLEEN: nahi genuke nahi ezberdinak zenbaki oso bat dute, gainerako zehar, lasterka ari delako ordez i array, beraz, agian, j. ANDI Peng: Bai, j soinuak ona da niretzat. Berdinen? IKUSLEEN: i izango litzateke plus 1, zeren you hurrengo balioan hasten ari. Eta gero end-- hain berriro, j da n ken 1, eta, ondoren, j ++ baino gutxiago. ANDI Peng: Great. Eta gero, hemen, gaude nahi joan Gure baldintza betetzen bada ikusteko egiaztatzeko, ezta? Nahi duzulako gutxieneko balioa aldatzeko benetan baino txikiagoa da, bada zer konparatuz zaren, ezta? Beraz, zer ari gara hemen nahi? Aztertu. Zer adierazpen mota seguruenik ari goaz ti nahi izanez gero erabil nahi dugu Nahi zerbait egiaztatzeko? Ikusleak: An adierazpena bada. ANDI Peng: An adierazpena bada. Beraz if-- eta zer egin behar izango da barruan nahi dugun baldintza gure adierazpen baditut? Ikusleak: bada j balioa da i balioa baino gutxiago ANDI Peng: Zehazki. Beraz if-- beraz array hau "array" deitzen da. Great. Beraz, bada array zer zen hori? Esan berriro. Ikusleak: array-j da baino gutxiago bada array-i, orduan min aldatzeko genuke. Beraz, min egin j litzateke. ANDI Peng: Ez duela zentzurik? ONDO DA. Eta orain, hemen, egia esan, ez dugu swap ezartzea nahi, ezta? Beraz, gogora ekarri, hitzaldia, David, betiere hori the-- zer zen trukatu nahi zuen, it laranja zukua eta milk-- Ikusleak: That gordina zen. ANDI Peng: Bai, hori izan zen, mota gordina. Baina ona polit bat izan zen Kontzeptu denbora erakutsiz. Beraz, zure balioen uste hemen. Lortu duzun array bat min, i array bat, edo hemen trukatu saiatzen ginen edozein dela ere. Eta ziurrenik zuk ez pour sartu bakoitza, aldi berean beste, ezta? Beraz, zer ari gara Hemen sortu behar den Ordena balioak behar bezala trukatu ahal izateko? Ikusleak: aldi baterako aldagai bat. ANDI Peng: aldi baterako aldagai bat. Beraz, egin int temp utzi. Ikusi, hau hobea izango litzateke denbora Tira zaie, zer izan da hori? ONDO DA. Beraz, hau izan litzateke hobea garai aldakorra "temp". izendatzeko Beraz, egin int temp utzi. Zer dira joan den dugu Ezarri aldi berdinetan hemen? Ikusleak: Min? ANDI Peng: pixka bat zaila da. Egia esan, ez du azkenean axola. Ez du axola zer izateko ere trukatu aukeratu duzu betiere, ziur gisa ari bazara zer aldaketa zaren jarraipena. Ikusleak: array-i izan zitekeen. ANDI Peng: Bai, egin dezagun array-i utzi. Eta gero, zer da hurrengo lerroan kodearen hemen nahi dugu? Ikusleak: array-i array-j berdin. ANDI Peng: Eta azkenik? Ikusleak: array-j berdinen array-i. Ikusleak: Edo array-j berdinen array-temp-- edo, temp. ANDI Peng: OK. Hargatik exekutatu honetan eta ikusi nik lanera joan bada. Non gertatzen ari da? Oh, hori arazo bat da. Ikusi, on line 40, gaude array-J erabiltzen saiatzen ari da? Baina zer gertatzen j bakarrik existitzen? Ikusleak: loop batean. ANDI Peng: Eskuin. Beraz, zer egin behar dugu behar joan? Ikusleak: the-- kanpo definitu da Ikusleak: Bai, asmatu dut duzu beste erabili adierazpena, ezta? Beraz bezala, minimum-- bada Ondo da, let me uste. ANDI Peng: Mutilak, saiatu hartu a look Dezagun ikusi, zer egin dezakegu Hemen zerbait? Ikusleak: OK. Beraz, gutxienekoa ez da berdina bada j beraz i gutxienekoa bada oraindik orduan ez genuke trukatzeko. ANDI Peng: Ba berdinak direla i? Zer egin, hemen esan nahi duzu? Ikusleak: Edo bai, bada gutxieneko i ez da berdina gertatzen, bai. ANDI Peng: OK. Beno hori konpontzen, mota, gure arazoak. Baina horrek ez du konponduko du zer gertatzen den j bada j geroztik arazoa ez ditu kanpo existitzen, zer ez da egin nahi dugu? Kanpo deklaratzen da? Saiatu hau exekutatzen utzi. Uh-oh. Gure sort ez da lanean ari. Ikusten duzun bezala, gure hasierako array balio horiek izan. Eta gero izan behar da 1, 2, 3, 4, 5, 6, 7, 8, 9 izan. Ez da lan. Ahh. Zer egiten dugu? Ikusleak: Debug. ANDI Peng: Ondo da, dastatu ahal izango ditugu. Arazteko aukera izango dugu. Txikiagotu pixka bat. Har dezagun gure etendura. Goazen antzekoak OK. Beraz, dagoeneko badaki hori delako Lerro hauen, 15 22 bidez; dira working-- guztiak egiten ari naiz dagoelako besterik bidez eta printing-- errepikatzean Aurrera dezaket eta saltatzeko. Hasteko line 25 dezagun. Oop, utzi duten kentzeko me. IKUSLEEN: Etendura en non arazketa hasten? ANDI Peng: Edo geldialdiak. Ikusleak: Edo geldialdiak. ANDI Peng: Bai. Anitz eten ezarri ahal izango duzu, eta besterik ezin du salto besteari from. Baina kasu honetan, ez dakigu error bertan gertatzen ari da. Beraz, besterik gabe, nahi dugu goitik behera hasteko. Yep. ONDO DA. Beraz, lerro hau hemen, zapaldu ahal izango ditugu. Hemen ikusi ahal izango duzu behera, lortu dugu array bat. Horiek balioak dira array daude. Ikusten duzu, hori nola indizea 0, hura balioa dagokio oi, Handiagotzeko saiatu naiz. Sentitzen dut, benetan zaila da array indizea 0 see--, 4 balioa izango dugu eta Orduz abar eta abar. Gure tokiko aldagai daukagu. Oraintxe berdina da i 0, eta bertan izan nahi dugu. Eta beraz, gorde dezagun bidez zapaltzeko. Gure gutxieneko 0 berdina da, eta horrek ere izan nahi dugu. Eta gero, gure egiteko bigarren sartzen gara begizta, array-j da array-i baino gutxiago bada, eta hori ez zen. Beraz, ikusi zenuen nola Hori dela gehiagoko Saltatutako? Ikusleak: beraz, behar izanez gero, gutxienez, guztiak -bere behar ez duten Loop lehen barruan egon? ANDI Peng: Ez, zeren oraindik probatu nahi duzun. Konparazio bat behin egin nahi duzu denbora, horren bidez exekutatu ondoren ere. Ez besterik ez da egin nahi duzu Lehenengo pass-bidez. Bertan egin nahi duzu pass gehigarri bakoitzeko berriro. Beraz, egiaztatu nahi baduzu Zure egoera barruan. Beraz, ari gara joan mantentzeko hemen zeharkatzen. Emango dizut mutil iradokizun bat. Izan ere, egin ditu, noiz Zure baldintzapeko zaren egiaztatzen, Zuk ez egiaztatzen ari indize zuzena da. Beraz, oraintxe duzu egiaztatzen ari array j indizea da array baino gutxiago i indizea. Baina, zer ari zarete egiten at begizta for hasieran? Ez dira ezarriz duzu j i berdina? Bai, beraz, ezin dugu benetan araztailea hemen irteteko. Beraz, dezagun gure pseudocode begirada bat. For goaz hasteko at berdin i 0. Gora joateko n ken 1 goaz. Dezagun begiratu, zuen eskubidea dugula? Bai, arrazoi zuela. Orduan hemen barruan, gaude gutxieneko balio bat sortu nahi du eta ezarri duten i berdina. Ba egiten dugu? Bai, egin duten. Orain gure barne begizta ere, ez gara j egin da joan berdinen i n ken 1. Ba egiten dugu? Izan ere, hori egin dugu. Beraz, ordea, zer ari gara hemen alderatuz? Ikusleak: j gehi 1. ANDI Peng: Zehazki. Eta, ondoren, zauden ezarri nahi du Zure gutxieneko j plus 1, baita berdina. Beraz, joan zen horren baitan dut benetan azkar. Ez duzu guys ulertzen zergatik j gehi 1 da? ONDO DA. Beraz, zure lerrotan, in zure lehen pass bidez, Zure begizta, int berdin i 0, dezagun, besterik gabe suposatuko honek ez du oraindik aldatu egin da. Array bat izan dugu, erabat, Sailkatu elementu besterik lau, ezta? Beraz, 0 i berdinak abiarazi nahi dugu. Eta i va besterik begizta honen bidez exekutatu. Eta, beraz, lehen mendatea ere, goazen "min" izeneko aldagai bat hasieratzeko hori ere berdin i, zeren Ez dugu gutxieneko balio dute. Beraz, hori baita gaur egun 0 berdina da. Eta gero ari gara bidez joan behar. Eta berriro ere, batetik bestera joateko nahi dugu. Orain aurkitu dugun zer gure gutxieneko da, bidez batetik bestera joateko nahi dugu Berriro nik alderatuz gero ohartuko da, ezta? Beraz, j, hemen, va i berdina da, eta 0 da. Eta gero, bada j plus i array, horrek ko duten hurrengo baino gehiago, gutxiago da Zein da zure uneko gutxieneko baino balio da, swap nahi duzu. Hargatik esaten dugu lortu, hala nola 2, 5, 1, 8. Oraintxe bertan, berdina da i 0 eta j 0 berdina da. Eta hori da gure gutxieneko balioa da. Array-j bada plus i so bat bada dena ari gara begira ondoren aurrean jarri baino handiagoa da, Honez gutxienekoa izango dira. Beraz, hemen ikusten dugu 5 ez da hori baino gutxiago. Beraz, ez dira 5 pertsona joan. Ikusten dugun 1 2 baino gutxiago da, ezta? Beraz, gaur egun ezagutzen dugun gure gutxieneko dela indizearen balioa izango da 0, 1, 2 zoaz. Bai? Eta orduan, behera lortuko duzu hemen, balio zuzenak trukatu ahal izango dituzu. Beraz duzunean guys ziren besterik j izatea aurretik, ez ziren bat begira ondoren. Horixe ikusten ari ziren balio bera, eta horrek horregatik besterik ez zen ezer egin. Ez duela zentzurik denek, zergatik duten plus 1 ez genuen behar? ONDO DA. Orain dezagun exekutatu besterik ren bidez egin behar da Ziur kodea gainontzeko zuzena da. Zergatik gertatzen ari da? Ah, ondo egon da hemen min du. Okerreko balio alderatuz ginen. Oh ez. Oh yeah, behera hemen ginen okerreko balioak baita trukea. Dugu i eta j begira ari delako. Horiek direnak egiaztatzen ari garen. Benetan aldatu nahi dugu gutxieneko, uneko gutxieneko, edozein dela ere, inork kanpo dago. Eta zuk mutil behera ikusiko gisa Hemen, ordenatuko array bat dugu. To egin behar izan zuen, besterik ez da Izan ere, noiz ginen egiaztapena balioak alderatuz ari ginen, ez ginen eskuineko balioak begira. Bat bera begira ari ginen Hemen, ez da benetan aldaketa. Banan begiratu hurrengo daukazu da, eta, ondoren, trukatu ahal izango dituzu. Beraz, hori zer izan zen mota horretako Gure kodea aurretik bugging. Eta hemen zer egin nuen dena da araztailea zuretzat egin izan da Egin egiten dut besterik on board, delako, errazagoa da saiatzen baino gehiago ikusteko handiago ikusteko araztailea gainean. Ez duela zentzurik denek nahi? Cool. Ados. On mugitu buruz hitz egiten dugu ahal Notazio asintotikoa, bertan esanez modu dotore bat besterik ez da mota horien guztien runtimes. Beraz, ezagutzen dut David, hitzaldia, runtimes gainean ukitu. Eta formula osoan barrena joan zen la nola runtimes kalkulatzeko. Kezkak horri buruz. Oraindik benetan bitxia bada nola funtzionatzen duten on, free nirekin hitz atala ondoren sentitzen. Ibil gaitezke bidez Formulak elkarrekin. Baina guztiak you guys dute benetan ezagutzen da n 2 baino gehiago karratu Gauza bera da, n karratu bezala. Kopururik handiena delako, berretzailea, gehien hazten. Eta, beraz, gure helburuetarako, arduratzen gara guztiak kopuru erraldoi hori gero eta handiagoa da. Beraz, zer kasu onena da aukeraketa Ordena exekuzio? Zu izan bada joan zerrenda batean batetik bestera joateko eta, ondoren, batetik bestera joateko bitartez Zerrenda horretako gainerako jarduerak zenbat aldiz dira ziurrenik zoazen, du kasu horretan txarrenean Goiko kasuan, exekutatu bidez barkatu? Agian galdera bat hobea da eskatu, zer kasu txarrena da aukeraketa Ordena exekuzio. Ikusleak: n karratu. ANDI Peng: Honez n karratu, ezta. Beraz, hau da pentsatzea oso erraz, Bat denbora bi loops habiaratu behar duzu, Honez n karratu unea iritsi da. Nahiz eta ez zara bakarra delako bidez, berriro ere martxan, atzera egin behar duzu inguruan, eta horren bidez exekutatu berriro ere balio bakoitzean dagoen barruan. Beraz, kasu horretan, korrika n zu Nondik n karratu, horietatik is-- barkatu, n aldiz n, horrek berdin n karratu. Eta moduko da, gainera, pixka bat zentzuan berezia ez dela horien bada axola balioak dira dagoeneko ordena. Eta oraindik ere, behar Mediaz bidez exekutatu. Dezagun esan hau izan zen 1, 2, 3, 4. Ala ez izan zen ere kontuan hartu gabe Ordena, oraindik litzateke igarotzen zuen dituzte eta oraindik hautatuta gutxieneko balioa. Egin dute litzateke egin egiaztapen kopuru bera aldi bakoitzean bakarra, nahiz eta ez zuen benetan ukitu ezer. Beraz, kasu horretan, onena eta txarrena runtimes baliokideak dira benetan. Beraz, espero exekuzio Aukeraketa ordenatu, bertan, guk ikurra theta, theta, kasu honetan, halaber n karratu izango litzateke. Horiek guztiak hiru n karratu izango litzateke. Denek zergatik on argi dago exekuzio karratu n? Ados. Beraz, ez dut besterik azkar exekutatu joan era gainerako zehar. Algoritmia burbuila orain arte bezala gogoratzen, hau izan zen lehena David joan baino hitzaldian. Funtsean, pausoz Zerrenda osoa bitartez eta zuk swap-- duzu besterik bi alderatu aldi berean. Eta handiagoa da bat izanez gero, Zu baino besterik trukatzeko. Beraz, bada, horiek dira handiagoak, trukatu zenuke. Dut ofiziala hementxe. Hargatik, besterik gabe esan izan duzu 8, 6, 4, 2. Alderatu zinela 8 eta 6 a. Litzaidake horiek aldatu behar duzu. 8 eta 4 a konparatu nahi duzu. Litzaidake horiek aldatu behar duzu. 8 trukatu badaukazu eta 2, horiek aldatu baita. Beraz, zentzu horretan, ikusi ahal izango dituzu, jokatu dira denbora epe luze bat baino gehiago, nola balioak burbuila mota den muturrak, eta horregatik deitu dugun burbuila ordenatu. Besterik ez genuke berriro exekutatu bidez Gure bigarren mendatean, eta gure hirugarren mendatea, eta gure laugarren pass. Funtsean, burbuila sort besterik exekutatzen Ez duzu egin arte swaps gehiago jartzeko. Beraz, zentzu horretan, hau da, besterik gabe, horretarako pseudocode orokorrari. Kezkak, hauek izango dira guztiak online izan. Guk ez dugu izan nahi hori baino gehiago benetan joan. Hasieratu besterik ez dugu kontagailu bat 0 hasten da aldakorra. Eta array osoan zehar batetik bestera joateko. Eta balio bat hau bada is-- bada balio balioa baino handiagoa da, horiek aldatu zaren. Eta gero, Oraindik besterik jarraitzea joan. Eta ari zenbatu zoazen. Eta besterik ez zaren egiten jarraitzea hau mostradorera handiagoa den bitartean 0, eta horrek esan nahi du, baino aldi bakoitzean trukatzeko duzu, Dakizuenez, joan nahi duzun Atzera eta egiaztatu berriro. Egiaztapena mantentzeko badakizu arte nahi duzu Ez duzula jada trukatzeko. Beraz, zer dira onenak eta txarrenak Kasu burbuila moduko runtimes? Eta hau hint-- da benetan ezberdinak Aukeraketa zentzuan moduko batetik duten bi erantzun hauek ez dira berdinak. Zer gertatuko litzateke pentsatzen Kasu bat da dagoeneko antolatuta zen. Eta pentsatzen zer gertatuko litzateke zen bada kasu horietan, ez zen ordenatuta. Eta mota dezakezu exekutatu duzu zergatik bidez gertatzen da. Emango dizut mutil, bezala, 30 segundo hori pentsatzen. ONDO DA. Norbaitek dute zer at asmatzeko txarrena kasuan burbuila sort runtime da? Bai. Ikusleak: lirateke, adibidez, n aldiz n ken 1 edo horrelako zerbait? Bezala, egiten duen bakoitzean, besterik ez da, bezala, swap bat gutxiago dena dela, izan zen. ANDI Peng: Bai, beraz, Oraindik erabat eskuineko. Eta hau eta kasu bat da zure erantzuna izan zen benetan konplexuagoa inork baino eman behar dugu. Beraz, ez naiz run joan hau guztia hemen ezabatuko da. Guztiontzat ona da? Ahal dut ezabatuko hau? ONDO DA. N zehar ibiltzen ari zara aldiz, lehen aldiz, ezta? Eta ari dira to barrena korrika joan n ken 1, bigarren aldiz, ezta? Eta, ondoren, zauden mantentzeko joan , joan n mine 2, etab. David jokatua zen hitzaldi bat, non ere, balio horiek guztiak eman gehitu badituzu, hori da zerbait lortzen duzun antzekoak yeah-- 2, funtsean, besterik gabe murrizten baino gehiago n behera karratu. Bat lortzeko ari zara Han ere fraction bitxi. Eta, beraz, besterik ez ezagutu n karratuko beti gailentzen fraction gainean. Eta, beraz, kasu honetan, txarrena exekuzio n karratu izango litzateke. Zen beheranzko bada Ordena, uste, zuk swap bat aldi bakoitzean bakarra egin behar. Zer izango litzateke, potentzialki, kasu exekuzio onena? Dezagun esan, zerrendan bazegoen jadanik ordenan, zer exekuzio izango litzateke? Ikusleak: n. ANDI Peng: Da n, zehazki. Eta zergatik da n? Ikusleak: you delako, besterik gabe, aldi bakoitzean egiaztatu dute. ANDI Peng: Zehazki. Ahalik eta exekuzio onenetan beraz, Zerrenda honetan bazegoen jadanik ordenatuko demagun 1, 2, 3,, 4 duzu litzateke besterik gabe, joan bidez, begiratu nahi duzu, ikusi nahi baduzu, ai, kanpora joateko egin zuten denek. Ez nuen trukatzeko. Bukatu dut. Beraz, kasu horretan, besterik n edo urrats kopurua duzun besterik den lehenengo zerrendako egiaztatu izan. Eta ondoren, orain hit dugu txertatzeko ordenatu, non algoritmoa da, funtsean zatitzeko zati ordenatuko eta ordenatu gabe sartu da. Eta gero, banan-banan, Unsorted balioak dira Beren egokia txertatuko zerrendaren hasieran posizioak. Beraz, adibidez, bat egin behar dugu 3 zerrenda, 5, 2, 6, 4 berriro. Badakigu dela gaur egun Besterik ez dugu Sailkatu delako horri begira hasi. Begirada bat hartu dugu eta badakigu Lehenengo balioa ordenatuta, eskubidea da? Multzo batean baino ezin duzu bazabiltza tamaina bat, badakizu, duela ordenatuta. Beraz, ondoren, badakigu hori Sailkatu beste lau. Igaroko ditugu balio duten ikusiko dugu. Goazen berriro. Ikusi 5 balio duten? Begirada bat hartuko dugu. Konparatu dugu 3. Badakigu baino handiagoa dela 3, beraz, badakigu hori dela ordenatuta. Beraz, gaur egun ezagutzen dugun lehen bi antolatuko dira, eta azken hiru ez dira. 2 begirada bat hartuko dugu. Lehen egiaztatu dugu 5 batekin. Dela 5 baino gutxiago? Ez da. Beraz, goitik begiratzen mantendu behar dugu. Ondoren egiaztatu 2 3 off. Da baino gutxiago? No. Beraz, badakizu, 2 txertatuko behar dela Aurrealdean 3 eta sartu eta 5 biek bultzatu behar dira. Berriro egin 6 eta 4. Eta mantendu besterik ez dugu funtsean egiaztapena, non begiratu besterik ez dugu, egiaztatu, egiaztatu. Eta ondo egon arte posizio, mota besterik ez dugu txertatzeko eskuineko posizioa sartu, hau da, non bere izena zetorren. Beraz, hori besterik ez algoritmoa da, pseudocode per se, mota, nola gauzatu genuke on txertatzeko ordenatu bat. Pseudocode hemen. Online guztiak da. Ez duzu guys badira kezkak hau kopiatu behera nahian. Beraz, berriro ere, bera question-- zer Onena eta txarrena runtimes litzateke txertatzeko ordenatu egiteko? Oso azken galderaren antzekoa da. Emango dizut mutil, bezala, 30 segundo hau pentsatzen baita. OK Norbaitek nahi eman dit exekuzio txarrena? Bai. Ikusleak: n karratu. ANDI Peng: Honez n karratu. Eta zergatik da n karratu da? Ikusleak: delako alderantzizko ordenan, duzu n aldiz bidez joan n, horrek is-- ANDI Peng: Bai, hain zuzen. Burbuila ordena bezala gauza beraz bera. Zerrenda honetan bada beheranzko ordenan, zaren Lehenengo behin egiaztatu behar da. Eta gero, behin balio gehigarri Oraindik egiaztatu behar dute joan aurka balio bakoitza, ezta? Eta beraz, bere osotasunean, ari egin zoazen n pass aldiz bat bestearen n pasatzen, eta horrek N karratu. Zer Kasu onena buruz? Bai. Ikusleak: n ken 1, zeren lehenengoa dagoeneko karratu da. ANDI Peng: Beraz, hurbil. Erantzuna n da benetan. Lehenengoa da berriz delako ordenatuta, agian ez, egia esan, hura besterik lucked dugu atera, in Adibidez, hori 2 Gertatu kopuru txikiena izan dadin. Baina hori ez da beti horrela izan. Dagoeneko 2 hasieratik ordenatuko badago baina begiratu eta ez da 1 hemen, 1 errepidea da topo egingo. Eta nik Amaierara joan ari Mediaz aplikatzen zaie. Kasurik onenean ere, orain, egia esan, besterik ez da n izango da. Baduzu 1, 2, 3, 4, 5, 6, 7, 8, zaren to bidez exekutatu joan Zerrenda osoa behin egiaztatzeko behar dena fina bada ikusteko. Denek lasterketak on argi dago Aukeraketa aldiz, bai? Bidez noa ezagutzen dut oso azkar hauekin. Baina besterik ez ezagutu ezagutu behar da kontzeptu orokor, ona izan behar duzu. ONDO DA. Beraz, besterik ez dut eman mutilak, agian, bezala, Minutu bat zure bizilagunak hitz egin zer dira besterik batzuk Ezberdintasun nagusietako mota mota horien artean. Egingo errepasatuko ditugu laster. Ikusleak: Oh, OK. ANDI Peng: Bai. ONDO DA. Cool, dezagun reconvene klase bezala. ONDO DA. Beraz, hau izan da mota bat zentzuan irekia question Ba hori da, haiei erantzun asko. Eta guk baino gehiago joan egingo horietako batzuk laburki. Nahi dut you guys eskuratu zer duten desberdin pentsatzen Hiru mota mota guztiak. Eta, entzun nuen, halaber, handi bat question-- zer batu ordenatu egiten? Great galdera, hori delako hurrengo zer estaltzen ari gara. Beraz batu sort da zerbaitek funtzio Beste era oso desberdinean. You guys see-- ahal bezain zuen David egiten demo non cool guztia izan zuen batu ikusten zaratarekin moduko ran, bezala, infinituki Beste bi mota baino azkarrago? ONDO DA. Beraz, hori da batzea delako moduko arrail hori inplementatzen eta konkistatzeko kontzeptua dugu hitzaldian asko hitz egin du. Lanera nahi dugun zentzu horretan smarter, ez gogorragoa, betiere zatitzen eta arazo konkistatzeko, eta horiek apurtu behera, eta, ondoren, jarri elkarrekin, Gauza ona da beti gertatuko. Beraz, modu bateratu batean, moduko funtsean lan egiten du da hori banatzen da erdia Sailkatu array. Eta gero, zer bi multzo baten erdi lortu du. Eta bi erdi horiek ordenatzen besterik ez da. Mantentzen du, besterik gabe, erdia zatituz, in erdia, erdia dena ordenatuta dago arte eta orduan errekurtsiboki jartzen dena batera. Beraz, benetan abstraktua da. Hau Beraz pseudocode apur bat besterik ez da. Ez duela zentzurik ere modu exekutatzen ari da? Hargatik esaten bat behar duzu n elementu multzo, ezta? N 2 baino gutxiago bada, itzuli ahal izango duzu. Badakizu delako hori ez bada Gauza bat bakarrik, ordenatu egin behar da. Bestela, ezkerreko erdia ordenatzeko duzu, eta, ondoren, eskuineko erdia ordenatzeko duzu, eta gero batu. Beraz, hori itxura oso erraza bitartean, egia esan, ez da pentsatzen da zaila mota. Oraindik delako bezala, bai, hori da mota bera exekutatzen. Eskuin? Honez bera exekutatzen. Beraz, zentzu horretan, David tocado klasean errekurtsio gainean. Eta hori kontzeptu bat da Gehiago buruz hitz egingo dugu. Hori, bi lerro hauek egin Hemen, benetan programa besterik ez da kontatzea bera exekutatzeko sarrerako ezberdinekin. Beraz, baizik exekutatu bera baino n elementu osotasunean, Apurtu dezakezu behera sartu ezkerreko erdia eta eskuineko erdia eta, ondoren, berriro exekutatu. Eta, ondoren, ikusiko dugu ikusmen, ikusiz ikasten a nagoelako. Niretzat hobeto funtzionatzen du. Beraz bisuala adibide bat bilatuko dugu hemen. Demagun array bat dugu, sei elementu, 3, 5, 2, 6, 4, 1, ez ordenatuta. Ondo da, ez orri honetan, asko. Beraz, you guys begiratu ahal bada Lehenengo hemen urrats, 3, 5, 2, 6, 4, 1, banatu dezakezu erdia. 3, 5, 2, 6, 4, 1 daukazu. Badakizu horiek aren't-- duzu ez dakit ari ordenatuko edo ez bada, beraz, horiek hautsi behera mantendu behar dituzu, erdiak, erdiak, erdia ere, azkenean arte, bakarrik, elementu bat behar duzu. Eta elementu bat beti ordenatuko da, ezta? Beraz, badakigu hori 3, 5, 2, 4, 6, 1, berez, ordenatuko dira. Eta orain, horiek jarri ahal izango dugu atzera elkarrekin. Beraz, badakigu 3, 5. Horiek jarri dugu elkarrekin. Badakigu hori ordenatuko. 2 da oraindik han. Jarri ahal izango dugu 4 eta 6 elkarrekin. Badakigu hori horrela antolatu, beraz, jarri dugu elkarrekin. Eta 1 hor dago. Eta gero, begiratu besterik ez bi erdi horiek hemen. 3, 5, 2, 2, 3, 5 daukazu. Zuk bakarrik alderatu ahal du dena hasieratik. Dakizuenez hori ordenatuko delako eta badakizu, hori horrela antolatu. Beraz, ondoren, ez duzu ere behar alderatu 5, alderatu duzu, besterik gabe, 3. Eta 2 3 baino txikiagoa da, eta beraz, Dakizuenez 2 behar azkenean joan. Gauza bera han. 1-hemen joan behar. Eta, ondoren, jarri denean joan Bi balio horiek elkarrekin, Dakizuenez hori horrela antolatu eta Badakizu hau da antolatuta. Orduan, 1 eta 2, 1, 2 baino gutxiago. Hori esaten dizu 1 dela beharko honen amaieran joan nahiz eta 3 edo 5 begiratu gabe. Eta gero, 4, eta besterik dezakezu egiaztatu, eskuinera doan da hemen ere. Ez daukazu 5 begiratzeko. 6 berbera. Badakizu 6-- hori bakarrik ez du zertan begiratu behar da. Eta beraz, modu horretan, zaren besterik zeuk aurrezteko urrats asko denean alderatuz zaren. Ez daukazu guztietan konparatzeko beste elementu aurkako elementua. Direnak aurka alderatu besterik ez duzu konparatu aurka behar duzula. Beraz, kontzeptu abstraktu bat mota da. Kezkak ez bada nahiko duzu kolpatzeko eskubidea oraindik. Baina, oro har, hau da, nola batu ordenatu batean lan egiten du. Galderak, galderak azkar, mugitu aurretik I? Bai. IKUSLEEN: hartu duzula esan duzu 1 du, eta, ondoren, 4 eta 6 eta jartzea ere. Beraz, ez dira horiek da, ez dira begira horiek zaude elementu bereizi, ez osotasun gisa? ANDI Peng: Bai. Beraz, zer gertatzen ari duzu hori da, funtsean, dira marka sorta berria sortzeko. Beraz, badakizu, hemen, nik egin bi 3 tamaina arrayak, ezta? Beraz, badakizu, nire ordenatuko array beharra sei elementu dute. Beraz, sortu besterik ez duzu bat memoria kopuru berria. Oraindik, beraz, mota horretako nahi duzu oroimenaren parrastatzailea ere, baina horrek ez du axola hain txikia delako. Beraz, itxura 1 at duzu eta begiratu 2 at duzu. Eta ezagutzen duzun hori 1 2 baino gutxiago. Beraz, badakizu 1 joan behar horien guztien hasieran. Nahiz eta ez duzu behar den 3 eta 5 begiratzeko. Beraz, badakizu 1 doa han. Ondoren, funtsean, txuleta duzu off 1 du. Da, atsegin, hildako guretzat. Ondoren, besterik ez dugu 2, 3, 5, eta, ondoren, 4 eta 6. Eta gero, badakizu, alderatu 4 eta 2, Oh, 2 han joan behar. Beraz, 2 behera plop duzunean, txuleta duzu off. Beraz, gero, besterik ez duzu 3 eta 4 eta 6 5 du. Eta besterik gabe, gorde duzun Tajadura off horiek jarri arte array. IKUSLEEN: Oraindik besterik beti [INAUDIBLE] alderatuz? ANDI Peng: Zehazki. Beraz, zentzu horretan, zaren besterik alderatuz, funtsean, Beste zenbakia aurka zenbaki bat. Eta badakizu delako Dela ordenatuta, zuk ez dute begiratu bidez zenbaki guztiak. Besterik ez duzu lehenengoa begiratzeko. Eta gero, besterik ez plop duzu horiek behera, badakizu delako non sartzen behar dutela sartzen dira. Bai. Ona galdera. Eta gero, edozein bada dira pixka bat, asmo handiko, doan, kode hau begiratu sentitzen. Hau da, benetan ezartzeko fisiko sort batu nola idatzi nahi dugu. Eta ikusi ahal izango duzu, oso laburra da. Baina atzean ideiak nahiko konplexuak dira bertan. Beraz, hau marrazketa out sentitzen bazara Zure etxeko lanak gaur gauean ere, aske sentitzen. ONDO DA. Beraz, David ere hau baino gehiago joan hitzaldian. Zeintzuk dira kasurik onenean runtimes, txarrena kasuan runtimes, eta espero merge sort runtimes du? Pare segundo bat pentsatzeko. Hau da, nahiko gogorra da, baina mota intuitiboa iruditzen zaizu bada. Ados. IKUSLEEN: da txarrena kasuan n log n? ANDI Peng: Zehazki. Eta zergatik n log n. Ikusleak: Ez da delako esponentzialean azkarrago bihurtzen, beraz, hori funtzio bat bezala ordez, soilik n izatearen karratu edo zerbait? ANDI Peng: Zehazki. Beraz, zergatik exekuzio honetako n log da n da delako zer egiten ari zaren Urrats guztiak egiten? Ari zara Tajadura erdia, ezta? Eta beraz, ez gabiltza eginez saioa, egiten ari da hori guztia da arazo bat erditik zatitu, erdia, erdia, halves gehiagotan. Eta, zentzu horretan, mota egin ahal izango dituzu eredu lineala kentzeko Nik ez dugula izan erabiliz. Denean mozten delako zatian gauzak, egunkari bat da. Hori besterik matematikoak hura irudikatzeko modu. Eta, azkenik, bukaeran, zaren besterik bidez azken pass bat egiteko horiek guztiak jarri ahal izateko, ezta? Eta, beraz, izan besterik ez bada egiaztatu gauza bat, hori da n. Eta beraz Oraindik motatako bi elkarrekin biderkatuz. Beraz, lortu duzun bezala final hori Hemen behera N n log batekin egiaztatu Hemen eman. Eta biderkatu baduzu horiek, hori nn saioa. Eta, beraz, kasu onena eta txarrena Kasu eta espero diren guztiak nn saioa. Honez gain, beste edozein bezalakoa. Sail moduko bezalakoa da egiten duten zentzuan Ez du axola zer zure Zerrenda da, besterik ez da joan gauza bera aldi bakoitzean bakarra egin. ONDO DA. Beraz Ikus dezakezuenez bezala, nahiz eta garela, bidez n desagertu dut ordenatzen karratu, ez da oso eraginkorra. Eta nahiz eta honek n log n dago ez eraginkorrenak. You guys bitxia bada, moduko mekanismoak ez dago direla, beraz, eraginkorra ari dira Ia funtsean laua exekuzio batean. Nik log n en batzuk lortu duzu. Lortu duzu log log n en batzuk. Ez dugu, gainean ukitu Klase honetako oraintxe. Baina zuk mutil bitxi badira, sentitzen free to google, zer da ordenazio-mekanismoak eraginkorrena da. Ez dakit, ez dira benetan dibertigarria batzuk ere bai, antzekoak ez batzuek benetan Dibertigarria bai pertsonak osatzen duten. Eta galdetzen duzu nola dauden inoiz pentsatu. Beraz, google, aisialdian eta badituzu denbora, on, zer dira modu dibertigarri batzuk Hori jende baita ways-- pertsona eraginkorra dute era ezartzeko gai izan dira. ONDO DA. Eta hemen taula gutxi erabilgarri bat besterik ez da. Guztiak ezagutzen dut, galdetegi hori 0 aurretik, izango da zure gelan izango da, seguruenik, dudarik Hori memorizatzeko. Beraz, hori da polita hor zaudete. Just ez ahaztu logika made-- dagoela zergatik zenbaki horiek gertatzen ari. Duzu beti galduta bazabiltza, besterik egin ziurtatu badakizu zer ordenatzen dira. Eta exekutatu dezakezu bitartez Zure gogoan horiek irudikatu zergatik horiek erantzunak erantzun horiek dira. Ados. Beraz, mugitu joan , azkenik, irizpide horiek emateko. Duzuenontzat bezala delako Izan pset irakurri duten, bilatzen da, era berean, parte aste honetan arazo ezartzen. Ezartzea eskatzen dizu bi bilaketa mota. One bilaketa lineala da eta Bilaketan bitar bat da. Beraz, bilaketa lineala oso erraza da. Elementu bilatu nahi besterik ez duzu Zerrenda bat lortzen baduzu ikusteko. Besterik ez duzu bidez batetik bestera joateko. Eta zerbait berdinen badu, besterik dezakezu itzuliko da, ezta? Baina hori gehien gaude buruz hitz egiten interesa bilaketa bitarra da, eskubidea, hau da, zatitzea eta konkistatzeko mekanismo David zen hitzaldian erakutsiz. Gogoratu telefono book adibidez zuela gora jarriz mantentzen, mota horretako borrokatu zuen batak azken urte honetan pixka bat, non arazoa zatitzen erdia, erdiak, erdia ere, behin eta berriro, da zer bilatzen ari zaren aurkitu arte? Eta lortu duzun horren exekuzio baita. Eta ikusi ahal izango duzu, da nabarmen eraginkorragoa bilaketa mota beste edozein baino. Beraz, modu horri buruz genuke joan bilaketa bitarra bat gauzatzeko da, array bat izan badugu, indizea 0 eta 6, zazpi elementu, erdian dezakegu begiratu, eskuinera Barkatu, gure galdera izanez gero lehen aukera galderari galdetu nahi badugu, ez du array eduki 7ko elementua, jakina, gizakiak izateagatik, eta beharrik gisa horretako txiki bat, guretzat erraza da bai esateko. Baina bidean bitar bat ezartzeko Bilaketa-erdian begiratu litzateke. Badakigu indizea 3 dela erdian, garelako Badakizu zazpi elementu daude. Zer 7 2 banatuta? Txikitu dezakezu off extra 1 dela. Lortu duzu 3 erdian. Beraz, 3-sorta 7 berdina da? Ez da, ezta? Baina egiaztapen pare bat egin ahal izango dugu. 3 7 baino gutxiago edo array da 3 multzo 7 baino handiagoa da? Eta badakigu 7 baino txikiagoa dela. Beraz, badakigu, ai, onartu beharra dago Ez ezkerreko erdia izango. Badakigu hori izan behar da eskuineko erdia da, ezta? Beraz, besterik ez dugu txikitu daiteke off array erdia. Ere ez dugu nahi ere begira jada. Ezagutzen dugulako dela gure arazoa erdia ezagutzen dugun erantzuna da eskubidea gure arazoaren erdia. Beraz, hori begiratu besterik ez dugu orain. Beraz, orain begiratu at dugu zer utzi erdian. Indize hori 5. Check bera berriro egiten dugu eta ikusi genuen txikiagoa dela. Beraz, hori ezkerreko begiratzen dugu. Eta gero, check dela ikusten dugu. Array balioa da indizea 4 7 berdina? Da. Beraz, itzultzeko egia esan daiteke, izan ere, Gure zerrendan balioa aurkitu dugu. Bidean zehar joan nintzen egiten du make denek zentzu horretan? ONDO DA. Emango dizut mutil agian, bezala, Hiru, lau minutu irudikatu nahi hau nola pseudocode asmoz. Beraz, imajina bat idazteko eskatu dizut Bilaketa funtzioa izeneko () itzulia balioa, balio boolear bat, zela egia edo gezurra bezala, Egia aurkitu baduzu balio, faltsua ez baduzu. Eta gero zinen balioa gainditu duzu ziren bila balioak, sartu bertan dago, array Oh, zalantzarik gabe jarri dut okerreko lekuan dagoela. ONDO DA. Anyways, hori behar dute balioak eskubidea izan. Eta gero, int n kopurua da Array horretan elementuen. Nola litzateke saiatzen joan arazo hori pseudocode nahi? Bezalako mutil emango dizut Hiru minutu horretarako. Ez, uste dut ez da sor baitezakete Bai, ez eskuineko bat sortu da hemen. Ikusleak: Can I? ANDI Peng: Bai, zuk lortu nuen. Lan hori? Ados, cool. ONDO DA. Eskubidea guys guztiak, gaude rein aldera joan. ONDO DA. Beraz, bere gain hartuko lortu dugu eder hau n bertan balioak array gutxi. Ez nuen marrak marrazteko. Baina, nola litzateke joan gara hau idazten saiatzen? Norbaitek nahi den eman zidan lehen lerroan? Niri emateko lortu nahi baduzu pseudocode hau lehen lerroan. Ikusleak: [INAUDIBLE] Ikusleak: litzaidake nahi duzu bestera joateko bitartez Ikusleak: Just beste begizta for? Ikusleak: --for. ANDI Peng: Beraz, hau da, pixka bat delikatua. Pentsatu nahi duzun naizenean begizta hau martxan mantentzea behin eta berriro noiz arte? Ikusleak: [INAUDIBLE] arte balio balio berdina da. ANDI Peng: Zehazki. Beraz, ez duzu besterik ez write-- duzu nahiz eta ezin dugu sinplifikatzen da gehiago. Bakarrik egin ahal izango dugu berriz, begizta bat, ezta? Beraz, besterik ez duzu loop Ezagutzen dugun bitartean bat dela. Baina oraintxe, noa zer bidez - "begizta" esatea? Loop until-- zer da Gure bukatzen baldintza? Uste dut entzun nuen. Norbaitek esan entzun nuen. Ikusleak: Balioen berdinen erdialdera. ANDI Peng Berriz esaten da. Ikusleak: Edo, arte bilatzen ari zaren balio erdiko balioa berdina da. ANDI Peng: ez da han ere badago? Zer gertatuko da bilatzen ari zaren balioa ez da benetan array honetan? Ikusleak: itzultzeko duzu 1. ANDI Peng: Baina, zer egin nahi dugu begizta baldintza bat behar badugu arte? Bai. Ikusleak: arte ez da balio duen bakarra? ANDI Peng: You can amaitzen da until-- beraz badakizu zarela Gehienez balio bat izan da, ezta? Eta hori ari zaren badakizu min balio bat, eskubidea dute? Halaber, hori zerbait delako Aurretik esatea ahaztu zait, Zerbait hori, bilaketa bitarra buruz kritikoak da zure array ordenatuko dagoeneko. Zeren eta ez dago egiteko modu hau besterik ausazko balioak ari dira. Zuk ez dakizu bat bada bestea baino handiagoa da, ezta? Beraz, badakizu, gehiengo hori eta Zure mins hemen dira, ezta? Zuk be egokituz joan bazabiltza Zure max zure mins eta mid-- batean Demagun, besterik gabe, zure erdialdean balio hementxe da ari zaren, funtsean begizta zure minimoa izan arte Zure max gisa berean, eskuineko edo buruz Zure max ez da zure min berdina bada. Eskuin? Hori gertatzen denean, zeren, badakiela Nik azkenean hit balio bera izango dituzu. Beraz, zure min arte begizta nahi duzu txikiago edo berdin trabatzen zaie da, ez baino edo gutxiago, Beste bada inguruan max modu bat da. Hori egin zuen zentzurik? Gutxi saiatzen hartu dut eskubide hori lortu ahal izateko. Baina begizta gehiengo balio arte da, funtsean, ia gutxiago Baino edo zure gutxieneko berdina, ezta? Orduan badakizu duten konbergenteen duzun. Ikusleak: Zure gehienez litzateke balio izan gutxienekoa baino txikiagoa? ANDI Peng: duzula mantentzen bada egokituz, eta horrek da zer goaz honetan beharreko egiten. Ez duela zentzurik? Gutxieneko eta gehienezko besterik ez dira hori seguruenik gara integers nahi joan den mantentzeko sortu nahi non bilatzen ari gara pista. Array existitzen delako zer egiten ari garen kontuan hartu gabe. Bezala, ez gara benetan fisikoki Array moztu, ezta? Zu besterik egokituz dugu non bilatzen ari gara. Ez duela zentzurik? IKUSLEEN: Bai. ANDI Peng: OK. Beraz, gure begizta baldintza bada, zer egin begizta honen barruan, nahi dugu? Zer ari gara faltako den egin? Beraz, oraintxe bertan, lortu dugu Gehienez bat eta min bat, eskubidea, ziurrenik sortu up hemen nonbait. Ziurrenik nahi goaz erdian, eskuineko aurkitzea? Nola egingo dugu hori izango da gai erdialdera aurkitzea? Zer da mathematical-- du Ikusleak: Max plus 2 banatuta min. ANDI Peng: Zehazki. Ez duela zentzurik? Eta ikusten duzu guys zergatik dugu ez besterik use-- zergatik egin dugu ordez egiteko besterik N 2 banatuta? Da n balio bat dagoelako hori bera lo egingo. Eskuin? Baina gure gutxieneko egokitu dugu eta gehieneko balioak, ari dira aldatu egingo da. Eta, ondorioz, gure erdialdera da gehiegi aldatuko. Beraz, horregatik nahi dugu eskubide hori egin hemen. ONDO DA. Eta gero, orain dela aurkitu dugu our-- bai. Ikusleak: Just question-- azkar bat denean min eta max esan duzu, dira suposatuz dugun ordenatuko dagoeneko ez da? ANDI Peng: Bai, hori da benetan bat bilaketa bitarra bat izateko baldintza, ordenatuko da jakin behar duzula. Hori dela-eta, ordenatu, idazten duzun zure Arazoa zure bilaketa bitarra aurretik ezarri. ONDO DA. Beraz, gaur egun ezagutzen dugun erdigunea hau da, hemen zer egin nahi duzu? Ikusleak: konparatu nahi dugu beste bat dela. ANDI Peng: Zehazki. Beraz ari alderatu zoazen balio erdialdean, ezta? Eta zer esango du gurekin denean konparatu? Zer gero zer egin nahi dugu? Ikusleak: balio handiagoa bada erdialdean baino, moztu off nahi dugu. ANDI Peng: Zehazki. Beraz balio handiagoa bada erdialdean baino, gaude horiek aldatu nahi joan gutxieneko eta maxes, ezta? Zer aldatu nahi dugu? Beraz baldin badakigu balioa da nonbait Hemen ere, zer egiten duzu aldatu dugu? Gure aldatu nahi dugu gutxieneko erdialdean izango da, ezta? Eta gero beste, da hau ere bada erdia, zer aldatu nahi dugu? Ikusleak: Zure gehienez. ANDI Peng: Bai. Eta gero, besterik ez zaren joan , eskuineko begizta mantentzeko? Orain delako, iterazio ondoren bidez, lortu duzun max a hemen. Eta gero, Mid a Birkalkulatu dezakezu. Eta gero alderatu dezakezu. Eta zu jarraitzea joan mins eta maxes arte funtsean konbergenteen. Eta hori da, badakiela hit duzun da amaieran. Eta bai aurkitu duzula da edo ez duzu puntu horretan. Ez du hori zentzurik denek nahi? ONDO DA. Hau da, nahiko garrantzitsua, you beharko duelako hau idatzi zure kodea gauean. Baina nahiko ona izan duzu guys zer egiten egon behar duzu zentzua, eta hori ona da. ONDO DA. Beraz, zazpi lortu dugu minutu geratzen atalean. Beraz, hitz buruz pset hau egiten ari garela. Beraz pset bi zatitan banatuta dago. Lehen erdian dakar Aurkikuntza bat gauzatzeko bertan, bilaketa lineala idatzi duzu, a bilaketa bitarra, eta ordena bildu bat. Beraz, hau da lehena pset bat non denbora you guys emanez izango dugu zer deitzen banaketa kodea, eta kode da dugu pre-idatzitako, baina besterik pieza batzuk utzi idatziz amaitzeko behar duzu. Beraz, you guys begiratzen honetan duzu kodea, baliteke urratsak benetan beldur. Zu besterik nahi baduzu, ahh, I ez dakit zer da hori egiten, Ez dakit, bezala, badirudi hain konplexua, ahh, erlaxatzeko. Ondo da. Irakurri zehaztapenak. Zehaztapenak izango duzu azaldu zehazki zer programa horiek guztiak egiten ari dira. Adibidez, generate.c programa bat da Egingo zure pset etortzen. Egia esan, ez duzu ukitu, baina zer egiten ari da ulertu behar duzu. Eta generate.c, guztiak egiten ari da bai ausazko zenbakiak sortuz edo, eman dezakezu hacia, bat bezala hitzartutako kopurua hartzen duela, eta zenbaki gehiago sortzen ditu. Beraz, ez dago modurik zehatz bat da generate.c ezartzeko eta bertan , egin dezakezu zenbaki-sorta bat Zure bestelako metodoak probatzeko nahi da. Beraz, nahi izanez gero, for Adibidez, zure aurkituko probatzeko, generate.c exekutatu nahi zenuke, zenbaki-sorta bat sortzea, eta, ondoren, zure laguntzaile funtzioa exekutatu. Zure laguntzaile funtzioa da non zarela benetan fisikoki kodea idatziz. Eta laguntzaile uste liburutegia fitxategi bezala idazten ari zaren bada deituz. Eta beraz helpers.c barruan, ikusiko duzu ez bilatu eta sailkatzeko. Eta gero joan zaren, funtsean, Besterik jarri denak elkarrekin. Zehaztapenak ere esango dizu nola jarri duten komando-lerroan. Eta behar den ala ez probatu ahal izango duzu, edo Ez zure moduko eta bilaketa lanetan ari gara. Cool. Ditu dagoeneko edonork hasi eta arazo edo galdera topo oraintxe dute honekin? ONDO DA. Ikusleak: itxaron. Galdera bat daukat. ANDI Peng: Bai. IKUSLEEN: egiten hasi nintzen Bilaketa lineala helpers.c in the eta ez zen benetan lan egiten. Baina gero, aurkitu dut, besterik ez dugu ezabatu eta egin bilaketa bitarra dute. Beraz, ez da izango ez balitz axola? ANDI Peng: Erantzun laburra ez da. Baina ez bada ari gara geroztik Ikusleak: Baina inork ez du bere benetan egiaztatuz. ANDI Peng: gara inoiz duten ikusteko. Baina seguruenik egin nahi duzu Ziur bilaketa lanean ari da. Zure lineala bada delako bilatu ez da lan, orduan aukerak zure binariodiraeta bilaketa ez da bezain ondo lan egingo da. Antzeko izan duzulako biak ere logika. Eta ez, ez du benetan axola. Beraz bakarrak piztu dituzu Ordena eta bilaketa bitarra dira. Bai. Eta, era berean, seme-alabek asko egon ziren helpers.c konpilatu nahian. Oraindik ez duzu benetan onartzen Hori egin ahal izateko, helpers.c delako ez du funtzio nagusia dute. Eta beraz, behar duzu bakarrik izan benetan konpilatzean sortzen eta aurkitu, deiak aurkitu duelako helpers.c eta barruan funtzioak. Beraz, hori arazketa egiten ipurdia mina bat. Baina hori da, zer egin behar dugu. Ikusleak: egin duzu, besterik gabe, guztia, ezta? ANDI Peng: zuk zuzenean guztiak egin baita, bai. ONDO DA. Hori da eta zer dagokionez pset egin duzun guztia eskatuz. Edozein zalantza izanez gero, sentitzen doan galdetu atala ondoren. Hemen egongo naiz, dagoen bezala, 20 minutu. Eta bai, pset en benetan ez dela txarra. Zaudete ONEAN. Hauek, besterik jarraibideak jarraitu. Kind of dute zentzua, logikoki, zer gertatzen ari behar da, eta ondo egongo litzateke duzu. Ez beldur izan. Badira kode asko da Dagoeneko idatzita dago. Ez izan beldur gehiegi ez baduzu zer hori guztia esan nahi duen ulertzeko. Asko bada, guztiz fina da. Eta bulego orduetan etorri. Lagundu egingo dugu begirada bat hartu. Ikusleak: estra funtzio, ez dutenek begiratu beharko dugu? ANDI Peng: Bai, horiek kode daude. 15 partida, erdia ere Dagoeneko da zuretzat idatzirik. Beraz, funtzio horiek dira Kodea dagoeneko. Yep. Ados. Beno, zorterik onena. Disgusting egun bat da. Beraz, espero duzu mutilak ez gehiegi sentitzen barruan ostatu eta kodifikazioa buruzko txarra.