DAVID Malan: Tout dwa. Se konsa, sa a se CS50, e sa se kounye a nan kòmansman an nan semèn twa. Se konsa, moute jouk koulye a, nou te te ekri pwogram nan C ki gade yon ti kras yon bagay tankou sa a isit la. Se konsa, nou te gen yon koup la byen file an gen ladan nan tèt la. Nou te gen Int, prensipal la, anile, ak Lè sa a, yon bagay fè nan mitan an, kèk ti jan nan Kòd andedan nan ki fonksyon. Men, gen kle te lefèt ke nou ve yo te di anile isit la. Se konsa, anile, tout tan sa a, Espesifik ke pwogram sa a, lè kouri, kapab fèt sèlman kouri atravè non li yo. Ou pa ka tape nenpòt lòt mo oswa nimewo apre Non pwogram lan lè kouri li. Se konsa, pou egzanp, si pwogram nan te konpile nan yon dosye rele hello, ou ta ka fè ./hello, men sa se li. Sèl fason pou ke ou te kapab bay opinyon nan pwogram sa a se lè w rele yon fonksyon. Pou egzanp, sa ki fonksyon te nou te lè l sèvi avèk konsa byen lwen yo ka resevwa enfòmasyon nan men gwoup itilizatè a? ODYANS: Jwenn fisèl. DAVID Malan: Pou jwenn fisèl, oswa jwenn Int, oswa ou te wè lòt moun, menm si ou pa te itilize yo ankò, tankou jwenn long, long ak renmen an. Men, si ke nou aktyèlman vle kòmanse ekri pwogram ki ti kras pi plis versatile, ak, franchman, yon ti kras plis tankou kòmandman yo ke ou te te resevwa, èspere ke, yon ti kras abitye. Menm jan ak cd Dropbox espas. Sa a, nan kou, chanjman anyè ou, an konsideran w ap nan kay Jan Harvard la anyè, nan katab Dropbox ou. Pandan se tan, yon lòd tankou sa a kreye yon anyè nouvo rele pset2, jan ou ta ka te deja oswa pral byento pou pwoblèm mete de. Fè Hello, nan kou, se yon lòd ki kreye yon pwogram ki rele alo ki sòti nan yon dosye rele alo dot c. Ak nan chak nan sa yo ka yo, kounye a, nou te gen bay yon agiman sou sa yo rele an liy lòd, èd memwa a kliyote, se konsa ke fè konnen sa yo dwe bati, epi se konsa ki mkdir konnen sa ki folder yo kreye, ak pou ke cd konnen ki kote ou vle ale. Men, moute jouk koulye a, nou kenbe li di ki prensipal la, fonksyon default ou an, gen yon ekspresyon anile andedan nan moun parantèz, ki vle di ke li pa ka pran okenn agiman. Se konsa, kòmanse jodi a, ki sa nou ap ale nan fè se, nou ap ale nan kòmanse sipòte bagay sa yo tankou sa a menm. An reyalite, nan ka sa a, ki ou pa tipikman manyèlman tape, Fè ki te fè sa pou nou, pa gen gen yon sèl men yon sèl, de, twa anplis strings apre a nan pwogram yo te rele sonnen. Se konsa, ki jan nou reyalize sa a? Oke, kòmanse jodi a, nan ka kote nou vle bay opinyon via la sa yo rele liy lòd, nou ap ale nan kòmanse ajoute isit la sa ki nan yellow-- ranplase anile ak Int arg vigil fisèl argv louvri bracket fèmen bracket. Koulye a, sa a se enteresan pou yon koup nan rezon. Youn, li pral fè nou ekri pwogram ki se yon ti kras pi plis dinamik. Men, plis irezistibleman, li a pral louvri moute kounye a yon konvèsasyon kòm sa ranje ka vrèman dwe itilize, pou sa ki yon afè vrèman se anba kapo a, jiskaske semèn pwochèn lè nou kòmanse plonje nan menm pi fon ki di kòman machin nan se fè tout bagay sa yo travay bagay. Men, pou kounye a, kite a trase, petèt, yon foto. Lè ou ekri yon pwogram ak prensipal deklare nan fason sa a, sa yo ki prensipal pran de agiman, yon int and-- ki kalite done se agiman an dezyèm? ODYANS: Array. DAVID Malan: Array. Se konsa, li sanble nan premye gade tankou li nan yon fisèl, men remake parantèz yo kare. Sonje byen, dènye fwa nou prezante nosyon de yon etalaj. Ak ranje itilize parantèz kare nan yon koup nan kontèks. Ou ta ka sèvi ak kare a parantèz yo ale nan yon etalaj epi pou yo jwenn yon eleman an patikilye, tankou bracket 0 oswa bracket 1 oswa bracket 2. Men, nou te wè, si yon ti tan, semèn pase a ke nou menm tou nou sèvi ak sa yo parantèz kare deklare gwosè a nan yon etalaj, si ou konnen davans ki jan anpil antye oswa konbyen strings oswa kèlkeswa sa ou aktyèlman vle. Se konsa, li vire soti gen nan yon kontèks twazyèm isit la ki pa gen okenn nimewo andedan nan parantèz yo kare. Lè ou presize, jan mwen gen isit la, non an nan yon bagay tankou argv, ki se jis yon fason anpenpan nan li di agiman vektè, ki se yon lòt fason anpenpan nan li di yon etalaj de agiman, louvri bracket fèmen bracket jis vle di ke ou fè pa nesesèman konnen davans ki jan gwo etalaj la a pwal, men ou konnen li la pral yo dwe yon etalaj. Se konsa, si ou pa konnen an Nimewo pa mete l 'nan la, pou louvri bracket fèmen bracket vle di ke argv se pa yon fisèl, men yon etalaj de strings. Se konsa, syntactically, si ou panse tounen semèn pase a, li a trè menm jan ak di yon bagay tankou int laj louvri bracket, ak Lè sa a yon bagay apre sa. Se konsa, sa sa a sanble? Se pou nou aktyèlman trase yon foto. Se konsa, lè ou kouri pwogram sa a ak Main li te gen de agiman defini andedan nan tout sa yo parantèz, ou esansyèlman gen omwen de fragman nan memwa remèt bay ou anba kapo a. Youn, jan mwen pral trase kòm rektang sa a, ki pral yo dwe rele arg. Ak jis kòm yon rapèl rapid, ki sa ki kalite nan done nan arg? Se konsa, li yon Int. Se konsa, yon nimewo ki pral yo ale nan vire argc-- soti ki kanpe pou agiman konte. Pandan se tan, mwen te trase argv kòm yon etalaj. Apre sa, mwen pa vrèman konnen konbyen tan li k ap pase yo dwe, se konsa pou rezon jodi a dot dot dot. Li ta ka jwenn nan kèk longè. Men, mwen te foto isit la nan omwen kat rektang. Se konsa, argv yon ti moso nan memwa ki magazen fisèl fisèl fisèl dot dot dot, ak arg se jis yon ti moso nan memwa pou yon nonb antye relatif. Se konsa, kounye a, kite a gen yon ti kras pi plis presi. Si, lè mwen gen strings nan sa a etalaj, ki rele argv, mwen vle jwenn nan yo endividyèlman, jis tankou semèn pase a, nou ap ale nan itilize notasyon tankou argv bracket 0 yo ka resevwa nan premye bagay yon etalaj. Argv bracket 1 yo ka resevwa nan dezyèm bagay, ak pou fè. Kle a isit la yo te nou ap toujou 0 indexed-- nou toujou ap konte soti nan 0. Se konsa, kounye a kite a aktyèlman mete yon bagay nan sa a. Si m 'te konpile yon pwogram ki rele Bonjou soti nan yon dosye rele alo dot c, ak Lè sa a mwen kouri ke pwogram ak dot koupe hello, sa ki fè òdinatè mwen an, laptop mwen, gade tankou anba kapo a moman sa a mwen kouri dot koupe alo ak frape Antre? Oke, sa a se petèt sa nou te kapab dekri kòm kontni an nan òdinatè w lan an memwa, oswa RAM-- Random Aksè memwa. Nan lòt mo, òdinatè a, yon jan kanmenm pou ou maji, mete nimewo a 1 nan arg, AKA argcount, epi li mete literalman fisèl la ./hello nan argv bracket 0. Mwen pa gen okenn lide, franchman, sa ki nan nan argv bracket 1 oswa 2 oubyen 3, paske si itilizatè a gen pa tape anyen san konte ./hello, nou ap ale nan asime ke sa yo yo se valè fatra gen plis chans, se konsa pale. Moun sa yo ki fragman nan memwa egziste, men li pa jiska nou fè yon gade nan yo, paske argcount la se sèlman yon sèl. Koulye a, pandan se tan, si mwen ekri kouri yon lòt pwogram, CD, ki se pi plis byen yon lòd, nan kliyote espas èd memwa cd ou Dropbox lè m 'kouri sa, efektivman, lè se pwogram nan cd kouri, arg, andedan nan memwa òdinatè mwen an, se pou briefest ki pi dezyèm nimewo 2 a. Lè sa a, o argv bracket gen CD, argv bracket 1 gen Dropbox, ak Lè sa a nan kou yo lòd, ki konplete, se konsa tout bagay sa yo memwa esansyèlman ale lwen ak ki itilize pou yon lòt bagay. Epi sa a, poutèt sa mwen di jis yon dezyèm fann. Pandan se tan, si nou fè mkdir pset2, foto a sanble prèske menm bagay la, Men, se avèk strings diferan andedan argv. Si m 'fè priz rezone alo alo dot c, menm lide. Se pi plis bagay plen nan pou argv, ak arg, nan kou, se 4. Se konsa, nan lòt mo, menm si sa a etalaj ta ka dot dot dot, nan kèk varyab longè, se konsa pale, ou toujou konnen ki kote nan fen li se, paske arg ki pral di ou nan pwen sa ou gen yo sispann gade nan eleman nan argv. Ou ka sèlman gade nan kat nan total nan ka sa a. Se konsa, kite a kounye a pran yon gade nan, petèt, yon pwogram ki senp. Youn ki jis di alo ak yon moun tankou Zamyla. Se konsa, mwen fè reklamasyon mwen pral ekri yon pwogram nan jis yon ti moman via ki mwen te kapab fè ./hello espas Zamyla, ak Lè sa a, mwen vle pwogram m 'enprime soti yon bagay super-senp tankou "hello, Zamyla." Koulye a, nan tan lontan an nou te itilize getstring. Se konsa, nan tan lontan an, menm si ou se nouvo nan pwogram, chans yo se ou ta ka fwe moute yon pwogram ki sèvi ak getstring ak Lè sa a sèvi ak printf yo di hi Zamyla. Men, kite a pa sèvi ak getstring tan sa a. Kite m 'olye ale nan Appliant la epi yo genyen ladan estanda Mwen O dot h. Kite m 'te enkli ladan yo CS50 dot h. Koulye a, Int prensipal yo, e kounye a, mwen se pa pral fè anile jodi a. Olye de sa, mwen pral fè int arg fisèl argv louvri bracket fèmen bracket, pa ki espesifye yon nimewo. Epi, koulye a isit la se m 'sa yo rele fè. Sa mwen ap pral fè kounye a se, mwen pral fè yon ti jan nan yon leap konfyans nan Bondye, Mwen pral asime ke nan nan itilizatè pral sèvi ak pwogram sa a kòrèkteman, ak mwen tou senpleman ale nan fè printf hello,% sn. Se konsa, pa gen anyen nouvo la. Men, mwen vle kounye a mete nan tou sa mo kalite itilizatè apre non pwogram nan. Se konsa, si mwen fè espas ./hello Zamyla, mwen vle yon jan kanmenm programe aksè site unquote "Zamyla." Se konsa, mwen ka ale nan agiman mwen vektè, etalaj mwen nan strings, epi si lòd la, ankò, te espas ./hello Zamyla, ki nimewo fè mwen vle yo mete nan argv isit la? ODYANS: 1. DAVID Malan: 1, paske bracket 0 vire soti a pwal nan Non pwogram lan, kòm nou te wè. Se konsa, bracket 1 se pawòl Bondye a premye se mwen menm, itilizatè a yo, yo gen tape. Mwen pral ale pi devan epi sove sa a. Mwen pral ale nan folder mwen kote mwen te mete sa a dosye. Mwen pral fè fè hello 3. OK Comp IO la. ./hello Zamyla Antre nan. Ki sa mwen fè ki mal? Mwen te kenbe pa sipriz tèt mwen sèlman pou moman yon la. Ki sa mwen fè ki mal? ODYANS: Non lekòl la. DAVID Malan: Dosye a nan aktyèlman rele hello3.c. Apre sa, mwen te fè sa jis pou konsistans, paske nou te te gen hello.c a nan la sot pase yo nan Kòd sou entènèt. Se konsa, kite a ranje ./hello sa a bracket priz 3 Zamyla. Antre nan. Epi, koulye a nou gen hello, Zamyla. Pandan se tan, mwen ka chanje sa a nan gen Rob, oswa reyèlman nenpòt lòt mo. Men, kite a konsidere yon ka kwen. Ki sa ou ta ka atann k ap pase si Mwen pa tape non nenpòt moun ki an nan tout? ODYANS: Erè. DAVID Malan: Yon erè nan kèk sòt, petèt. Ann gade pou wè. Antre nan. Nil. Se konsa, printf se aktyèlman ke yo te yon ti kras pwoteksyon nan nou isit la, ak literalman enprime louvri paren nil, men menm vin pi mal bagay sa yo ka rive. Ak jis yo demontre yon bagay ou absoliman pa ta dwe fè, se pou yo ale nan isit la epi yo kòmanse poking alantou. Dwa? Si mwen konnen ke foto a nan memwa se esansyèlman sa a, argv bracket 1 gen Zamyla, argv bracket 0 gen ./hello, oswa ./hello-3. Ki sa ki nan bracket 2? Se konsa, mwen ka reponn ke kesyon tèt mwen, dwa? Mwen ka jis chanje 1 an nan yon 2. Mwen kapab kounye a compile alo 3, ./hello3 Ann rale nan ak frape Mete. Whoops. Pa gen quote mak. Enteresan. Se konsa, ki nan kalite fre yo wè ki lòt bagay se an isit la. Se konsa, ki lòt bagay ki andedan nan laptop mwen an? Se pou yo konsève pou l 'ak bracket 3. Fè hello3, ./hello-3. Kirye. Epi, koulye a kite a jwenn vrèman bold-- 50. Se konsa, sa ki nan vrèman plonje gwo twou san fon nan memwa òdinatè mwen an. 50 endis nan. Se konsa, fè hello 3 ./hello-3. Kirye. Tout dwa, kounye a mwen jis pral jwenn ensousyan. Ann ale nan 5,000. Tout dwa. Se pou m 'compile. Fè hello3, ./hello-3. OK. Koulye a, kèk nan ou, gen ta ka gen yon anpoul limyè ale nan. Konbyen nan ou gen wè mesaj sa a ye anvan an? OK. Se konsa, poukisa? Chans are-- ak gen nan diferan bagay sa yo ki kapab lakòz sa a, epi klèman w ap nan bon company-- nou gen byen klè ki te koze sa ki rele yon segmentation fay. Ak istwa long kout pou jodi a, mwen te manyen yon segman nan memwa ke mwen pa ta dwe gen. Ki kote yon segman jis vle di yon ti moso nan memwa ke mwen pa ta dwe gen. Koulye a, òdinatè a garanti ke si mwen kouri ./helloZamyla ke mwen ka manyen argv gen bracket 0 ak argv bracket 1. Men, arg se valè 2, sa vle di se mwen menm sèlman allowed-- li nan sòt de onè nan system-- manyen bracket 0 ak bracket 1. Si m 'ale nenpòt ki pi lwen, gen nan absoliman pral fè memwa a. RAM mwen egziste fizikman nan òdinatè a. Men, ki moun ki konnen sa ki nan genyen? Vreman vre, mwen kouri miltip pwogram nan yon sèl fwa. Mwen ta ka gen seen-- si mwen pa t ' fè sa a sou Appliant la men sou Mac mwen an oswa PC-- mwen ta ka gen wè sa ki nan yon imel. Mwen ta ka gen pou wè yon moman mesaj mwen te resamman te voye yo. Nenpòt bagay ki ta ka pèsistan alantou an memwa te kapab accessible pa fason pou sa a abitrè kare notasyon bracket. Oswa, pi mal ankò, ou ka gen jwenn youn nan modpas mwen ke mwen ta dènyèman tape nan, ke yon pwogram te ki estoke nan memwa konsa tankou legalized m ', epi Lè sa a, jis kalite te kite l ' nan RAM jouk tan mwen kite fimen pwogram sa a. Ak tout bon, sa a se youn nan danje a ak yon sèl pouvwa yo nan lè l sèvi avèk yon lang tankou C. Ou gen aksè illimité sa ki tout antye nan yon pwogram nan memwa, ak sa ki nèg move kapab menm fè nan sa yo cases-- espesyalman lè nou li ale nan pwogram entènèt nan direksyon nan fen semès la, nou pral revize topic-- sa a se pike alantou, potansyèlman, yon moun nan òdinatè a memwa epi jwenn bagay sa yo kirye kòm nou te wè a. Oswa menm pi mal ankò, modpas ke li oswa li ka Lè sa a itilize yo fè move bagay. Se konsa, byen klè, mwen pa ta dwe te fè sa a, paske bagay sa yo etranj kòmanse rive. Vreman vre, sa a se yon ekraze pwogram nan. Sa a ta dwe ekivalan a nan Mac OS oswa nan fenèt yon fenèt pwogram jis toudènyeman. Te yon erè inatandi te fèt la. Nan anviwònman an lòd-liy nou wè yon bagay tankou sa a. Men, sa a, poukisa, se mwen tou senpleman manyen memwa ki pa fè pati nan mwen. Se konsa, kite a defann kont sa a yon ti jan nan yon fason diferan pa gade nan pwogram sa a isit la. Se konsa, ankò, kilè eskèlèt la ke nou te wè pi bonè epi mwen te make sa a int tan. Apre sa, tout prensipal tan sa a gen tout bon tounen yon valè. Menm si nan pi fò nan konferans nou an egzanp nou te pa janm yon fwa te itilize retounen anyen nan prensipal. Nou jis ekri printf fèmen Curly atèl e ke sa a li. Men, pou gratis, sa a du te fè pou ou, efektivman, ki retounen 0 pou ou. Li vire out-- ak li nan yon ti kras counterintuitive-- ke 0 se yon bon bagay. Li pa vle di fo se pou chak. 0 se yon bon bagay, ak nenpòt ki pa 0 valè, te mond lan deside, ka siyifi yon erè. Se konsa, si ou te janm messed yon bagay moute sou òdinatè ou, oswa nan yon pwogram li te jis te mouri sou ou menm ak ou te vinn kèk fenèt inègza sou ekran ou a, li di erè negatif 49 oswa erè 23-- kèk value-- w pèdi abitrè sa a, se paske yon pwogramè difisil-kode yon valè tankou negatif 49 oswa pozitif 23 a reprezante nenpòt ki, bay gabèl di, nan 4 milya dola bagay sa yo posib ki ta ka ale mal nan yon pwogram. Se konsa, kouman ka mwen pran avantaj de sa a tèt mwen? Oke, kite m 'louvri moute yon pwogram ke mwen te ekri nan avanse, ak pike alantou sou entènèt yo rele alo 4. Lè li nan prèske ki idantik, eksepte ke li te resevwa yon ti kras nan erè-kont kouran. Nan ka sa a, mwen te ankò te deklare prensipal kòm pran de agiman, men fwa sa a, sou liy 17, avi M ap fè yon ti jan nan yon chèk saniti. Mwen fè si ke arg egal egal 2. Paske si li se, ki vle di mwen ka san danje manyen pa sèlman bracket 0, men bracket 1. Apre sa, mwen ale pi devan epi enprime soti, nan ka sa a, Zamyla oswa Rob oswa kèlkeswa sa pawòl mwen tape deyò. Epi, koulye a jis jwenn yon ti kras plis apwopriye, Mwen pral retounen klèman 0 a siyifi tout se byen. Pa gen anyen move rive. Men, pa konvansyon, mwen pral retounen 1, oswa franchman nenpòt-0 ki pa valè, si yon bagay ale mal. Koulye a, itilizatè a pa pral reyèlman avi sa k ap pase. Vreman vre si mwen ale nan anyè sa a, nou rale nan ak fè hello 4, ./hello-4 Zamyla konpòte li kòm Mwen atann mwen. Men, si mwen olye pou pa tape anyen, pa gen anyen sanble rive, men li pa aksidan. Men, si mwen olye pou fè yon bagay tankou Rob se yon siveyan nan Thayer-- pataje enfòmasyon abitrè. Men, avi, argv 1, 2, 3, 4, ak 5 ta dwe kounye a egziste nan memwa. Sa, tou, se pa sa pwogram mwen espere, paske mwen te tcheke si wi ou non arg egal egal 2 oswa ou pa. Se konsa, mwen kounye a defann kont sa a. Koulye a, kòm yon sou kote, nou nan programmer-- ou pito nou users-- la pa janm wè ke 0 oswa 1 men lè l sèvi avèk yon zouti ki rele debogeur, oswa lòt zouti, jan nou pral wè anvan lontan, ou pwogramè a ka aktyèlman wè sa ki ta ka pral mal andedan nan pwogram ou an. Se konsa, nenpòt kesyon sou arg? Yeah. ODYANS: Mwen te wè kote yo pa te gen karaktè a, [fèbl] jis di etwal fisèl d, tankou karaktè asterisk vigil. Eske yo se moun ekivalan isit la? DAVID Malan: Yo se. Se konsa, kesyon an se, ou gen pwogram detanzantan wè tankou sa a ki pa fè sa di fisèl argv bracket men olye di yon bagay tankou Char zetwal argv bracket. Apre sa, nan menm lòt varyant ke ou ta ka wè. Yo se tout bon ekivalan. Pou kounye a, nou gen sa yo sòt de wou fòmasyon sou nan fòm lan nan fil nan CS50 a bibliyotèk, men nan jis pase yon semèn oswa konsa nou ap ale nan retire ki blokaj tout ansanm ak aktyèlman gade nan ki sa Char la ak zetwal nan yo, ak ki jan moun konsène memwa reprezantasyon plis jeneralman. Se konsa, nou pral tounen vin jwenn sa. Lòt kesyon sou argv nou an oswa arg? Yeah. ODYANS: Poukisa li retounen yon erè [fèbl]? DAVID Malan: Poukisa te fè li retounen yon erè only-- oh! Nan ka a anvan yo, lè nou te futzing otou ak memwa, poukisa li sèlman retounen yon erè lè mwen reyèlman tape yon nimewo gwo? Kout repons se, nou jis te resevwa chans. Anjeneral pale, yon òdinatè repati memwa nan fragman, epi li te ban m 'yon gwo ase moso ki Mwen te resevwa lwen, san yo pa remake, nan manyen bracket 2, bracket 3, bracket 50, men le pli vit ke mwen pouse chans mwen, mwen te ale pi lwen pase a limit nan moso nan memwa te sistèm nan fonksyone ban mwen an. Epi sa a, lè li sere desann, li di: pa gen okenn. Erè segmentation. Yeah. ODYANS: Kijan òdinatè a konnen valè a nan arg? DAVID Malan: Kijan a òdinatè konnen valè a nan arg? Lè ou kouri nan yon pwogram, ki pwogram, pa nati a èd memwa a kliyote, se lage etalaj la nan mo ki te tape nan èd memwa a, sa ki te tape nan èd memwa a. Se konsa, li se opere ou sistèm ki esansyèlman remplit agiman prensipal la pou ou. Se konsa, ki nan youn nan sèvis sa yo ke ou jwenn, sòt de an kachèt anba kapo a nan yon sistèm opere. Lòt kesyon? Yeah. ODYANS: Ki sa nwayo pil fatra vle di? DAVID Malan: Ki sa nwayo pil fatra vle di? Se konsa, ki se yon bon kesyon. Ak kite m 'ale tounen nan anyè sa a isit la. Epi ou pral avi ke Mwen gen yon dosye nouvo la. Li nan tout bon rele nwayo, epi li aktyèlman tipikman yon dosye desan-gwosè. Sa se esansyèlman yon snapshot de sa ki nan pwogram mwen an memwa oswa RAM lè li te fè aksidan. Lè sa a yo pral itil, ki kapab, diagnostically, yon fwa nou pale nan yon konferans lavni ak seksyon sou debogaj, paske ou ka aktyèlman fè a ekivalan nan yon otopsi dijital sou ki dosye yo ede figi konnen sa ou te fè mal nan pwogram ou an. Yeah. ODYANS: Èske arg yon lòd nan tèt li, oswa ka ou non li anyen? DAVID Malan: Bon kesyon. Èske arg yon lòd nan tèt li, oswa ka ou non li anyen? Li definitivman pa yon lòd. Li nan tou senpleman yon varyab nan non oswa non yon agiman an, ak Se konsa, absoliman nou te kapab rele foo sa a, nou te ka rele bar sa a, ki gen tandans yo dwe ale nan-a mo ki yon òdinatè syantis ale nan. Men, pa konvansyon, nou itilize arg ak argv. Men, sa se sèlman yon moun konvansyon, pa gen anyen plis. Tout dwa. Se konsa, vire soti, mwen te rakonte yon ti jan nan yon lie-- blan ak franchman, nan tan kap vini an, ou ap wè nou ve yo te di lòt manti blan. Men, pou kounye a, nou ap ale kale tounen youn nan sa yo. Nan ka sa a isit la, lè mwen te deja kouri yon pwogram tankou ./hello oswa ./hello-3 Zamyla, nou te gen sa ki nan m ' memwa òdinatè a kap apeprè tankou sa a. Men, sonje sa yon kòd se. Ki sa nou di yon semèn de sa ki sa yon fisèl aktyèlman se anba kapo a? ODYANS: Array nan char. DAVID Malan: Se yon etalaj de char, dwa? Se konsa, nou ta ka gen yon etalaj de strings, men, nan vire, yon kòd se yon etalaj de karaktè. Se konsa, si mwen reyèlman vle gen nan dèyè lè m 'trase foto sa a, Mwen ta dwe vrèman dwe fè desen li yon ti kras pi plis tankou sa a, ak lese pase 'nan chak nan sa yo endis nan etalaj argv m 'yo, gen se tèt li yon fisèl antye ki tèt li se nan yon etalaj. Epi, koulye a manti nan blan nou ap di jodi a se ke foto a pa fè sa gade byen tankou sa a. An reyalite, kare yo ti kras yo se tipikman deyò nan rektang yo gwo la. Men, nou pral tounen vin jwenn ke anvan lontan. Men, sa a se ./hello antislach 0, ke yo te pèsonaj la espesyal ki demarcates nan fen yon fisèl, epi nou te gen yon lòt youn apre Non Zamyla la. Se konsa, sa sa vle di? Oke, kite m 'ale pi devan epi louvri moute de lòt egzanp ki disponib sou entènèt. Youn yo rele argv1.c ak lòt la se argv2. Li se yon pwogram super-senp ki ki diferan de pwogram sot pase nan ki kounye a mwen lè l sèvi avèk arg ak argv moute isit la. Epi, koulye a mwen entegre ak yon riban pou nan liy 18, ki soti nan mwen = 0 sou jiska arg. Epi ki sa mwen pral fè ak sa a liy nan kòd isit la? Nan lang angle. Evidamman sa demontre pou sèvi ak arg. Men, nan lang angle, sa ki fè li fè si mwen kouri pwogram sa a? Yeah? ODYANS: Li nan ale nan ekri ak lèt ​​detache ou ekran kòm anpil fwa tankou ou vle. DAVID Malan: Egzakteman. Se konsa, tou sa pawòl mwen tape nan èd memwa a, li nan ale nan randr yo nan m 'yon sèl pou chak liy. Se konsa, kite a ale pi devan epi fè sa. Kite m 'ale nan anyè mwen ak fè fè argv1 ./argv1. Epi, koulye a, se pou yo kenbe li senp. Se pou yo fè pa gen anyen an premye. Li te fè enprime soti yon sèl bagay, epi sa a, se tout bon non an nan pwogram nan, paske se sa nan bracket 0. Si m 'kounye a di foo, li la pral fè sa yo de, ak si mwen di foo ba, li a pral di twa bagay sa yo. Koulye a, sa a, se yon ti jan ki enteresan, petèt. Men, sonje ke argv se yon etalaj de strings, men yon kòd se yon etalaj de char, pou nou ka pran bagay yo yon Notch ak aplike ki debaz lojik epi fè kòd ki sanble yon ti kras plis skre, Byensir. Men, pa gen yon enbrike riban, yon bagay analogue nan sa ou ta ka sonje soti nan Mario, pou egzanp, si ou te fè l 'nan fason sa a. Se konsa, kounye avi sou liy 19, mwen se ankò iteration sou agiman mwen, soti nan 0 sou jiska arg. Epi, koulye a nan liy 21-- mwen se prete yon Trick nan dènye week-- Mwen tcheke sa ki nan longè argv bracket mwen. Mwen estoke ki repons lan nan n. Lè sa a, mwen entegre soti nan j sou jiska n, kote j se initialisé a 0. Se konsa, konvansyon pou konte. Yon fwa ou te itilize mwen, si ou gen yon enbrike riban, ou pa kapab itilize mwen ankò, otreman ou pral nip, ki kapab, valè a deyò nan bouk la enteryè. Se konsa, mwen lè l sèvi avèk j pa konvansyon. Nou ta ka sèvi ak k. Si ou gen plis pase k, pwobableman ou gen twòp nidifikasyon, tipikman. Men koulye a,, remake printf mwen liy se yon ti kras diferan. Mwen pa enprime% s, mwen enprime% c, ki, nan kou, se yon kontneur pou yon Char. Epi, koulye a remake sentaks sa a. New. Nou pa te wè l 'devan. Men, lojikman, sa a jis vle di jwenn fisèl la on nan argv epi pou yo jwenn jth a ki sa? ODYANS: karaktè. DAVID Malan: karaktè nan ki fisèl. Se konsa, lè l sèvi avèk parantèz kare ki te swiv pa parantèz kare, sa a se plonje premye nan strings argv a, ak Lè sa a dezyèm lan parantèz kare ak j se plonje nan karaktè yo nan ki fisèl patikilye nan argv. Lè sa a,, jis pou bon mezi, Mwen enprime yon liy nouvo isit la. Se konsa, kounye a kite m 'ale pi devan epi louvri moute yon fenèt ti kras pi gwo pou nou ka wè sa a nan aksyon. Kite m 'ale nan ki folder. Epi, koulye a fè fè argv-2-- whoops-- fè argv-2, ./argv 2. Antre nan. Lè li nan yon ti kras difisil li vètikal, men sa a tout bon non an nan la pwogram nan, ki te swiv pa yon liy vid. Koulye a, kite m 'ale pi devan epi fè foo. Menm jan an tou difisil li, men li la tout bon enprime yon karaktè pou chak liy. Men, si m 'fè ba, li la kounye a enprime moun liy pa liy. Se konsa, Takeaway a isit la se pa konsa pou sa anpil ki, Wow, gade nan sa a byen òdone nouvo Trick kote ou ka jwenn nan sa ki nan karaktè espesifik yon etalaj la, men pito ki jan nou ap pran sa yo debaz ide tankou Indexing nan yon etalaj, ak Lè sa a Indexing nan yon etalaj sa ki te nan ki etalaj, ak jis k ap aplike ide yo menm yo yon ti kras pi plis sofistike egzanp. Men, Basics yo reyèlman pa gen chanje, menm depi semèn pase a. Koulye a, sa a se sòt de alè, nan ki, sonje, nan semèn zewo nou te jwe ak yon liv telefòn tankou sa a. E menm si sa a se evidamman moso fizik nan papye, ou ka kalite panse a yon liv telefòn kòm yon etalaj. Sètènman, si ou te reimplement sa a moso pyès sa yo nan papye nan yon òdinatè, pwobableman ou ta sèvi ak yon bagay tankou yon etalaj nan magazen tout moun sa yo non ak nimewo soti nan Yon tout wout la nan Z. Se konsa, sa a se bèl, paske li pèmèt nou yon opòtinite, petèt, yo konsidere ki jan ou ta ka aktyèlman aplike yon bagay tankou sa. Menm jan ak yon seri de pòt isit la. Se konsa, si mwen could-- nou bezwen youn sèvi kòm volontè yo vini sou yo. Ann gade pou wè. Yon figi abitye petèt, abitye figi petèt. Kouman sou nan zoranj? Isit la. Chemiz Orange, vini sou yo. Ann al pi devan koulye a yo epi li deplase pòt sa yo sou bò lanmè a, deplase sa yo soti nan wout la pou yon moman. Ki sa ki nan non ou? AJAY: DAVID Malan: Ajay. David. Nice al kontre ou. Tout dwa. Se konsa, nou gen dèyè sa yo sis pòt nimerik sou ekran an oswa, olye, sèt pòt sou la ekran yon pakèt antye nan nimewo. Apre sa, mwen te di ou pa gen anyen nan advance-- te dakò? AJAY: Pa gen anyen nan davans. DAVID Malan: Tout sa mwen vle ou fè kounye a se jwenn pou m ', ak pou nou, reyèlman, nimewo a 50, yon sèl etap nan yon tan. AJAY: Nimewo 50? DAVID Malan: Nimewo a 50. Epi ou ka fè ou konnen sa ki nan dèyè chak nan sa yo pòt tou senpleman pa manyen l 'ak yon dwèt li. Modi li. [Ri] [Aplodisman] Trè byen fè. OK. Nou gen yon kado bèl pwi pou ou isit la. Chwazi ou nan sinema nou diskite semèn pase a. AJAY: Oh, nonm. Oh, mwen pa janm te wè Spaceballs. DAVID Malan: Spaceballs. Tout dwa. Se konsa, kenbe fèm nan sèlman yon sèl ti moman. How-- kite nan fè sa-a yon moment-- skolarizabl kijan ou te ale sou jwenn nimewo a 50? AJAY: Mwen te chwazi owaza. DAVID Malan: Se konsa, ou te chwazi owaza ak te resevwa chans. AJAY: Wi. DAVID Malan: OK. Ekselan. Se konsa, kounye a, te gen ou pa vinn gen chans, ki lòt bagay ka te rive dèyè pòt ki sa yo? Se konsa, si m 'ale pi devan epi revele nimewo sa yo isit la, yo aktyèlman yo nan lòd o aza. Ak pi bon an ou ta ka genyen fè, franchman, se pa, finalman, nan ka ki pi mal la, tcheke yo tout. Se konsa, ou te resevwa super-chans, ki se pa sa nou ta rele yon algorithm. Wi, Congrats. Men koulye a, let's-- imè m ', si ou te kapab. Se pou yo ale nan tab sa a isit la. Ak isit la yo se chif yo nan byen klè sa ki sanble yo dwe yon lòd o aza, epi yo te. Men koulye a, si mwen olye reklamasyon ki dèyè pòt ki sa yo yo se chif ki yo Ranje. Objektif la kounye a se tou jwenn nou nimewo a 50. Men, fè l 'algorithmically, ak di nou ki jan w ap ale sou li. Men, si ou jwenn li, ou kenbe fim nan. Ou pa jwenn li, ou ba li tounen. AJAY: Se konsa, mwen pral tcheke bout yo premye, yo detèmine si there's-- [Ri ak aplodisman] DAVID Malan: Isit la ou ale. Se pou nou pran yon gade nan yon sèl ki te chèf anvan Ajay a, Sean, ki moun ki pa t 'byen kòm chans. OK, se konsa travay ou isit la, Sean, se sa ki annapre a. Mwen te kache dèyè sa yo pòt nimewo a sèt, men rantre lwen nan kèk nan sa yo pòt kòm byen yo se lòt nimewo ki pa negatif. Ak objektif ou se panse a sa a tèt ranje nan nimewo kòm jis yon etalaj. Nou jis ap yon sekans nan moso nan papye ak nimewo dèyè yo. Ak objektif ou se, se sèlman lè l sèvi avèk tèt la etalaj isit la, jwenn mwen nimewo a sèt. Epi n ap Lè sa a, ale nan kritike ki jan ou ale sou fè li. Jwenn nou nimewo a sèt, tanpri. No 5, 19, 13. Li pa yon kesyon Trick. 1. Nan pwen sa a nòt ou a pa trè bon, se konsa ou ta ka kòm byen kenbe prale. 3. Ale sou. Franchman, mwen pa ka ede men mande ki sa w ap menm panse osijè de. SEAN: Mwen ka pran soti nan sèlman tèt ranje a. DAVID Malan: Se sèlman tèt ranje a. Se konsa, ou te gen twa gòch. Se konsa, jwenn mwen 7. [ODYANS pale fò SIJESYON] Se konsa, tou de nan sa yo te etonan pou rezon trè diferan. Se konsa, sa a se kote nou te kite yon ti moman de sa, ak kle insight an isit la te pòt sa yo te gen nimewo dèyè yo ki te klase, ideyal la Takeaway pou ki se ke ou ta ka fè fondamantalman pi byen nan dezyèm example-- sa a epi, tout bon, sa ki te Sean a premye tantativ ak nimewo o aza menm jan before-- men le pli vit kòm nimewo sa yo yo Ranje, anpil tankou liv la telefòn, ki sa ou ka evidamman fè? Oswa ki jan ou ka ogmante konesans sa? Yeah. ODYANS: Ou ale [fèbl] mwatye. DAVID Malan: Yeah. Egzakteman. Se konsa, premye ensten Ajay a te yo tcheke bout yo, jan mwen sonje, ak Lè sa a nou sòt de fini egzanp lan byen vit. Men, si nou te kòmanse fè sa a plis metodikman ansanm liy sa yo, men kòmanse petèt nan nan presegondè, paske yo ap klase, le pli vit ke nou revele a Nimewo 16, nou Se poutèt sa know-- e kite yo fè egzakteman that-- nou Se poutèt sa konnen ke 50, nan ka jodi a, te pran yo dwe a dwat la. Se konsa, jis tankou nan semèn zewo lè nou chire liv telefòn nan nan mwatye , yo jete mwatye nan a pwoblèm lwen, menm lide isit la. Nou ka voye jete mwatye sa a nan pwoblèm nan ale. Ak pwobableman sa ou ta ka fè algorithmically, yon fwa ou konnen ke 50 yo dwe a dwat la, si li la nenpòt kote, se eseye la, nan mitan an nan pòt ki rete yo. Natirèlman, 50 se pi wo pase 42, se konsa nou kapab voye jete sa a rete ka nan pwoblèm nan ale, , e finalman, idantifye yon bagay tankou 50. Men, menm jan ak nan liv telefòn, nimewo sa yo te ban nou deja nan Ranje lòd, ki kite nou ak kesyon an, ki jan fè ou jwenn bagay sa yo nan Ranje lòd? Epi, franchman, nan sa ki koute? Li nan se yon sèl bagay yo dwe remèt liv telefòn nan ak Lè sa a enpresyone zanmi ou pa jwenn yon nimewo telefòn vrèman byen vit, dwa? Chire 32 paj soti nan jwenn yon moun soti nan 4 milya dola paj, nou te di te yon egzanp ekstrèm. Men, ki jan anpil tan sa te pran Verizon sòt ke liv telefòn? Konbyen tan sa te pran nou sòt sèt nimewo sa yo? Sa a se yon kesyon ki nou te konsa byen lwen konplètman inyore. Se konsa, kite la reponn kesyon sa a kounye a. Epi nou ap tout soti nan sinema koulye a, men nou fè gen kèk voye boul estrès. Si, di, uit volontè pa ta lide rantre nan nou moute isit la? Ann al pi devan epi fè, ki jan sou kat la nan nou, twa nan ou isit la? Jwenn kèk fè fas nouvo. Ak kat la ou genyen? Epi now-- kite a pa patipri here-- ak Nimewo uit sou isit la sou fen an. Vini non sou yo. Tout dwa. Se konsa, sa nou gen isit la pou chak nan nou se yon nimewo. Si w ta renmen yo ale devan yo, pran nimewo sa a. Ki sa ki nan non ou? Artie: Artie. DAVID Malan: Artie, oke. Ou se nimewo 1. Amin: Amin. DAVID Malan: Amin. David. Ou se nimewo 2. Epi ale pi devan, menm jan mwen men ou fèy papye yo nan papye, liy nou moute nan devan nan mizik la kanpe yo nan lòd la menm jan ak moute a. ANDY: Hi, Andy. DAVID Malan: Andy, li nan bèl yo wè ou. Nimewo 3. JACOB: Jakòb. DAVID Malan: Jakòb, nimewo 4. Byenveni abò. GRANT: Grant. DAVID Malan: Grant. Nimewo 5. Alanna: Alanna. DAVID Malan: Alanna, nimewo 6. FRANCES: Frances. DAVID Malan: Frances, nimewo 7. Epi? RACHEL: Rachèl. DAVID Malan: Rachèl, nimewo 8. Tout dwa. Ale pi devan epi pou yo jwenn tèt ou nan lòd sa a. Kite m 'mete yon sèl ki rete mizik kanpe nan plas li. Ki kote ou bezwen yon kanpe? OK. Ale pi devan epi jis mete nimewo ou ki kote odyans lan kapab wè yo sou li a, mizik la kanpe fè fas a deyò. Ak èspere ke, premye nou an saniti chèk here-- 4, 2, 6. Oh-oh. Tann yon minit. Nou pa gen yon 8. Mwen bezwen mete w deyò nan egzanp lan yon jan kanmenm. No Non, sa se OK. Ann gade pou wè. Nou ka fè sa a. Kanpe bò. Gen nou ale. Kòrèk. Tout dwa. Se konsa, kounye a nou gen 8, 1, 3 7, 5. OK. Ekselan. Se konsa, kesyon an nan men se, nan sa ki pri, ak via ki metòd, ka nou aktyèlman sòt nimewo sa yo isit la pou nou ka kalite travay bak, finalman, ak decide-- se li vrèman enpresyonan, se li reyèlman efikas, ke mwen ka separe ak konkeri yon liv telefòn? Èske li vrèman efikas ki Mwen kapab divize ak konkeri moso sa yo dijital nan papye sou tablo a, si petèt li k ap pase yo koute nou yon fòtin nan tan oswa enèji oswa CPU sik aktyèlman jwenn done nou an nan kèk Ranje lòd? Se konsa, kite la mande kesyon an. Se konsa, premye a, nimewo sa yo, se nan bèl anpil lòd o aza, ak mwen pral pwopoze youn algorithm, oswa pwosesis pa ki nou ka sòt jan sa yo. Mwen pral pwoche bò kote sa a bèl naivman. Men, mwen pral yo rekonèt ke li nan kalite yon anpil pou m ' yo vlope lide m 'alantou an done antye mete nan yon fwa. Men, ou konnen ki sa? Mwen pral fè kèk trè senp fikse majinal. 4 ak 2 yo se soti nan lòd, si nan objektif se yo ale soti nan 1 sou jiska 8. Se konsa, ou konnen ki sa? Mwen pral gen ou mesye swap, si ou chanje fizikman pozisyon ak moso ou nan papye. Koulye a, 4 ak 6, sa yo se nan lòd. Mwen pral kite moun dwe. 6 ak 8, sa yo se nan lòd. Ale nan kite yo dwe. 8 and1, parèt nan lòd. Si ou de pa ta lide échanjé. Koulye a, 8 ak 3, si ou nèg te kapab swap. 8 ak 7, si ou nèg te kapab swap. Ak 8 ak 5, si ou nèg te kapab swap. Koulye a, mwen fè konsa? Pa gen, evidamman pa. Men, mwen te fè a sitiyasyon pi bon, dwa? Ki non ou te ankò, nimewo 8? RACHEL: Rachèl. DAVID Malan: Se konsa, Rachèl te gen efektivman bul moute trè lwen, tout wout la nan fen a nan etalaj mwen nan nimewo isit la. Se konsa, ke pwoblèm se kalite rezoud. Koulye a, byen klè, 2 toujou bezwen yo deplase yon ti jan, ak 4 ak 6 ak 1. Men, mwen sanble yo gen vinn yon ti kras pi pre solisyon an. Se konsa, kite a aplike sa a menm nayif eristik ankò. 2 ak 4, OK. 4 ak 6, OK. 6 ak 1, mm-mm. Se pou swap la. 6 ak 3, mm-mm. Se pou swap la. 6 ak 7 se OK. 7 ak 5, non. Se pou swap la. Epi, koulye a 7 ak 8. Ak sa ki nan non ou ankò? FRANCES: Frances. DAVID Malan: Frances. Se konsa, kounye Frances se nan menm yon pi bon pozisyon, paske kounye a 7 ak 8 yo kòrèkteman bul moute nan tèt la. Se konsa, 2 ak 4, OK. 4 ak 1, swap kite a. 4 ak 3, swap kite a. 4 ak 6, w ap OK. 6 ak 5, swap kite a. Epi, koulye a neg sa yo yo se bon. Nou prèske la. 2 ak 1, soti nan lòd, se konsa swap. Epi, koulye a kite m 'fè yon chèk saniti. 2 ak 3, 3 ak 4, 4 ak 5, 5 ak 6, 6 ak 7, 8. OK, se konsa nou ap fè. Men, nan sa ki pri mwen te sòt nimewo sa yo isit la? Oke, ki jan anpil etap mwen te fè potansyèlman pran lè klasman jan sa yo? Oke, nou pral tounen vin jwenn kesyon an. Men, franchman, si ou te resevwa yon ti kras anwiye, ki nan kalite revele nan ke sa a pa te petèt algorithm nan ki pi efikas. Ak tout bon, franchman, mwen swe tout pi plis nan mache retounen ak lide. Sa pa t 'santi patikilyèman efikas. Se konsa, kite a eseye yon lòt bagay. Si ou nèg te kapab Reyajiste nou nan uit valè sa yo. Bon travay. Se pou nou pran yon gade nimerik, pou jis yon ti moman anvan nou eseye yon lòt bagay, nan sa ki jis rive. Moute isit la, w ap sou yo wè yon vizyalizasyon nan uit moun sa yo kijan ble ak wouj ba reprezante nimewo. Pi wo a ba a, pi gwo a nimewo a. Pi kout la ba a, ki pi piti nan nimewo a. Ak ki sa ou ap ale nan wè se nan lòd o aza plis pase uit nan yo. W ap ale nan gade sa yo ba ap resevwa Ranje pa ki algorithm menm, oswa mete nan enstriksyon, ki nou pral rele koulye a sòt jarèt. Se konsa, remake, chak dezyèm oswa konsa, de ba yo ekleraj moute nan wouj, yo te konpare yo nan òdinatè an. Lè sa a, si ba a gwo ak nan ti kras ba yo soti nan lòd, yo yo te échanges pou mwen. Koulye a, sa a se ekstrèmman fatigan yo gade sa a, sètènman, pou trè long, men remake nan takeaway-- ba gwo k ap deplase a dwat la, ti kras ba deplase ou nan bò gòch la. Se pou yo avote pwosesis sa a ak vitès sa a leve yo dwe anpil pi vit, se konsa nou kapab jwenn yon sans wo nivo nan sa ki, tout bon, sòt jarèt ap fè. Vreman vre, li nan ebulisyon jiska la bò men dwat nan lis la, oswa etalaj la, ba yo pi gran. Ak Kontrèman, ba yo ti kras yo se ebulisyon wout yo desann nan bò gòch la, kwake nan yon apante pi vit pase nou deja te fè sa. Se konsa, pi rèd yo wè ak moun, men vizyèlman sa a, se tout bon ki sa te pase. Men, kite a eseye yon fondamantalman diferan apwòch kounye a. Ann eseye yon diferan algorithm kijan nou gen ou mesye kòmanse nan sa yo orijinal pozisyon, ki te lòd sa a isit la. Li kite yo ale pi devan kounye a. Men, mwen pral fè yon bagay menm ki pi senp, dwa? Nan retrospective, échanjé pèr ankò e ankò, prèske yon ti kras entelijan. Se pou yo fè bagay sa yo menm plis naivman, kote si mwen vle sòt jan sa yo, kite m 'jis kenbe kap pou eleman ki pi piti. Se konsa, kounye a, 4 se nan pi piti nimewo mwen te wè. Mwen pral sonje sa a. Pa gen, 2 a se pi bon, ak sonje ke. 1 se menm pi piti. 3, 7, 5. OK. One-- sa ki nan non ou ankò? Artie: Artie. DAVID Malan: Artie. Se konsa, Artie, ale pi devan. Mwen pral rale ou soti nan liy la. Si ou te kapab tounen isit la. Apre sa, mwen bezwen pou fè plas pou li. Nou gen yon pwen desizyon isit la. Ki jan nou ta ka fè plas pou Artie isit la nan kòmansman an ki kote nimewo 1 ki dwe? ODYANS: Shift. DAVID Malan: OK, nou te kapab chanje tout moun. Men, pwopoze yon optimize. Ki santi l yon ti kras anmèdan pou mwen pou m mande kat moun pou avanse pou pi tout wout la desann. Ki lòt bagay mwen te kapab fè? ODYANS: Chanje yo. DAVID Malan: Chanje yo. Ak sa ki nan non ou ankò? JACOB: Jakòb. DAVID Malan: Jakòb, deplase. Pi plis efikas jis gen Jakòb kote swap ak Artie, kòm opoze a fòse tout kat nan jan sa yo, di ou mèsi anpil, pozisyon kòrèk yo. Ki sa ki nan bèl sou Artie kounye a, li se nan pozisyon kòrèk l 'yo. Se pou yo fè sa a ankò. 2, sa a, se nimewo ki pi piti a mwen te wè. 3, 7, 5. OK. 2 se definitivman pi piti a. pa gen fè nenpòt ki travay. Se pou yo fè l 'ankò. 6. Pi piti a? 8. Non. 4? Ooh. Kite m 'sonje 4. 3. Kite m 'sonje 3. 7, 5. Pi piti nimewo Mwen te wè sou pas sa a se 3. Si w ta vin sou deyò. Kote nou prale koulye a mete ou? Ak sa ki nan non ou? Alanna: Alanna. DAVID Malan: Alanna, nou ap pral fè yo mete w deyò. Men sa se pi efikas, nan jis swap de moun, pase yo gen plizyè moun ki aktyèlman eskive sou. Koulye a, kite a fè sa ankò. Mwen pral chwazi 4, se konsa soti deyò. Ak ki moun ki k ap pase pou avanse pou pi? Nimewo 8, nan kou. Si m 'kounye a jwenn nimewo 5, soti deyò. Nimewo 8 nan ale nan jwenn degèpi ankò. Mwen kounye a pral jwenn nimewo 6 nan plas li. 7 nan plas li. 8 nan plas li. Ki sa nou jis te fè kounye a se yon bagay yo rele sòt seleksyon, epi si nou visualized sa a, li la ale nan santi yon ti kras diferan. Ann al pi devan epi sa a soti nan meni isit la, sa visualization-- kite a chanje sa a to-- vin sou, Firefox. Se pou nou chanje sa a sòt seleksyon an. Li kite yo vitès li moute tankou anvan, epi yo kòmanse vizyalizasyon la kounye a. Epi sa a algorithm gen yon santi yo diferan nan li. Sou chak iteration, franchman, li nan menm plis dwat. Mwen jis chwazi eleman ki pi piti. Koulye a, franchman, mwen te resevwa yon ti kras chans ke tan, nan ke li Ranje super-vit. Eleman yo te o aza. Li pa, kòm n ap pètèt wè, fondamantalman pi vit. Men, kite a wè yon twazyèm ak dènye apwòch isit la tankou sa ki k ap pase sou. Se konsa, kite a ale pi devan ak Reyajiste ou nèg youn final tan yo dwe nan lòd sa a isit la. Epi, koulye a, mwen pral gen yon ti kras pi plis entelijan, jis yo awondi soti algoritm nou an. Mwen pral fè sa. Mwen pral pa ale retounen ak lide anpil. Franchman, Mwen fatige nan tout Travelers sa a. Mwen jis pral pran sa mwen bay nan kòmansman an nan lis la, ak mwen pral sòt ki Lè sa a, epi gen. Se konsa, isit la nou yo. Nimewo 4. Mwen pral insert nimewo 4 nan yon lis Ranje. Fè. Mwen reklame kounye a, ak jis fè sa a plis klè, se pati sa a nan lis mwen an Ranje. Li nan kalite yon reklamasyon estipid, men tout bon 4 se Klase nan yon lis nan gwosè yon sèl. Koulye a, mwen pral pran sou nimewo 2. Nimewo 2 Mwen kounye a ale nan insert nan plas la dwat. Se konsa, kote 2 apatni? Li evidan, sou isit la. Se konsa, ale pi devan epi deplase tounen, si ou te kapab. Ak poukisa yo pa ou nèg jis pran mizik ou kanpe avèk ou tan sa a. Li kite yo lafòs insert ou nan konmansman an nan lis la. Se konsa, yon travay ti kras pi plis. Mwen te gen pou avanse pou pi Jakòb alantou li, ak sa ki nan non ou? Amin: Amin. DAVID Malan: Amin. Men, omwen mwen pa t 'ale retounen ak lide. Mwen jis pran bagay sa yo ke mwen ale. Mwen jis mete yo nan plas la dwat. 6, sa a se aktyèlman trè fasil. Se pou nou insert ou lòt bò a, si ou jis te vle deplase sou yon ti kras. 8 Nimewo, tou trè fasil. Dwa sou la. Modi li. Nimewo 1 nou pa kapab jis swap ak Amin isit la, paske sa k ap pase dezòd yo lòd la. Se konsa, nou gen yo dwe yon ti kras pi plis entelijan. Se konsa, Artie, si ou te kapab do moute pou yon moman. Ann al pi devan epi chanjman kounye a, kontrèman ak algoritm anvan nou an, pou fè plas pou Artie dwa isit la nan kòmansman an. Se konsa, nan fen jounen an, mwen se kalite fè sa m 'te vle pou fè pou evite anvan. Se konsa, algorithm mwen an se sòt nan ranvèse, entelektyèlman, soti nan ki sa li orijinal te ye a. Mwen jis ap fè deplasman an nan yon pwen diferan. Koulye a, mwen nan 3. Oh, modi. Nou dwe fè plis travay ankò. Se konsa, kite a pouse ou deyò. Se pou yo deplase 8, 6, 4-- oh oh-- ak 3 ki pral ale dwa gen. Se konsa, omwen ekonomi ti tay tan sa a. 7, pa twòp travay yo dwe fè. Se konsa, si ou vle pòp tounen, se pou yo insert ou. Epi anfen, 5, si ou vle pòp tounen, nou bezwen chanjman ou, ou, ou, jouk senk se nan plas. Se konsa, kounye yo wè sa a nan yon wo nivo grafikman, kite a fè sa a algorithm vizyalizasyon youn plis tan. Se konsa, sa nou pral rele sòt ensèsyon. Nou pral kouri li menm jan vit, epi yo kòmanse li isit la. Epi li, tou, gen yon santi diferan. Li nan sòt de jwenn pi bon ak pi bon, men li pa janm pafè jouk tan mwen ale nan e ki lis nan sa yo twou vid ki genyen. Paske, ankò, mwen sèlman pran sa ki Mwen te ba yo de gòch a dwat. Se konsa, mwen pa t 'jwenn konsa chans ke tout bagay te pafè. Se poutèt sa nou te gen sa yo ti kras mispositions ke nou fiks sou tan. Se konsa, tout nan algoritm sa yo sanble yo kouri nan mach yon ti kras diferan. An reyalite, ki ta ou di se pi bon an oswa pi rapid la byen lwen tèlman? Sòt jarèt, premye a? Seleksyon sòt, dezyèm lan? Sòt ensèsyon, twazyèm lan? Mwen tande kèk kalite seleksyon. Lòt panse? Se konsa, li vire soti ke tout nan sa yo algoritm yo se fondamantalman jis kòm efikas kòm chak other-- oswa, Kontrèman, menm jan rezèvwa kòm youn ak lòt, paske nou ka fè fondamantalman pi bon pase tout twa nan algoritm sa yo. Epi sa a, yon ti jan nan yon manti blan, tou. lè m 'di kòm efikas oswa kòm rezèvwa, sa a, se omwen pou valè super-gwo nan n. Lè nou gen jis wit moun isit la, oswa petèt 50 oswa konsa ba sou ekran an, ou pral absoliman remake diferans ki genyen nan mitan twa algoritm sa yo. Men, jan n, kantite moun ki, oswa nimewo a nan nimewo, oswa nimewo a nan moun ki nan telefòn nan liv, oswa nimewo a nan paj wèb nan baz done Google la vin pi gwo ak pi gwo, nou pral wè ke tout twa nan sa yo algoritm yo aktyèlman trè pòv yo. Epi nou kapab fè fondamantalman pi bon pase sa. Se pou nou pran yon gade, finalman, nan sa ki algoritm sa yo ta ka son tankou nan la kontèks nan yon lòt moun kèk kòm byen pa fason pou sa a vizyalizasyon isit la ki pral prezante nou yon nimewo nan algoritm. Ann al pi devan epi felisite patisipan nou yo isit la, tout moun ki Ranje tèt yo trè byen. Si w ta renmen pran yon kado louvri. Ou ka kenbe nimewo ou kòm byen. Ak ki sa ou pral wè, ou pito tande, kounye a, se ke jan nou mete son nan chak nan sa yo ba ak asosye li ak lojisyèl an, diferan frekans nan son, ou ka vlope tèt ou plis audioly alantou ki sa chak nan bagay sa yo sanble. Premye a nan yo ki se sòt ensèsyon [Ton] Sa a se sòt jarèt. [Ton] Seleksyon sòt. [Ton] Yon bagay yo rele rantre sòt. [Ton] Gnome sòt. [Ton] Sa a li pou CS50. Nou pral wè ou nan Mèkredi. Konteur: Epi, koulye a, "Gwo twou san fon Refleksyon, "pa Daven Farnham. Poukisa li yon riban pou? Poukisa nou pa fè l 'pi byen? Mwen ta fè yon riban senk. [Ri]