DAVID MALAN: Rendben.
Tehát ez CS50, és ez Most a hét elején három.
>> Tehát eddig, most már Készítettem programokat C
úgy néz ki, egy kicsit valami ilyesmi itt.
Szóval van egy pár éles tartalmazza a tetején.
Van int, fő, érvénytelen, és akkor valamit csinálni a közepén,
néhány kis kódrészletet az adott funkció.
De kulcsfontosságú volt az a tény, hogy mi már azt semmisnek itt.
Így érvénytelen, mind az ebben az időben, meghatározza, hogy ez a program, futás közben,
csak akkor lehet végrehajtani keresztül a nevét.
Akkor nem írja más szavakkal vagy számok után a program nevét, amikor
futtatja.
Így például, ha a program voltak összeállítani egy nevű fájlt Helló,
meg tudná csinálni ./hello, de ez van.
>> Az egyetlen módja, hogy meg Segíti a program
az hívja a funkciót.
Például, hogy milyen funkciót már mi is használnak eddig
hogy közreműködött a felhasználó?
>> Közönség: A string.
DAVID MALAN: Ahhoz, hogy szöveget, vagy kap int, vagy láttad mások,
akkor is, ha nem használják őket még, kap, mint a hosszú, hosszú, és a hasonlók.
De tegyük fel, hogy mi tényleg akar kezdeni
írás programok, amelyek kicsit sokoldalú, és, őszintén szólva, egy kicsit
mint a parancsokat, hogy már már egyre remélhetőleg
egy kicsit hozzászokott.
Mint a cd tér Dropbox.
Ez természetesen, változások a könyvtár, feltételezve, hogy
te vagy John Harvard otthonában könyvtár, a Dropbox mappában.
Közben egy hasonló parancs létrehoz egy új könyvtárat pset2,
ahogy lehet, hogy már vagy hamarosan a probléma meg két.
Készíts Helló, persze, a parancs hogy épít a program neve helló
fájlból nevű helló pont c.
És minden ilyen esetben, most is megvolt
ad érvet az úgynevezett parancsot, a villogó prompt,
, hogy hogy tudja, mit kell építeni, és így hogy mkdir tudja, mit mappát létrehozni,
és így, hogy a CD tudja ahol akarsz menni.
De eddig azt mondogatja hogy fő, az alapértelmezett funkció,
van egy üres kifejezés belsejében ezek a zárójelek,
ami azt jelenti, hogy nem tud semmilyen érvet.
>> Tehát a mai naptól, mit fogunk csinálni
van, mi fog kezdeni támogatja a dolgok, mint ez is.
Tény, hogy ebben az esetben, amit általában nem manuálisan,
Tedd már ezt Számunkra nincs
egy, hanem egy, kettő, három további vonósok után a program neve
csengés.
Szóval hogyan lehet ezt megvalósítani?
>> Nos, a mai naptól, azokban az esetekben, ahol szeretnénk
hogy bemenet a úgynevezett parancssor,
megyünk elkezd hozzá itt mi van yellow--
helyett űrt int argc vessző karakterlánc argv nyitva tartó záró zárójel.
Most ez érdekes egy pár oka.
Az egyik, hogy fog írjunk programok, amelyek egy kicsit dinamikusabb.
De még feltűnően, ez meg fog nyitni
most egy beszélgetést, hogy mi tömbök tud igazán
használni, amit a húr valóban a motorháztető alatt,
amíg a jövő héten, amikor elkezdjük búvárkodás a még mélyebb, mint a hogy a gép
hogy minden ez a cucc munka.
De most, hadd dolgozzon, talán a kép.
>> Ha írsz egy programot A fő nyilvánított
Ily módon, úgy, hogy fő két argumentuma egy int
és-- milyen adattípus a második érv?
>> Közönség: Array.
DAVID MALAN: Array.
Tehát úgy néz ki első pillantásra, mintha egy húr, de észre a szögletes zárójelben.
Emlékezzünk utoljára be fogalma egy tömb.
És tömbök szögletes zárójelek pár környezetben.
Lehet használni a tér zárójelben, hogy menjen be egy tömb
és kap egy adott elem, mint konzol 0 vagy konzol 1-es vagy 2-konzol.
De láttuk, ha röviden, a múlt héten, hogy Ön is
használja ezeket szögletes zárójelben állapítsa meg a tömb méretét,
ha tudod előre, hogy hány ints vagy hány vonósok, vagy amit
valójában akar.
Így kiderül, ott a egy harmadik összefüggésben itt
hogy nincs több belső A szögletes zárójelben.
Ha megad, mint én itt, a nevét valami hasonló argv,
ami csak egy divatos módon mondván érv vektor, ami
egy másik képzelet módja mondván, egy sor érvet,
nyitó zárójel záró zárójel csak azt jelenti, hogy nem feltétlenül
előre tudni, hogy milyen nagy a tömb lesz,
de tudod, hogy lesz egy tömb.
Tehát, ha nem tudja a szám ne tedd oda,
nyitott konzol záró zárójel azt jelenti, hogy argv nem karakterlánc,
hanem egy sor húrok.
Tehát szintaktikailag, ha gondoljon vissza a múlt héten,
ez nagyon hasonlít a mondás valami hasonló int korosztály nyitott zárójel,
és akkor valami azt követően.
Mit is jelent ez néz ki?
Nézzük valóban készít egy képet.
Tehát, ha fut a program a Fő miután két érvet meghatározott belső
e zárójel, akkor lényegében legalább két darabokat
memória adta neked a motorháztető alatt.
Egy, ahogy én felhívja mivel ez téglalap, lesz, hogy hívják argc.
És ahogy egy gyors bedugni, mi az adat típusa argc?
Szóval ez egy int.
Így a szám megy menni argc-- felváltva
arra, hogy áll a vita számít.
Közben én készült argv tömbként.
És nem igazán tudom hogy mennyi ideig lesz,
így a mai célokra dot dot dot.
Ez lehet, hogy bizonyos hosszúságú.
De már képen legalább négy téglalapok.
Így argv egy darab memória tárolja string string karakterlánc dot dot dot,
és argc csak egy darab A memória egy egész szám.
>> Tehát most, most egy kicsit pontosabban.
Ha, ha már vonósok ebben tömb, az úgynevezett
argv, azt akarom, hogy őket külön-külön, mint a múlt héten,
fogjuk használni jelölés mint argv konzol 0
hogy az első dolog, amit egy tömbben.
Argv konzol 1, hogy a második dolog, és így tovább.
A kulcs itt, hogy mi még mindig 0 indexed-- mi még mindig számít a 0-ra.
Így most csak a ténylegesen tenni valamit ebben.
Ha én lefordítani a program neve Hello nevű fájlt Helló pont c,
és aztán futtatni a programot DOT perjel Helló,
Mit jelent a számítógép, a laptop, néz ki, mint a motorháztető alatt
a pillanat futok pont slash szia és üsd le az Enter?
Nos, ez talán mit lehetne leírni
a tartalom a számítógép memória, vagy RAM-- Random Access Memory.
Más szóval, a számítógép, valahogy neked varázslatos,
helyezi az 1. számú argc, AKA argcount, és ez teszi a szó szoros értelmében a húr
./hello ARGV konzol 0-ra.
Fogalmam sincs, őszintén szólva, mi az argv tartó 1 vagy 2 vagy 3,
mert ha a felhasználó nem gépelt semmit mellett ./hello,
fogjuk feltételezni, hogy ezek a legvalószínűbben szemetet értékeket,
hogy úgy mondjam.
Ezek a darabok memória létezik, de ez nem rajtunk múlik
nézni őket, mert az argcount csak egy.
>> Most, közben, ha levelet egy program futtatása,
cd, ami pontosabban a parancs, a villogó prompt-- cd tér
Dropbox--, amikor elindul, hogy hatékonyan, amikor a cd program fut, argc,
belsejében a számítógép memóriája, az a a legtöbb legrövidebb második a 2-es szám.
És akkor argv tartó Õ CD, ARGV tartó 1-nek Dropbox,
és persze a parancs befejeződött, így az összes ez a memória
lényegében elmegy és használják valami mást.
És ezért mondom Csak egy pillanatra.
>> Közben, ha nem teszünk mkdir pset2, A kép úgy néz ki, közel azonos,
de különböző húrok benne argv.
Ha megteszem csengés kötőjel helló Helló pont c, ugyanezt a gondolatot.
Több dolog van töltve argv és argc, persze, 4.
Más szóval, még akkor is, ha ez a tömb
Lehet, hogy pont pont pont, az egyes változó hosszúságú, hogy úgy mondjam,
Ön mindig tudja, hol a vége van, mert argc fog mondani
mi pont abba kell hagynod nézi elemek argv.
Csak akkor nézd meg négy összességében ebben az esetben.
>> Úgyhogy most egy pillantást, talán egy egyszerű program.
Az egyik, hogy csak azt mondja, helló hogy valaki, mint Zamyla.
Szóval azt állítják, fogok írni egy programot Egy pillanat, amelyen keresztül tudtam csinálni
./hello tér Zamyla, és majd szeretnék a programom, hogy nyomtassa ki valamit
szuper-egyszerű, mint a "Hello, Zamyla."
Most, a múltban már használt getstring.
Tehát a múltban, akkor is, ha Ön új a programozás,
Valószínűleg te is felkap egy program, amely getstring
majd használja printf köszönni Zamyla.
De ne használja getString ezúttal.
Hadd inkább bemegy a Appliant és nem tartalmazzák a standard I O pont h.
Hadd is CS50 pont h.
Most int main, és most én vagyok nem fog csinálni érvénytelen ma.
Ehelyett fogom csinálni int argc karakterlánc argv nyitva tartó záró zárójel,
hogy nem ad számot.
És most itt van a úgynevezett csinálni.
Mit fogok csinálni most vagyok fog tenni egy kis ugrás a hit,
Fogom feltételezni, hogy a felhasználó fogja használni ezt a programot helyesen,
és én csak fog do printf Helló,% sn.
Tehát semmi új nincs.
De azt akarom, hogy most is, amit szó a felhasználó beír után a program nevét.
Tehát, ha én ./hello tér Zamyla, én szeretnénk valahogy programból való
idézzük idézet vége "Zamyla." így mehet az én érvelés vektor,
a tömb vonósok, és ha a parancs, Ismét volt ./hello hely Zamyla,
milyen számot akarok hogy hozzanak argv itt?
Közönség: 1..
DAVID MALAN: 1, mert tartó 0. kiderül
lesz az a program nevét, ahogy láttuk.
Tehát konzol 1 az első szó hogy én, a felhasználó beírt.
Én megyek előre, és mentse meg.
Én megyek be a mappába ahol elhelyezte ezt a fájlt.
Azt fogom tenni, hogy helló 3.
Comp IO rendben.
./hello Zamyla Enter billentyűt.
Mit csináltam rosszul?
Én elfogták a meglepetés magam csak egy pillanatig.
Mit csináltam rosszul?
>> Közönség: név.
>> DAVID MALAN: A fájl valójában az úgynevezett hello3.c.
És én, hogy csak a következetesség, mert már
volt hello.c által a múlt az online kódot.
Szóval erősít ez ./hello konzol kötőjel 3 Zamyla.
Az Enter billentyűt.
És most már helló, Zamyla.
Közben tudom változtatni ezt a legyen Rob, vagy tényleg bármilyen más szó.
>> De nézzük meg a sarokban eset.
Mi lehet vársz fog történni, ha Nem írja senki nevét egyáltalán?
>> Közönség: Error.
>> DAVID MALAN: Hiba valamiféle, talán.
Lássuk.
Az Enter billentyűt.
Null.
Tehát printf ténylegesen egy kis védő minket
itt, és a szó szoros értelmében a nyomtatás nyitott zárójel null, de még rosszabb dolgok történnek.
És csak azért, hogy bizonyítani amit feltétlenül
nem kéne, menjünk a itt és indítsa szaglászik.
Nem igaz?
Ha tudom, hogy a képet memória lényegében ez,
argv tartó 1-nek Zamyla, ARGV tartó 0-nak ./hello vagy ./hello-3.
Mi van a konzol 2-ben?
Így tudok válaszolni, hogy kérdés magamat, ugye?
Én is csak megváltoztatni a 1 2.
Most már újrafordíthatod Helló 3, ./hello3 Nézzük nagyítás és nyomja meg az Entert.
Hoppá.
Nincs idézőjel.
Érdekes.
Szóval ez a fajta hűvös mi van még itt.
>> Szóval, mi van még benne az én laptop?
Mentsük el a konzol 3.
Tedd hello3, ./hello-3.
Kíváncsi.
És most térjünk igazán bold-- 50.
Szóval ez tényleg búvárkodás mély be a számítógép memóriájában.
50. indexeket.
Tehát, hogy helló 3 ./hello-3.
Kíváncsi.
Rendben, most én vagyok fog kapni meggondolatlan.
Menjünk 5000.
Rendben.
Ezért hadd újrafordítani.
Tedd hello3, ./hello-3.
OK.
Most néhányan közületek, előfordulhat, egy villanykörte megy le.
Hányan vannak Látta ezt az üzenetet korábban?
OK.
Igen, miért?
>> Odds are-- és ott különböző dolog, hogy okozhatja ezt,
és nyilvánvalóan te jó company-- van világosan
okozott az úgynevezett a szegmentációs hiba.
És hosszú történet rövid ma, megérintette a szegmens memória
hogy nem kellett volna.
Amennyiben a szegmens csak azt jelenti, egy darab memória, amit nem kellett volna.
Most a számítógép biztosítja, hogy ha én fuss ./helloZamyla hogy én tud fogni argv
legyen konzol 0. és ARGV konzol 1.
De argc érték 2, ez azt jelenti, én vagyok csak allowed-- ez a fajta, a becsület
system-- érintse tartó 0. és konzol 1.
Ha megy minden tovább, ott van feltétlenül lesz a memória is.
My RAM létezik fizikailag a számítógép.
De ki tudja, mi van ott?
Sőt, én futó több program egy időben.
Talán van seen-- ha nem lennék ezt a Appliant
de az én Mac vagy PC-- Esetleg van látta a tartalmát egy e-mailt.
Lehet, hogy láttam egy pillanatra üzenet, amit nemrég küldött.
Bármi, ami lehet elhúzódó körül a memóriában
volna elérhető útján ez önkényes szögletes zárójel jelölés.
Vagy, ami még rosszabb, lehet, hogy találtam az egyik jelszó
hogy én nemrég beírtam, hogy a a program már a memóriában tárolt így
hitelesítésére engem, és akkor csak ilyen hagyta
A RAM amíg kilép a program.
>> És valóban, ez az egyik a veszélyt, és egy a hatáskörök
Az egy nyelv, mint a C- Van szabad hozzáférést
A teljes tartalom A program memória,
és mi rossz fiúk még nem azokban cases--
különösen akkor, ha kap a webes programozás
vége felé a félév, akkor újra ezt topic-- van piszkálni körül,
potenciálisan valaki számítógép memória és talál olyan furcsa dolgok
mint láttuk ott.
Vagy ami még rosszabb még, jelszavak, hogy vagy ő is majd, hogy nem rossz dolog.
>> Tehát nyilvánvalóan nem kellett volna ezt, mert furcsa dolgok kezdenek történni.
Valóban, ez egy program összeomlik.
Ez lenne az egyenértékű A Mac OS és a Windows
a program ablaka, csak eltűnik.
Váratlan hiba történt.
A parancssori környezet látunk valami ilyesmit.
De ezért, hogy én vagyok csak meg kell érinteni memória, ami nem az enyém.
>> Szóval védekezni ez a kicsit másképp
nézi a program itt.
Szóval, megint a csontváz hogy láttuk earlier--
és én már kiemelt ezúttal int.
És ezúttal Main valóban vissza értéket.
Annak ellenére, hogy a legtöbb előadás példa, amit még egyszer sem használt
vissza semmit a fő.
Mi csak írni printf közel kapcsos zárójel és ennyi.
De szabad, amit a fordító csinál az Ön számára,
hatékonyan, visszatér 0 az Ön számára.
Kiderült out-- és ez egy kicsit counterintuitive--, hogy a 0 jó.
Ez nem azt jelenti, hamis önmagában.
0 a jó, és a nem-0 érték, a világ úgy döntött,
jelentheti a hibát.
Tehát, ha valaha is elrontotta valamit a számítógépen,
vagy a program most halt meg, és már ütött néhány téves ablak
a képernyőn, mondván: hiba negatív 49 vagy hiba 23--
néhány látszólag önkényes value-- ez mert a programozó kódolt
érték, mint a negatív 49 vagy pozitív 23. képviseli tetszőleges számú, merem állítani,
4 milliárd lehetséges dolgok hogy ami rossz a program.
>> Szóval, hogyan lehet, hogy veszek Használja ki ezt magamnak?
Nos, hadd nyit egy programot hogy írtam előre,
és piszkálni körül az interneten az úgynevezett Helló 4.
És ez szinte teljesen megegyezik, kivéve, hogy Ennek van egy kis hiba-ellenőrzés.
Ebben az esetben, én már ismét kijelentette, a fő, hogy két érv,
de ez alkalommal, a 17. sorban, értesítés Csinálok egy kis józanság csekket.
Én ügyelve arra, hogy argc értéke = 2.
Mert ha igen, hogy azt jelenti, hogy nyugodtan
érintse meg nem csak konzol 0, de konzol 1.
És megy előre, és nyomtassa ki, Ebben az esetben, vagy Rob Zamyla
vagy bármi szót gépelt ki.
És most csak azért, hogy egy kicsit helyes,
Megyek kifejezetten vissza 0 jelenti minden rendben van.
Semmi rossz nem történt.
>> De a hagyomány, megyek vissza 1, vagy őszintén bármely nem 0 érték,
ha valami baj történik.
Most a felhasználó nem fog igazán észre, mi folyik itt.
Valóban, ha bemegy a könyvtárba, mi nagyítás, és nem teszik Helló 4,
./hello-4 Zamyla úgy viselkedik, mint gondolom.
De ha inkább nem írja bármit, semmi sem történik,
de nem lezuhan.
És ha én inkább valami mint Rob egy proktor
A Thayer-- megosztása önkényes információ.
De értesítés, ARGV 1, 2, 3, 4, és 5 most már létezik a memóriában.
Ez is, az nem az, amit a program szerint,
mert már ellenőrizte, hogy argc értéke = 2, vagy sem.
Szóval most már védő ellen.
>> Most, mint egy félre, akkor a programmer-- vagy inkább mi az users--
soha többé nem látom, hogy 0 vagy 1, de egy nevű eszköz debugger, vagy egyéb eszközök,
mint látni fogjuk előtt hosszú, akkor a programozó
lehet látni, hogy mi lesz baj belül a program.
>> Tehát, bármilyen kérdése van argc?
Igen.
>> Közönség: Láttam, ahol nem volt a karakter, [nem hallható]
csak azt mondta, húr csillag d, mint karakter csillag vessző.
Vannak azonos itt?
>> DAVID MALAN: vannak.
A kérdés tehát az, hogy van néha látott programok
mint ez, hogy nem mondjuk karakterlánc argv konzol
hanem mondjuk valami mint char csillag argv konzol.
És van még más változatok, hogy lehet látni.
Ők valóban egyenértékűek.
Most már ezek a fajta képzés kerekek
a formájában a húr a CS50 könyvtár, de alig több mint egy hét
vagy úgy megyünk, hogy távolítsa el az obstrukció teljesen és ténylegesen
nézzük meg, mi a karakter és a csillag vannak, és hogy ezek hogyan érintik a memória
képviselet általában.
Tehát mi jön vissza, hogy a.
>> További kérdések a mi ARGV vagy argc?
Igen.
Közönség: Miért is vissza hiba [nem hallható]?
DAVID MALAN: Miért tette hibaüzenetet only-- oh!
Az előző esetben, amikor voltak futzing körül memóriával,
miért csak egy hibaüzenet amikor én tényleg írt egy nagy szám?
A rövid válasz az, hogy csak szerencsém volt.
Általánosságban elmondható, hogy egy számítógép memóriát darabokban,
és ez adott nekem egy elég nagy darab, hogy Kaptam el, anélkül, hogy észrevették,
A megható konzol 2 konzol 3, konzol 50, de amint toltam
szerencsém, mentem túl a határait a darab memória
Az operációs rendszer adta nekem.
És ez az, amikor az erősítve le, és azt mondta, nem.
Szegmentációs hiba.
Igen.
>> Közönség: Hogyan működik a számítógép tudják az értékét argc?
>> DAVID MALAN: Hogyan működik a számítógép értékének megismeréséhez argc?
Amikor futtatja a programot, hogy a program, a természet a villogó prompt,
adják a tömb szavak, amelyeket beírt
A gyors, hogy volt gépelt a billentyűket.
És ez így van az operációs rendszer, amely lényegében
feltölti legfontosabb érveit az Ön számára.
Szóval ez az egyik szolgáltatás hogy kapsz, valami titokban
a motorháztető alatt a az operációs rendszer.
További kérdések?
Igen.
>> Közönség: Mit jelent a core dump jelent?
DAVID MALAN: Mit core dump jelent?
Szóval ez egy jó kérdés.
És hadd menjek vissza a ebben a könyvtárban van.
És észre fogod venni, hogy Van egy új fájlt is.
Ez csakugyan hívják mag, és ez valójában általában egy tisztességes méretű fájlt.
Amely lényegében egy pillanatkép tartalmát a program memória
vagy RAM amikor az lezuhant.
És ez hasznos lesz, potenciálisan, diagnosztikai,
egyszer beszélünk egy későbbi előadás és részben a hibakeresés,
mert akkor ténylegesen a egyenértékű egy digitális boncolás
az a fájl, hogy segítsen kitalálni mit csináltál rosszul a programban.
Igen.
>> Közönség: Van argc a parancs maga, vagy akkor nevezd meg valamit?
>> DAVID MALAN: Jó kérdés.
Van argc parancs önmagában vagy akkor nevezd meg valamit?
Ez biztosan nem egy parancsot.
Ez egyszerűen egy változó név vagy az érvelés nevét,
és így teljesen mi Nevezhetjük ezt ize,
nevezhetjük ezt sáv, amelyek általában hogy a go-to szavak, hogy a számítógép
tudós megy.
De a hagyomány, az általunk használt argc és argv.
De ez csak egy ember egyezmény, semmi több.
Rendben.
Szóval kiderült, én voltam mondja egy kis fehér lie--
és őszintén szólva, a jövőben, látni fogod, óta azt mondjuk más hazugságokat.
De most, megyünk hogy húzza vissza egy ilyen.
Ebben az esetben is, ha azt korábban futott egy program, mint ./hello vagy ./hello-3
Zamyla, mi volt a tartalma a számítógép memóriájában néz nagyjából hasonló
ezt.
Hanem arra, amit a string.
Mit is mondunk egy héttel ezelőtt, amit egy karakterlánc valójában a motorháztető alatt?
Közönség: Array of karakter.
DAVID MALAN: Ez egy tömb karakter, igaz?
Tehát lehet, hogy egy sor vonósok, de viszont a húr
egy tömb karaktereket.
Tehát, ha azt szeretné, hogy legyen anális amikor rajzolok ezt a képet,
Én tényleg kell rajz ez egy kicsit több, mint ez,
ahol minden ilyen indexek az én argv tömb,
van egy egész húr önmagában hogy maga is egy tömb.
És most a fehér hazugság mondunk ma
az, hogy a kép nem meg egészen, mint ez.
Tény, hogy a kis négyzet rendszerint nem a nagy téglalap
ott.
De majd jön vissza, hogy nemsokára.
De ez ./hello backslash 0, hogy mivel a különleges karakter
kijelölte a végén egy húr, és van egy másik sorra
Zamyla nevét.
Szóval, mit jelent ez?
>> Nos, hadd menjen előre, és nyit két másik példát
Az online hozzáférhető.
Az egyik az úgynevezett argv1.c és a másik jelentése argv2.
Ez egy szuper egyszerű program, amely eltér a korábbi programok
az, hogy most én vagyok a argc és argv itt.
És most integrálja a hurok A 18. sor, az i = 0-ig argC.
És mit fogok csinálni ezzel kódsort itt?
Angolul.
Ez a nyilvánvalóan használatát mutatja argc.
De angol, mit csinál ha futtatni ezt a programot?
Igen?
>> Közönség: Meg fog kinyomtatni a képernyőn, ahányszor csak akar.
DAVID MALAN: Pontosan.
Tehát bármit szavak, írja a parancssorba, akkor
fog kérődzik őket rám soronként.
Szóval, menjünk előre, és csinálni.
Hadd menjek be a könyvtárba és nem teszik argv1 ./argv1.
És most hadd tartsa egyszerű.
Csináljuk sem először.
Tette nyomtassa ki az egy dolog, és hogy ez valóban az a program nevét,
mert ez a konzol 0-ra.
Ha most azt mondják, ize, meg fog tenni a két, és ha azt mondom foo bar,
azt fogja mondani a három dolgot.
Most, hogy kissé érdekes, talán.
De emlékeztetnek arra, hogy argv egy tömb vonósok,
de a karakterlánc egy sor karakter, így tudjuk, hogy a dolgokat egy fokkal
és alkalmazza az alapvető logika, és kóddal
úgy néz ki, egy kicsit rejtélyes, kétségkívül.
De azáltal, hogy a beágyazott hurok, valami hasonló
hogy mit lehet előhívni Mario, Például, ha nem így.
>> Így most észre a 19, én vagyok ismét iterálás érveimet,
a 0-ig argC.
És most sorban 21-- vagyok hitelfelvétel a trükk az utolsó week--
Én ellenőrzése, ami a hossza argv konzol i.
Én tárolja, hogy a válasz n.
És akkor én integrálása a j on n-ig, ahol j 0 inicializálunk.
Így egyezmény számolás.
Ha már használta azt, ha van egy beágyazott loop, nem tudod használni megint,
egyébként akkor cucc, potenciálisan az érték nincs a belső hurok.
Tehát én vagyok a j-egyezmény.
Lehet használni k.
Ha több, mint k, akkor valószínűleg túl sok fészkelő, jellemzően.
De most, észre a printf vonal némileg eltérő.
Én nem nyomtat% s vagyok nyomtatás% c, amit, természetesen,
helyőrzője a karakter.
>> És most észre szintaxis.
Új.
Még nem láttam ilyet.
De logikailag, ez csak azt jelenti, kap az i-edik karakterlánc argv
és kap a j-edik mi?
Közönség: Karakter.
DAVID MALAN: Karakter abban húr.
Tehát a szögletes zárójelek majd a szögletes zárójelek,
ez a búvárkodás először a argv a húrok,
majd a második szögletes zárójelben j
a búvárkodás a karakterek a az adott string argv.
És akkor, csak a jó intézkedés, Én nyomtat egy új sort itt.
Tehát most hadd menjen előre, és nyissa egy kicsit nagyobb ablak
így látjuk ezt a műveletet.
Hadd menjek ebbe a mappába.
És most, hogy argv-2-- whoops-- hogy argv-2 ./argv 2.
Az Enter billentyűt.
És ez egy kicsit nehéz olvasni függőlegesen,
de ez valóban a nevét programot, majd egy üres sor.
Most hadd menjen előre, és ezt a semmit.
Hasonlóan nehezen olvasható, de valóban nyomtatás egy karakter soronként.
És ha bár, ez most nyomtatás azok soronként.
Így az elvihető itt nem annyira hogy wow, nézd meg ezt a szép új trükk
ahol lehet kapni a tartalom A tömb speciális karakterek,
hanem az, hogy elvisszük az alapvető ötletek, mint indexelés egy tömb,
majd indexeli egy tömb, ami ebben a tömbben,
és csak, hogy ugyanazon ötletek kissé bonyolultabb példákat.
De az alapok valóban nem változott, még a múlt hét óta.
>> Most ez a fajta időszerű, abban, emlékszem, a hét nulla
játszottunk egy telefonkönyv, mint ez.
És bár ez nyilvánvalóan fizikai darab papír,
akkor milyen gondolni Telefonkönyv tömbként.
Természetesen, ha úgy döntesz, hogy újraimplementálni ez darab ilyen darab papír
egy számítógép, valószínűleg akkor használni valamit
mint egy tömb tárolja az összes ilyen neveket és telefonszámokat egészen
keresztül Z. Szóval ez jó, mert a ez lehetővé teszi számunkra a lehetőséget,
talán, hogy fontolja meg, hogyan lehet ténylegesen alkalmazni valami ilyesmi.
Mint egy sor ajtók itt.
Tehát, ha én could-- kell egy önként gyere fel.
Lássuk.
Egy ismeretlen arc talán, ismeretlen arc talán.
Mit szólnál a narancssárga?
Itt.
Narancssárga inget, gyere fel.
>> Menjünk előre, és most mozog ezek az ajtók szélére,
mozgatni ezeket az útból egy pillanatra.
Mi a neve?
>> AJAY:
>> DAVID MALAN: Ajay.
David.
Örülök, hogy találkoztunk.
Rendben.
Tehát mögött hat ajtók digitálisan a screen--
vagy inkább hét ajtó a screen-- egy csomó számot.
És én nem mondtam semmit A advance-- egyeztetett?
AJAY: Semmi előre.
DAVID MALAN: Csak azt akarom, hogy ne most az, hogy megtaláljuk a számomra, és nekünk,
tényleg, a szám 50, egy lépéssel egy időben.
>> AJAY: Number 50?
>> DAVID MALAN: A 50-es.
És akkor kiderülhet, mi a mögött mindegyik ajtó
egyszerűen érintse meg a képernyőt az ujjával.
A fenébe. [Nevetés]
>> [Taps]
>> Nagyon jól sikerült.
OK.
Van egy szép ajándék díj az Ön számára.
Választanod a filmek is tárgyalt a múlt héten.
>> AJAY: Ó, ember.
Ó, én még soha nem láttam Spaceballs.
>> DAVID MALAN: Spaceballs.
Rendben.
Így várj csak egy pillanatra.
Hogy-- tegyük ezt a tanítható moment--
hogyan megy a megtalálni a szám 50?
AJAY: Úgy döntöttem, véletlenszerűen.
DAVID MALAN: Szóval úgy döntött, véletlenszerűen és szerencsém volt.
AJAY: Igen.
DAVID MALAN: OK.
Kiváló.
Tehát most már, hogy ne ütött szerencsés, mi mást
történhetett volna, mögött ezek az ajtók?
Ha megyek előre, és mutatják ezek a számok itt,
ők valójában véletlenszerű sorrendben.
És a legjobb, amit lehet kész, őszintén szólva, ez a végső soron,
a legrosszabb esetben, ellenőrzi őket.
Szóval van szuper szerencsés, ami Mi nem nevezném egy algoritmus.
Igen, gratulálok.
De most let's-- humor engem, ha lehet.
Menjünk ezen a lapon itt.
És itt vannak a számok egyértelműen , amit úgy tűnik, hogy egy véletlenszerű sorrendben,
és voltak.
De most, ha én inkább igény hogy ezek az ajtók mögött
olyan számok vannak rendezve.
A cél most az, hogy is hozzánk a szám 50.
De csak algoritmussal és mondja el, hogyan fogsz róla.
És ha megtalálja, akkor tartsa a film.
Ha nem találod, akkor add vissza.
AJAY: Úgyhogy ellenőrizni a végén Először is, annak meghatározására, hogy there's--
[Nevetés és taps]
DAVID MALAN: Tessék.
Vessünk egy pillantást egy A Ajay elődei,
Sean, aki nem volt olyan szerencsés.
OK, így a feladat itt, Sean, a következő.
Én rejtett mögött ajtók száma hét,
de élj néhány ilyen ajtók illetve egyéb nem-negatív számok.
És a cél az, hogy gondolni ezt felső sorban a számok csak egy tömb.
Mi csak a sorozat darab papírra számok mögött.
És a cél az, csak a felső tömb itt, találja meg a hetes szám.
És mi majd lesz kritika hogyan kezdjen csinálja.
Keressen meg minket a hetes szám, kérem.
Nr.
5, 19, 13.
Ez nem egy trükkös kérdés.
1..
Ezen a ponton a pontszám nem nagyon jó, így akár meg is tartani fog.
3.
Menj tovább.
Őszintén szólva, nem tudok segíteni, de csoda mire is gondolt.
>> SEAN: tudom elvenni csak a legfelső sorban.
DAVID MALAN: Csak a felső sorban.
Szóval van három maradt.
Így találja meg 7.
>> [Közönség kiáltások JAVASLATOK]
Tehát mind a két volt csodálatos nagyon különböző okok miatt.
Szóval, ez az, ahol abbahagyta az imént,
és a kulcs betekintést itt volt, ezek az ajtók voltak számok
mögöttük, amelyeket rendezett, az ideális elvihető, amelyek, hogy meg tudná csinálni
alapvetően jobb ez a második example--
és valóban, ez volt Sean első próbálkozás a véletlen számok
ugyanolyan before-- de amint mivel ezek a számok sorrendje,
ugyanúgy, mint a telefonkönyv, mit tudsz nyilvánvalóan nem?
Vagy hogyan lehet kihasználni ezt a tudást?
Igen.
>> Közönség: Menj félúton [nem hallható].
DAVID MALAN: Igen.
Pontosan.
Tehát Ajay legelső meglátása volt hogy ellenőrizze a végén, ha jól emlékszem,
és akkor valami kész A példa gyorsan.
De ha elkezdtük csinálni ezt többet módszeresen Ezen a vonalon
de talán a kiindulási középen, mert ők sorrendje,
amint felfedi a szám 16, ezért azt tudom--
és tegyük pontosan hogy-- mi ezért tudják, hogy 50, a mai eset,
van, hogy az a jobb.
Tehát csak mint hét nulla, ha mi tépte a telefonkönyv fél
és dobta a fele probléma van, ugyanaz a gondolat itt.
Tudjuk dobni a másikon A probléma el.
És talán, amit talán nem algoritmikusan,
ha tudod, hogy 50 legyen jobbra, ha ez bárhol,
, megpróbál ott, a közepén a fennmaradó ajtók.
Természetesen magasabb 50 mint 42, így tudjuk
dobja ezt a többi negyedévében a probléma el,
és végül, azonosítani valami hasonló 50.
De, mint a telefonkönyv, ezeket a számokat
kaptak, hogy nekünk már rendezett sorrendben, ami hagy minket
A kérdés, hogyan kap dolgokat rendezett sorrendben?
És, őszintén szólva, milyen áron?
Ez az egyik dolog, hogy átadta a telefonkönyv
majd lenyűgözni a barátok találva Telefonszám nagyon gyorsan, nem igaz?
Könnyezés 32 oldal, hogy megtalálja a személy a 4 milliárd oldalt,
azt mondta, volt egy extrém példa.
De mennyi idő telt el Verizon rendezni, hogy a telefonkönyv?
Mennyi idő telt el minket rendezni a hét számot?
Ez a kérdés, hogy mi már eddig teljesen figyelmen kívül hagyja.
>> Úgyhogy erre a kérdésre válaszolni most.
És kifogytunk a film most, de van egy kis stressz labda.
Ha, mondjuk, nyolc önkéntesek nem bánnám, csatlakozik hozzánk itt?
Menjünk előre, és igen, mi a helyzet a négyen, három te itt?
Kap néhány új arc.
És négyen ott?
És now-- ne elfogultság itt-- és szám nyolc itt a vég.
Gyere fel.
Rendben.
Szóval mi van itt mindannyian egy szám.
Ha azt szeretné, hogy menjen előre, hogy ez a szám.
Mi a neve?
>> Artie: Artie.
>> DAVID MALAN: Artie, oké.
Te vagy az 1.
>> AMIN: Amin.
DAVID MALAN: Amin.
David.
Te vagy 2-es szám.
És megy előre, ahogy én viszont Ön a papírlap,
sorban magatokat előtte a zene áll az ugyanabban a sorrendben, mint ott.
>> Andy: Szia, Andy.
>> DAVID MALAN: Andy, örülök, hogy látlak.
3. szám.
>> JACOB: Jacob.
>> DAVID MALAN: Jacob, 4-es számú.
Üdvözöljük a fedélzeten.
GRANT: Grant.
DAVID MALAN: Grant.
5. szám.
>> Alanna: Alanna.
>> DAVID MALAN: Alanna, 6-os szám.
>> Frances: Frances.
DAVID MALAN: Frances, 7-es számú.
És?
>> Rachel: Rachel.
>> DAVID MALAN: Rachel, 8-as számú.
Rendben.
Menj előre, és magad ebben a sorrendben.
Hadd tegye egyetlen megmaradt zeneállvány a helyén.
Hol van egy állvány?
OK.
Menj előre, és csak tedd a számokat ahol a közönség láthatja őket,
a zene áll kifelé.
És remélhetőleg, az első józanság ellenőrzés itt-- 4, 2, 6.
Oh-oh.
Várj egy percet.
Jelenleg nincs egy 8.
Azt kell, hogy kilakoltatására Önt A példa valahogy.
Nr.
Nem, semmi gond.
Lássuk.
Meg tudjuk csinálni ezt.
Készenlét.
Ott vagyunk.
Helyes.
Rendben.
Szóval, most már 8, 1, 3-7, 5.
OK.
Kiváló.
>> Tehát a kérdés kéznél van, a milyen költség, és keresztül milyen módszerrel,
tudjuk valójában rendezni ezeket a számokat ide hogy mi lehet a fajta munka hátra,
végül, és decide-- ez tényleg Lenyűgöző, hogy valóban hatékony,
hogy tudok osztani és meghódítani a telefonkönyv?
Ez tényleg hatékony, hogy Tudok megosztani, és uralkodni
ezeket a digitális darabok A papírt a fedélzeten
ha talán fog kerülni nekünk szerencse az idő vagy energia vagy a CPU-t
hogy valóban kap adataink a néhány rendezett sorrendben?
Szóval fel ezt a kérdést.
>> Tehát először le, ezek a számok nagyjából véletlenszerű sorrendben,
és én fogom javasolni egy algoritmus, vagy folyamat
amellyel meg tudjuk rendezni ezeket az embereket.
Megyek megközelíteni ez nagyon naivan.
És én fogom felismerni hogy ez a fajta sokat nekem
betakar eszembe körül teljes adatállomány egyszerre.
De tudod mit?
Megyek, hogy néhány nagyon egyszerű marginális javítások.
4 és 2 elromlott, ha a cél az, hogy megy 1 8.
Tudod mit?
Megyek, hogy itt srácok cserélni, ha váltani
fizikailag álláspontok és a darab papír.
Most a 4. és a 6., ezek sorrendben.
Fogom hagyni azokat is.
6. és 8, azok érdekében.
Elhagyja őket is.
8. and1, elromlott.
Ha két nem bánja csere.
Most 8 és 3, ha ti is cserélni.
8 és 7, ha ti is cserélni.
8 és 5, ha ti is cserélni.
>> Most vagyok kész?
Nem, természetesen nem.
De tettem a helyzet jobb, ugye?
Mi volt a neve, a 8?
>> Rachel: Rachel.
DAVID MALAN: Szóval Rachel hatékonyan bugyborékolt fel elég messzire,
egészen a végéig a sor a számok itt.
És hogy a probléma ilyen megoldott.
Nos, nyilvánvalóan, 2 még mindig szükség van mozogni egy kicsit, és a 4. és a 6. és 1..
De úgy tűnik, hogy ütött a kicsit közelebb a megoldáshoz.
Szóval ezt azonos naiv heurisztikus újra.
A 2. és a 4., OK.
4 és 6, OK.
6 és 1, mm-mm.
Nézzük csere.
6 és 3 mm-mm.
Nézzük csere.
A 6. és 7. rendben van.
7 és 5, dehogy.
Nézzük csere.
És most a 7. és 8..
És mi a neved?
Frances: Frances.
DAVID MALAN: Frances.
Tehát most Frances van még egy jobb helyzet, mert most a 7. és a 8.
helyesen bugyborékolt fel a csúcsra.
Tehát a 2. és a 4., OK.
4 és 1, hadd csere.
4 és 3, hadd csere.
4. és a 6., akkor rendben.
6. és 5. Nézzük csere.
És most ezek a srácok jó.
Már majdnem ott vagyunk.
2 és 1, elromlott, így cserélni.
És most hadd tegye a józanság csekket.
A 2. és 3, 3 és 4, 4 és 5, 5 és 6, 6 és 7, 8.
OK, így végeztünk.
>> De milyen áron tettem rendezni ezeket a számokat itt?
Nos, hány lépést tettem potenciálisan hogy a rendezés során ezeket az embereket?
Nos, akkor jöjjön vissza erre a kérdésre.
De őszintén szólva, ha van egy kis unott, az
felfedve az a fajta, hogy ez nem talán a leghatékonyabb algoritmus.
És valóban, őszintén szólva, én izzadok annál is inkább, séta oda-vissza.
Ez nem érzi különösen hatékony.
Szóval próbálj ki valami mást.
Ha ti is vissza magatoknak, hogy a nyolc értékeket.
Jó munkát.
>> Vessünk egy pillantást digitálisan, mindössze egy pillanatra, mielőtt próbáljunk meg valami mást,
hogy mi történt.
Fel itt, te arról, hogy a megjelenítés a nyolc emberre
amelynek kék és piros sávok számát.
A magasabb az oszlop, Minél nagyobb a szám.
Minél rövidebb az oszlop, Minél kisebb a szám.
És mit fogsz látni, hogy a véletlen sorrendben több mint nyolc.
Meg fogod látni ezeket a bar egyre rendezve ugyanazon algoritmus,
vagy állítsa utasítások, amelyek hívjuk ezentúl buborék sort.
Tehát észre, minden második, vagy úgy, két rudak megvilágította piros,
összehasonlított a számítógép.
És ha a nagy bár és a kis bár ki annak érdekében,
ők is cserélték nekem.
>> Most ez hihetetlenül unalmas nézni ezt, természetesen,
nagyon hosszú, de észre az takeaway-- nagy rúd mozog jobbra,
kis bárok mozog balra.
Nézzük megszakítja a folyamatot és ezt felgyorsíthatja
sokkal gyorsabb lesz, így mi is kap a magas szintű értelemben, hogy mit,
Valóban, buborék sort csinál.
Sőt, ez bugyogott fel a jobb oldali listán,
vagy a tömb, a nagyobb bárok.
És fordítva, a kis rudak fortyogó útjukat lefelé balra,
bár gyorsabb ütemben mint azt korábban tette.
Így nehezebb látni az emberek, de vizuálisan ez valóban mit
történik.
>> De próbáljuk alapvetően más megközelítést most.
Próbáljuk meg egy másik algoritmus, ahol van, hogy
srácok kezdeni ezen eredeti pozíciókat, ami ebben a sorrendben itt.
És menjünk előre most.
És én fogom csinálni valamit még egyszerűbb, nem igaz?
Visszatekintve, csere páronként újra és újra, szinte egy kis ügyes.
Nézzük a dolgok még naivan, ahol, ha azt akarom, hogy rendezni ezeket az embereket,
hadd keresd a legkisebb elem.
Tehát most, 4 a legkisebb szám, amit láttam.
Fogom elfelejteni, hogy.
No, 2 jobb, és ne feledje, hogy.
1 még kisebb.
3, 7, 5.
OK.
Az egyet mi is a neved?
>> Artie: Artie.
>> DAVID MALAN: Artie.
Szóval, Artie, megy előre.
Megyek, hogy húzza meg a sorból.
Ha lehetne gyere vissza.
És azt kell, hogy helyet adjon neki.
Van egy döntési pont itt.
Hogyan lehet, hogy mi legyen hely az Artie itt az elején, ahol 1-es szám tartozik?
>> Közönség: Shift.
>> DAVID MALAN: OK, akkor is elmozdulhatnak mindenki.
De javaslatot optimalizálás.
Hogy úgy érzi, egy kicsit bosszantó számomra, hogy kérje négy ember
mozgatni egészen.
Mi mást tehettem volna?
>> Közönség: váltani őket.
>> DAVID MALAN: váltani őket.
És mi a neved?
>> JACOB: Jacob.
DAVID MALAN: Jacob, mozogni.
Sokkal hatékonyabb, csak hogy Jacob csere helyek Artie,
szemben kényszerítve mind a négy emberek,
köszönöm szépen, hogy pontos helyét.
Mi a szép a Artie most, ő az ő helyére.
Csináljuk újra.
2, ez a legkevesebb, amit láttam.
3, 7, 5.
OK.
2. határozottan a legkisebb.
Nem kell, hogy csináljanak valamit.
Csináljuk újra.
6.
Legkisebb?
8.
Dehogy.
4?
Ooh.
Hadd emlékszem 4.
3.
Hadd emlékszem 3.
7, 5.
Legkisebb számot én már látható ez bérlet 3.
Ha azt gyere ki.
Hová megyünk, hogy van?
És mi a neved?
>> Alanna: Alanna.
>> DAVID MALAN: Alanna vagyunk lesz, hogy kilakoltatására Önt.
De ez a hatékonyabb, csak csere két ember,
mint, hogy több ember valójában kikerüljék át.
Most ezt újra.
Megyek válassza a 4, így gyere ki.
És ki fog mozogni?
Number 8, természetesen.
Ha most meg 5-ös szám, gyere ki.
8-as szám fog kapni kilakoltatták újra.
Én most megkeresem a 6 helyett.
7. a helyén.
8 a helyén.
>> Amit most csináltunk most úgynevezett kiválasztás sort,
és ha vizualizálni ezt, ez majd, hogy egy kicsit más.
Menjünk előre, és ebből a menü itt, ez visualization--
változtassuk meg ezt hogy-- gyerünk, Firefox.
Változtassuk meg ezt a fajta kiválasztás.
És nézzünk felgyorsítani, mint korábban, és indítsa el a megjelenítés most.
És ez algoritmusnak más hangulata van.
Minden iteráció, őszintén szólva, ez még egyszerűbb.
Én csak kiválasztja a legkisebb elem.
Most őszintén, van egy kis szerencse, hogy idő, az, hogy a szuper-gyors rendezve.
Az elemek a véletlen.
Ez nem az, ahogy mi végül látni, alapvetően gyorsabb.
De nézzük egy harmadik és utolsó megközelítés itt, hogy mi folyik itt.
Szóval, menjünk előre, és állítsa vissza a srácok egyik utolsó alkalom, hogy ebben a sorrendben van.
>> És most megyek egy kicsit okosabb,
csak azért, hogy még kerekebb legyen a algoritmusokat.
Fogom tenni.
Megyek, hogy ne menjen oda-vissza annyira.
Őszintén szólva, én vagyok fáradt mindezt mozgás.
Én csak megy, hogy milyen vagyok adott elején a listán,
és én fogom rendezni hogy akkor és ott.
Tehát itt vagyunk.
4. szám.
Megyek illessze be 4. egy rendezett lista.
Kész.
Azt állítom, és most csak azért, hogy ezt a több világos, ez a része a lista.
Ez egyfajta ostoba igény, de valóban 4 rendezve listája méretű egy.
Most megyek, hogy a 2-es szám.
2. szám Én most fog helyezze be a megfelelő helyre.
Szóval, ha nem 2 tartozik?
Nyilvánvaló, hogy itt van.
Így megy előre, és menjen vissza, ha lehet.
És miért nem mentek csak úgy a zenét áll veled ebben az időben.
És ne erőszakosan helyezze te a lista elején.
Így egy kicsit több munka.
Kellett mozgatni Jacob körül, és mi a neve?
>> AMIN: Amin.
>> DAVID MALAN: Amin.
De legalább nem megy oda-vissza.
Csak, hogy a dolgokat, ahogy megy.
Csak helyezze őket a megfelelő helyen.
6, ez valójában nagyon egyszerű.
Nézzük helyezze te ott, ha Csak azt akartam, hogy álljon arrébb egy kicsit.
Number 8, szintén nagyon egyszerű.
Ott van.
A fenébe.
1-es szám nem tudjuk csak swap Amin itt,
mert hogy fog elrontani a sorrendben.
Így van, hogy egy kicsit okos.
Szóval, Artie, ha lehetne másolatot egy pillanatra.
Menjünk előre és sebességváltó most, ellentétben a korábbi algoritmusok,
hogy helyet csináljon Artie itt az elején.
Így a végén a nap, én vagyok ilyen amit én akartam kerülni előtt.
És így én algoritmus fajta fordított, intellektuálisan,
attól, ami eredetileg volt.
Csak ezzel a változó egy másik ponton.
Most vagyok 3.
Ó, a francba.
Van, hogy több munkát újra.
Úgyhogy tolja ki.
Térjünk 8, 6, 4-- oh oh-- és 3 fog menni ott.
Így legalább némi megtakarítás ebben az időben.
7, nem túl sok a tennivaló.
Tehát, ha azt szeretnénk, hogy a pop hát, hadd helyezze meg.
És végül, 5, ha akar pop vissza, mi
kell váltani, te, te, míg öt a helyén van.
>> Tehát most, hogy ez egy magas szintű grafikusan,
csináljuk algoritmus vizualizáció még egyszer.
Szóval ez a mi nevezni beillesztés sort.
Majd futtatni ugyanolyan gyors, és indítsa el itt.
És ez is, más a hangulata.
Ez a fajta egyre jobb és jobb, de ez soha nem tökéletes
amíg nem megy és sima az említett hiányosságok.
Mert megint, én csak a vevő milyen Én kap balról jobbra.
Szóval nem ilyen szerencsés hogy minden tökéletes volt.
Ezért kellett ezeket a kis mispositions hogy meghatározott idővel.
>> Tehát az összes ilyen algoritmusok úgy tűnik, hogy fut kissé eltérő ütemben.
Sőt, ami mondasz, a legjobb vagy a leggyorsabb eddig?
Bubble sort, az első?
Selection sort, a második?
Beillesztés sort, a harmadik?
Hallom valami kiválasztás fajta.
Más gondolatok?
>> Így kiderül, hogy a az összes ilyen algoritmusok
alapvetően ugyanolyan hatékony, mint a minden other--, vagy éppen ellenkezőleg, mint ahogy
nem hatékony, mivel minden más, mert nem tehetünk alapvetően
jobb, mint a három Ezen algoritmusok.
És ez egy kicsit egy fehér hazugság is.
amikor azt mondom, a hatékony vagy nem hatékony,
ez legalább szuper nagy n.
Amikor már csak nyolc ember van, vagy talán 50 vagy így bár a képernyőn,
akkor feltétlenül észre különbséget ezek közül három algoritmus.
De az N, az emberek száma, vagy a számok száma,
vagy az embereknek a száma a telefonban könyv, vagy a számát weboldalak
a Google adatbázisa egyre nagyobb és nagyobb,
látni fogjuk, hogy e három algoritmusok valójában elég gyenge.
És mi tehetünk alapvetően jobb, mint az.
>> Vessünk egy pillantást, végül hogy mi ezeket az algoritmusokat esetleg
úgy hangzik, mint a keretében néhány más
valamint ennek útján megjelenítés itt
hogy bevezet minket Számos algoritmus.
Menjünk előre, és gratulálok a résztvevők itt, akik mind
sorrendje maguk nagyon jól.
Ha azt szeretné, hogy egy búcsú ajándékot.
Tudod tartani a számokat is.
És mit fog látni, vagy inkább hallani, most,
az, hogy mivel tesszük hangok minden egyes ilyen rudak
majd társítását a szoftver, különböző frekvenciájú hang,
akkor csomagolja az elméd még audioly körül, amit minden ilyen dolgok
néz ki.
Melyek közül az első az illesztési fajta
>> [HANGOK]
>> Ez a buborék fajta.
>> [HANGOK]
>> Selection sort.
>> [HANGOK]
>> Úgynevezett merge sort.
>> [HANGOK]
>> Gnome sort.
>> [HANGOK]
>> Ez az a CS50.
Látni fogjuk, hogy szerdán.
>> Narrátor: A Most, "Deep Gondolatok, "a Daven Farnham.
Miért ez a for ciklus?
Miért ne lehetne jobb?
Lennék öt hurok.
>> [Nevetés]