>> HIZLARIA 1: Ondo da, beraz, hau da, CS50 hau da, bost aste bukaera honetan.
Eta, azken aldiz gogoratzen garela hasi fancier datuak begira
Konpondu hasi egiturak arazo, hori aurkeztu hasi
arazo berriak, baina hori da gakoa hariztaketa moduko izan ditugula
den nodo nodo egiten hasi zen.
Eta noski, hau da banaka lotuta zerrenda bat.
Eta arabera banaka lotuta, Esan nahi dut, ez da bakar bat
nodo horietako bakoitzean artean haria.
Turns hazlerik egin dezakezu Bi aldiz lotuta zerrendak bezalako gauzak
Horren bidez, gezi bat behar duzu bi norabideetan joan da, eta horrek
eraginkortasun zenbait laguntzeko.
Baina hau konpondu arazoa?
Zer arazo hau konpondu zuen?
Zergatik zaintzeko genuen astelehenean?
Zergatik, teorian, ez zuen axola astelehenean dugu?
Zer egiten du?
>> Ikusleak: dinamikoki ahal dugu tamainaz aldatu da.
>> HIZLARIA 1: OK, ahal dugu, beraz, dinamikoki tamainaz aldatu da.
Ondo egina duzu, bai.
Beraz dinamikoki ditzakezu resize honetan Datuen egitura, array bat, berriz,
oroitzapen, jakin behar duzu priori zenbat espazio nahi duzu
eta pixka bat gehiago behar izanez gero espazioa, Oraindik motatako zorte.
Array berri oso bat sortu behar duzu.
Guztia eraman behar duzu zure beste batetik, datu,
azkenean askatzeko zaharrak array , ahal duzu eta, ondoren, jarraitu bada.
Zein besterik ez oso garestia sentitzen eta oso eraginkorra, eta hain zuzen ere, ahal izango da.
Baina hori ez da guztia ona.
Prezioa ordaindu dugu, zer izan zen nabarmenagoa prezioen dugu
lotuta zerrenda bat erabiliz ordaindu?
>> Ikusleak: behar dugu erabili horietako bakoitzerako espazio bikoitzean.
HIZLARIA 1: Bai, orain behar dugu gutxienez bi aldiz, askoz leku gisa.
Izan ere, konturatu nintzen argazki honetan nahiz eta pixka bat engainagarria,
CS50 moderno asko ere IDE delako ordenagailuak, erakusle edo helbide
Ez da, hain zuzen, lau byte.
Da oso sarritan horiek zortzi egun byte, eta horrek
beheko bitartekorik laukizuzenak ez errealitatean
diren mota bi aldiz, zer idatzi dut herri gisa big,
horrek esan nahi du hiru aldiz erabiltzen ari zarela espazio askoz bestela izan liteke beste.
Orain, aldi berean, ez gara oraindik byte hizketan, ezta?
Oraindik ez dute zertan hitz egiten dugu megabyte edo gigabyte,
egiturak lortu big datu horiek ezean.
>> Eta, beraz, gaur egun kontuan hartu hasten gara nola liteke datuak aztertuko ditugu
gehiago eraginkortasunez ere bada Izan ere, datu handiagoa lortzen.
Baina saia gaitezen canonicalize eragiketak lehen
hauetan egin ahal izango dituzu Datu-egitura mota.
Beraz, bat lotuta antzeko zerbait Zerrenda oro har onartzen
eragiketak gustatzen ezabatu sartu, eta bilatu.
Eta zer esan nahi dut?
Bakarrik esan ohi duten, pertsona daude lotuta zerrenda erabiliz gero,
dute edo beste norbaitek jarri ditu abian ezabatu, txertatze moduan jokatzen duela
eta bilaketa, ahal duzu orain benetan zerbait egin
Datuen egitura batera erabilgarria.
Beraz, dezagun begirada bat nola liteke ezartzeko dugu at
lotuta zerrenda kodea batzuk honela.
>> Beraz, hori besterik ez C kodea batzuk, ez, nahiz eta programa osoa
benetan dudala azkar harrotua.
Ez da banaketa alorrean online kodea, ez du benetan exekutatu delako.
Baina konturatu besterik ez dut iruzkin bat esan du,
dot dot dot, ez da zerbait ez dot dot dot, zerbait dago.
Eta dezagun begiratu besterik zer mamitsuena zatiak dira.
Beraz, hiru lerro, gogorarazten hori da orain
proposatutako azken nodo bat deklaratzen dugu denbora, objektuak angeluzuzena horietakoa.
Int bat N egingo dugun deitu ditu, baina ezer esaten diogu,
eta, ondoren, hurrengo izeneko egitura nodo izar bat.
Eta argi izaten, bigarren hori lerroa, on line sei, zer da hori?
Zer egiten ari da guretzat?
Zalantzarik gabe, itxura gehiago delako gure ohiko aldagai baino críptica.
>> Ikusleak: mugitu bat baino gehiago egiten du.
>> HIZLARIA: 1 mugitu bat baino gehiago egiten du.
Eta hain zuzen ere, helbidea gordetzeko izango da
hori ekarri nahi izan nodoaren semantikoki ondoan, ezta?
Beraz, ez da joan zertan ezer mugitu.
Besterik joan balio bat gordetzeko, hau da,
helbidea izango da beste nodo batzuk,
eta horregatik esan dugu, eta egitura nodo star, star denotatu
erakuslea edo helbidea.
Ados, beraz, gaur egun dugun suposatuko baduzu N honetan gurekin eskuragarri, eta dezagun
suposatuko beste norbaitek ditu Osoko zenbaki osoa sorta bat txertatuko
Lotuta zerrenda.
Eta lotzen zerrenda da adierazi uneren arabera
Zerrenda izeneko aldakorra da Hemen ere gainditu parametro gisa,
Nola joan lerro buruz 14 bilaketa gauzatzeko?
Beste era batera esanda, I gauzatzeko banaiz horren helburua bizitzan funtzio
int bat eta gero hartu lotutako zerrenda baten hasieran,
Hori lotuta zerrendan erakuslea da.
Lehen bezala, nork uste dut David astelehenean gure boluntario izan zen,
zuen seinalatuz zen Lotuta osoak zerrenda,
gara pasatzen ari bagina bezala da David gure argudioa hemen bezala.
Nola egiten dugu zerrenda honetan zeharkatzen buruz?
Beno, bihurtzen da, nahiz erakusleak nahiko berria orain guri dira,
hau nahiko egin ahal izango dugu zuzenean.
>> Aurrera joan noa eta Aldi baterako aldagai bat izendatuko duten
konbentzio besterik ez da joan erakuslea deitu behar da, edo PTR,
baina zuk ezer nahi duzun deitu daiteke.
Eta ez dut hasieratzeko joan zerrendatik hasieraraino.
Beraz, mota dezakezu honen ustez Lehengo egunean me irakaslearekin,
motatako norbait seinalatuz Gure gizakiak boluntarioen artean.
Beraz, aldi baterako aldagai bat hori da, naiz ez da gauza bera seinalatuz
Gure duten coincidentally izeneko boluntario David ere seinalatuz zen.
Orain erakuslea da berriz ez nulua, zeren abisuaren
nulua duten Sentinel balio berezi batzuk the demarcates zerrenda amaieran,
I, berriz, ez du seinalatuz naiz orain Gure azken boluntario bezala lurrean
zen, goazen aurrera eta honako hau.
Erakuslea bada eta gaur egun, mota nahi dut ikasleak zer egin genuen egin
erakuslea dot hurrengo structure-- bada berdin baizik, erakuslea dot N berdinen
n aldakorra berdin, du Argumentu hori izan da gainditu,
gero, aurrera egin nahi dut eta esan egia itzuliko.
Zenbaki N-barrutik Aurkitu ditut nire zerrenda lotuta nodo bat.
Baina dot jada ez Testuinguru honetan lan egiten du,
delako erakuslea, PTR, da Hain zuzen ere, erakuslea, helbide bat,
Egia esan, ezin dugu wonderfully azkenik sintaxia zati bat erabili
Marka mota hori intuitiboa zentzu eta egia esan,
gezi bat hemen erabili, eta horrek esan nahi joan osokoa han ere, helbide horretara.
Beraz, oso antzekoa da dot operadorea espiritua,
baina erakuslea da, ez delako erakuslea eta ez benetako egitura bat bera,
gezi erabili besterik ez dugu.
>> Beraz, bada, egungo nodo hori ez nuenez, Aldi baterako aldagai, naiz seinalatuz
ez da N, zer egin nahi dut?
Beno, nire giza boluntario Hemen izan genuen joan den egunean,
Nire lehen giza ez bada bat dut nahi, eta, agian, bigarren Giza ez da
Bat egin nahi dut, eta hirugarrena, berriz, I Fisikoki mantentzeko mugitzea.
Like nola ez zapaldu dut zerrenda baten bidez?
Array bat izan dugu, zuk besterik ez dut plus plus bezala egin.
Baina kasu honetan, aski da egiten erakuslea, lortzen, erakusle, hurrengo.
Beste era batera esanda, hurrengo eremuan Ezkerreko eskuak guztia bezalakoa da
gure astelehenean giza boluntarioak beste nodo batzuk amaitzen erabiliz ziren.
Horiek euren hurrengo bizilagunak ziren.
>> Beraz, zerrenda honen bidez zapaldu nahi badut, Ezin dut besterik ez dut plus plus jada,
Ordez daukat esateko I, erakusle, va
edozein izanda ere, hurrengo eremua da berdina, hurrengo eremua da, hurrengo eremua da,
ezker esku guztiek honako izan duten etapa seinalatuz dugu
Ondorengo balioak batzuk.
Eta bidez lortu badut iterazio osoa dela,
eta, azkenik, nulua hit dut ez izatea aurkitutako N oraindik, itzuli besterik ez dut faltsua.
Beraz, berriro ere, hori hemen egiten ari garen guztia, duela une bat argazki bakoitzeko,
da seinalatuz hasita Zerrendaren zentzuzkoa hasita.
Eta ondoren, egiaztatu, balioa da I bederatzi berdina bila nabil?
Hala bada, egia itzuliko dut eta egin dut.
Hala ez bada, nire eskua eguneratu dut, AKA erakuslea, apuntatzen
hurrengo gezi en kokapenean, eta ondoren, hurrengo gezi kokalekua
eta hurrengoan.
Ez dut besterik gabe array hau paseoan.
>> Beraz, berriro ere, nork zaintzen?
Like zer da horretarako osagai bat?
Beno, gogoratzen sartu garela pila baten ideia, eta horrek
da datuak abstraktu bat idatzi neurrian izan ere Ez bat C gauza, ez da CS50 gauza bat,
Ideia abstraktu bat, ideia hau da bata bestearen gainean gauzak pilatzeko
Hori egikaritu egin daiteke modu ezberdinetan sortak.
Eta proposatu dugu, modu batean izan zen sorta bat, edo lotuta zerrenda batekin.
Eta bihurtzen da kanonikoki hori, bat pila gutxienez bi eragiketa onartzen.
Eta buzz hitz push dira, nahi bultza zerbait pila gainean,
erretilu berri bat bezala jantokia, edo pop,
horrek esan nahi du goreneko kentzeko jangela pila batetik erretilua
aretoan, eta gero, agian batzuk beste eragiketa baita.
Beraz, nola liteke egitura definitzen dugu ari gara orain pila bat deituz?
>> Beno, baldintza guztiak izan dugu Gure eskura sintaxia C. ere esan dut,
eman dit mota definizio bat pila baten barruan eta egitura bat,
Array bat da esan behar, baten noa zenbaki-sorta oso eta, ondoren, tamaina.
Beraz, beste era batera esanda, nahi badut hau ezartzeko kodea ere,
Goazen me eta mota marraztu Zer da hau esaten.
Beraz, hori esaten, emadazu egitura hori lortu array bat,
eta ez dakit zer ahalmena da, itxuraz konstante batzuk egin dut hori
beste nonbait definitu, eta hori da isuna.
Baina demagun besterik ez da inor, bi, hiru, lau, bost.
Beraz, edukiera 5 da.
Barrutik elementu hau nire egitura zenbakiak deitu behar da.
Eta gero, bat behar dut beste aldagai itxuraz
izeneko tamaina hasieran noa zeintzuk diren zero hasieratu.
Bada ez da ezer ere pila, tamaina zero da,
eta zabor balio da zenbakietan.
Daukat zer han, besterik gabe, ideia ez.
>> Beraz bultza nahi badut pila gainean zerbait,
Suposatzen funtzioa bultzada deitu dut, eta Bultza 50, 50 zenbaki bezala esaten dut,
non zenukete proposatuko I marraztu array honetan?
Bost erantzun posible ugari bertaratu da.
Nora egin 50 zenbakira bultza nahi duzu?
Helburua hemen bada, berriro, deitu du funtzioa push, argumentu bat pasatzen
50eko, non ez dut jarri?
Bost Posible% 20 aukera behar bezala asmatzen.
Bai?
>> Ikusleak: Far eskubidea.
>> HIZLARIA 1: Far eskubidea.
Ez dago gaur egun,% 25 aukera bat behar bezala asmatzen.
Beraz, hori litzateke benetan fina.
Konbentzio bidez, sorta batekin esango dut, Oro har, ez genuke utzi goialdean hasteko,
baina, zalantzarik gabe, ezin izan dugu eskubidea hasiko da.
Beraz spoiler hemen izango litzateke naiz seguruenik ezkerreko marraztuko ditu,
besterik array normal bat, non ere gustatuko I hasiko da ezkerretik eskuinera.
Baina baduzu irauli aritmetika, fina.
Besterik ez da, konbentzionalak ez.
Ados, bat egin behar dut Gehiago aldaketa arren.
Orain dudala zerbait bultzatu Nik pila gainean, zer da hurrengoa?
>> Ondo da, Kontatzailea tamaina behar dut.
Beraz, aurrera eta joan me eguneratu hau, zero izan zen.
Eta horren ordez, orain, noa bata balioa jartzen.
Eta orain, demagun beste bultza dut zenbakia pila gainean, bezala 51.
Beno, beste bat gehiago egin nahi izan dut aldaketa, hau da, bi muga arte.
Eta gero, suposatzen bat gehiago bultza dut kopurua 61 bezalako pila gainean,
orain tamaina eguneratu behar dut inor gehiago denbora, eta 3 balioa tamainaren bezala lortu.
Eta orain, demagun pop deitu nion.
Orain pop, konbentzio, ez du argumentu bat hartu.
Pila batekin, oro har, erretiluko metaforaren point
da ez duzula diskrezioa dute joan erretilu hori lortzeko, egin daitekeen guztia
da bat goreneko irekiko pila, hain zuzen ere.
Hori da datu-egitura zer honek.
>> Beraz, logika horren arabera badut esan pop, zer dator off?
Beraz, 61.
Beraz, benetan zer ordenagailua da memorian egingo?
Zer esan nahi du nire kode egin?
Zer egingo zenuke zuk proposatzen pantailan agertzen diren aldatu dugu?
Zer aldatu behar?
Sentitzen dugu?
Beraz, 61 lortu genuen kentzeko.
Beraz, behin betiko egin daiteke hori.
Eta 61 gai naiz kentzeko.
Eta gero, zer beste aldaketaren beharra gertatuko?
Tamaina ziurrenik atzera joateko bi aukera du.
Eta beraz, hori da isuna.
Baina a minute, tamaina itxaron Une batean, duela hiru urte.
Dezagun, besterik gabe behatu check azkar bat utzi.
Nola jakin genuen dugun Wanted 61 kentzeko?
Leihoa ari garelako.
Eta beraz, bigarren etxebizitza tamaina hori daukat.
>> Itxaron minutu bat, naiz atzera pentsatzen, astean bi
denean hitz egiten hasi ginen arrayak, non hau zen kokapena zero,
Hau izan zen, hiri bat, hau izan zen kokapena bi, hau kokapena hiru, lau da,
itxura bezalakoa da tamainaren arteko erlazioa
eta hori kendu nahi dut elementua Dirudienez sorta batetik nahiko luke zer?
Tamaina ken bat.
Eta beraz, gizakiak nola ezagutzen dugun 61 datorrela.
Nola da ordenagailua jakin behar?
Zure kodea, non duzu seguraski tamaina ken bat egin nahi,
beraz, hiru ken bat, bi, eta hori da, esan nahi 61 kendu nahi dugu.
Eta gero, hain zuzen eguneratu ahal beraz, tamaina horretako tamaina orain
Hiru doa bi besterik ez den.
Eta besterik pedante izan nahi du, noa Hori egin dut, eskuineko proposatzeko?
Senez proposatu duzu zuzentasunez 61 behar dut kentzeko.
Baina ez dute mota horretako I Sort ahaztuak 61 kentzeko?
Eraginkortasunez Nik ahaztuta Egia esan, ez da hori.
Eta uste Pset4 atzera, zuk irakurri bada Kernet buruzko artikulu, PDF
izan dugun you guys irakurri, edo zuk Aste honetan irakurri beharko Pset4 da.
Gogoratzen hori da, benetan oso lotuta daudenak ordenagailua Kernet ideia osoa.
Zer ordenagailu bat, oro har, ez da, ahazten besterik ez da, non zerbait da,
baina ez da joan, eta atsegin saiatu da urratu out edo jaramonik ez
zero eta bai bit horiek edo beste ausazko eredua batzuk
egin zaitez beraz, nahita ez baduzu.
Beraz, zure intuizioa zen eskubidea, gaitezen 61 kentzeko.
Baina, egia esan, ez dugu kezkatu.
Besterik ez duzu ahaztu behar dugu ez da gure tamaina aldatuz.
>> Orain ez dago pila honekin arazo bat da.
Gauzak bultzaka jarraitzen badut pila gainean, zer da
jakina gertatuko gutxiren buruan une denboran?
Den espazioa agortu goaz.
Eta zer egiten dugu?
Mota horretako izorratu dugu.
Ekintza honek, ez du utzi array tamaina aldatu digu, erabiliko duelako
sintaxia hau, baduzu uste back aste bi,
behin deklaratu duzun array baten tamaina,
Oraindik ez dugu oraindik non ikusten mekanismo bat array tamaina aldatu ahal izango dira.
Eta hain zuzen ere, C ez dauka eginbide hori.
Esaten baduzu eman dit bost Nths, deitu zenbakiak,
Hori da lortu nahi bazoazela guztiak.
Beraz, gaur egun egiten dugu, astelehenetan, izan irtenbide bat adierazteko gaitasuna
nahiz eta, besterik gabe, pentsatzen dugu behar gure pila definizioa
hard-kodetuak array batzuk ez izan, baina besterik Helbide bat gordetzeko.
>> Zergatik da hau?
Orain dugu eroso egon Izan ere, nire programa exekutatzen denean,
Naiz zentzuzkoa joan Giza eskatu behar dute,
Zenbat zenbaki ez gorde nahi duzu?
Beraz, sarrera nonbait etorriko da.
Baina behin ezagutzen dut kopurua, orduan besterik ezin dut
zer funtziona emateko erabili me memoria zatia?
Malloc erabili ahal izango dut.
Eta edozein kopuru esan dezaket byte Nths hauetarako itzuli nahi dut.
Eta guztia zenbakiak gorde behar dut aldakorreko hemen egitura honen barruan
zer izan behar du?
Zer benetan sartzen da Egoera honetan zenbakiak?
Bai, lehenengo erakuslea zatia memoria hori byte,
edo zehatzago esanda, helbidea byte horiek lehena.
Ez du axola bat izanez gero byte edo milioi byte,
Besterik lehenengo buruzko zaintzeko behar dut.
Zeren eta zer malloc bermeak eta Nire sistema eragilearen bermeak,
dela memoria I zatia eskuratu, alboko izango da joan.
Bertan ez da hutsuneak izango.
Beraz, 50 dudan galdetzen badiezu byte edo 1.000 byte,
ari dira guztiak ere izango da joan Atzera itzuli itzuli.
Eta hain luze zein handia, nola gogoratzen dut Askoz galdetu nion, guztiak jakin behar dut
Lehen, hala nola helbidea da.
>> Beraz, gaur kodea gaitasuna behar dugu.
Bada ere, gurekin eramango da joan denbora gehiago hau idatzi arte,
Orain ezin dugu memoria hori berresleitzeko arabera besterik helbide ezberdina gordetzeko ez
handiago edo are nahi badugu memoria zatia txikiagoa.
Beraz, merkataritza off bat hemen.
Orain dinamismoa lortu dugu.
Dugu oraindik contiguousness aldarrikatzen ari naiz.
Delako malloc emango digu memoria alboko zatia.
Baina hori ere mina bat izango da guretzat lepoan, programatzailea,
den benetan kodea eman.
Lan gehiago besterik ez da.
Kodea Akin zer nintzen behar dugu duela une bat besterik ez out joaz.
Oso doable, baina konplexutasuna gehitzen da.
Eta beraz, sustatzailearen denbora, programatzaile denbora da oraindik beste baliabide
agian hori gastatu behar dugu Denbora pixka ezaugarri berriak lortzeko.
Eta gero, jakina, ez ilara batean.
Ez diogu hau sartu Xehetasun askoz bat.
Baina espirituz oso antzekoa da.
Ilara bat ezartzeko izan dut, eta dagokion eragiketak,
enqueue edo adierazten du, atsegin gehitu edo kendu, esateko modu sofistikatuagoak bat besterik ez da,
enqueue edo adierazten du, honela.
Besterik ezin dut eman eta egitura bat neure burua hori berriro zenbaki baten array ditu,
hori berriro tamaina bat dauka, Baina zergatik orain behar dut
ilara baten aurrealdean segimendua egiteko?
Ez nuen jakin behar nire pila aurrealdean.
Beno, badut berriro batentzat Ilara dezagun besterik hard
bost bezalakoa izatea Kode Hemen egon daitezkeen zenbaki osoko.
Beraz, hau zero, bat, bi, hiru, lau da.
Hau izango da Zenbakiak izeneko berriro.
Eta hau tamaina deitu behar da.
>> Zergatik ez da nahikoa tamaina besterik ez izatea?
Beno, goazen on horrek bultza zenbaki horiek berberak.
Beraz pushed-- I enqueued dut, edo bultzatu.
Orain ilaran dut 50, eta, ondoren, 51, eta, ondoren, 61, eta dot dot dot.
Beraz, hori enqueue da.
Enqueued I 50, 51 orduz, ondoren, 61.
Eta hori itxura berdin- beraz, orain arte, pila bat,
ezik behar dut aldaketa bat egin behar izan du.
Tamaina horretako eguneratu behar dut, beraz, I joan Hutsetik batera bi hiru orain.
Zelan Adierazten?
Zer gertatzen Adierazten batekin?
Nor off zerrenda honetan lehenengo etorri beharko Apple Store lerroan bada?
Beraz, 50.
Beraz, mota zailagoa denbora hau da.
Azken aldiz, Berriz super zen erraza besterik ez tamaina ken bat,
Lortu dut eraginkortasunez nire array amaierara arte non zenbakiak dira, 61 kentzen.
Baina ez daukat 61 kendu nahi.
50 hartu nahi dut, nor Han izan 5:00 AM
lerro alde iPhone edo whatnot berria.
Eta, beraz, 50 kentzeko, I ezin da besterik egin, ezta?
50 I zeharkatu ahal izango dira.
Baina, esan besterik ez dugu dugu ez dute, beraz, anal izan
egindako urratu edo datuak ezkutatu.
Besterik ezin dugu ahaztu, non da.
>> Baina aldatu dut nire tamaina bada orain bi, nahikoa informazio hori
zer gertatzen da nire ilarako jakin nahi?
Ez da benetan.
Atsegin dut nire neurriko bi da, baina non hasten da ilaran,
batez ere, oraindik ere badut memorian zenbaki horiek berberak.
50, 51, 61.
Beraz, gogoratu behar dut orain non aurrealdean dago.
Eta horrela sortu proposatu dudan bezala Han, besterik ez dugu deitzen dute egingo
Garren aurrean, zeinaren hasierako balio izan behar zuen zer?
Zero, besterik zerrendan hasieran.
Baina orain gain decrementing tamaina, kontatzaileak besterik ez dugu aurrealdean.
Orain hemen beste arazo bat da.
Beraz, I mantendu egingo da behin.
Demagun hau kopurua da atsegin 121, 124, eta, ondoren, dammit,
Naiz Espazioa dut dut.
Baina itxaron minutu bat, ez naiz.
Beraz, istorioa Puntu honetan, suposatzen duten tamainarekin bat, bi da,
Hiru, lau, beraz, suposatzen duten tamaina lau da, aurrealdean bat da,
beraz, 51 aurrealdean dago.
Beste zenbaki bat jarri nahi dut hemen, baina, dammit, naiz espazioa atera nuen.
Baina ez naiz benetan, ezta?
Non izan batzuk jarri dut balio gehigarri 171 like?
Bai, eta ahal nuen besterik nolako go back baino ez da, ezta?
Eta gero zeharkatu 50, edo besterik gainidatzi 171 batekin.
Eta zuk galdetzen ari bazara, zergatik Gure zenbakiak lortu, beraz, ausazko,
horiek normalean hartzen dira ordenagailuan zientzia Harvard ikastaroak CS50 ondoren.
Baina hori optimizazioa ona izan zen, orain ez naiz espazioa alferrik galtzen.
Oraindik ere gogoratu behar dut nola big gauza hau erabatekoa da.
Guztira, bost da.
Zeren eta ez dut nahi hasteko gainidatziz 51.
Beraz, orain nago oraindik tokirik gabe, beraz, arazo berdina ere.
Baina ikusiko duzu nola orain Zure kodea, ziurrenik duzu
apur bat gehiago idatzi izan konplexutasun hori gerta dadin.
Eta hain zuzen ere, zer operadorea C in ziurrenik ematen dizu
magikoki Horretarako zirkulartasunik du?
Bai eragile-modulua, ehuneko ikurra.
Beraz, zein da cool mota ilara bat buruz, marrazketa-array mantendu dugu nahiz
lerro zuzenak bezalako hauetan bezala, baduzu Mota honen zurubi bezala pentsatzen
zirkulu baten inguruan, orduan besterik senez mota lan egiten du adimen
Apur bat dela uste dut gehiago garbian.
Oraindik ezartzea izango litzateke duzu kodea ere eredu mental hori.
Beraz, ez da zaila, , azken finean, martxan jarri ahal izateko
baina oraindik ere galtzen dugu size-- du, hobeto esanda, gaitasuna, tamainaz aldatu Horretarako dugu behintzat.
>> Array kentzeko behar dugu, ez dugu ordezkatu erakuslea bakar batekin,
eta gero nire kodea nonbait Dut a zer funtziona benetan sortzeko deitu
array zenbakiak deitzen?
Malloc edo antzeko batzuk funtzioa, zehazki.
Pilak edo ilarak buruzko edozein galdera.
Bai?
Ona galdera.
Zer modulo litzateke hemen erabiltzen dituzu.
Beraz, oro har, erabiltzen denean mod, hala egin behar duzu
tamaina batera Datu egitura osoa.
Beraz, zerbait bost edo ahalmena, bada like konstante da, hau da, ziurrenik, tartean.
Baina besterik modulo bost egiten Seguru asko ez da nahikoa,
Jakin behar dugulako egiten dugu inguruan biltzea hemen edo hemen edo hemen.
Beraz, ziurrenik, gainera, inplikatzeko nahi joan
Gauza tamainaren, edo Azalean aldakorra baita.
Beraz, besterik ez da hau, nahiko simple adierazpen aritmetika,
baina modulo funtsezko osagai izango litzateke.
>> Izango bada film Beraz, azken finean.
Animazio bat duten batzuk beste unibertsitate batean folks
bildu ditudan dugu Eztabaida honen egokituta.
Jack ikasteko eskatzen du ilarak eta estatistikak buruzko kontuak.
>> ZINEMA: Bazen behin, han Jack izeneko tipo bat zegoen.
Lagunak egiteko orduan, Jack ez knack bat.
Beraz, Jack joan nahi du hitz egin mirestua gehienak ezagutzen zituen.
Joan zen Lou nahi zuen eta galdetu zion, zer egin dezaket?
Lou ikusi bere laguna benetan distressed zen.
Beno, hasi zen, besterik ez begiratu nola jantzita zaren.
Ez arropa izanez beste itxura batekin?
Bai, esan zuen Jack.
Ziur egiten dut.
Nire etxea etorri eta Horiek erakutsiko dizut.
Beraz batera joan ziren Jack izateko.
Eta Jack erakutsi Lou koadroan non bere kamisetak guztiak gordetzen zituen,
eta bere prakak eta galtzerdiak.
Lou esan, duzu ikusten dut zure arropa pila bat.
Zergatik ez batzuk janzten duzu beste batzuk awhile behin?
>> Jack esan, bai, orduan I arropa eta galtzerdiak kendu,
Horiek garbitu dut eta jarri Horietako koadroan kanpoan.
Ondoren datorrena du Gaur goizean, eta eman dut hop.
Joan nintzen koadroan, eta hori lortzeko Nire arropa goiko off.
Lou azkar konturatu Jack arazoa.
Mantendu zuen arropa, CD-en, eta pila liburuak.
Noiz iritsi zen zerbait irakurri edo higadura,
Goiko liburu edo arropa aukeratu zuen litzaidake.
Ondoren Bukatutakoan, he jartzen eskubidea atzera.
Atzera jo litzateke, pila gainean.
Konponbidea ezagutzen dut, esan triunfatzailetik ozen bat.
Den ikasi behar da hasteko ilaran bat erabiliz.
Lou hartu zuen Jack arropa eta zintzilik horiek armairutik.
Eta hura hustu zuen koadroan, dituena besterik ez zuen egiten.
>> Ondoren, esan zuen orain Jack, amaieran Egunean, jarri zure arropa ezkerrean
noiz jarri zuri.
Ondoren bihar goizean duzunean ikusi eguzkia, zure arropa zaitez
eskubidea, lerro amaieran aurrera.
Ez duzu ikusi? esan zuen Lou.
Hain polita izango da.
Janzten dituzu guztia behin janzten duzu zerbait aurretik, bi aldiz.
Eta ilarak guztia bere gelan eta apal batean,
Jack beharra sentitzen hasi nahiko bere buruaz ziur.
Lou esker guztiei eta Bere ilaran wonderful.
HIZLARIA 1: Ondo da, adorable da.
Beraz, zer izan da benetan joan kanpaia orain azpian?
Hori erakusle dugu, malloc dugula,
hori, sortzeko gaitasuna dugu memoria zatiak geure buruari
dinamikoki.
Beraz, hau irudi dugu bat da beste egun antzematen.
Ez benetan dwell dugu Gainean, baina argazki hau
diotela azpian joan astez kanpaia orain.
Eta beraz, honek suposatzen du, besterik ez Hori marraztuko dugu laukizuzen bat,
zure ordenagailuaren memorian.
Eta, agian, zure ordenagailuan, edo CS50 NAN, memoria edo Memoria gigako ditu
edo bi gigabyte edo lau.
Ez da benetan axola.
Zure sistema eragilearen Windows edo Mac OS edo Linux,
funtsean, zure programa aukera ematen du sarbidea ez duela pentsatzea
osoa emateko zure ordenagailuaren memorian,
nahiz eta martxan egon liteke, nahiz Anitz programak aldi berean.
Beraz, egia esan, hori ez da benetan lan.
Baina ilusio bat mota da Zure programen guztiei.
Beraz, bada, bi RAM kontzertuak izan duzu, hau da nola ordenagailua pentsatu ahal liteke.
>> Orain coincidentally, horietako bat Gauzak, memoria segmentu horietako bat,
pila bat deitu.
Eta hain zuzen ere, edozein Horrela, idaztea kodea urrun
deitzen ari zarela a funtzioa, adibidez nagusia da.
Gogoratu edonoiz dudan marraztuko ordenagailuaren memoria,
Beti marraztu dut Sort laukizuzen baten erdia hemen
eta ez traba hizketan Zer da goian buruz.
Nagusia deitzen da, nire erreklamatzeko delako memoria sliver honetan lortu duzu
jaisten hemen.
Eta funtzio bat izeneko nagusia bada swap bezala, ondo swap hemen doa.
Eta bihurtzen da, hori da non nik bukatzen da.
Zerbait On pila bat deitu Zure ordenagailuaren memoria barruan.
Orain egunaren amaieran, hau da, besterik gabe, helbideak.
Byte zero bezalakoa da, byte, byte 2 milioi.
Baina pentsatzen baduzu Objektu angeluzuzena honetan bezala,
guztiak behin egiten ari gara deitzen dugun denbora funtzioa da
memoria zati berri bat layering.
Funtzio hori xerra bat ematen ari gara bere memoria zati batekin lan.
>> Eta gogoratzen orain hori da garrantzitsuena.
Ditugun ez bada delako swap antzeko zerbait
eta bi A eta B eta atsegin aldagai lokalak balio horiek aldatu eta bi dugun
bi eta bat, oroitzapen den swap itzultzen denean,
da xerra hau bagina bezala da oroimenaren besterik desagertuko da.
Egia esan, ez da oraindik ez forensically.
Eta zerbait oraindik benetan.
Baina kontzeptu, izango duenez arren, guztiz joan da.
Eta hain nagusia ez daki lanaren edozein swap funtzioa hori ere egin zen,
egia esan, horiek gainditu ezean erakuslea batzuen erreferentzia argudioak.
Orain, oinarrizko konponbidea swap arazoa dela
da gauza pasatuz helbidea arabera.
Baina bihurtzen da, ere, zer da dira gertatzen zati hori gainetik
Laukizuzenaren denbora honetan guztian Oraindik ez dago ez da gehiago memoria gora.
Eta noiz dinamikoki esleitu memoria,
da GetString, barrutik ala bertan ez dugu egiten duzu CS50 batean
liburutegia, edo zuk mutil bada deitu malloc eta galdetu
zatia sistema eragilearen memoria, ez du pila datoz.
Orduan beste leku batetik zure ordenagailuaren memorian
hori zeure deitu.
Eta hori ez da edozein ezberdinetan.
RAM bera da.
Memoria bera da.
Besterik ez da RAM hori da It Han ordez hemen behera.
>> Eta beraz, zer esan nahi du horrek?
Beno, zure ordenagailuan badu memoria kopuru finitu bat
eta pila hazi da, eta beraz, esateko, eta zeure, arabera
gezi honetarako, behera hazten.
Beste era batera esanda, behin denbora malloc deitu,
zu xerra bat ematen ari da oroimenaren goitik,
orduan, agian, pixka bat txikiagoa, gero pixka bat txikiagoa, malloc deitzen diozun bakoitzean,
zeure, erabilera da, Mota da hazten,
eta gertuago zer hazten?
Pila.
Beraz, ez da hau, badirudi ideia ona bezala?
Esan nahi dut, non ez da benetan argi zuk bakarrik bada zer gehiago egin ahal izango duzu
memoria kopuru finitu bat.
Baina hori da, ziur aski txarra.
Bi gezi horiek bat dira kraska jakina, beste bat da.
>> Eta bihurtzen da txarra lasaia dela, jende batek bereziki programazio ona,
eta ordenagailuak sartu aldatu nahian, Errealitate hau ustiatu daiteke.
Izan ere, kontuan hartu dezagun snippet apur bat.
Beraz, hau adibide bat irakurri ahal izango da buruz Wikipedian xehetasun gehiago.
Seinalatu egingo dugu at Artikulu bitxia bada.
Baina ez zen erasoa, oro har, buffer gainezkatzea gisa ezagutzen duten
duela existitu, betiere gizakiak Izan manipulatzeko gaitasuna izan
ordenagailuaren memoria, batez ere, C. Beraz, programa hau oso arbitrarioa da,
baina dezagun irakurri behetik gora hasita.
Main argc char izar argv sartu.
Beraz, hori hartzen duen programa bat da komando lerroko argumentuak.
Eta nagusiak ez du itxuraz deia funtzioa, dei egiten F sinpletasunagatik.
Eta pasatzen da zer?
Argv bat.
Beraz pasatzen F sartu da edozein dela ere hitza da duten erabiltzaileak Idatzitako
ondoren gonbitan programan izena guztietan.
Beraz, askoz Caesar edo Vigenere, adibidez, horiek argv batera egiten gogoratzen dezakezu.
>> Beraz, zer da F?
F kate bat hartzen du Bere argumentu bakar gisa,
AKA char izar bat, bera Gauza, kate gisa.
Eta arbitrarioki deitu du Adibide honetan taberna.
Eta gero, char c 12 besterik layman-terminoak,
zer da char c parentesi 12 guretzat egiten?
Zer ari da egiten, ezta?
Memoria esleitzean, zehazki, 12 byte 12 chars da.
Hain zuzen ere.
Eta gero, azken lerroa, irabiatu eta kopia, ziurrenik duzun ikusi.
Hau katea kopia bat da horren helburua bizitzan funtzio
da bere bigarren argumentua kopiatzeko bere lehen argumentua sartu,
baina bakarrik bat sortu Zenbait byte kopurua.
Beraz, hirugarren argudio dio, zenbat byte kopiatu behar duzu?
Bar luzera, edozein dela ere idatzi erabiltzaile.
Eta edukiekin taberna, katea, dira
memorian kopiatzen adierazi C.
>> Beraz, hau badirudi ergelak mota, eta hala da.
Adibidez contrived bat da, baina ordezkaria da
eraso vectors klase bat, programa bat erasotzeko modu bat.
Guztiak gauza ederra da eta ona erabiltzaileak bada Hitz hori 11 karaktere motak
edo gutxiago, plus backslash zero.
Zer baino erabiltzaile mota gehiago bada 11 edo 12 edo 20 edo 50 karaktere?
Zein da programa hau duzu?
Balizko seg errua. Honez joan bar sortu dena den blindly kopiatu
Bere luzera, hau da, literalki bar dena,
helbidea sartu C. Baina C adierazi ditu bakarrik preemptively 12 byte bezala emandako.
Baina ez dago check osagarriak ez da.
Ez dago baldintza bada.
Error no hemen egiaztapena dago.
>> Eta orain zer programa hau da joan egin besterik blindly da
Gauza bat kopiatu bestera.
Eta, beraz, hau marraztuko bagenu irudi gisa, hona hemen
besterik memoria espazioa sliver.
Beraz, behealdean nabarituko, dugu bertako taberna aldakorra dute.
Beraz, nahi store-- joan erakuslea tokiko argumentu hori, baizik eta
katea bar gordetzeko dugu.
Eta gero, bakarrik nabarituko honen gainean pila bat ere,
delako eskatu duzun aldi bakoitzean memoria, pila egiteko,
Pixka bat jartzen da egiten Pictorially gainetik,
ohar horretan lortu dugu 12 byte dago.
Goiko inork ezker C parentesi zero eta da Alde beheko eskuineko C parentesi 11 da.
Hori besterik nola ordenagailuak Neure irten.
Beraz, intuizioa, bada bar gehiago ditu 12 guztira pertsonaiak, besteak baino
backslash zero, non da 12 edo C parentesi 12 joango gara?
Edo, hobeto esanda, non 12an da Pertsonaia edo 13an pertsonaia,
ehungarren pertsonaia joan amaituko irudian?
Gainetik edo azpitik?
>> Eskuin, zeren nahiz pila bera hazten goranzko,
behin stuff jarri dituzun batean ezazu, diseinu arrazoiengatik,
memoria jartzen goitik behera.
Beraz duzun got baino gehiago 12 byte bada, bar gainidaztera hasteko joan zaren.
Orain, hori akats bat da, baina da Ez benetan big aurre.
Baina akordio handi bat da, ez da delako gauza gehiago gertatzen oroimenez.
Hortaz, hona hemen nola guk jarri kaixo, argi izan behar du.
Idatzi dut kaixo ere bada gonbitan.
H-E-L-L-O backslash zero, eta ondorioz sortu barruan 12 byte horiek, eta super seguru gaude.
Dena ondo dago.
Baina zerbait badut idatzi luzeagoak, potentzialki da
to bar espaziora arrastaka joan.
Baina okerrago oraindik, hura bihurtzen Denbora horretan guztian egindako,
inoiz ez dugu hitz egin du, nahiz eta da, pila beste gauzak egiteko erabiltzen da.
Ez da bakarrik aldagai lokalak.
>> C mailan hizkuntza oso txikia da.
Eta Ordena ezkutuka pila ere erabiltzen
gogoratzera bat funtzioa deitzen da, zer
helbidea, aurreko funtzioa da, Beraz, funtzio hori atzera jauzi egin ahal izango da.
Beraz nagusiak deiak trukatu, artean gauza pila gainean bultzatu
ez dira aldagai lokalak trukeak, edo bere argumentuak, ezkutuka ere bultzatu
pila gainean irudikatzen gisa du xerra gorriekin hemen,
nagusiaren helbidea, fisikoki da zure ordenagailuaren memorian,
beraz, orduan swap egiten da, ordenagailuaren daki atzera joan nagusiak behar dut
eta amaitzeko, funtzio nagusia exekutatzean.
Beraz, hau da arriskutsua orain, bada delako Erabiltzaile ondo kaixo baino gehiagotan motak,
hala nola, erabiltzailearen sarrera hori clobbers edo atal gorria gainidazten,
logikoki bada ordenagailuaren besterik blindly suposatuko joan
xerra gorri horretan byte direla helbidea eta bertan itzuliko beharko da,
aurkariarekiko zer da bada smart enough edo Zortea byte sekuentzia bat jarri
ez dagoela helbide baten itxura du, baina kode-helbidea da
berak ordenagailua nahi duen to nagusiak ordez exekutatu?
>> Beste era batera esanda, zer egin badu Erabiltzaile gonbitan idazten ari da,
Ez da zerbait kaltegabea kaixo bezala,
baina, egia esan, hori da baliokidea kodea erabiltzaile honen fitxategi guztiak ezabatu?
Edo email euren pasahitza niri?
Edo hasi saioa amaitzeko euren zanpatze, ezta?
Ez dago modu bat da, ez dezagun zeintzuk gaur, Hori ere idatzi izan dute, ez bakarrik kaixo
Mundu edo bere izena, funtsean, ezin izan dute
kodea, zeroz ere gainditu eta direnak, ordenagailua
biak kodea eta helbideak akatsak.
Beraz, nahiz eta zertxobait abstraktuan, bada Erabiltzaile nahikoa aurkakotasun kodea motak
Hori irudirik gisa orokortu egingo A. A eraso edo aurkariek da.
Gauzak hain txarra.
Guk ez dugu axola buruz Zenbakiak edo zero edo direnak
gaur, hala nola amaituko duzun atal gorria gainidatziz,
nabarituko byte sekuentzia hori.
O 835 C zero zortzi zero.
Eta orain, Wikipediako artikulu bezala hemen proposatu du, baduzu orain benetan hasteko
Zure ordenagailuaren byteak etiketatzea memoria, zer Wikipedia artikulua da
proposatzen, zer helbidea bada duten goi-ezkerreko byte 80 C 0 3508 da.
>> Beste era batera esanda, txarra lasaia bada nahikoa smart bere kodearekin
benetan jarri zenbaki bat hemen, kodearen helbidea dagokio
berak injektatu Ordenagailua sartu, zuk
Ordenagailua engainatu ezer egiten sartu.
Fitxategiak kendu, mezu Gauzak, zure trafiko sniffing,
literalki ezer izan ordenagailu injektatu.
Eta beraz buffer overflow bat bere core eraso
besterik da ergela, ergel array baten premiazko dagoela
ek ez zuen bere mugak hautatuta.
Eta hau da, zer da super arriskutsua eta, aldi berean, indartsua super
C da, ez dugu, hain zuzen ere memoria edozein lekutan sarbide.
Da guretzat, programatzaileak, Jatorrizko kodea idatzi duten
darn edozein luzera egiaztatzeko array manipulatzeko ari gara.
Beraz, argi eta garbi, zer da konpondu?
Itzuli roll badugu honetarako kodea, Nik ez besterik
bar luzera aldatzeko, zer bestela egiaztatzeko behar dut?
Zer gehiago behar izan dut egiten Eraso hori erabat eragozten?
Ez dut nahi, besterik blindly esan Hori byte asko bezala kopiatu behar duzu
bar luzera da gisa.
Esan nahi dut, bezala kopiatu gisa byte tabernan daude
to the esleitu eman memoria, edo 12 Gehienez.
Beraz, egoera badu nolabaiteko behar dut horrela, ez egiaztatu bar luzera,
baina 12 dugu kode besterik gogorra gainditzen baditu 12 maximoa distantzia gisa.
Buffer deiturikoak Bestela gainezkatzea erasoa gertatu daiteke.
Diapositibak horietako behealdean, Oraindik bitxia gehiago irakurri nahi izanez gero
benetako jatorrizko artikulua da nahi izanez gero, begirada bat hartu.
>> Baina orain, prezioen artean Hemen ordaintzen zen inefficiencies.
Beraz, hori izan zen azkar bat maila baxua begirada zer
arazoak, orain sortzen ahal dugun ordenagailuaren memorian eskuratzeko aukera dute.
Baina beste arazo bat dugu Dagoeneko astelehenean stumbled
besterik eraginkortasunik eza zen lotuta zerrenda.
Denbora lineala itzuli gara.
Jada ez Alboko array bat daukagu.
Guk ez dugu izan ausazko sarbidea.
Ezin dugu erabili plazan tarte idazkera.
Izan dugu, literalki, berriz, begizta bat erabili den moduko une bat lehenago idatzi nuen.
Baina, astelehena, erreklamatu ahal dugun dugu creep atzera eraginkortasuna erresuman sartu
hori da zerbait lortzeko logarithmic agian, edo onena, hala ere,
agian zerbait hori da etengabeko denbora deiturikoak.
Beraz, nola egin dezaket by duten berri horiek erabilita egiten dugu tresnak, helbide hauek, erakusleak horiek,
eta geure gauza hari?
Beno, suposatzen duela Hemen, horiek mordo bat dira
to bat gorde nahi dugu zenbakiak Datuen egitura eta bilaketa modu eraginkorrean.
Erabat dugu aste atzera egiteko bi, bota horiek array batean,
bila hasten bilaketa bitarra erabiliz.
Banatu eta agindu.
Eta hain zuzen ere idatzi zenuen PSET3 bilaketa bitarra,
Non programa ezarriko duzu.
Baina zer jakin behar duzu.
Ez dago gehiago bat mota clever hau egiteko modu.
Pixka bat gehiago sofistikatua da eta agian
ikusteko aukera ematen digu zergatik bitar bilaketa beraz, askoz azkarrago.
Lehenik eta behin, dezagun aurkezten zuhaitz baten ideia.
Horrek are in arren Errealitate zuhaitzak motatako
Hau bezalako hazten, ordenagailuaren munduan zientzia motatako hazten dira beheranzko
familiako zuhaitz bat da, non behar duzun bezala zure aiton-amonak edo amonak handia
edo whatnot goian, patriarka hartan eta Familiako matriarka, bat besterik ez
erro, nodo, behean llamado bertan bere seme-alabak dira,
horren azpitik bere seme-alabak dira, edo Bere ondorengoek, oro har.
Eta edonork zintzilik off Familiako hondoan
zuhaitz, gainera izanik familian gazteena,
ere ezin izan generikoki zuhaitzaren hostoak deritzo.
>> Beraz, hau mordo bat besterik ez da Hitzak eta definizioei
Zerbait ordenagailu zuhaitz bat izeneko zientzia, familia zuhaitz bat bezalakoa da.
Baina ez da incarnations hazlerik zuhaitz, horietako bat
da bilaketa zuhaitz bitar bat izeneko.
Eta ahal duzun tease mota aparte zer gauza hau ez.
Beno, binary da zein zentzutan?
Non hemen dator bitarraren?
Sentitzen dugu?
Ez da hainbeste bai bat edo.
It gehiago nodo bakoitzak duen ez da bi haur baino gehiagok, hemen ikusi dugun bezala.
, Zuhaitz bat, oro har, eta Zure guraso eta aiton-amonak
Haurrek asko izan daiteke, edo grandkids dute benetan nahi bezala,
eta, beraz, adibidez, hiru ez daukagu haurrak eskuineko eskua nodo hori off,
baina zuhaitz bitar batean, nodo bat du zero, bat, edo bi haurrak Gehienez.
Eta hori jabetza polit bat da, Orain bi capped bada delako,
gai izango garela uste du log base txiki bat lortzeko bi
Ekintza gertatzen da hemen, azken finean.
Beraz, zerbait logaritmikoa dugu.
Baina une batean gehiago.
Bilaketa zuhaitz esan nahi duten zenbakiek dira antolatu besteak beste, ezkerretik haurraren
balio erroa baino handiagoa da.
Eta bere eskuineko umea da erro bera baino handiagoa zen.
Beste era batera esanda, edozein hartzen baduzu nodes, argazki hau zirkuluak,
eta haren ezkerreko eta etorkizunari begira Seme-alaba eta bere eskuineko haur,
lehenengoa baino gutxiago izan behar du, bigarrena baino handiagoa izan behar du.
Beraz, behatu egiaztatu 55.
Seme-alaba ezker It 33 da.
It baino gutxiago.
55, bere eskuineko seme-77 da.
Baino handiagoa da.
Eta hori definizio errekurtsiboa da.
Behin horietako bat egiaztatu ahal izan genuen nodo eta eredua bera eutsi litzateke.
>> Beraz, zein da bat ere polita binary bilaketa zuhaitz, da
Bat, martxan jarri ahal izango dugu egitura batekin, besterik gabe, nahi hau.
Eta bota ari gara, nahiz eta egiturak asko zure at,
samarra ari dira Intuitiboa orain, zorionez.
Sintaxia ziur urrutira dago oraindik, baina nodo baten edukiak honetan
Testuinguru eta mantendu dugu nodo hitza erabiliz,
Laukizuzen bat ote den pantailan edo zirkulu baten gainean,
edukiontzi orokorra batzuk besterik ez da, zuhaitz baten kasu honetan, bat bezala hasi
ikusi genuen, oso bat behar dugu nodo bakoitzeko
eta, ondoren, behar dut bi erakusleak seinalatuz Umearen ezkerreko eta eskuineko seme,
hurrenez hurren.
Beraz, nola guk ezartzeko duten egitura bat ere.
Eta nola liteke ezartzeko nuen kodea?
Beno, dezagun azkar bat Adibidez, txiki-txiki honetan begiratu.
Ez da funtzionala, baina ez dut kopiatu eta egitura itsatsi.
Eta bada bitar bat nire funtzioa bilaketa zuhaitz bilaketa deritzo,
eta honek bi argumentu hartzen, zenbaki oso N batekin eta erakuslea
nodo bat, beraz, erakuslea zuhaitz baten inguruan edo zuhaitz baten erro erakuslea,
nola ez, N bilatuz itzultzea?
Beno, lehenik eta behin, ez naiz delako erakusleak aurre,
Behatu kontrol bat egin nahi dut.
Zuhaitz berdin berdin nulua bada, da: Zuhaitz hau edo ez zuhaitz hau?
Ezin da izan, ezta?
I am bada nulua iragana, ez dago ezer han.
I baliteke baita besterik blindly esan itzultzeko faltsua.
Didazu ezer ez bada, ziur aski, ez dut Bat-zenbakia N. aurkitu Beraz, zer gehiago agian I
egiaztatu orain?
Baita beste N badago esan noa edozein dela zuhaitz nodo baino txikiagoa
Dudan da entregatu N balio.
Beste era batera esanda, zenbakia banago Ba, N bila, nodo baino gutxiago
Naiz bila dagoela.
Eta nodoa nabil zuhaitz deitzen denean,
eta aurreko adibidea gogoratzen Balio at lortu erakuslea ere,
Gezi idazkera erabiliko dut.
Beraz N zuhaitz gezi baino gutxiago bada N, kontzeptualki, ezker nahi dut.
Zelan express bilatuta utzi nuen?
Argi izan, hau da, bada Galdera Irudian,
eta izan dut gainditu goreneko dagoela gezi hori behera seinalatuz.
Hori da nire zuhaitz erakuslea.
Zuhaitzaren erroan dut apuntatzen naiz.
Eta esan ari naiz, zeren 44 zenbakira, nahierara.
Da baino 44 gutxiago edo 55 jakina baino handiagoa?
Beraz, baino txikiagoa da.
Eta beraz, honek badu baldintza aplikatzen da.
Beraz, kontzeptu, zer egin nahi dut bilatu hurrengo I 44 bila nabil bada?
Bai?
>> Zehazki, nahi dut bilatu ezkerreko haur,
edo ezkerrera argazki honen azpi-zuhaitz.
Eta hain zuzen ere, let me bidez Irudian behera hemen
une bat besterik ez, geroztik Ezin dut urratu honek egindako.
Hemen hasten naiz 55 bada, eta Dakit hori 44 balio du
Nabil for da ezkerretik, gauza
ren liburu telefonoa urraketaren bezala erdi edo zuhaitza urraketaren erdia.
Zaintzeko buruzko Jada ez dut zuhaitzaren zati honetan osoan.
Eta, hala ere, bitxia zen dagokionez egitura, hemen hori baino gauza hau
33 batekin hasten da, berez, hori bilatu zuhaitz bitar bat da.
Hitzaren errekurtsiboak direla eta lehen esan dudan hain zuzen ere, hau da datu-egitura bat da
definizioz errekurtsiboak da.
Zuhaitz bat hori da, hau izan ditzakezu handia, baina bakoitzak bere seme-alabetako
zuhaitz bat besterik ez da apur bat txikiagoak adierazten du.
Horren ordez, haren aitona izateaz edo amona, gaur egun besterik ez ama da
or-- Ezin dut ez esatea ama edo aita, hori arraroa izango litzateke.
Horren ordez, bi seme-alabak bertan anaia eta anaia bezala izango litzateke.
Familiako zuhaitza belaunaldi berria.
Baina egituraz, ideia bera da.
Eta bihurtzen da funtzio bat daukat zeinarekin dut bilaketa bitarra bat bilatu ahal
zuhaitza.
Bilaketa deritzo.
Bilatu I N zuhaitz gezi-ezkerrean N-balioa baino handiagoa da, bestela,
Une at nagoela.
Duela une bat istorioan 55.
Izeneko funtzio bat daukat bilaketa hori besterik ezin dut
gainditu N honetan eta errekurtsiboki bilatu azpi-zuhaitz eta itzulera besterik
edozein dela ere erantzun hori.
Bestela Dut batzuk final oinarri kasuan hemen.
>> Zer da, azken kasu?
Zuhaitz bai da nulua.
Balioa, naiz bai bila hori baino txikiago edo handiagoa
edo berdintzen.
Eta berdina esan izan dut berdinak, baina logikoki da
besterik gabe, bestela hemen esaten baliokidea.
Beraz, egia da nola zerbait aurkitu dut.
Beraz, espero dugu hau da are gehiago sinesgarria adibidez
ergelak sigma funtzioa baino hitzaldiak batzuk bat egin dugu atzera,
non bezain erraza zen begizta bat erabili behar da gora zenbatu batetik zenbaki guztiak
N. Here datu-egitura baten bidez bera errekurtsiboki da
definitu eta errekurtsiboki marraztuta, orain dugu geure burua adierazteko gaitasuna izan
kode hori errekurtsiboak da bera.
Beraz, hau zehatza berean kodea hemen da.
>> Beraz, zer beste arazo batzuk konpondu ahal izango dugu?
Beraz, urrats polita egin urruntzen une bat besterik zuhaitzak.
Hemen da, esan, Alemaniako bandera.
Eta ez dago argi bat Bandera hau eredu.
Eta ez da asko munduko banderak dagoela
dira hau bezain sinplea dagokionez euren kolore eta eredu.
Baina demagun da hori gisa gordeta .gif, Edo JPEG bat, edo bitmap, edo ping bat,
edozein fitxategi formatu grafiko horrekin Oraindik ezagutzen,
eta horietako batzuk gaude jolastuz Pset4 ere.
Honek ez dirudi merezi gordetzeko pixel beltza, pixel beltza, pixel beltzak,
dot, dot, dot, sorta oso bat Lehenengo scanline pixel beltzak,
edo errenkadan, ondoren, sorta oso bat eta, ondoren, sorta oso bat bera
bera, eta, ondoren, bat gorria pixel sorta osoa,
pixel gorria, gorria pixel, orduan oso bat pixel horia sorta, horia, ezta?
>> Bertan, besteak beste eraginkortasunik eza da hemen.
Nola litzateke senez duzu Alemaniako bandera konprimitu
da fitxategi bezala gauzatzeko bada?
Ezin dugu zer informazio Like traba diskoko gordetzeko ordenan
Gure fitxategiaren tamaina txikitzeko bezalako a kilobyte, zerbait megabyte bat
txikiago?
TIIRA soberakina gezurrak Hemen argi eta garbi izan behar du?
Zer izan nahi duzu?
Bai?
Hain zuzen ere.
Zergatik ez, baino gogoratu darn pixel bakoitzaren kolorea
besterik ez duzu Pset4 ere egiten ari bezalako bit fitxategi formatua batera,
zergatik ez dute besterik ez duzu egin kontatuta pixel zutabea, adibidez
pixel beltz mordo bat, mordo bat gorria eta horia mordo bat,
eta, ondoren, nolabait kodetzeko du errepikatu ideia hau 100 aldiz
edo errepikatu 1.000 aldiz hau?
Non 100 edo 1.000 da zenbaki oso bat besterik ez da, beraz,
ihes zenbaki bakar bat besterik ez ordez, ehunka edo milaka
pixelez osagarriak.
Eta, hain zuzen, hori da nola dugu Alemaniako bandera konprimitu daiteke.
Eta
Orain Frantziako bandera buruz zer?
Eta nolabaiteko apur bat ariketa mental, zein bandera
konprimituta daiteke diskoko gehiago?
Alemaniako bandera edo frantsesek bandera, planteamendu hori hartzen badugu?
Alemaniako bandera, zeren ez dago erredundantzia horizontal gehiago.
Eta diseinua, fitxategi grafiko asko formatuetan ez, hain zuzen eskaneatzea gisa lerro lan
horizontalki.
Lan egin izan dute bertikalean, besterik gizateriaren
Duela urte erabaki hori zaitugu Oro har, gauza ilara pentsatzea
Ilara ordez zutabea zutabe arabera.
Beraz, hain zuzen ere, ez bazina den fitxategia begiratzeko
Alemaniako bandera bat eta frantses bat tamaina Ez, hain luze bereizmen den bezala
du, zabalera bera bera eta altuera, hau
Hemen da handiagoa izan, joan duzulako yourself hiru bider errepikatu dute.
Urdina, errepikatu zehaztu egin beharko duzu yourself, zuria, errepikatu zeure burua, gorria,
errepikatu yourself.
Ezin duzu besterik gabe, joan guztiak eskuineko bidea.
Eta alde batera utzita, egiteko garbitu konpresioa
nonahi, horiek dira bada video-- batetik lau markoak duzu
film bat gogoratzen bideoa edo, oro har,
29 edo 30 fotograma segundoko bezala.
Da flip liburu txiki bat bezalakoa da non duzu besterik ikusten irudia, irudi, irudia, irudi,
irudia besterik super azkarra hain itxura pantailan agertzen diren aktoreek mugitzen dira.
Hemen da on erle bumble bat lore-sorta bat goialdean.
Eta nahiz eta izan da mota izan zaila Lehen begiratuan ikusten,
mugitzen gauza bakarra Pelikula honek erlea da.
>> Zer da gordetzeko muda Bideo Konprimatu gabe?
Zaborraren a video gordetzeko moduko It lau irudi ia berdin gisa
desberdintzen neurrian bakarrik non erlea bezala.
Bota dezakezu kanpoan gehien Informazio hori
eta gogoratu soilik, adibidez, Lehenengo markoa eta azken markoa,
gakoa markoak dut badituzu inoiz hitza entzun,
eta besterik gorde erdialdera non erlea da.
Eta zuk ez izan arrosa guztia gordetzeko,
eta urdinak, eta baloreak berdea baita.
Beraz, hau da, bakarrik esaten duten konpresioa da nonahi.
Teknika bat erabiltzen dugu askotan da edo hartu ematen du egun hauetan.
>> Baina, nola ez, testu konprimitu duzu?
Zelan duzun testu konprimitzeko buruz joan?
Beno, pertsonaia bakoitzak urtean Ascii byte bat, edo zortzi bit.
Eta hori da mota muda, ezta?
Seguruenik bat idazten duzulako eta E eta I eta O eta U asko
W edo Q edo Z bezalako baino gehiago askotan, hizkuntzaren arabera eta horietan
zalantzarik idazten ari zaren.
Eta beraz, zergatik erabiltzen ari gara Gutun bakoitzean zortzi bit,
Gutxienez barne popular letrak, ezta?
Zergatik ez bit gutxiago erabili super popular letrak,
E bezala, gauzak asmatzen dituzu Lehenengo Fortune gurpila ere,
eta erabili bit gehiago gutxiago popular letrak?
Zergatik?
Besterik ez gara joan delako Horietako gutxiagotan erabili.
>> Beno, bihurtzen da ez dagoela dute Horretarako egindako saiakerak egon dira.
Eta gogoratzen duzu mailakoa bada eskolan edo, Morse kodea.
Morse kodea puntuekin ditu eta marrak erabil daitekeen
alanbre gisa batera transmititzen soinuak edo nolabaiteko seinale.
Baina Morse kodea super garbi bat da.
Sistema bitar bat mota da puntu edo marrak duzula.
Baina ikusten duzu, esate baterako, bi puntuekin bada.
Edo uste itzuliz gero operadorea Nork beep, beep, beep bezala doa,
beep, trigger apur bat kolpatzeko Hori seinale bat igortzen,
, hartzaileari, bi jasotzen baduzu puntuak, zer mezu jaso duzu?
Erabat arbitrarioak.
>> I?
I?
Edo zer naizenean edo I?
Agian bi besterik E ko eskubidea izan da?
Beraz, ez da arazo hau da Morse batera decodability of
kodea, zeinaren ezean Pertsona duzun mezuaren bidalketa
benetan pausarazten orain arteko ordena ditzakezu ikusi edo letrak arteko aldeak entzuteko,
Ez da nahikoa, besterik gabe, korronte bat bidaltzeko zeroen eta bai,
edo puntuak eta marrak, han anbiguotasuna delako.
E dot bakar bat da, beraz, nahi izanez gero Ikusten bi puntu edo bi puntu entzuten,
agian bi E ko da edo, agian, I. bat da
Beraz, bat-sistema bat behar dugu gutxi duten baino gehiago clever.
Beraz izeneko gizon bat Huffman urte Duela sortu zen zehazki honekin.
Beraz, ari gara joan Begirada azkar bat hartu behar da
Nola zuhaitz hau oso lotuta daudenak dira.
Demagun hau dela batzuk ergelak mezuan bidali nahi duzu,
besterik A, B osatzen dute, C-ren D's eta E-ren, baina han erredundantzia asko da hemen.
Ez da ekarri English izateko.
Ez da enkriptatuko.
Mezuaren ergelak bat besterik ez da errepikapena asko.
Beraz, bada benetan zenbatu out duzun guztia du A, B-ren eta C-ren, D's, eta E-ren, hona hemen
maiztasuna.
Letrak% 20 dira A, letrak% 45
E-ren, eta beste hiru maiztasunak dira.
Gora zenbatu ditugu han eskuz eta besterik ez zuen math.
>> Beraz, izarrekin bihurtzen da Huffman, aspaldi,
konturatu, hori badakizu zer, eraikin hasi badut
zuhaitz bat, edo baso, izango bada, honela, honako hauek egin ahal izango dut.
Bakoitzari nodo emateko noa letrak zaintzen dut buruz of
eta naiz gordetzeko noa nodo horren barruan
maiztasunak hamarren bat bezala balio, edo erabili izan duzu N batekin, gehiegi,
baina besterik ez dugu erabili mugikor bat hemen.
Eta algoritmoa you dela proposatu zuen
nodo bakarreko basoa hau hartu zuhaitzak, zuhaitz beraz super laburrak,
eta lotu batekin hasten zara talde berria, guraso berriak, izango bada.
Eta hori egin duzu aukeratuz aldi berean bi maiztasunak txikiena.
Beraz,% 10 eta% 10 hartu nuen.
Nodo berri bat sortu dut.
Eta nodo berria deitu nion% 20.
>> Zein bi nodo hurrengo uztartzeko?
Pixka bat anbiguoa da.
Beraz, ez du korner batzuen kasuak da kontuan hartu, baina gauza politak mantentzeko,
% 20 aukeratu noa - Orain, haurrek ez ikusi dut.
% 20 aukeratu noa eta % 15 eta bi ertzak berria marrazteko.
Eta orain, bi nodo ez logikoki uztartzeko?
Ez ikusi egin seme-alaba guztiak, denak bilobak, besterik sustraiak begiratzeko
orain.
Zein bi nodo elkarrekin lotzeko dut?
Bi Point eta 0,35.
Hargatik bi ertzak berria marraztu zidan.
Eta gero, ez dut ezker bat lortu.
Beraz, hemen, zuhaitz bat da.
Eta nik nahita landu dira motatako polit agertzen,
baina konturatu ertzak duten Era berean, etiketatu zero eta bat.
Beraz, ezker ertz guztiak zero dira edonola, baina koherentziaz.
Eskuineko ertzak guztiak dira.
>> Eta orain zer Hoffman proposatu da, B a ordezkatzen nahi baduzu,
ordezkatzen 66. zenbakira beharrean bezala Ascii horretan zortzi bit osoa da,
badakizu zer, denda besterik ereduarekin zero, zero, zero,
zero, hori delako bidea da Nire zuhaitz batetik, Mr. Huffman zuhaitza
erro batetik hosto izateko.
A gorde nahi baduzu E, aldiz, ez
zortzi bit E. bat ordezkatzen duten bidali Horren ordez, bidal zer bit eredua?
One.
Eta zer da buruz hau da, polita E hori ezagunena letra da,
eta erabiltzen ari zarela laburrena da kodea.
Hurrengo ezagunena Gutun hura bezalako itxura
A. zegoen eta, beraz, zenbat bit zuen proposamen hau erabili zuen?
Zero, bat.
>> Eta hori delako inplementatu Zuhaitz hau bezala, oraingoz
utzi zeintzuk me han zalantzarako biderik Morse gisa
kodea, guztiak ere Honi buruz Laguntza gutunak
ertz horien amaieran dira.
Beraz, hori besterik ez da Zuhaitz bat aplikatzea.
Hau is-- eta olatuen dut hau nire eskua nola duzu
Hau ezartzeko liteke C egitura gisa.
Besterik konbinatu behar dugu Sinbolo bat, char bat bezala,
eta maiztasuna ezker eta eskuin.
Baina ikus ditzagun bi at final adibide egingo duzun
eskuratu nahiko ondoren ezagutzen galdetegi zero arazo girotuta bost.
>> Beraz, ez da datu-egitura da hash taula bat bezala ezagutzen.
Eta hash taula bat motatako da hozteko kuboak duela.
Eta demagun lau ontzi daude han Hemen, besterik gabe, lau hutsunerik.
Hemen karta-sorta bat da, eta hemen dago Kluba, aitzurra, club, diamante, club,
diamante, club, diamante, clubs-- beraz, hau da, ausazko.
Bihotzak, hearts-- hain naiz Sarrerek guztiak bucketizing hemen.
Eta hash taula beharrak bat zure sarrera begiratzeko,
eta gero jarri jakin batean place oinarritutako zer ikusten duzun.
Algoritmo bat da.
Eta super bat erabiltzen ari nintzen bisuala algoritmo sinpleak.
Horietatik zati gogorrena izan zen zer pictures ziren gogoratzeko.
Eta gero, lau gauzak guztira han.
>> Orain pilak hazten ari da, eta horrek diseinu nahita gauza da hemen.
Baina zer gehiago egin nezakeela?
Beraz, hemen benetan izan dugu bat Eskola Azterketa liburu zahar mordo.
Demagun mordo bat ikasleak izenak hemen daude.
Hemen hash taula bat handiagoa da.
Horren ordez, lau kubo, Ditut, demagun 26.
Eta ez genuen joan maileguan 26 nahi kanpotik [gauzak? Annenberg?], Beraz,
Hemen da bost ordezkatzen dituzten A Z. bidez Eta badut
Ikasle bat, eta izen batekin hasten da ikusten, Bere galdetegi jarri ez noa.
Norbaitek C rekin hasten bada, han, A-- benetan, ez zuen nahi hori egin.
B hemen baino gehiago doa.
Beraz, lortu dut A eta B eta C. Eta orain, hemen beste bat ikaslea da.
Baina hash taula hau bada sorta batekin garatuta,
Motatako naiz izorratu puntu honetan, ezta?
Mota behar dut nonbait hau jarri.
>> Beraz, ez dut hori ebazteko modu bat da, guztiak eskuinera, A lanpetuta dago, B lanpetuta dago, C lanpetuta dago.
Jarri zion D. Beraz at noa Lehenengo, ausazko berehalako sarbidea daukat
ikasleentzat kuboak bakoitzari.
Baina orain, mota horretako transferituta Zerbait lineala sartu,
bilatu norbaitek ikasi nahi badut delako cuyo nombre A batekin hasten da, hemen begiratu dut.
Baina hau ez da A Ikasle bila nabil,
Dute, mota horretako I egiaztapena hasteko kuboak, zer egin nuen delako
zen linealki ordenatu Datuen egitura probarik.
Esaten modu ergelak besterik begiratu eskuragarri dagoen lehen irekitzea,
eta B plan bat bezala jarri, nolabait esateko, edo kasu honetan D plan, balioa
Kokapena ordez ere.
Hau da, besterik gabe, beraz, nik baduzu 26 kokaleku eta ikasleek ez lortu
Izen Q edo Z, edo antzeko zerbait ekin Hori, gutxienez, espazioa erabiltzen ari zarela.
>> Baina Jadanik ikusi dugu gehiago clever soluzioak hemen, ezta?
Zer egingo zenuke ordez Talka bat baduzu?
Bi pertsona behar bada izena eman, zer egingo zenuke
izan dira gehiago smarter edo Konponbidea intuitiboa baino zerbait
A D non izan behar den jarriz?
Zergatik ez joan besterik ez dut Kanpotik [? Annenberg?],
malloc, beste nodo bezala, jarri hemen, eta, ondoren, jarri ikaslea bat, hemen.
Beraz, funtsean daukat array baten nolabaiteko,
edo, agian, gehiago Dotorea ari garen bezala lotutako zerrenda bat ikusteko hasita.
>> Eta beraz, hash taula bat egitura bat da Hori besterik honen itxura,
baina gehiago cleverly izeneko duzu zerbait Aparteko kateatzea, zeinaren bidez hash taula bat
Nahiko besterik array bat da, bakoitzak zeinen elementu ez da zenbaki bat,
lotutako zerrenda bat da berez.
Beraz sarbidea super azkarra lortu duzu non zure balio hash erabakitzeko.
Askoz txartelak Adibidez duen bezala, Erabakiak azkar egin nuen.
Bihotzak doa hemen, diamante doa hemen.
Bera hemen, hemen doa, D doa hemen, B doa hemen.
Beraz, azkar super look-ak, eta bada kasu batean exekutatu gertatuko duzu
non lortu duzun talkak, bi izen bereko beste pertsona, bai gero
hasi besterik ez duzu horiek elkarrekin lotuz.
Eta, agian, horiek ordenatuta mantentzeko duzu Ordena, agian ez duzu.
Baina, gutxienez, orain dinamismoa ditugu.
Beraz, alde batetik, azkar super daukagu denbora etengabe, eta denbora lineal mota
lotutako zerrendak hauek bada tartean hasteko apur bat luze lortzeko.
>> Beraz, silly bat mota honetako, geeky txantxa Duela urte.
CS50 Hack-a-thon berean, ikasleak egiaztatu denean,
TF batzuk edo CA urtero pentsatzen dibertigarria da jartzea
Hau bezalako kartel bat, non, besterik gabe, esan nahi zure izena A batekin hasten bada,
Horrela joan.
Zure izen hasten bada B batekin, joan OK Halako,
Bitxia da, agian, geroago seihilekoan.
Baina ez dago beste Hau eginez, too modu.
Goazen horretan itzuli.
>> Beraz, ez da egitura hau.
Eta hau da gure azken Gaurko egitura,
bertan trie bat izeneko zerbait da.
T-R-I-E, eta horregatik batzuk laburra da berreskuratzeko, baina trie deitzen.
Beraz, trie bat da, beste interesgarri Ideia horiek asko amalgama.
Zuhaitz bat, eta hori ikusi dugu aurretik da.
Ez da bilaketa zuhaitz bitar bat.
Zuhaitz bat da edozein seme-alaben kopurua batera, baina trie batean ume bakoitza
array bat da.
Tamaina sorta, esan, 26 edo, agian, 27 hyphenated izenak gaitu nahi izanez gero
edo pertsonen izenak ere Apostrofeak.
>> Eta, beraz, hau da datu-egitura bat da.
Eta begiratzen goitik bada behera, atsegin baduzu
Goiko node han, M begiratu, da Gauza kontatuta han seinalatuz,
hau da, gero A, X, W, E, L, L. Hau da, besterik datuak egitura arbitrarioki
pertsonen izenak gordetzeko da.
Eta Maxwell da honako besterik ek gorde array bidea array array bat.
Baina zer da harrigarria buruz trie bat da , lotuta zerrenda bat, berriz, eta, are gehiago,
Array, onena inoiz ahaztuak duguna denbora lineal edo logaritmikoa denbora bila
Norbaitek eman.
Datu trie bat egitura hau, bada ere nire datu egitura da izen bat du
eta Maxwell bila ari naiz, naiz hura nahiko azkar aurkitu du.
M-A-X-W-E-L-L I begiratu besterik ez. Bada Datu egitura, aldiz,
N milioi bat bada, ez da, bada bat milioi datu-egitura honetan izenak,
Maxwell da oraindik ere izango da joan ikusgai besterik M-A-X-W-E-L-L ondoren
urrats.
Eta David-- D-A-V-I-D pausoak.
Beste era batera esanda, eraikiz Datuen egitura bat hori da,
lortu array horiek guztiak, denak ere ausazko sarbidea onartzen beraiek,
Jendearen gora begiratzen hasi ahal izango dut izendatzeko denbora hori da kopuru bat erabiliz
Ez kopurua proportzionala Datuen egitura gauza,
Lehendik dauden milioi bat bezalako izen.
Zenbatekoa garaiko me hartzen aurkitzeko M-A-X-W-E-L-L datu-egitura honetan da
proportzionala ez du Datuen egitura tamaina,
baina izena luzera.
Eta errealistan du izenak eman begira ari gara
ez dira inoiz ero izango dituzte joan.
Agian norbaitek 10 karaktere ditu izendatzeko, 20 pertsonaia izen.
Zalantzarik gabe, finitua da, ezta?
Ez dago Lurrean giza da nor ahalik eta izen luzeena du,
baina izen hori konstante bat balio luzera du, ezta?
Ez du inolako zentzurik ere aldatu egiten dira.
Beraz, modu honetan, dugu Datu-egitura bat lortzen
denbora etengabe look-up da.
Hainbat urrats hartu du sarrera iraupena arabera,
baina ez izen kopurua Datuen egitura.
Beraz, izen-kopurua bikoiztu badugu Mila milioi bi milioi batetik, datorren urtean,
Aurkikuntza Maxwell joan hartu zehatza zazpi urrats kopuru bera
haren bila.
Eta horrela lortzen omen dugu Gure denbora exekutatzen Grial Santua.
>> Beraz, deialdiak azkar pare bat.
Quiz zero da datozen.
Duten ikastaroaren web orrian buruzko gehiago hurrengo egunotan zehar.
Asteleheneko lecture-- opor da hemen Harvard astelehenean.
Ez da New Haven, beraz, klase hartzen ari gara
New Haven hitzaldia astelehenean.
Dena filmatu egingo da eta, ohi bezala, zuzenean,
baina dezagun amaituko du gaur 30 segundo clip
"Deep Thoughts" izeneko Daven Farnham, zeinaren
iaz inspiratu zen larunbaterako Night Live-ren "Deep Thoughts"
by Jack Handy, bertan orain egin behar zentzurik.
>> ZINEMA: Eta orain, "Deep Gogoeta "Daven Farnham arabera.
Hash taula.
>> HIZLARIA 1: Ondo da, hori da oraingoz.
Datorren astetik Ikusiko dugu.
>> DOUG: eguneroko ekintza ikusteko.
Beraz, dezagun begirada bat oraintxe.
Hortaz, hona hemen, ordenatu gabe array bat dugu.
>> IAN: Doug, ahal Animatu eta berrabiarazi joan honen bigarren bat besterik ez, mesedez.
Ondo da, kamerak, gogor ari dira orain Ekintza betiere prest bazaude, Doug, OK?
DOUG: Ondo da, beraz, zer egiten dugun hemen Unsorted array bat da.
Eta elementu guztiak koloretako Nik gorria dela, hain zuzen ere adierazteko,
Sailkatu.
Beraz, gogora ekarri zuen lehen gauza egiten dugun da geratzen array erdia ordenatzeko dugu.
Ondoren eskubidea ordenatzeko dugu array erdia.
Eta ya-da, ya-da, ya-da, horiek batu ditugu elkarrekin.
Eta erabat ordenatuko array bat dugu.
Beraz, nola batu, ordenatu egiten du lan.
>> IAN: Tira, Tira, Tira, ebaki, moztu, ebaki, moztu.
Doug, ezin duzu besterik ya-da, ya-da, ya-da, zure bidea batu ordenatu bidez.
>> DOUG: besterik ez nuen.
Fina da.
Ona joan gara.
Let mantentzeko en besterik rolling.
Beraz, hala ere,
>> IAN: azaldu behar duzu Hori baino gehiago, erabat da.
Hori besterik ez da nahikoa.
DOUG: Ian, ez dugu atzera joan bat behar.
Fina da.
Beraz, hala ere, aurrera jarraituko dugu merge-- batera bada Ian, ari filmatze erdian dugu.
>> IAN: badakit.
Eta ezin dugu besterik ya-da, ya-da, ya-da, prozesu osoan zehar.
Azaltzeko nola egin behar duzu bi aldeak batu elkarrekin emateko.
>> DOUG: Baina dagoeneko dugu azaldu bi sides-- nola
>> IAN: Besterik ez duzu agerian batu array bat.
DOUG: prozesua ezagutzen dute.
Fin ari dira.
Haren gainetik joan gara hamar aldiz.
>> IAN: Saltatutako duzu besterik eskubidea baino gehiago.
Atzera goaz bat, zuk ezin duzu ya-da, bere gainean ya-da.
Ondo da, itzuli bat.
>> DOUG: atzera egin behar dut diapositiba guztietan barrena?
My God.
Da seigarren aldiz, Ian bezalakoa da.
Fina da.
>> IAN: Ondo da.
Prest al zaude?
Great.
Ekintza.