DAVID MALAN: Ondo da. Beraz, hau da CS50, eta hau da, orain astean hiru hasieratik. Beraz, orain arte, dugu sido C programak idaztean itxura apur bat hau hemen antzeko zerbait. Beraz, lortu dugu, pare bat zorrotz goialdean dira. Lortu int, nagusia, void dugu, eta gero zerbait du erditik egin, Kode bit batzuen barruan funtzio hori. Baina gakoa duenez, hain zuzen, izan izan dugu void hemen esaten. Beraz, hutsune, denbora hori guztia, zehazten Programa honetan, denean exekutatu dela, baino ezin izango da bere izen bidez exekutatu. Ezin duzu beste edozein hitz idatzi edo programaren izena denean ondoren zenbakiak exekutatzen ari da. Beraz, adibidez, programa balira kaixo izeneko fitxategi batean bildu egin ahal izango duzu, hello, baina hori da. Modu bakarra duzula Could sarrera emateko programa honetara funtzio bat deituz da. Esate baterako, zer funtzio dute beraz, orain arte erabiltzen ari izan gara sarrera erabiltzailea lortzeko? IKUSLEEN: Talde katea. DAVID MALAN: katea lortzeko, edo lortu int, edo beste batzuk ikusi duzun, ez baduzu, nahiz eta oraindik erabiltzen horiek, bezala lortu, luze, luze eta antzekoak. Baina demagun garela benetan hasi nahi Programak dira gutxi gehiago polifazetikoa, eta, Egia, apur bat gehiago duzu dut komando bezala dira, lortzean, zorionez, pixka bat ohituta. Cd espazio Dropbox bezalako. Hau, jakina, aldaketak zure gida, suposatuz Oraindik John Harvard etxean dituzun gida, zure Dropbox karpeta. Bien bitartean, hau bezalako komando bat pset2 izeneko direktorio berri bat sortuko du, duzu agian dute dagoeneko edo Izango arazoa laster bi ezarri. Egin Kaixo, noski, komando bat baizik, izeneko programa bat kaixo eraikitzen kaixo dot c izeneko fitxategi batetik. Eta horietako bakoitzean kasu, gaur egun, izan dugu deiturikoak buruzko argudio bat ematen Komando-lerroan, keinu gonbita, , beraz, badaki zer eraiki nahi du eta, beraz, mkdir horretara sortzen daki zer karpetan, eta beraz cd daki nora joan nahi duzun. Baina orain arte, esaten mantendu dugu duten nagusiak, lehenetsitako funtzioa, void adierazpen bat dauka parentesi horien barruan, eta horrek esan nahi duen ezin du argumenturik hartzen. Beraz, gaurtik aurrera, zer egin behar dugu hau da, hasteko goaz Gauzak euskarri hau ere bezala. Izan ere, kasu honetan, eta zuk ez dute normalean eskuz, Egin izan da lan hau egiteko guretzat, ez dira bat, baina bat, bi, hiru gehigarri programa horrek izendatu ondoren kateak clang. Beraz, nola egin hori lortzeko? Beno, gaurtik aurrera, Kasu non nahi dugun sarrera emateko bidezko deiturikoak komando lerroan, gehituz hasteko goaz hemen zer yellow-- saioa int argc koma deuseza ordezkatuz katea argv parentesi irekiak ixteko kortxetea. Orain hau da interesgarria arrazoi pare bat da. One, guri idatzi utzi da joan programak direla dinamiko apur bat gehiago. Baina, gehiago egunkariak, ez da ireki joan orain elkarrizketa bat bezala zer array benetan erabiliko dira, zer kate bat benetan kanpaia azpian dago, Hurrengo aste arte, urpekaritza hasten gara nahiz eta makina-nolakoa behar bezala sakonago gauzak lan hori guztia egiteko. Baina orain, dezagun marrazteko, agian, irudi bat. Programa bat idatzi duzu deklaratu nagusiekin modu horretan, besteak beste, honako hauek direla bi argumentu, int bat hartzen and-- datuak zer mota bigarren argumentua da? IKUSLEEN: Array. DAVID MALAN: Array. Beraz, itxura Lehen begiratuan bat bezala kate, baina konturatu karratu parentesi artean. Gogoratu azken aldiz sartu dugu array baten ideia du. Eta arrayak kortxete erabili testuinguru pare batean. Plazaren erabil dezakezu Parentesi array batean joan eta elementu jakin bat lortzeko, parentesirik 0 edo bracket 1 edo bracket 2. Baina, ikusi dugu, labur-labur bada, azken astean, gainera, zuk to kortxete horiek erabili tamaina deklaratzeko array bat, zenbat aldez aurretik ezagutzen baduzu ints nola edo askoren kateak edo duzuna benetan nahi. Beraz, izarrekin bihurtzen da ez en hirugarren testuinguru batean hemen duen zenbakia ez duela barruan parentesi karratu. , When you zehaztu hemen dudan bezala, argv antzeko zerbait izenean, bertan fancy modu bat besterik ez da argumentu bektorea, esanez bertan beste modu fancy da argumentuak array bat esanez, parentesi irekiak ixteko kortxetea besterik esan nahi du ez duzula zertan aldez aurretik jakin zein handia Array izango da, baina badakizu, array bat izango da. Beraz, ez baduzu ezagutzen du zenbakia ez jarri hor, parentesi irekiak ixteko kortxetea for esan nahi du argv ez da kate bat, baina kateak array bat. Beraz, sintaktikoki, baduzu uste back azken astean, Oso esaten antzekoa da int adin bracket irekita antzeko zerbait, eta, ondoren, zerbait hortik aurrera. Beraz, zer itxura? Demagun irudi bat marraztu benetan. Beraz, Main programa hau exekutatu haber bi argumentu barruan definitu Parentesi horiek, zuk funtsean, gutxienez bi zatitan dute oroimenaren duzu entregatu kanpaia azpian. One, laukizuzena bezala marrazten dut egingo denez, da argc deitzen dira egingo. Eta besterik laburpena azkar bat bezala, zer datu argc mota da? Beraz, int bat da. Beraz, zenbaki bat da, joan to argc-- txandaka joan out duten argumentu Aldaketa stands. Bien bitartean, marrazten dut argv array gisa. Eta ez dakit zenbat denbora izan da joan, beraz, gaur egungo helburuetarako dot dot dot. Luzera batzuen Litekeena da lortu. Baina irudian hemen dut gutxienez lau laukizuzenak. Beraz, argv memoria hori dendetan zatia katea katea katea dot dot dot, eta argc pusketa bat besterik ez da zenbaki oso bat oroimenaren. Beraz, gaur egun, dezagun apur bat gehiago zehatza. Badago, kateak behar dut array honetan, izeneko argv, horiek da nahi dut banaka, azken astean bezala, idazkera erabili goaz argv tarte 0 atsegin lehenengo gauza array bat lortzeko. Argv parentesi 1 lortzeko Bigarren gauza, eta abar. Gakoa hemen izateaz jarraitzen dugu 0 indexed-- ari gara oraindik 0 hasita. Beraz, gaur egun dezagun benetan honetan zerbait jarri. Izeneko programa bat konpilatu banintz kaixo kaixo dot c izeneko fitxategi batetik, eta, ondoren, programa hori exekutatu I dot idatzibarrarik kaixo, zer nire ordenagailuan, nire ordenagailu eramangarria du, kanpaia azpian itxura Oraingoz dot exekutatu I barra kaixo eta sakatu Sartu? Beno, hau da, beharbada, zer deskribatzeko genezake zure ordenagailuaren edukia gisa memoria, edo RAM Random Access Memory. Beste era batera esanda, ordenagailua, nolabait duzu magikoki egiteko, 1 zenbakia jartzen argc ere, AKA argcount, eta hitzez hitz dioen katea Kaixo argv tarte 0 ere. Ideia ez dut, Egia, zer da argv tartean, 1 edo 2 edo 3, erabiltzaileak ez badu delako ezer idatzitako hello gain, to horiek bere gain hartzen goaz ziurrenik zabor balioak, nolabait esateko. Memoria zatiak ere existitzen dira, baina ez da gurekin begiratu, zeren argcount bakarra da. Orain, bere aldetik, badut idatzi beste programa bat exekutatu, cd, zein komando bat da gehiago behar bezala, Zure prompt-- cd espazio keinuka hasi Dropbox-- denean exekutatu dut, modu eraginkorrean, cd programa abiatzean, argc, nire ordenagailuaren memoria, barruan da azkarren gehien bigarren zenbakia 2. Eta gero, parentesi o argv ditu cd, argv parentesi 1 ditu Dropbox, eta ondoren, noski komandoa osatzen du, beraz, memoria hori guztia funtsean doa urrun eta beste zerbait egiteko erabiltzen da. Eta horregatik esan dut bigarren zati bat besterik ez. Bien bitartean, mkdir pset2 egiten badugu, Irudian ia itxura bera, baina argv barruan kateak ezberdinekin. Clang etenaren egin dut kaixo bada kaixo dot c, ideia bera. Gehiago stuff beteta eman argv, argc eta, jakina, 4 da. Beraz, beste era batera esanda, are array honetan nahiz dot liteke dot dot, batzuen luzera aldakorreko, nolabait esateko, Badakizu beti duzu non amaieran da, argc da esango delako joan zer puntutan gelditu behar duzu argv elementu begira. Lauretan bakarrik begiratu dezakezu kasu honetan, guztira. Hargatik begirada bat hartu en orain, agian, programa erraz bat. Bat besterik ez dio kaixo Zamyla bezalako norbait izateko. Beraz, programa bat idatzi nahi dut erreklamatzeko I une bat besterik horren bidez egin nezakeen Kaixo espazio Zamyla, eta egin nahi dut nire programa out zerbait inprimatzeko super-simple bezalako "kaixo, Zamyla." Orain iraganean GetString erabili dugu. Beraz, iraganean, nahiz Oraindik programazio berria, odds dira Látigo sortu ahal izango duzu bat GetString erabiltzen duen programak eta, ondoren, erabiltzen printf hi esateko Zamyla izateko. Baina dezagun erabili ez oraingoan GetString. Let me ordez Appliant sartu eta ez, besteak beste, I O dot h estandarra. Dezagun, horrez gain, niretzat CS50 dot h. Orain int nagusia, eta orain naiz Ez hutsunea egin gaur bertan egingo da. Horren ordez, naiz int argc egin dut katea argv parentesi irekiak ixteko kortxetea, Ez zenbaki bat zehaztuz. Eta orain hemen nire deiturikoak egin. Orain zer egin nahi dut da naiz fede-jauzi bat pixka bat egin, To Erabiltzaile dela suposatuko dut programa hau behar bezala erabili behar da, eta ez dut besterik gabe joan egin printf kaixo,% sn. Beraz, ezer berririk ez. Baina orain jarri dena delakoa hitza nahi dut Erabiltzaile mota programaren izena ondoren. Beraz, espazio hello egiten dut Zamyla bada, I nolabait programazioaren sarbidea nahi aipatu unquote "Zamyla." beraz, I dezaket nire argudioa bektorea sartu, nire kateak array, eta komandoa bada, berriro ere, izan zen espazio hello Zamyla, zer zenbaki egin nahi dut argv jarri hemen? IKUSLEEN: 1. DAVID MALAN: 1, zeren tarte 0 bihurtzen da izango da programaren izena, ikusi dugun bezala. Beraz, parentesi 1 lehen hitza da dut, erabiltzaileak, idatzi. Aurretik joan eta gorde hau noa. Nire karpetan sartu noa Fitxategi hau non kokatuko dut. Kaixo 3 egin dut. Comp IO en Ados. Kaixo Zamyla Sartu. Zer oker egin dut? I zen ustekabean harrapatu besterik gabe, une bat ez neure burua. Zer oker egin dut? IKUSLEEN: Izena. DAVID MALAN: Fitxategiak izango duen benetan hello3.c izenekoa. Eta hori egin nuen, besterik ez koherentzia, dugu delako hello.c izan hamarkadan online kodea iraganean. Hargatik konpondu hello honetan parentesi etenaren 3 Zamyla. Sartu. Eta gaur egun dugun kaixo, Zamyla. Bien bitartean, aldatu ahal ditut honetara Rob, edo benetan beste hitz izan. Baina kontuan hartu dezagun izkinan kasu bat. Zer liteke izango balitz gertatuko espero duzu Ez dut idazten inoren izen guztietan? IKUSLEEN: Error. DAVID MALAN: Akats bat Nolabaiteko, agian. Ikus dezagun. Sartu. Null. Beraz printf, benetan ari da gutxi gutako babes hemen, eta literalki paren inprimatzeko nulua da, baina gauzak are okerrago gerta daiteke. Eta besterik ez erakusteko zerbait egin nahi duzula behar ez, goazen, hemen eta hasi kuxkuxean. Eskuin? Badakit gero horretan irudian memoria da, funtsean, honetan, argv parentesi 1 Zamyla, argv ditu tarte 0 ditu hello, edo hello-3. Zer da parentesi 2? Beraz, erantzun ahal izango dut Neure burua zalantzan jartzen, ezta? Besterik ez dut aldatu ahal 1 2 bati. Dut orain konpilatu ahal kaixo 3, ./hello3 Dezagun gerturatu eta sakatu Sartu. Whoops. No aipu marka. Interesgarria. Beraz, mota horretako cool ikusi zer gehiago hemen dago. Beraz, zer gehiago nire laptop barruan dago? Dezagun gorde parentesi 3. Egin Hello3, hello-3. Curious. Eta orain, dezagun benetan bold-- 50. Beraz, benetan urpekaritza sakona nire ordenagailuaren memorian. 50 indizeak ere. Beraz, kaixo 3 hello-3. Curious. Guztiak eskubidea, gaur egun besterik ez naiz jokatuz iritsi. Goazen 5.000 en. Guztiak eskubidea. Hargatik konpilatu. Egin Hello3, hello-3. Ados. Orain, ez dago agian zuetako batzuk bonbilla bat off joan izan. Nola asko duzu ikusi Mezu honen aurretik? Ados. Beraz, zergatik? Odds are-- eta ez da desberdina hori eragin dezake gauza, eta argi eta garbi ari onean duzu company-- argi daukagu zer deitzen eragindako segmentaziuo hutsegitea. Eta istorio luze gaur laburrean, I memoria segmentu bat ukitu ez dut behar. Non segmentu bat besterik zatia esan nahi du oroimenaren hori ez dut behar. Orain ordenagailua bermatzen du I exekutatu ./helloZamyla dut argv ukitu ahal tarte 0 eta argv parentesi 1 izan. Baina argc balioa 2, horrek esan nahi du I am bakarrik allowed-- ohorea moduko da sistema ukitu tarte 0 eta bracket 1. Joaten naiz edozein urrunago bada ere, ez da memoria izan nahi ez erabat joan. Nire RAM existitzen fisikoki ordenagailua ere. Baina nork daki zer dago? Izan ere, exekutatzen ari naiz anitz programak une bat. Baliteke seen-- daukat ez banintz Appliant buruzko lan hau egiteko baina nire Mac edo PC-- buruzko I izan liteke email baten edukia ikusi. Instant bat ikusi dut agian Mezu Nik duela gutxi bidali. Egongo den ezer inguruan lingering oroimenez zitekeen sar modu kortxetea notazioa arbitrarioa hau. Edo, okerrago oraindik, agian behar duzu aurkitu nire pasahitzak bat litzaidake dut duela gutxi idatzi, que programa memorian gordetzen zuen, beraz, me autentifikatzeko, eta ondoren, besterik gabe mota hori utzi RAM programa hori utzi nuen arte. Eta, hain zuzen, hau da, bat arriskua eta bat eskumenak C. bezalako hizkuntza bat erabiliz Unfettered sarbidea izango duzu eduki osoa izateko programa bat memoria, eta zer guys txarra ahal are cases-- horietan egin batez ere, guk web programazioa lortu seihilekoan amaiera aldera, zaitugu berrirakurtzeko topic-- hau Poke inguruan, potentzialki, norbait da ordenagailuaren memoria eta, besteak beste, gauza bitxi aurkitu han ikusi genuen bezala. Edo are okerrago oraindik, pasahitzak zuela edo zuen ondoren, erabili ahal izango gauza txarrak egin. Beraz, argi eta garbi, ez luke izan hori egin nuen, gauza arraro gertatuko hasten delako. Izan ere, honen programa bertan behera gelditzen da. Hau parekoa da Mac OS edo Windows Programaren leiho bat besterik ez desagertzeko. Ustekabeko errorea gertatu da. Komando-lerroan Ingurunean honen antzeko zerbait ikusiko dugu. Baina horregatik, hau da, besterik gabe, naiz ukitzen memoria hori ez zidan sartzen. Hargatik defendatzeko a honen aurka beste modu batean pixka Programa honen hemen begira. Beraz, berriro ere, hezurdura lehenago ikusi dugun eta azpimarratu dut denbora int hau. Eta denbora nagusiak hori guztia du balio bat hain zuzen ere, itzuli zen. Nahiz eta gure hitzaldia gehienetan Adibide inoiz ez behin erabili dugu nagusian ezer itzultzeko. Idatzi besterik ez dugu printf itxi kizkur giltza eta hori da. Baina doan, zer egin konpiladore dira egiten, eraginkortasunez, itzuli egin da 0 zuretzat. Turns out-- eta txiki bat da, counterintuitive-- hartzen 0 onak. Ez du esan nahi faltsua per se. 0 da ona, eta edozein-ez 0 balioa, munduko erabaki du, Errore bat dakar. Beraz, inoiz duzun messed bada zerbait sortu zure ordenagailuan, edo programa bat baino ez da egin duzu hil zen eta okerrak leiho batzuk ahaztuak duzun Pantailan, esaten error negatiboa 49 edo error kasu egiten 23-- batzuk itxuraz arbitrarioa balioa hori da, programatzaile hard-kodetuak duelako negatiboa 49 edo positiboak bezalako balioa 23 edozein zenbaki adierazteko, ausartzen esan, 4 milioi posible gauzak of programa bat ere gaizki joan liteke. Beraz, nola liteke hartzen dut honen abantaila? neuk Beno, utzi ireki me programa bat idatzi dudala, aldez aurretik, eta Poke inguruan online kaixo 4 izenekoa. Eta ia berdina da, izan ezik bere erroreen zainketa pixka bat lortu. Kasu honetan, nik berriro deklaratu dut bi argumentu hartzen nagusia, baina oraingo honetan, on line 17, oharra Behatu txeke bat pixka bat egiten ari naiz. Egiten ari naiz ziur argc berdin berdin 2. Delako ez balitz, esan nahi du, segurtasunez ahal dut ukitu ez bakarrik tarte 0, baina parentesi 1. Eta aurrera dut eta inprimatu, kasu honetan, Zamyla edo Rob edo dena delakoa hitza out idatzi dut. Eta orain, besterik lortu apur bat gehiago egokia, Esplizituki itzultzeko noa Guztiak ondo 0 adierazteko. Ezer ez da txarra gertatu. Baina konbentzio, ez naiz joan itzultzeko 1, edo Egia Bat-0 ez balio, zerbait gaizki joan bada. Orain, erabiltzaileak ez da joan Benetan nabarituko zer ari den gertatzen. Izan ere joaten naiz direktorio honetan sartu bada, Handiagotzeko dugu eta ez kaixo 4, hello-4 Zamyla jokatzen du, espero dut. Baina badut ordez ez idatzi ezer, ezer gutxi gertatzen, baina ez du huts egin. Eta gero, zerbait egin beharrean dut Rob bezalako PROCTOR bat da Thayer-- partekatzea Informazio arbitrarioa. Baina oharra, argv 1, 2, 3, 4, eta 5 behar orain memorian existitzen. Hori ere bai, ez da zer da nire programa espero du, ala dut hautatuta delako argc berdin berdin 2 edo ez. Beraz, I orain honen aurka defendatzeko naiz. Orain, bat alde batera utzita, genuen programmer-- edo hobeto esanda users-- egin dugu inoiz ikusi duten 0 eta 1 baina bat erabiliz Debugger, edo beste tresna izeneko tresna, lehenago ikusi dugu luze, programatzaile duzu benetan ikusi zer egongo zure programaren barruan, oker joan. Beraz, argc buruzko edozein galdera? Bai. IKUSLEEN: ikusi dut, non ez dute pertsonaia izan, [INAUDIBLE] besterik esan katea star d, atsegin pertsonaia Asteriskoa koma. Hemen pareko dira? DAVID MALAN: ez dira. Beraz, galdera da, behar duzu noizean behin ikusten programak hau ez zait gustatzen katea argv parentesi esan baina horren ordez zerbait esan char izar argv parentesi bezala. Eta ez da, nahiz eta beste agian ikusten duzun aldaera. Hain zuzen ere, baliokideak dira. Oraingoz, hauek ditugu prestakuntza gurpilak moduko CS50 kate eran an liburutegia, baina astebete pasatxo hasi edo, beraz, esaten ari gara kentzeko joan eragozpenik guztiz eta benetan zer char eta izar begiratu dira, eta nola memoria pertain horiek ordezkaritza oro har. Beraz, etorri egingo dela itzuliko gara. Gure argv edo argc on Beste galdera? Bai. IKUSLEEN: Zergatik itzuli Errore bat [INAUDIBLE]? DAVID MALAN: Zergatik egin zuen errore bat itzuliko oh only--! Aurreko kasuan, dugunean ziren inguruan futzing memoria, zergatik ez zuen errore bat bakarrik itzuli da benetan idatzi dut kopuru handi bat? Erantzun laburra da, baina besterik ez dugu zorterik. Oro har, ordenagailu bat memoria bideratzen zatiak, eta ni bat nahikoa zati handi eman dela Kanpoan lortu nuen, ohartu gabe, Gaztetxean parentesi 2, parentesi 3, bracket 50, baina ahalik eta azkarren dut bultzatu nire zorte, haratago joan nintzen memoria zatia mugak sistema eragilea izan eman dit. Eta hori da egiten behera lotu eta esan, ez. Segmentazioa error. Bai. IKUSLEEN: ordenagailua Nola funtzionatzen du argc balioa ezagutzen? DAVID MALAN: Nola funtzionatzen du ordenagailu argc balioa ezagutzen? Programa bat exekutatzen baduzu, programa hori, keinu gonbita izaeraren arabera, sorta banatu da Baliteke idatzi ziren hitzak gonbitan, hori izan zen gonbitan idatzi. Eta beraz, zure eragilea da sistema hori, funtsean, nagusiak argumentuak populates duzu. Beraz, zerbitzu bat lortu duzu, ordenatzeko ezkutuka kanpaia azpian Sistema eragile bat. Beste galdera? Bai. IKUSLEEN: Zer esan nahi du core dump? DAVID MALAN: Zer esan nahi du core dump? Beraz, galdera ona da. Eta atzera me sartu Direktorio hau hemen. Eta nabarituko duzula Fitxategi berri bat ez daukat. Hain zuzen ere, core izenekoa, eta hori da, egia esan, normalean fitxategia duin-tamaina bat. Hori da, funtsean, argazki bat nire programa memorian edukiak edo RAM denean huts egin. Eta hori oso erabilgarria izango da, potentzialki, diagnostikoan, behin hitz egin dugu, etorkizuneko hitzaldi eta arazketa buruzko atalean, benetan egin dezakedalako du Autopsia digital baten baliokidea fitxategia horretan irudikatu laguntzeko programan zer oker egin duzu. Bai. IKUSLEEN: komando bat argc da bera, edo izena eman duzu ezer? DAVID MALAN: Ona galdera. Komando bat argc da berez, edo ezin izena eman duzu ezer? Behin betiko ez-komandoa. Besterik da, aldagai bat izendatzeko edo argumentu baten izena, eta beraz, erabat dugu lelo hau deitu daiteke, bar honetan, joera horrek deitu genezake go-hitzak duen ordenagailu bat izan nahi du Zientzialari doa. Baina konbentzio, argc eta argv erabili dugu. Baina hori giza bat besterik ez konbentzio, ezer gehiago. Guztiak eskubidea. Beraz, izarrekin bihurtzen, Izan dut lie-- zuri bat pixka bat kontatzea eta Egia, etorkizunean, ikusiko duzu izan dugu beste gezur zuri kontatzeko. Baina orain, goazen itzuli zuritu horietako bat. Nuenean aurrez Kasu honetan hemen hello edo hello-3 bezalako programa bat ran Zamyla, edukia izan genuen nire ordenagailuaren memoria gutxi gorabehera antza honetan. Baina gogoratzen kate bat zer den. Zer Duela aste bat zer esan genuen katea benetan kanpaia azpian dago? IKUSLEEN: karakteretan Array. DAVID MALAN: ez da bat karakteretan sorta, ezta? Beraz, array bat izan dugu kateak, baina, aldi berean, kate bat karaktere array bat da. Beraz badut benetan izan nahi anal du argazki hau marraztu dut, Benetan marrazten behar dut Hori guztia hala apur bat gehiago, horietako bakoitzean horren bidez nire argv array-indizeak, ez kate oso bat da bere baitan bera array bat da. Eta orain, gezur zuriak gaur kontatzea ari gara dela irudi ez nahiko itxura hau. Izan ere, plazetan gutxi dira normalean laukizuzenak big kanpo ez. Baina etorri egingo dugun itzuli aurretik. Baina hau backslash hello 0 da, duten izaera berezi hori izateagatik kate baten amaiera mugatzen du, eta nik ondoren beste bat lortu dugu Zamyla izena. Beraz, zer esan nahi du horrek? Beno, utzi aurretik, joan eta ireki beste bi adibide linean erabilgarri dauden. One deritzo argv1.c eta bestea argv2 da. Super-simple programa bat da, iragana programak desberdinak horretan gaur egun erabiltzen dut argc eta argv hemen. Eta orain I begizta batekin integratzeko naiz 18 linea, i-tik = 0 argc up on batean. Eta zer ari naiz egingo Hemen, kode-lerro honekin? Ingles. Hau, jakina, argc erabilera erakusten du. Baina ingelesez, zer egiten duen programa hau exekutatu bada egin? Bai? IKUSLEEN: inprimatzeko joan zure proiektatuko adina aldiz nahi duzun bezala. DAVID MALAN: Zehazki. Beraz, edozein izanda ere hitz I gonbitan idatzi, hura izan to regurgitate joan lerroko me at horietako bat. Beraz, dezagun aurrera, eta hau egin. Let me go nire direktorioa sartu eta egin Argv1 ./argv1 egiteko. Eta orain, dezagun simple mantentzeko. Egin dezagun deus lehen at dezagun. Gauza bat inprimatu egin zen, eta hori da, hain zuzen ere, programaren izena, duten tarte 0 in delako. Orain esaten dut foo gero, egin da joan bi horiek, eta foo bar diot bada, nik hiru gauza horiek esan du. Orain dela zertxobait interesgarria, agian. Baina gogoratzen argv duten kateen array bat da, baina kate bat karakteretan array bat da, beraz, gauzak hartu ahal izango dugu Notch bat sortu eta aplikatzeko oinarrizko dagoela Logika eta kodea ematen diotenak itxura apur bat gehiago críptica, admittedly. Baina habiaratua bat izatea begizta, zerbait betean zer Mario baliteke gogoraraztea, esate baterako, modu honetan egin zenuen gero. Beraz, gaur egun on line 19 nabarituko, naiz berriro nire argudioak baino gehiago errepikatzean, up on 0tik to argc. Eta orain lerro 21-- naiz astetik trikimailu bat maileguan Zer da nabil egiaztapena argv tarte i luzera. N ere erantzuna gordetzeko naiz. Eta gero noa j etatik integratzeko n, non j 0 hasieratu gehienez. Beraz, zenbaketa hitzarmen. Ondoren erabili dut, bat baduzu habiaratutako begiztaren, ezin duzu i berriro erabiltzea, bestela idazteko duzu, potentzialki, Barruko begizta kanpo balioa. Beraz, erabiltzen dut j konbentzio. K erabili genezake. K baino gehiago badituzu, seguruenik duzu gehiegi habia dute, normalean. Baina orain, nabarituko nire printf lerro apur bat desberdina da. Ez dut% s inprimatzeko, naiz % c inprimatzeko, eta horrek, jakina, char bat biltegian dago. Eta orain konturatu sintaxia hau. New. Ez dugu ikusi aurretik it. Baina noski, hori esan nahi du igarren argv Kate lortu eta lortu jth zer? IKUSLEEN: Character. DAVID MALAN: kate horretan pertsonaia. Beraz kortxete erabiliz kortxete jarraian, hau da urpekaritza lehenengoa argv en kateak sartu, eta ondoren, bigarrenean, j ekin kortxete da urpekaritza pertsonaiak sartu argv kate jakin horretan. Eta, ondoren, neurri ona, Linea berri bat inprimatzeko dut hemen. Beraz, gaur egun utzi aurrera eta ireki zertxobait handiagoa leiho bat sortu beraz, ikusi ahal izango dugu ekintza. Let me go karpeta horretan. Eta orain egin egin argv-2-- whoops-- argv-2, ./argv 2. Sartu. Eta gogorra, apur bat da bertikalean irakurtzeko, baina hori da, hain zuzen ere, izenaren programa, lerro zuri bat, eta jarraian. Orain aurrera egin eta zer foo me. , Era berean, gogor irakurtzeko baina da hain zuzen ere, lerro bakoitzeko pertsonaia inprimatzeko. Eta bar egiten badut, ez da orain lerroz lerro horiek inprimatzeko. Beraz takeaway hemen ez da hainbeste , hori wow, trikimailu berria neat begiratu non edukiak at lor dezakezu array bat pertsonaiak zehatzen, baizik eta nola oinarrizko horiek hartzen ari gara indexatzeko bezalako ideiak array batean, eta ondoren bat sartu indexatzeko array array horretan izan zen, eta, besterik gabe, ideia bera erabili Adibide apur bat sofistikatuagoa. Baina oinarriak benetan ez aldatu, nahiz eta azken astean geroztik. Azken hau da, sort puntuala, horretan, gogora ekarri, astea zero saioa jokatu telefono-liburu bat hau atsegin dugu. Eta hori da, jakina, nahiz eta paper pieza fisikoak, dezakezu motatako pentsatzea telefono-liburu bat array gisa. Zalantzarik gabe, to reimplement zinen Pieza honetan paper pieza horiek Ordenagailu bat ere, ziurrenik, zerbait erabili nahi duzun bezalako array horiek guztiak gordetzeko Izenak eta zenbakiak A modu guztiak aurrera Z. bitartez Beraz, hau da, polita, zeren Gurekin aukera bat ematen du, agian, kontuan hartu behar da nola you might egia esan, horrelako zerbait martxan jartzeko. Ate sorta bat, hemen gertatzen den bezala. Beraz, I could-- bada bat behar dugu an sortu etorri boluntarioak. Ikus dezagun. Ohituta aurpegi bat, beharbada, Ohituta aurpegia agian. Nola laranja buruz? Hemen. Orange kamiseta, goazen gora. Dezagun aurrera orain, eta mugimendua Bizpahiru baino gehiago ate horiek, mugitu horiek une batez out bidea. Zein da zure izena? Ajay: DAVID MALAN: Ajay. David. Niza zu ezagutzeaz. Guztiak eskubidea. Beraz, sei horien atzean dugun Ate digitalki pantailan edo, hobeto esanda, zazpi ateak pantaila zenbakiak sorta osoa. Eta esan duzu ez dut ezer in advance-- adostu? Ajay: aldez aurretik Nothing. DAVID MALAN: Guztiak egin nahi dut orain da niretzat aurkitu, eta guretzat, Benetan, 50 zenbakia da, aldi berean urrats bat. Ajay: Zenbakia 50? DAVID MALAN: 50 kopurua. Eta zer da agerian dezakezu ate horietako bakoitzaren atzean besterik da ukituko hatz batekin. Malditos. [Barreak] [Txaloak] Oso ondo egiten. Ados. Opari eder bat daukagu zuretzat sari hemen. Zure film jaso ditugu joan den astean eztabaidatu. Ajay: Oh, man. Oh, ez dut inoiz ikusi Spaceballs. DAVID MALAN: Spaceballs. Guztiak eskubidea. Beraz, une bat besterik ez askatu. How-- dezagun honen teachable une batean nola joan zineten 50 zenbakia aurkitzeko? Ajay: ausaz aukeratu nuen. DAVID MALAN: Beraz, aukeratu duzun ausaz eta lortu zortea. Ajay: Bai. DAVID MALAN: Ados. Bikain. Beraz, gaur egun, izan ez duzula Ahaztuak zortea, zer gehiago agian gertatu dira ate horien atzean? Beraz, aurrera joan ahal naiz eta Zenbaki horiek hemen agerian, benetan dute ausaz daude. Eta onena izan dezakezu egin, Egia, da, azken finean, kasurik okerrenean ere, egiaztatuz horiek guztiak. Beraz, lortu duzu super-zortea, eta horrek Ez da zer algoritmo bat deitzen dugu. Bai, Zorionak. Baina orain let's-- umorea zidan, ahal izango banu. Goazen fitxa honetara hemen. Eta hemen argi zenbakiak zer badirudi ausaz bat izan nahi du, eta izan ziren. Baina orain ordez erreklamazioa badut duten ate horien atzean antolatuko dira zenbakiak dira. Helburua da orain ere 50 zenbakia aurkitu digu. Baina egin ezazu algorithmically, eta kontatu digu nola horri buruz ari zaren. Eta aurki baduzu, filma mantentzeko duzu. Ez duzu aurkituko da, eman back duzu. Ajay: Beraz, ez dut muturrak ikusteko joan lehen, behar bada zehazteko there's-- [Barreak eta txalo] DAVID MALAN: Hementxe dituzu. Ikus dezagun begirada bat Ajay-ren aurrekoek, Sean, ez zen nahiko zortea. Ados, beraz, zure zeregina hemen, Sean, honako hau da. Dut hauen atzean ezkutatuta Ateak zazpi kopurua, baina kanpoan bilduta ate horietako batzuetan baita beste zenbakiak ez negatiboa dira. Eta zure helburua da hori, uste zenbakiak goiko errenkadan array bat besterik ez bezala. Besterik pieza segida bat gara atzean zenbakiak dituzten paper. Eta zure helburua da, goitik bakarrik erabiliz array hemen, niri zazpi kopurua. Eta ari gara, ondoren, kritika joan egiten nola joan zaitezke. Aurkitu Gurekin zazpi kopurua, mesedez. N º 5, 19, 13. Ez da trikimailu galdera bat. 1. Puntu honetan zure puntuazioa ez da oso ona, beraz, baita dezakezu mantendu egingo da. 3. Joan. Egia, ezin dut lagundu, baina harritzekoa zer duzu, nahiz eta pentsatzen ari. SEAN: bakarrik goiko errenkadan dut har dezakete. DAVID MALAN: Goiko ilara bakarra. Beraz duzun got hiru ezker. Beraz, aurkituko me 7. [Ikusleen iradokizunak oihuak] Horiek, beraz, bai harrigarria izan ziren Arrazoi oso desberdina da. Beraz, hau da, non gauden utzi duela une bat, eta funtsezko ezagutzeko hemen zen ate horiek zenbakiak izan horien atzean ordenatuko ziren, ideal zein eramateko dela egin ahal izango duzu funtsean hobeto Bigarren adibide honetan eta, hain zuzen ere, hori izan zen Sean ausazko zenbakiak dituzten lehen saiakera bezain aurretik baina ahalik eta azkarren zenbaki horiek ordenatuko diren bezala, telefono-liburuan bezala, zer jakina, egin dezakezu? Edo nola ahal ezagutza duten leverage duzu? Bai. IKUSLEEN: erdiraino joan duzu [INAUDIBLE]. DAVID MALAN: Bai. Zehazki. Beraz Ajay hasierako sena izan zen muturrak ikusteko, gogoratzen dut, eta, ondoren, ordenatzeko ditugu bukatutako Adibidez azkar. Baina hasi badugu hau gehiago egin metodikoki lerro horiek batera, baina hasita agian ere erdian, ari ordenatuko delako, agerian dugun bezala bezain laster zenbakia 16, beraz, ezagutzen dugun eta egin dezagun zehazki dugu horrelako utzi Hortaz jakin 50a, gaur egungo kasuan, lortu ahal izateko eskubidea izan. Beraz, besterik ez bezala, aste zero denean ere telefono-liburua Tore dugu erdia eta erdia bota Arazo kanpoan, ideia bera hemen. Zati hau bota dugu Arazoaren kanpoan. Eta, ziurrenik, zer duzu algorithmically egin liteke, behin 50 behar izan badakizu eskubidea, edozein lekutan bada, saiatu han, erdian Gainerako ateak. Jakina, 50 handiagoa da 42 baino gehiago, beraz, ahal dugun bota hau gainerako arazoa laurdena kanpoan, eta, azkenik, identifikatzeko 50 antzeko zerbait. Baina besterik ez bezala telefono-liburua, zenbaki horiek ziren guretzat dagoeneko eman diren ordena ordenatuko da, eta horrek uzten gaitu galdera batekin, nola egiten duzu ordenatuko ordena sartu gauzak? Eta, Egia, zer kostua? Gauza bat da izan telefono-liburua banatu eta, ondoren, zure lagunak harritu aurkitzeko arabera telefono benetan azkar, zenbaki bat, ezta? 32 orrialdeak tearing out aurkitu pertsona 4 milioi orriak atera, Adibide muturreko bat zela esan dugu. Baina zenbat denbora hartu zuen Verizon telefono liburu hori ordenatzeko? Zenbat denbora zuen gurekin eraman ezazu zazpi zenbaki horiek ordenatzeko? Hori galdera bat dugu, beraz, orain arte ez zaio inolako kasurik. Hargatik Erantzun galdera hau orain. Eta denak filmak atera gara orain, baina estresa pilotak batzuk egiten dugu. Esan, zortzi boluntario, bada ez litzateke axola gurekin atxikitzeko hemen? Dezagun aurrera, eta, nola buruz duzu lau, zuk hirutan hemen? Talde aurpegi berri batzuk. Eta zuk lau han? Eta orain ez dezagun biasa hemen eta Zortzi zenbakia hemen bukaeran zehar. Goazen sortu. Guztiak eskubidea. Beraz, hemen zer egin behar dugun zuetako bakoitzak zenbaki bat da. Joan nahi baduzu Aurrera, hartu zenbaki hau. Zein da zure izena? Artie: Artie. DAVID MALAN: Artie, ados. Zenbakia 1 zara. AMIN: Amin. DAVID MALAN: Amin. David. 2 zenbakia zara. Eta joan aurretik, eskuz I gisa duzu paper-orriak, zuek lerro sortu musikaren aurrean han sortu ordena berean dago. ANDY: Kaixo, Andy. DAVID MALAN: Andy, polita da ikusteko. 3 zenbakia. JACOB: Jacob. DAVID MALAN: Jacob, zenbakia 4. Ongi etorri itsasontzian. GRANT: Grant. DAVID MALAN: Grant. Zenbakia 5. Alanna: Alanna. DAVID MALAN: Alanna, multzoko 6. FRANCES: Frances. DAVID MALAN: Frances, kopurua 7. Eta? RACHEL: Rachel. DAVID MALAN: Rachel, zenbakia 8. Guztiak eskubidea. Anima zaitez eta zuk zeuk ordena honetan. Let me bat jarri gainerako musika leku stand. Nora egin stand bat behar duzu? Ados. Anima zaitez eta jarri zure zenbakiak non ikusleek horien gainean ikusi ahal izango da, musika stand kanpora begira. Eta, zorionez, gure lehen behatu check hemen 4, 2, 6. Oh-oh. Itxaron minutu bat. Ez dugu 8. You kanporatzeko behar dut Adibidez, nolabait. N º Ez, hori OK. Ikus dezagun. Hau egin ahal izango dugu. Stand by. Bertan dugu. Zuzena. Guztiak eskubidea. Beraz, orain dugu 8, 1, 3, 7, 5. Ados. Bikain. Beraz, esku artean, galdera da, at zer kostu eta zer metodo bidez, benetan zenbaki horiek ordenatzeko irudirik dezakegu motatako lan egiten duten atzeraka beraz, azken finean, eta decide-- da benetan Ikusgarria, benetan eraginkorra, dudala zatitzea eta konkistatzeko telefono-liburu bat? Da benetan eraginkorra dela Banatu eta agindu ahal dut pieza digital horiek paper taula gainean, nik us kostatuko agian bada denbora edo energia edo CPU zikloetan fortuna Gure datuak benetan lortu ordena ordenatuko batzuk sartu? Hargatik eskatu galdera hori. Beraz, lehen off, zenbaki horiek dira nahiko askoz ausaz, eta naiz, proposatzen dugu I Algoritmo bat, edo prozesua horren bidez, Folks horiek ordenatzeko dezakegu. Ra hurbiltzeko noa hau nahiko naively. Eta ez dut ezagutzen joan asko mota da hori da niretzat my mind itzulbiratu inguruan Datu osoak aldi berean ezarri. Baina, zer ezagutzen duzu? Noa batzuk egiteko marjinala konponketak oso erraza. 4 eta 2 barrutitik kanpo daude, bada Helburua da 8raino on 1etik joan. Beraz, zer ezagutzen duzu? Duzu izan nahi dut guys trukatu, aukeratzen baduzu Fisikoki posizio eta zure pieza paper. Orain, 4 eta 6, horien ordena dira. Horiek izan uztea noa. 6 eta 8, horietan komeni da. Haiekin izan utzi du. 8 and1, behar bezala erabili. Dituzun bi ez luke axola bada aldaketa. Orain 8 eta 3, baduzu guys trukatu daiteke. 8 eta 7, baduzu guys trukatu daiteke. Eta 8 eta 5, baduzu guys trukatu daiteke. Orain, ni egin dut? Ez, jakina, ez da. Baina egin ditut egin Egoera hobeto, ezta? Zer zen berriro zure izena, zenbakia 8? RACHEL: Rachel. DAVID MALAN: Beraz, Rachel ditu eraginkortasunez bubbled nahiko urrun, amaieran modu guztiak Nire zenbakiak array hemen. Eta, beraz, arazo mota hori konpondu. Orain, argi eta garbi, 2, oraindik ere behar du mugitu pixka bat, eta 4 eta 6 eta 1. Baina ahaztuak dute bat iruditu zait little konponbidea hurbilago. Hargatik aplikatu bera honetan inozoa heuristiko berriro. 2 eta 4, OK. 4 eta 6, OK. 6 eta 1, mm-mm. Dezagun swap. 6 eta 3 mm-mm. Dezagun swap. 6 eta 7 OK da. 7 eta 5, Laguia. Dezagun swap. Eta orain, 7 eta 8. Eta zein da zure izena berriro? FRANCES: Frances. DAVID MALAN: Frances. Beraz, orain Frances are hobea da jarrera, izan ere, gaur egun, 7 eta 8 behar bezala bubbled goian. Beraz, 2 eta 4, OK. 4 eta 1, dezagun swap. 4 eta 3, dezagun swap. 4 eta 6, Oraindik Ados. 6 eta 5, dezagun swap. Eta orain, guys horiek onak dira. Ia ez gara. 2 eta 1, barrutitik kanpo, beraz trukatu. Eta orain ni ez behatu check. 2 eta 3, 3 eta 4, 4 eta 5, 5 eta 6, 6 eta 7, 8. Ados, beraz, egiten ari gara. Baina zer at kostua egin nuen zenbaki horiek ordenatzeko hemen? Tira, zenbat urrats potentzialki egin nuen Atera Folks horiek ordenatzeko? Beno, etorri egingo galdera hori itzuli dugu. Baina, Egia, duzun got bada aspertuta apur bat, hori da motatako agerian utziz ere hura ez zela agian algoritmo eraginkorrena. Eta hain zuzen ere, Egia, izerditan naiz are atzera eta aurrera ibiltzeko. Hori ez sentitzeko bereziki eraginkorra. Hargatik saiatu beste zerbait. You guys berrezarri balute zortzi balio horiek zuei. Lan ona. Ikus dezagun begirada bat digitalki, besterik Une batez, zerbait saiatzen gara, bestela, aurretik, zer gertatu zen. Orain arte, zaren bat ikusi buruz zortzi gizakiak horien bistaratzea Horren bidez, urdin eta gorri tabernak zenbakiak irudikatzeko. The taller tabernan, handiagoa kopurua. The laburragoa tabernan, zenbaki txikiagoa. Eta zer ikusteko zaren da ausaz horietako zortzi baino gehiago. Taberna horiek ikusten ari zara ohitu algoritmoa, bera horrela antolatu, edo argibideak pieza, eta horrek dugu aurrerantzean deituko burbuila sort. Oharra Beraz, bigarren edo, beraz, behin, bi taberna argitzen dira gorriz, dira alderatu ordenagailua. Eta gero, gero barra handi eta barra txiki barrutitik kanpo daude, dutela ari dira niretzat trukatu. Azken hau da, oso lapurtera hau ikustera, zalantzarik gabe, oso luzea, baina konturatu dira takeaway-- tabernak big eskuinera mugitzen, taberna gutxi ezkerrera mugitzen. Dezagun abortatzeko prozesu honetan eta bizkortu hau sortu askoz azkarragoa izan dadin, beraz, ahal dugun goi mailako zer zentzu bat lortzeko, hain zuzen ere, burbuila ordenatu egiten da. Izan ere, sortu bubbling du! eskuineko eskua zerrendaren alde, edo array, taberna handiagoa. Eta alderantziz, taberna gutxi dira beren bidea bubbling ezkerreko du behera, erritmo azkarrago bada ere Aurretik egin dugun baino. Beraz, gogorragoa gizakiak ikusi, baina ikusmen hori da hain zuzen ere, zer gertatzen ari zen. Baina gatozen bat saiatu horrek, funtsean, ikuspegi desberdina orain. Let desberdin bat saiatu Algoritmo horren bidez hemengo guys original horiek hasteko posizioak, zein izan zen hemen ordena honetan. Eta dezagun aurrera orain. Eta ez dut zerbait egin behar da are errazagoa da, ezta? Atzera begirako, pairwise berriro aldaketa eta, berriro ere, ia pixka bat clever. Horrek are gehiago naively gauza dezagun, non Folks horiek ordenatu nahi badut, utzi mantentzeko me besterik bilatzen elementu txikiena da. Beraz, oraintxe bertan, 4 da txikiena ikusi dut kopurua. Gogoratzen dut. Ez, 2 da hobea, eta gogoratu. 1 are txikiagoa da. 3, 7, 5. Ados. One-- Zein da zure izena berriro? Artie: Artie. DAVID MALAN: Artie. Beraz, Artie, aurrera. Zuk tira line out noa. Atzera hona etorri balute. Eta gela egin zion behar dut. Erabaki puntu bat dugu hemen. Nola liteke gela egin dugu Artie hemen Hasieran bertan multzoko 1 jabea at? IKUSLEEN: Shift. DAVID MALAN: Ados, dugu Denek filmea daiteke. Baina optimizatu bat proposatzeko. Hori sentitzen pixka bat gogaikarriak Niretzat lau pertsonek eskatu modu guztiak behera eramateko. Zer gehiago egin nezakeen? IKUSLEEN: Aldatu itzazu. DAVID MALAN: Aldatu itzazu. Eta zein da zure izena berriro? JACOB: Jacob. DAVID MALAN: Jacob, mugitu. Askoz eraginkorragoa besterik behar Jacob swap Artie kokapenak, behartuz ez bezala guztiak lau Folks horiek, eskerrik asko, to Beren kokapen zuzena. Zer da Artie buruz polita gaur egun, da bere jarrera zuzena izan zuen. Berriro egin dezagun. 2, hori ikusi dut txikiena zenbakia da. 3, 7, 5. Ados. 2 Behin betiko da txikiena. Ez dute edozein lan egiteko. Berriro egin dezagun da. 6. Txikiena? 8. Laguia. 4? Ooh. Let gogoratu dit 4. 3. Let gogoratu dit 3. 7, 5. Txikiena zenbaki dut pass honetan ikus 3 da. Zinela goazen bada. Non gaude zuk jarri nahi dut? Eta zein da zure izena? Alanna: Alanna. DAVID MALAN: Alanna, gaude you kanporatu nahi izan du. Baina eraginkorragoa dela, bi pertsona besterik ez aldatu, jende anitz izatea baino benetan sidestep gainean. Orain Berriro egin dezagun. 4 hautatzeko, beraz, goazen out noa. Eta nor mugitu egingo da? Zenbakia 8, jakina. Orain zenbakia 5 aurkitu dut bada, goazen out. 8 zenbakia da berriro kaleratzen da iritsi. Naiz orain kopurua 6 aurkitzeko lekuan joan. Postuan 7. 8 leku. Zer egin dugu orain aukeraketa moduko zerbait deitzen, eta honek bistaratu badugu, hori apur bat desberdin sentitzen da joan. Dezagun aurrera, eta hau aurrera menu hemen, visualization-- honetan dezagun hau aldatu zaie goazen, Firefox. Hau alda dezagun aukeraketa ordenatu ahal izateko. Eta dezagun arindu lehen bezala, eta hasi bistaratzea orain. Eta algoritmo hau dauka bertara hainbat ukitu bat. Iterazio bakoitzean, Egia, are erraza da. Besterik elementu txikiena naiz hautatuz. Orain, Egia, apur zortea bat lortu nuen denbora, izan ere, super-azkar ordenatuko da. Elementuek ausazko ziren. Ez da, azkenean dugu gisa Ikus, batez ere azkarrago. Baina dezagun hirugarren eta final Ea hurbiltzen hemen zer gertatzen den moduan. Beraz, dezagun aurrera eta mutilak berrezarrita final garai batean, horixe da hemen egotea. Eta orain, ez naiz joan izan apur bat gehiago clever, besterik biribiltzeko gure algoritmoak. Horretarako noa. Ez noa atzera eta aurrera hainbeste. Egia, nekatuta nago traversing hori guztia. Besterik ez naiz zer naiz hartzen joan zerrendaren hasieran ematen, eta naiz ordenatzeko noa duten gero eta han. Beraz, hemen gaude. Zenbakia 4. Zenbakia txertatu noa 4 ordenatutako zerrendan sartu. Eginda. Orain aldarrikatzen dut, eta besterik ez hau gehiago egiteko argi eta garbi, nire zerrendako zati honetan ordenatuko da. Ergelak erreklamazio bat mota da, baina hain zuzen ere, 4 da tamaina bat zerrenda batean ordenatuta. Orain, naiz den kopurua 2 hartzera joaten nintzen. Zenbakia 2 orain dut joan Leku egokian txertatzeko. Beraz, non 2 dagozkio du? Jakina, hemen baino gehiago. Beraz, aurrera eta atzera mugitu, ahal izango banu. Eta zergatik ez duzu guys hartu zure musika zurekin nabarmentzen oraingoan. Eta dezagun indarrez sartutakoan zerrendaren hasieran sartu. Beraz, pixka bat gehiago lan. Inguruan Jacob eraman behar izan nuen, eta zer da zure izena? AMIN: Amin. DAVID MALAN: Amin. Baina behintzat ez nuen atzera eta aurrera joateko. Besterik gabe gauzak egiten dudanean joaten naiz eta. Besterik egin naiz txertatzeak leku egokian. 6, hau da, benetan nahiko erraza. Dezagun sartzerakoan han, baduzu Nahi baino gehiago pixka bat mugitu. Zenbakia 8, gainera, nahiko erraza. Oraintxe han. Malditos. Zenbakia 1 Ezin dugu besterik Amin batzuekin trukatu hemen, hori delako joan nahastea, ordenan izateko. Beraz, pixka bat gehiago clever izan behar dugu. Beraz, Artie, baduzu Could babeskopia une batez. Dezagun aurrera eta filmea, orain, gure aurreko algoritmoak ez bezala, Artie gela egiteko hementxe hasieran. Beraz, egunaren bukaeran, mota naiz aurretik ekiditeko zer nahi nuen egiten. Eta beraz, nire algoritmoa moduko ren alderantziz, intelektualki, zer zen jatorriz bertatik. Besterik ez aldatzearen ari naiz egiten beste puntu batean. Orain naiz 3 at dut. Oh, madarikatua. Lan gehiago, berriz ere egin behar dugu. Hargatik bultza duzu. Dezagun aurrera 8, 6, 4-- oh oh eta 3 bertan joan da. Beraz, gutxienez aurrezki arina une honetan. Egin behar da 7, ez lan gehiegi. Beraz, pop nahi baduzu itzuli, dezagun sartzerakoan. Eta, azkenik, 5, baduzu atzera pop nahi, dugu duzu mugitzeko behar, duzu, duzu, bost arte postuan dago. Beraz, gaur egun hau ikusteko batean maila handia grafikoki, Egin algoritmo hau utzi bisualizazioa denbora gehigarri bat. Beraz txertatzeko sort deituko hau dugu. Exekutatu dugu bezain azkarra, eta hasi da hemen. Eta hori ere, desberdin sentitzen du. Honez Ordena hobea lortzean eta hobeto, baina inoiz ez da perfektua da eta leun joan nintzen arte hutsune horietan. Zeren eta, berriro ere, ez naiz bakarrik hartuz zer Ez naiz ari da ezkerretik eskuinera eman. Beraz, ez nuen lortu, beraz, zortea dena ezin hobea izan zen. Horregatik txiki horiek izan genuen konpondu dugu denboran zehar mispositions. Beraz, algoritmo horiek guztiak badirudi urrats zertxobait ezberdinetan exekutatu. Izan ere, zein esango zenuke dela onena edo azkarrenak, orain arte? Burbuila ordenatu, lehena? Aukeraketa ordenatu, bigarrena? Txertatzeko sort, hirugarrena? Aukeraketa mota batzuk entzuten dut. Beste pentsamenduak? Beraz, izarrekin bihurtzen da Algoritmo horiek guztiak dira, funtsean, besterik ez bezain eraginkorra other-- bakoitzean edo, alderantziz, hori bezain bata bestearen gisa eraginkorra, funtsean, egin ahal dugulako guztiak hiru baino hobeto Algoritmo horiek. Eta hori gezur zuri bat pixka bat da, gehiegi. orduan eraginkor gisa esaten dut edo eraginkorra ez bezala, hori da gutxienez n balioak super-handi. Zortzi pertsona besterik ez dugu hemen, edo agian 50 edo, beraz, pantailan tabernak, Erabat ezberdintasunak nabarituko duzu Hiru Algoritmo horien artean. Baina n bezala, pertsona kopurua, Zenbaki edo kopuruaren arabera, edo telefonoaren pertsonen kopurua liburu edo web orrialde kopurua Google-ren datu-basean handiagoa eta handiagoa lortzen du, Ikusiko dugu hori guztia horien hiru algoritmoak egia esan, nahiko pobrea. Eta, batez ere egin ahal izango dugu Hori baino hobea. Ikus dezagun begirada bat, azkenik, zer algoritmo horiek erabilgarri dauden batean bezala soinua beste batzuk testuinguru baita honen bidez Bisualizazio hemen gaituen aurkeztuko dute nahi algoritmoak zenbaki bat. Dezagun aurrera eta zoriondu gure parte hona, horietatik guztiak oso txukun antolatuta beraiek. Nahi baduzu parting opari bat hartu. Zure zenbakiak, baita jarrai dezakezu. Eta zer ikusiko duzu, edo, hobeto entzuteko, orain, dela soinuak jarri dugu taberna horietako bakoitzari eta erlazionatuko softwarea, soinuaren maiztasun ezberdinak, your mind audioly gehiago itzulbiratu dezakezu zer gauza horiek bakoitzaren inguruan itxurarik. Horietatik lehena txertatzeko sort da [TONES] Horrek burbuila sort da. [TONES] Aukeraketa sort. [TONES] Zerbait merge sort deitu. [TONES] Gnome sort. [TONES] Hau CS50 da. Asteazkenean ikusiko dugu. Narratzailea: Eta orain, "Deep Pentsamenduak, "Daven Farnham arabera. Zergatik da loop? Zergatik ez da hobea izan dadin? Bost begizta bat egin nahiko nuke. [Barreak]