DAVID Malan: Kull dritt. Aħna lura. Allura f'dan is-segment dwar il-programmazzjoni dak Ħsibt aħna'd tagħmel huwa taħlita ta 'affarijiet. Wieħed, tagħmel ftit ta 'xi ħaġa Hands-on, għalkemm bl-użu ta aktar jilgħab environment-- ipprogrammar waħda li hija dimostrattiv ta eżattament it-tipi ta 'ideat aħna kont qed jitkellem dwar, iżda ftit aktar formali. Tnejn, tħares lejn uħud mill -modi aktar tekniċi li programmer fil-fatt ssolvi problemi bħall-problema tiftix li ħarisna lejn qabel u ukoll iżjed fundamentali problema interessanti tal-għażla. Aħna biss assumiet mill-nikseb go li dak il-ktieb tat-telefon kien magħżula, iżda li waħdu huwa attwalment tip ta ' problema iebsa ma 'bosta modi differenti biex issolviha. Allura aħna ser tuża dawn bħala klassi ta 'problemi rappreżentant ta 'affarijiet li jista 'jiġi solvuti b'mod ġenerali. U allura aħna ser nitkellmu dwar f'ċertu dettall liema huma msejħa dejta structures-- modi fancier bħal listi marbuta u t-tabelli hash u siġar li programmer kieku attwalment użu u ġeneralment jużaw fuq whiteboard li żebgħa stampa ta 'dak li hu jew hi envisions għall-implimentazzjoni xi biċċa ta 'softwer. Mela ejja jagħmlu l--idejn fuq porzjon ewwel. Hekk biss tikseb idejk maħmuġ ma ' ambjent imsejħa scratch.mit.edu. Din hija għodda li nużaw fil-klassi undergraduate tagħna. Anki jekk huwa ddisinjat għall-etajiet 12 u sa, nużawha għall-up parti minn dak pjuttost ftit peress li huwa sabiħ, gost Mod grafika ta 'tagħlim ftit xi ħaġa dwar l-ipprogrammar. Allura ras għal dak URL, fejn inti għandha tara paġna pjuttost bħal dan, u jimxi 'l quddiem u kklikkja Ingħaqad Scratch fil kantuniera u jagħżlu username u password u finalment nikseb yourself l scratch.mit.edu account--. Ħsibt I d jużaw dan bħala opportunità ewwel biex juru din. A kwistjoni ħarāu il-mistrieħ dwar dak Kodiċi attwalment tidher qiesha. U konna nitkellmu il-mistrieħ dwar Ċ, fi particular-- partikolarment livell aktar baxx f'lingwa anzjani. U jien biss għamlet a quick Google Tfittxija biex isibu kodiċi C għal tfittxija binarja, l-algoritmu li aħna użati biex tfittex dak il-ktieb tat-telefon qabel. Dan l-eżempju partikolari, naturalment, ma tfittxija ktieb tat-telefon. Hija biss tfittxijiet mazz sħiħ ta ' numri fil-memorja tal-kompjuter. Imma jekk inti tixtieq li biss jiksbu viżwali sens ta 'dak l-ipprogrammar attwali lingwa Dehra, jidher ftit xi ħaġa bħal din. Allura huwa madwar 20-plus, 30 jew hekk linji ta 'kodiċi, iżda l-konverżazzjoni aħna wara li kienu fuq waqfa kien dwar kif dan fil-fatt gets morphed fis żero u dawk u jekk inti ma tistax sempliċement imorru lura li proċess u jmorru minn żero u dawk lura għall-kodiċi. Sfortunatament, il-proċess hija tant trasformattiv li huwa ħafna aktar faċli minn qal jsir. I marru quddiem u effettivament warrab dak il-programm, Binarju Tfittxija, fis żero u dawk permezz ta ' programm imsejjaħ The kompilatur li I jiġri li jkollhom hawn dritt fuq Mac tiegħi. U jekk inti tħares lejn l-iskrin hawn, li jiffoka speċifikament fuq dawn nofs sitt kolonni biss, tkun taf tara biss żerijiet u dawk. U dawk huma l-żerijiet u dawk li compose eżattament dak il-programm tiftix. U għalhekk kull blokki ta 'ħames bits, kull byte ta 'żero u dawk hawn, jirrapreżentaw xi istruzzjoni tipikament ġewwa ta 'kompjuter. U fil-fatt, jekk inti widnejna l kummerċjalizzazzjoni islogan "Intel ġewwa" - li, naturalment, ifisser biss għandek CPU Intel jew moħħ ġewwa l-kompjuter. U dak li jfisser li tkun CPU hu li inti għandek sett istruzzjoni, biex ngħidu hekk. Kull CPU fid-dinja, ħafna minnhom magħmula minn Intel dawn il-ġranet, jifhem finit numru ta 'struzzjonijiet. U dawk l-istruzzjonijiet huma f'livell tant baxx kif żid dawn iż-żewġ numri flimkien, immultiplika dawn iż-żewġ numri flimkien, jimxu din il-biċċa ta 'data minn hawn li hawn fil-memorja, ħlief din il informazzjoni minn hawn hawn fil-memorja, u għalhekk forth-- hekk ħafna, ħafna Livell baxx, dettalji kważi elettroniċi. Iżda ma 'dawk matematiċi operazzjonijiet akkoppjat ma 'dak li aħna diskussa aktar kmieni, -rappreżentazzjoni tad-data kif żerijiet u dawk, jistgħu inti tibni up kollox li l-kompjuter tista 'tagħmel illum, kemm jekk huwa testwali, grafika, mużikali, jew mod ieħor. Allura dan huwa faċli ħafna li tinkiseb mitlufa fil-ħaxix ħażin ta 'malajr. U hemm ħafna ta ' isfidi sintattiċi li biha jekk inti tagħmel l-aktar sempliċi, stupidest ta typos ebda wieħed mill-programm se taħdem tkun xi tkun. U hekk minflok li jużaw lingwa bħal Ċ dalgħodu, Ħsibt li jkun aktar divertenti biex fil-fatt jagħmlu xi ħaġa aktar viżwali, li filwaqt iddisinjati għat-tfal huwa attwalment manifestazzjoni perfetta ta 'programmazzjoni attwali language-- jiġri biss li tuża r-ritratti minflok test li jirrappreżentaw dawk l-ideat. Allura ladarba inti tabilħaqq jkollhom kont fuq scratch.mit.edu, ikklikkja l-Oħloq buttuna fil-quċċata xellug tas-sit. U inti għandek tara ambjent bħal l-waħda li jien ser tara fuq l-iskrin tiegħi hawn. U aħna ser jonfqu biss ftit ftit ta 'ħin jilagħbu hawn. Ejja naraw jekk aħna ma tistax kollox isolvu xi problemi flimkien fil-mod li ġej. Allura dak li int ser tara fi ħdan dan environment-- u fil-fatt biss let lili nieqaf. Huwa kwalunkwe persuna mhux hawn? Mhux hawn? KOLLOX SEW. So let me punt ftit karatteristiċi ta 'dan l-ambjent. Allura fil-quċċata xellug tal-iskrin, aħna għandhom stadju Scratch, l biex ngħidu hekk. Scratch mhux biss l-isem ta din il-lingwa ta 'programmar; huwa wkoll l-isem tal-qattus li tara b'mankanza hemmhekk fil oranġjo. Huwa fuq stadju, hekk ferm simili I deskritti il-fekruna qabel li huwa fi rettangolari ambjent bord abjad. dinja kapaċi jaħdmu f'din qattus huwa limitat għal kollox għal dak rettangolu top up hemm. Sadanittant, dwar id-dritt naħa tal-lemin hawn, huwa biss żona skripts, ta ' lavanja vojt jekk inti se. Dan huwa fejn aħna qed tmur biex jiktbu Programmi tagħna fil ftit mument. U l-blokki tal-bini li aħna għandhom użu li tikteb din program---puzzle biċċiet, jekk inti will-- l dawk dritt hawn fin-nofs, u dawn qed kategorizzata billi funzjonalità. Allura, per eżempju, jien ser jimxi 'l quddiem u juru mill-inqas wieħed minn dawn. Jien ser jimxi 'l quddiem u kklikkja il-kategorija ta 'Kontroll top up. Allura dawn huma l-kategoriji up quċċata. Jien ser ikklikkja l-kategorija ta 'Kontroll. Pjuttost, jien ser ikklikkja l-Avvenimenti kategorija, l-ewwel waħda top up. U jekk inti tixtieq li ssegwi tul anke kif nagħmlu dan, int pjuttost jilqgħu biex. Jien ser ikklikkja u drag din l ewwel wieħed, "meta bandiera aħdar għafast." U mbagħad jien ser qatra hija biss bejn wieħed u ieħor fil-quċċata tal lavanji vojta tiegħi. U x'hemm sbieħ dwar Scratch hija li din il-biċċa puzzle, meta mrikkba ma 'puzzle ieħor biċċiet, huwa se jagħmel litteralment liema dawk il-biċċiet puzzle jgħidu li jagħmlu. Allura, per eżempju, Scratch huwa dritt issa fin-nofs tad-dinja tiegħu. Jien ser jimxi 'l quddiem u jagħżlu Issa, ejja ngħidu, il-kategorija Mozzjoni, jekk inti tixtieq li tagħmel l- same-- kategorija Mozzjoni. U issa Avviż għandi sħiħ mazz ta 'biċċiet puzzle hawn li, għal darb'oħra, it-tip ta jagħmlu dak li jgħidu. U jien ser jimxi 'l quddiem u drag u qatra l-blokk mixja dritt fuq hawn. U tinnota li malli ikollok qrib il-qiegħ tal-"bandiera aħdar għafast "buttuna, avviż kif linja bajda jidher, bħallikieku huwa kważi manjetiċi, hija trid tmur hemmhekk. Just let go, u se snap flimkien u l-forom se jaqblu. U issa inti tista 'forsi kważi raden fejn aħna qed tmur ma 'dan. Jekk inti tħares lejn l-istadju Scratch minn hawn u jfittxu għall-quċċata ta 'dan, tkun taf tara dawl aħmar, li stop sinjal, u bandiera aħdar. U jien ser jimxi 'l quddiem u watch screen-- tiegħi għal ftit mument, jekk inti tista '. Jien ser ikklikkja l- bandiera aħdar dritt issa, u huwa mċaqlaq dak li jidher li jkun ta '10 passi jew 10 pixel, 10 tikek, fuq l-iskrin. U hekk mhux li eċċitanti, iżda let me tipproponi anki mingħajr tagħlim dan, biss użu tal-stess let intuition-- tiegħek stess me nipproponi li inti figura kif jagħmlu Scratch mixja dritt off-istadju. Have lilu jagħmlu mod għall-lemin tal l-iskrin, it-triq kollha lejn il-lemin. Ħalli nagħtikom mument jew hekk biex wrestle ma 'dak. Inti tista 'tixtieq li tagħti ħarsa fil-kategoriji oħra ta 'blokki. Kull dritt. Hekk biss biex terġa, meta jkollna il-bandiera aħdar għafast hawn u jimxu 10 passi qed l istruzzjoni biss, kull darba I ikklikkja l-bandiera aħdar, dak li qed jiġri? Ukoll, li l-ġirja programm tiegħi. So I jistgħu jagħmlu dan forsi 10 darbiet manwalment, iżda dan iħoss ftit bit hackish, biex ngħidu hekk, li permezz tagħha Jien ma verament tissolva l-problema. Jien biss tipprova mill-ġdid u ġdid u għal darb'oħra u għal darb'oħra sal I sort tal aċċidentalment jinkiseb id-direttiva li I stabbiliti biex jinkiseb aktar kmieni. Imma nafu mill tagħna pseudocode qabel li hemm dan il-kunċett fil-programmazzjoni ta 'looping, tagħmel xi ħaġa mill-ġdid u għal darb'oħra. U hekk rajt li mazz ta 'inti li ntlaħaq għall-biċċa liema puzzle? Irrepeti sakemm. Allura nistgħu nagħmlu xi ħaġa bħal irrepeti sakemm. U dak did you jirrepetu sal eżattament? KOLLOX SEW. U let me go ma 'wieħed li l- kemmxejn aktar sempliċi għal ftit mument. Let me imorru quddiem u tagħmel dan. Avviż li, kif jista 'jkollok skoperti taħt Kontroll, hemm dan il-blokk ripetuta, li ma look like huwa li l-kbar. Hemm Ma tantx spazju fil bejn dawn iż-żewġ linji sofor. Imma kif xi wħud minnkom jista 'jkollok ndunat, jekk inti drag u qatra, avviż kif tikber biex timla l-forma. U inti tista 'anki CRAM aktar. Hija ser biss jibqgħu jikbru jekk inti drag u imbagħad jerġgħu jsiru fuq dan. U jien ma nafx x'hemm aħjar hawn, so let lili mill-inqas irrepeti ħames darbiet, għal Pereżempju, u mbagħad mur lura għall-istadju u kklikkja l-bandiera aħdar. U issa avviż huwa pjuttost mhux hemm. Issa xi wħud minnkom proposta, kif Victoria biss ma, irrepeti 10 darbiet. U li ġeneralment ma nikseb lilu-triq kollha, iżda kieku ma jkun hemm l-iktar b'saħħitha Mod arbitrarju jidhru kemm jiċċaqlaq biex jagħmlu? Liema jista 'jkun blokk aħjar minn irrepeti 10 darbiet jkun? Yeah, hekk għaliex ma tagħmel xi ħaġa għal dejjem? U issa let me jimxu din il-biċċa puzzle hemm ġewwa u jeħles ta 'dan wieħed. Issa avviż irrispettivament minn fejn Scratch jibda, imur mat-tarf. U Thankfully MIT, li jagħmel Scratch, biss jagħmel żgur li hu qatt ma tisparixxi kompletament. Inti tista 'dejjem grab denb tiegħu. U biss intuwittivament, għaliex ma hu jżomm miexja? Dak li qed jiġri hawn? Huwa jidher li jkunu waqfu, iżda imbagħad jekk I pick up u drag hu jżomm jixtiequ li jmorru hemmhekk. Għaliex huwa li? Tassew, kompjuter huwa litteralment se tagħmel dak li għid li tagħmel. Mela jekk inti told qabel tagħmel l- segwenti ħaġa dejjem, jimxu 10 passi, li għaddej biex iżommu għaddejjin u għaddejjin sal I hit-sinjal ta 'waqfien aħmar u twaqqaf il-programm għal kollox. Għalhekk anki jekk inti ma tagħmel dan, kif jista I jagħmlu Scratch jħaffu aktar madwar l-iskrin? Aktar passi, id-dritt? Allura minflok tagħmel 10 fi żmien, għaliex ma we imorru quddiem u l-bidla to-- dak li għandek propose-- 50? Allura issa jien ser ikklikkja l-aħdar bandiera, u fil-fatt, imur verament mgħaġġel. U dan, naturalment, huwa biss manifestazzjoni ta 'animazzjoni. X'inhi animazzjoni? Huwa biss turi li inti l-bniedem mazz sħiħ ta 'immaġni fissi tassew, tassew, tassew mgħaġġel. U hekk jekk aħna qed biss javżak lilu li jimxu aktar passi, aħna qed biss li jkollhom l-effett ikun li -bidla fejn huwa fuq l-iskrin l-unità aktar malajr għal kull ta 'żmien. Issa l-isfida li jmiss li jiena pproponejt kien li jkollhom lilu bounce off-tarf. U mingħajr ma jkunu jafu liema puzzle biċċiet exist-- għaliex dan huwa multa jekk inti ma tieħux il- istadju tal-challenge-- dak tridu li tagħmel intuwittivament? Kif għandna lilu bounce back u raba, bejn ix-xellug u tal-lemin? Yeah. Allura għandna bżonn xi tip tal-kondizzjoni, u aħna jidhru li jkollhom conditionals, hekk li jitkellmu, taħt il-kategorija ta 'Kontroll. Liema minn dawn il-blokok għandna probabilment tixtieq? Yeah, forsi "jekk, imbagħad." Allura tinnota li fost l-blokki isfar għandna hawnhekk, hemm dan il- "jekk" jew dan "jekk, inkella" blokk li se inessu biex jagħmlu deċiżjoni biex jagħmlu dan jew biex tagħmel dan. U inti tista 'anki bejta tagħhom biex tagħmel affarijiet multipli. Jew jekk inti ħadthom ma marret hawn għadhom, imorru quddiem għall-kategorija Sensing and-- ejja ara jekk huwa hawnhekk. Allura dak li blokk jista 'jkun utli hawnhekk biex tiskopri jekk hu barra mill-istadju? Yeah, avviż li xi wħud minn dawn il-blokok jista 'jiġi parametrized, biex ngħidu hekk. Huma jistgħu jkunu tip ta 'personalizzata, mhux b'differenza HTML bieraħ b'attributi, fejn dawk l-attributi tip ta customize-imġiba ta 'tag. Bl-istess mod hawnhekk, nista grab din jmissu blokk u l-bidla u titlob il-kwistjoni, huma inti tmiss il-mouse werrej bħall-cursor jew li huma inti jmiss it-tarf? So let me jmorru fi u jagħmlu dan. Jien ser zoom out għal mument. Let me grab din il-biċċa puzzle hawn, din il-biċċa puzzle dan, u jien ser jumble up għal ftit mument. Jien ser jimxu dan, tbiddel dan li tarf jmissu, u jien ser mozzjoni tagħmel dan. Allura hawn huma xi ingredjenti. I think stajt ltqajna kollox irrid. Kieku xi ħadd jixtieq jipproponi kif I jistgħu jgħaqqdu dawn forsi fuq għal isfel sabiex tissolva l-problema ta 'wara Scratch lemin għax-xellug għal-lemin biex jimxu xellug għal-lemin għax-xellug, kull ħin eżatt bouncing barra mill-ħajt? What do I trid tagħmel? Liema blokk għandi jaqbdu mal- "Bandiera meta jkunu ħodor għafast ewwel"? OK, so ejja tibda bil-"għal dejjem." Dak li jmur ġewwa jmiss? Xi ħadd ieħor. OK, jimxu passi. Kull dritt. Imbagħad dak? Mela allura l-, jekk. U avviż, anki jekk jidher mgħaffeġ flimkien sewwa, se biss jikber biex jimlew. Hija se jaqbżu biss fil fejn I jriduhom. U dak li nressaq bejn l jekk u l mbagħad? Probabbilment "jekk jmissu tarf." U l-avviż, għal darb'oħra, huwa kbir wisq għal dan, iżda se jikbru biex timla. U imbagħad ixgħel 15-il grad? Kemm gradi? Yeah, hekk 180 se spin me-triq kollha madwar. Mela ejja ara jekk sibt dan id-dritt. Let me zoom out. Let me drag scratch up. Hekk hu l-ftit mgħawġa issa, iżda li l-multa. Kif nista reset lilu faċilment? Jien ser iqarrqu ftit. Hekk jien żżid ieħor blokk, just biex tkun ċara. Irrid lilu għall-punt 90 grad lejn il-lemin fil-kontumaċja, hekk jien biss ser tgħidlu biex tagħmel dan programmatically. U here we go. Aħna jidhru li għamlu dan. Huwa ftit stramb, għaliex hu mixi rasu 'l isfel. Ejja sejħa dan bug. Li żball. A bug huwa żball fi programm, żball loġiku li jien, il-bniedem, magħmul. Għaliex huwa hu għaddej isfel? Did MIT screw up jew ma I? Yeah, I mean, mhuwiex s-MIT tort. Huma tatni biċċa puzzle li tgħid dawran xi numru ta 'gradi. U fl suġġeriment Victoria, Jien tidwir 180 grad, li hija l-intwizzjoni tajba. Iżda tidwir 180 gradi litteralment tfisser tidwir 180 grad, u li mhux verament dak li nixtieq, apparentement. Minħabba li mill-inqas hu fil din id-dinja żewġ dimensjonijiet, hekk tidwir hu verament għaddejjin flip lilu rasu 'l isfel. I probabbilment jridu jużaw dak blokk minflok, ibbażati fuq dak li tara hawn? Kif tista infasslu dan? Yeah, hekk aħna jista 'punt fid-direzzjoni opposta. U fil-fatt anki dan huwa mhux ser ikun biżżejjed, għaliex nistgħu biss kodiċi iebsa li tipponta xellug jew il-lemin. Inti taf dak li stajna nagħmlu? Jidher qisu għandna blokk konvenjenza hawn. Jekk I zoom fi, ara xi ħaġa li aħna nixtiequ hawn? Allura jidher qisu MIT għandu estrazzjoni mibnija fil hawn. Dan il-blokk jidher li huwa ekwivalenti li blokki oħra, plural? Dan il-blokk wieħed jidher li jkun ekwivalenti għal dan trio kollu ta 'blokki li għandna hawnhekk. Għalhekk jirriżulta li I jista 'jissimplifika tiegħi programm billi jwarrbu kollha ta 'dak u biss jitqiegħed dan fil hawn. U issa hu għadu ftit Buggy, u li l-multa għal issa. Aħna ser jitlaq minn dak jkun. Iżda programm tiegħi huwa saħansitra aktar sempliċi, u dan, wisq, ikun rappreżentattiv ta 'gowl fil programming-- huwa li idealment jagħmel kodiċi tiegħek kif sempliċi, kemm kompatti kemm jista 'jkun, filwaqt li jkunu kif li tinqara 'jkun malajr. Inti ma tridx li tagħmel dan hekk konċiż li huwa diffiċli li wieħed jifhem. Imma avviż stajt mibdula tliet blokki ma 'wieħed, u li l forsi ħaġa tajba. Stajt estratt bogħod l-kunċett ta 'verifika jekk int fuq it-tarf biss blokka waħda. Issa nistgħu jieħdu pjaċir bil dan, fil-fatt. Dan ma jżid tant valur intellettwali iżda valur jilgħab. Jien ser jimxi 'l quddiem u grab dan il-ħoss hawn. So let me jimxi 'l quddiem, u let me twaqqaf il-programm għal mument. Jien ser jirreġistra dan li ġej, jippermettu aċċess għal mikrofonu tiegħi. Here we go. Ouch. Ejja nippruvaw nerġgħu. Here we go. OK, I rreġistrati l-ħaġa ħażina. Here we go. Ouch. Ouch. Kull dritt. Issa għandi bżonn biex teħles minn dik. Kull dritt. Allura issa għandi reġistrazzjoni ta 'ftit "Ouch." Allura issa jien se jmorru quddiem u sejħa dan "Ouch." Jien se jmorru lura li skripts tiegħi, u issa Avviż hemm dan il-blokk li sejjaħ play ħoss "meow" jew play ħoss "Ouch." Jien ser drag dan, u fejn għandi tpoġġi din għall-effett komiku? Yeah, hekk issa huwa tip ta Buggy, għaliex issa dan block-- Avviż kif dan "jekk fit-tarf, bounce "huwa tip ta 'self-contained. So I bżonn biex jiffissaw dan. Let me imorru quddiem u tagħmel dan. Let me jeħles ta 'dan u jmorru lura li oriġinali tagħna, aktar deliberata funzjonalità. Mela "jekk jmissu tarf, allura" Irrid li jduru, kif Rabat proposta, 180 gradi. U ma nixtieq li play il-ħoss "Ouch" hemmhekk? Yeah, avviż huwa barra li blokka isfar. Allura dan, ukoll, ikun bug, imma stajt ndunat dan. Hekk jien ser jkaxkru up hawn, u avviż issa huwa ġewwa l-"jekk". Allura l-"jekk" huwa dan it-tip ta 'prodotti simili blot-driegħ simili thats biss ser nagħmlu dak li hu ġewwa ta 'dan. Mela issa jekk jien zoom fil ir-riskju ta annoying-- KOMPJUTER: Ouch, Ouch, Ouch. DAVID Malan: U se biss jmorru fuq għal dejjem. Issa biss biex iħaffu l-affarijiet hawn, let me imorru quddiem u tiftaħ, ejja say-- let me go għal xi ta 'għalf tiegħi stess mill-klassi. U let me jiftħu, ejja ngħidu, dan waħda magħmula minn wieħed mill fellows tagħlim tagħna ftit ta 'snin ilu. Allura xi wħud minnkom jista recall din il-logħba mill-imgħoddi, u huwa attwalment notevoli. Anki jekk aħna ghamilt l aktar sempliċi ta 'programmi dritt issa, ejja jikkunsidraw liema dan attwalment tidher qiesha. Let me hit play. Allura f'dan il-logħba, aħna għandna Żrinġ, u jużaw il-vleġġa keys-- hu jieħu passi akbar minn I remember-- I jkollhom kontroll fuq din il Żrinġ. U l-għan huwa li tikseb madwar il busy triq mingħajr ma tinkorri fis-karozzi. U ejja see-- jekk immur up here, I għandek tistenna għal log li tiskrollja permezz. Din il iħoss bħal bug. Din hija tip ta 'bug. Kull dritt. Jien fuq dan hawn, hemm, u allura inti żżomm għaddejjin sakemm ikollok kollha l żrinġijiet għall-pads lily. Issa dan jista 'tfittex l-aktar kumplessi, imma ejja jippruvaw jiksru din tinqasam mentalment u verbalment fi blokki komponenti tiegħu. Allura hemm probabilment puzzle biċċa li ma rajniex s'issa iżda li jirrispondu għall keystrokes, affarijiet I hit fuq it-tastiera. Allura hemm probabbilment xi tip ta ' blokk li tgħid, jekk ċavetta huwa daqs up, imbagħad tagħmel xi ħaġa ma Scratch-- forsi jġorrhom 10 passi b'dan il-mod. Jekk ċavetta isfel hija ppressata, jimxu 10 passi B'dan il-mod, jew ċavetta xellug, jimxu 10 passi B'dan il-mod, 10 passi dik. Stajt daru ċar l-qattus fi Żrinġ. Allura li jinsab biss meta l- kostum, kif sejħiet Scratch it-- aħna biss importati stampa ta 'l-Żrinġ. Imma dak li inkella qed jiġri? Liema linji oħra ta 'kodiċi, liema biċċiet puzzle oħrajn ma Blake, sħabi tagħlim tagħna, użu f'dan il-programm, apparentement? X'hemm teħid kollox move-- liema programmazzjoni tibni? Mozzjoni, sure-- hekk il jimxu blokk, għall-żgur. U x'hemm dan blokka mossa ġewwa ta ', x'aktarx? Yeah, xi tip ta 'linja, forsi dejjem blokk, forsi irrepeti block-- irrepeti sakemm blokk. U dan huwa dak li jagħmlu l-zkuk u -pads lily u kollox mossa ħaġa oħra quddiem u lura. Huwa biss jiġri endlessly. Għaliex huma xi wħud mill-karozzi jiċċaqilqu aktar mgħaġġla mill-oħrajn? Dak li hu differenti dwar dawk il-programmi? Yeah, probabbilment xi wħud minnhom qed tieħu aktar passi f'daqqa u xi wħud minnhom inqas passi f'daqqa. U l-effett viżwali huwa mgħaġġel kontra kajman. What do you think ġara? Meta sirt Żrinġ tiegħi it-triq kollha fl-triq u l-xmara fuq il-kuxxinett lily, xi ħaġa notevoli ġara. Dak li ġara hekk kif għamilt dan? Hija waqfet. Dik Żrinġ waqfet, u Sibt tieni Żrinġ. Allura dak li jibnu irid ikun użati hemmhekk, liema karatteristika? Yeah, hekk hemm xi tip ta ' "Jekk" jiġi kkundizzjonat up hemm, wisq. U jirriżulta out-- aħna ma tara this-- imma hemm blokki oħra fil hemmhekk li tista 'tgħid, jekk inti tmiss ħaġa oħra fuq l-iskrin, jekk int jmissu l-kuxxinett lily, "imbagħad." U allura li meta aħna jagħmlu t-tieni Żrinġ jidhru. Għalhekk anki jekk din il-logħba hija ċertament ħafna datat, anki jekk l-ewwel daqqa t'għajn hemm daqstant għaddej Blake on-- u ma Whip dan up f'żewġ minuti, hija probabbilment ħadet lilu diversi siegħa biex joħolqu din il-logħba ibbażata fuq il-memorja jew videos tiegħu tal-verżjoni imgħoddi ta 'dan. Imma kollha ta 'dawn l-affarijiet ftit għaddejjin fuq l-iskrin b'mod iżolat jsarrafx biss fl dawn sempliċi ħafna movimenti constructs-- jew dikjarazzjonijiet bħal konna diskussi, loops u kondizzjonijiet, u li dwar dan. Hemm ftit karatteristiċi oħra fancier. Xi wħud minnhom huma purament estetiċi jew akustiku, bħall-ħsejjes I biss lagħbu. Iżda għall-parti l-kbira, inti għandhom f'din il-lingwa, Scratch, kollha ta 'l fundamentali blokki tal-bini li inti jkollhom fis-C, Java, JavaScript, PHP, Ruby, Python, u kull numru ta 'lingwi oħra. Kwalunkwe mistoqsijiet dwar Scratch? Kull dritt. Allura aħna mhux se adsa fis-fond għall Scratch, għalkemm inti qed jilqgħu dan il-weekend, speċjalment jekk ikollok tfal jew nieces u nephews u bħal dawn, li jintroduċuhom lil scratch. Huwa fil-fatt wonderfully jilgħab ambjent ma ', bħala awturi tagħha say, limiti għolja ħafna. Anki jekk aħna beda bil ħafna dettalji ta 'livell baxx, inti tista 'verament tagħmel pjuttost ftit magħha, u dan huwa forsi dimostrazzjoni ta 'eżattament dak. Imma ejja issa transizzjoni għal ftit aktar problemi sofistikati, jekk inti se, magħrufa bħala "tiftix" u "Issortjar," b'mod aktar ġenerali. Kellna dan il-ktieb tat-telefon earlier-- hawn xulxin biss għall discussion-- li konna kapaċi li jfittxu b'mod aktar effiċjenti minħabba li ta 'suppożizzjoni sinifikanti. U biss li tkun ċara, liema suppożizzjoni kienet I jagħmlu meta titfittex permezz ta 'dan il-ktieb tat-telefon? Dak Mike Smith kien fl -ktieb tat-telefon, għalkemm I jkunu jistgħu jimmaniġġjaw -xenarju mingħajrha hemm jekk I biss waqfet qabel iż-żmien. Il-ktieb huwa alfabetiku. U li l-ħafna ġenerużi suppożizzjoni, peress li tfisser someone-- Jien xorta ta 'tqattigħ Minn corner, bħal I am aktar malajr minħabba xi ħadd inkella għamilt ħafna xogħol iebes għalija. Imma x'jiġri jekk il-phone ktieb kienu mhux magħżul? Forsi Verizon ltqajna għażżien, biss threw ismijiet u n-numri ta 'kulħadd fil hemm forsi fl-ordni li fih ikunu iffirmaw għal servizz tat-telefon. U kemm ħin ma jieħdu me li ssib xi ħadd bħal Mike Smith? 1000 telefon paġna book-- kemm paġni għandi tfittex permezz? Kollha kemm huma. Inti xorta ta 'barra ta' xortih. Inti litteralment għandek tħares lejn kull paġna jekk il-ktieb tat-telefon huwa biss saltwarjament magħżula. Inti tista 'tikseb xortik tajba u jsibu Mike fuq l-ewwel paġna, għaliex huwa kienet l-ewwel klijent għall-ordni servizz tat-telefon. Imma hu seta 'kien l-aħħar, wisq. Allura sabiex każwali mhix tajba. Allura jissoponi għandna biex issolvi l- ktieb tat-telefon jew fid-dejta xorta ġenerali li aħna kont qed tingħata. Kif nistgħu nagħmlu dan? Well, let me biss jippruvaw eżempju sempliċi hawn. Let me imorru quddiem u toss Ftit numri fuq il-bord. Ejja ngħidu n-numri li għandna huma, ejja ngħidu, erba ', tnejn, waħda, u tlieta. U, Ben, sort dawn in-numri għalina. OK tajjeb. Kif sirt tagħmel dan? Kull dritt. Allura tibda bl-iżgħar valur u l-ogħla, u li tassew intwizzjoni tajba. U tirrealizza li aħna bnedmin huma attwalment pretty tajba fuq soluzzjoni ta 'problemi bħal din hija, għallinqas meta d-data hija relattivament żgħir. Hekk kif tibda jkollha mijiet ta 'numri, eluf ta' numri, miljuni ta 'numri, Ben probabbilment ma setgħux jagħmlu dan pjuttost li mgħaġġel, jekk wieħed jassumi li kien hemm nuqqasijiet fil-numri. Pjuttost faċli biex għodd sa miljun xort'oħra, biss jieħdu ħafna ħin. Allura l-algoritmu li ħsejjes bħal Ben użat biss issa kien tfittxija għall-iżgħar numru. Allura anke jekk aħna bnedmin jistgħu jieħdu fil-lott ta 'informazzjoni viżwalment, kompjuter huwa attwalment ftit aktar limitata. Il-kompjuter jista 'biss tħares lejn byte wieħed kull darba jew forsi erba 'bytes fi time-- dawn il-jiem forsi 8 bytes bi time-- iżda numru żgħir ħafna ta bytes fi żmien partikolari. Allura peress li aħna verament ikollhom erba 'valuri separati here-- u inti tista 'taħseb Ben bħala li blinders fuq li kieku kien il-kompjuter tali li ma jistax jara xi ħaġa oħra minn numru wieħed kull time-- hekk aħna ġeneralment se tassumi, bħal fil Ingliż, aħna ser jinqara mill-lemin għax-xellug. Allura l-ewwel numru Ben probabbilment ħares lejn kienet erba 'u mbagħad malajr ħafna induna li l-pretty big number-- let me ikompli jfittex. Hemm tnejn. Stenna minuta. Tnejn huwa iżgħar minn erbgħa. Jien ser tiftakar. Żewġ issa huwa l-iżgħar. Issa one-- li, anki aħjar. C'est saħansitra iżgħar. Jien ser tinsa dwar żewġ u biss ftakar wieħed issa. U jista 'hu tieqaf tfittex? Ukoll, huwa jista ibbażata din l-informazzjoni, imma hu d-tfittxija aħjar il-bqija tal-lista. Minħabba dak li jekk żero kienu fil-lista? X'jiġri jekk negattiv wieħed kellu fil-lista? Huwa biss jaf ir-risposta tiegħu hija korretta jekk hu b'mod eżawrjenti ċċekkjati l-lista kollha. Allura aħna nħarsu lejn il-bqija ta 'dan il-. Three-- li kien ħela ta 'ħin. Ghandek unlucky, imma jien kien xorta korrett li jagħmlu hekk. U hekk issa hu probabbilment magħżula l-iżgħar numru u biss jitqiegħed fil-bidu tal-lista, kif jien ser nagħmlu hawnhekk. Issa ux'għamiltu jmiss, anki jekk inti ma taħseb dwarha kważi sa dan il-punt? Irrepeti l-proċess, hekk xi tip ta 'linja. Hemm idea familjari. Allura hawnhekk huwa erbgħa. Li bħalissa hija l-iżgħar. Li l-kandidat. Mhux iktar. Issa stajt tidher tnejn. Dik hija l-iżgħar li jiġi element. Three-- li mhux iżgħar, hekk issa ben jistgħu ġewwieni l-tnejn. U issa aħna irrepeti l-proċess, u naturalment tlieta gets miġbud 'il barra li jmiss. Irrepeti l-proċess. Erba gets miġbud 'il barra. U issa aħna qed barra ta 'numri, sabiex il-lista għandha tiġi magħżula. U fil-fatt, dan huwa algoritmu formali. A xjentist kompjuter ikun sejħa dan "it-tip ta 'għażla," l-idea li jkun tip ta ' lista iteratively-- darb'oħra u għal darb'oħra u għal darb'oħra tagħżel l-iżgħar numru. U x'hemm sbieħ dwar dan huwa huwa biss hekk darn intuwittivi. Huwa tant sempliċi. U inti tista 'tirrepeti l-istess operazzjoni mill-ġdid u għal darb'oħra. Huwa sempliċi. F'dan il-każ kien mgħaġġel, iżda kemm żmien ma attwalment jieħdu? Ejja jagħmilha jidhru u tħoss ftit aktar tedious. Allura wieħed, tnejn, tlieta, erba ', ħames sitta, seba ', tmien, disa', 10, 11, 12, 13, 14, 15, 16-- numru arbitrarju. I biss riedu aktar din il żmien minn sempliċiment il-erbgħa. Mela jekk stajt ltqajna kollha mazz ta 'numri now-- dan lanqas ma jimpurtax dak li are-- tal let jaħsbu dwar dak li dan algoritmu verament huwa simili. Ejja ngħidu li jeżistu numri hemmhekk. Għal darb'oħra, ma jimpurtax liema dawn huma, iżda dawn qed każwali. I am li tapplika algoritmu Ben. I bżonn li jagħżlu l-iżgħar numru. X 'nagħmel? U jien ser fiżikament tagħmel dan il-ħin li jaġixxu out. Looking, tfittex, tfittex, tfittex, tfittex. Biss mill-ħin I nikseb biex l-aħħar tal-lista jista Nifhem l-iżgħar in-numru kien żewġ dan iż-żmien. Wieħed mhux fil-lista. So I stabbilixxit tnejn. What do I do jmiss? Looking, tfittex, tfittex, tfittex. Issa sibt in-numru sebgħa, għaliex hemm lakuni f'dawn numbers-- iżda biss arbitrarja. Kull dritt. Allura issa I tista 'tpoġġi isfel sebgħa. Looking tfittex, tfittex. Issa jien jekk wieħed jassumi, ta Naturalment, li Ben ma għandhom RAM żejda, extra memorja, minħabba li, naturalment, Jien tħares lejn l-istess numru. Żgur I setgħet mfakkar kollha ta 'dawn in-numri, u li assolutament veru. Imma jekk Ben jiftakar kollha tan-numri hu jidher, hu ma verament magħmula progress bażiku għaliex huwa jkun diġa jaf il-kapaċità ta 'tiftix permezz tan-numri fuq il-bord. Ftakar kollha tal- numri ma jgħinx, għax xorta tista bħala kompjuter tħares biss lejn, konna qal, numru wieħed kull darba. Hekk hemm ebda tip ta 'iqarrqu hemmhekk li inti tista 'lieva. Allura fir-realtà, kif iżommu tiftix il-lista, I litteralment għandek biss iżommu għaddejjin quddiem u lura permezz tagħha, tnittif out -iżgħar li jiġi numru. U kif inti tista 'tip ta' jiddeduċu minn movimenti iblah tiegħi, dan biss gets ħafna tedious malajr ħafna, u I jidhru li jkunu għaddejjin lura u raba, quddiem u lura pjuttost ftit. Issa biex ikunu ġusti, I ma jkollhom imorru daqshekk, ukoll, ejja see-- li tkun ġusta, I ma jkollhom jimxu pjuttost kif ħafna passi kull darba. Minħabba, naturalment, kif tagħżel numri mil-lista, il-lista li jifdal huwa jkollna iqsar. U hekk ejja jaħsbu dwar kif ħafna passi jien attwalment traipsing permezz ta 'kull darba. Fl-ewwel sitwazzjoni kellna 16 numri, u għalhekk maximally-- ejja biss tagħmel dan għal discussion-- I kellha tfittex permezz 16 numri li ssib l-iżgħar. Imma ladarba I mnittfa l l-iżgħar numru, kif twil kien l-lista li jifdal, tal-kors? Biss 15. Allura kemm-numri ma 'Ben jew għandi tfittex permezz-tieni darba madwar? 15, biss biex tmur u ssib l-iżgħar. Imma issa, naturalment, il-lista hija, wisq, iżgħar milli kienet qabel. Allura kif ħafna passi ma I għandek tieħu l-ħin li jmiss? 14 u mbagħad 13 u mbagħad 12, kif ukoll dot, dot, dot, sakemm jien xellug ma biss wieħed. Allura issa xjenzat kompjuter kieku jistaqsu, ukoll, dak ma dan kollu indaqs? Hija fil-fatt ekwilvalenti għal bejn konkreti numru li nistgħu ċertament do aritmetikament, iżda rridu nitkellmu dwar l-effiċjenza ta 'algoritmi ftit aktar formulaically, indipendenti mill kemm żmien il-lista hija. U għalhekk inti taf liema? Dan huwa 16, imma bħal I said qabel, ejja biss sejħa-daqs tal-problema n, fejn n hija xi numru. Forsi huwa 16, forsi huwa tlieta, forsi huwa miljun. I do not know. I do not care. What I verament irridu huwa formula li nista jużaw biex iqabblu din algoritmu kontra algoritmi oħra li xi ħadd jista 'pretensjoni huma aħjar jew agħar. Għalhekk jirriżulta li, u jien biss jafu dan mill-iskola grad, li dan attwalment xogħlijiet biex l-istess ħaġa bħala n tul n flimkien waħda fuq tnejn. U dan jiġri li jkun daqs, ta ' Naturalment, n kwadrat miżjud b'n fuq tnejn. Mela jekk jien ridt formula għal kemm ħafna passi kienu involuti fil tħares lejn kollha ta 'dawk in-numri mill-ġdid u għal darb'oħra u għal darb'oħra u għal darb'oħra, nixtieq ngħid huwa n kwadrat miżjud b'n fuq tnejn. Imma inti taf liema? Dan biss jistenna messy. I biss verament irridu sens ġenerali ta 'affarijiet. U inti tista 'recall minn iskola għolja li hemm hija l-kunċett ta 'ogħla terminu ordni. Liema minn dawn it-termini, il-n kwadrat, n, jew in-nofs, għandha l-aktar impatt matul iż-żmien? Ln ikbar gets, li dawn il-materji l-aktar? Fi kliem ieħor, jekk I plug fil-miljun, n kwadrat se tkun aktar probabbli il-fattur dominanti, għaliex miljun darba nnifisha hija ħafna akbar minn bejn wieħed u waħda addizzjonali miljun. Allura inti taf liema? Dan huwa tali darn kbir Numru jekk inti kwadru numru. Dan ma verament kwistjoni. Aħna biss jmorru transkonfinali li out u tinsieh. U hekk xjenzat kompjuter ngħid li l-effiċjenza ta 'din l-algoritmu huwa fuq l-ordni ta 'n squared-- I tfisser verament approssimazzjoni. Huwa tip ta 'bejn wieħed u ieħor n kwadrat. Maż-żmien, l-akbar u n akbar gets, dan hija stima tajba għal dak l- effiċjenza jew nuqqas ta 'effiċjenza ta 'dan algoritmu fil-fatt hu. U jien jidderivaw li, naturalment, mill-fatt jagħmlu l-matematika. Imma issa jien biss waving idejn tiegħi, minħabba I biss jridu sens ġenerali ta 'dan algoritmu. Hekk billi tuża l-istess loġika, sadanittant, ejja jikkunsidraw algoritmu ieħor aħna diġà ħares at-- tfittxija lineari. Meta I kien it-tiftix għall-book-- telefon mhux issortjar dan, it-tiftix permezz tat-book-- telefon aħna miżmuma qal li kien 1,000 passi, jew 500 passi. Imma ejja jiġġeneralizza din. Jekk hemm n paġni fil -ktieb tat-telefon, x'hemm il running time jew l- effiċjenza tat-tfittxija lineari? Huwa fuq l-ordni ta ' kemm passi li ssib Mike Smith jużaw tfittxija lineari, il- ewwel algoritmu, jew saħansitra t-tieni? Fl-agħar każ, Mike hija fl-aħħar tal-ktieb. Allura jekk il-ktieb tat-telefon tkun 1,000 paġni, għidna aħħar darba, fl-agħar każ, jista 'jieħu bejn wieħed u ieħor kif bosta paġni li ssib Mike? Bħall 1000. Huwa ta 'rbit superjuri. Huwa sitwazzjoni agħar possibbli. Iżda għal darb'oħra, aħna qed jitbiegħdu minn numri bħall 1,000 issa. Huwa biss n. Allura x'inhu l-konklużjoni loġika? Tfittxija Mike fil-telefon ktieb li għandu paġni n tista 'tieħu, fil-ħafna agħar każ, kemm passi dwar l-ordni ta 'n? U fil-fatt kompjuter xjentist ngħid li l-ħin taħdem, jew il- prestazzjoni jew effiċjenza jew ineffiċjenza, ta 'algoriżmu simili tfittxija lineari huwa fuq l-ordni ta 'n. U nistgħu japplikaw l-istess loġika tal-qsim xi ħaġa barra kif I biss għamlet għat-tieni algoritmu kellna mal-ktieb tat-telefon, fejn aħna marru żewġ paġni kull darba. Allura 1000 paġna telefon ktieb jista jqarrbuna 500 paġna dawriet, u wieħed jekk irridu doppju lura daqsxejn. Mela jekk ktieb tat-telefon tkun paġni n, iżda li aħna qed tagħmel żewġ paġni fi żmien, dan huwa bejn wieħed u ieħor dak? N fuq tnejn, b'tali mod li huwa simili nru fuq tnejn. Imma I għamel it-talba ta ' mument ilu li n matul two-- dak l-tip ta 'l-istess biss bħala n. Huwa biss fattur kostanti, xjenzjati tal-kompjuter ngħid. Ejja biss jiffoka fuq il-varjabbli, really-- -akbar varjabbli fil-ekwazzjoni. tfittxija Allura lineari, kemm jekk isir wieħed paġna fi żmien jew żewġ paġni fi żmien, huwa tip ta fundamentalment l-istess. Huwa għadu fuq l-ordni ta 'n. Imma jien tellgħu ma 'stampa tiegħi qabel li t-tielet algoritmu ma kienx lineari. Ma kienx linja dritta. Kien dik il-linja mgħawġa, u l- formola alġebrajka hemm kien dak? Log ta n-- hekk log bażi tnejn n. U aħna ma jkollhom imorru fis wisq Dettall ħafna fuq logaritmi illum, imma ħafna xjenzjati tal-kompjuter ma jkunux jistgħu anki jgħidlek liema l-bażi hija. Minħabba dan kollu biss Fatturi kostanti, biex ngħidu hekk, biss differenzi numeriċi żgħar. U għalhekk dan ikun komuni ħafna triq għal kompjuter partikolarment formali xjentisti fi abbord jew programmaturi fuq bord abjad fil-fatt argumenta li algoritmu huma se jużaw jew dak l-effiċjenza tal algoritmu tagħhom hu. U dan mhux neċessarjament xi ħaġa int tiddiskuti fid-dettall ħafna, iżda programmer tajba hija xi ħadd li jkollha solidu, l-isfond formali. Hu jista 'jitkellem għal inti f'dan it-tip ta 'passaġġ u fil-fatt jagħmlu argumenti kwalitattivi kif li tispjega għaliex algoritmu waħda jew biċċa waħda ta 'softwer huwa superjuri b'xi mod għall-ieħor. Għaliex inti tista 'ċertament biss run program persuna waħda u jgħodd in-numru ta 'sekonda li tieħu biex issolvi xi numri, u inti tista 'taħdem xi programm persuna l-oħra u jgħodd in-numru ta 'sekonda li tieħu. Iżda dan huwa mod aktar ġenerali li inti tista 'tuża biex tanalizza algoritmi, jekk inti se, biss fuq karta jew biss verbalment. Anki mingħajr ma ġestjoni tiegħu, mingħajr saħansitra jippruvaw inputs kampjun, inti tista 'sempliċement raġuni permezz tiegħu. U hekk ma kiri iżviluppatur jew jekk wara lilu jew lilha tip ta jargumentaw għalik għaliex algoritmu tagħhom, sigrieti tagħhom zalza għat-tiftix biljuni ta 'paġni tal-web għall-tiegħek kumpanija hija aħjar, dawn huma t-tipi ta 'argumenti li għandhom idealment ikunu jistgħu jagħmlu. Jew għall-inqas dawn huma -tipi ta 'affarijiet li ser toħroġ fid-diskussjoni, fi inqas f'diskussjoni formali ħafna. Kull dritt. Allura Ben propost xi ħaġa imsejħa sort għażla. Imma jien ser nipproponi li hemm modi oħra ta 'kif isir dan, wisq. What I ma verament simili dwar algoritmu Ben huwa li hu miżmum mixi, jew wara li lili jimxu, quddiem u lura u quddiem u lura u quddiem u lura. X'jiġri jekk minflok jien kienu jagħmlu xi ħaġa bħal dawn in-numri hawn u jien kienu biss jittrattaw ma 'kull Numru mbagħad kif jien taha? Fi kliem ieħor, hawn Lista tiegħi ta 'numri. Erba, wieħed, tlieta, tnejn. U jien ser jagħmlu dan li ġej. Jien ser daħħal in-numri fejn huma jappartjenu pjuttost milli tagħżel minnhom wieħed kull darba. Fi kliem ieħor, hawnhekk l-numru erbgħa. Hawn lista oriġinali tiegħi. U jien ser iżommu essenzjalment lista ġdida hawn. Allura dan huwa l-lista antika. Din hija l-lista l-ġdida. Nara l-għadd erbgħa ewwel. lista ġdida tiegħi hija inizjalment vojta, għalhekk huwa trivially il-każ li erba issa huwa assortiti lista. Jien biss tieħu l-għadd jien mogħti, u jien poġġietha fil-lista l-ġdida tiegħi. Huwa din il-lista l-ġdida magħżula? Yeah. Huwa stupid għaliex hemm biss wieħed Element, iżda huwa assolutament magħżula. M'hemm xejn barra mill-post. Huwa aktar interessanti, dan algoritmu, meta nimxi għall-pass li jmiss. Issa I jkollhom waħda. Allura wieħed, naturalment, tappartjeni fl- bidu jew it-tmiem ta 'din il-lista l-ġdida? Il-bidu. So I jkollhom jagħmlu xi xogħol issa. Stajt ilhom jieħdu xi libertajiet ma markatur tiegħi bi ftit tpinġija affarijiet fejn irrid minnhom, iżda li mhux verament preċiż fil-kompjuter. A kompjuter, kif nafu, għandha RAM, jew Random Access Memory, u li l-byte wieħed u byte ieħor u byte ieħor. U jekk ikollok gigabyte ta ' RAM, inti għandek biljun bytes, iżda dawn qed fiżikament f'post wieħed. Inti ma tistax biss jiċċaqalqu Jittieħed madwar billi tinġibed fuq il-bord fejn trid. Mela jekk lista l-ġdida tiegħi erba 'postijiet fil-memorja, sfortunatament il-erbgħa huwa diġà fil-post żbaljat. Allura biex daħħal in-numru wieħed I tista 'mhux biss tiġbed hawn. Dan il-post Memorja ma teżistix. Dan ikun qerq, u I ġew qerq pictorially għal ftit minuti hawn. Allura verament, jekk jien tixtieq li tqiegħed wieħed hawn, Għandi biex temporanjament kopja l-erba ' u mbagħad iwettqu l-waħda hemm. Dik il-multa, li l-korretta, dan huwa teknikament possibbli, imma tirrealizza li l-ħidma żejda. I ma biss jitqiegħed in-numru fil-post. I l-ewwel kellha timxi għal numru, mbagħad titqiegħed fil-post, so I tip ta 'irdoppja ammont tax-xogħol tiegħi. Sabiex iżommu dan f'moħħhom. Imma jien issa isir ma 'dan l-element. Issa nixtieq li grab-numru tlieta. Fejn, naturalment, ma jappartjenix? Bejn. I ma jistgħux iqarrqu jibqgħalu u biss jitqiegħed hemmhekk, minħabba li, għal darb'oħra, dan il-memorja huwa fil-postijiet fiżiċi. So I jkollhom kopja tal-erba ' u tpoġġi l-tlieta minn hawn. Mhux a big deal. Huwa biss pass wieħed addizzjonali again-- iħoss ħafna rħas. Imma issa I jimxu fuq il-tnejn. It-tnejn, naturalment, tappartjeni hawn. Issa tibda biex tara kif -xogħol jista 'pile up. Issa dak li nagħmel? Yeah, I għandhom jimxu l-erbgħa, I mbagħad ikollhom li kopja tal-tlieta, u issa I tista 'daħħal it-tnejn. U l-qabda ma 'dan algoritmu, interessanti biżżejjed, huwa li jissoponi għandna aktar estremi każ fejn huwa ejja ngħidu tmienja, seba, sitta, ħames, erba, tlieta, tnejn, waħda. Dan huwa, f'ħafna kuntesti, il agħar xenarju possibbli, minħabba li l-ħaġa darn huwa litteralment lura. Hija ma verament jaffettwaw algoritmu Ben, minħabba fl-għażla Ben sort hu għaddej biex iżommu jmorru quddiem u lura permezz tal-lista. U għaliex kien dejjem infittxu permezz tal-lista sħiħa jifdal, ma jimpurtax fejn l-elementi jkunu. Iżda f'dan il-każ ma ddaħħal tiegħi approach-- ejja tipprova dan. Allura wieħed, tnejn, tlieta, erba, ħames, sitt, seba ', tmien. Wieħed, tnejn, tlieta, erba, ħames, sitt, seba ', tmien. Jien ser tieħu l-tmien, u fejn ma nressaq dan? Ukoll, fil-bidu tal-lista tiegħi, għaliex din il-lista l-ġdida huwa magħżul. U jien jaqsmu out. Fejn nista 'tpoġġi l-seba? Darn dan. Jeħtieġ li jmorru hemm, hekk Għandi biex jagħmlu xi ikkupjar. U issa l-seba tmur hawn. Issa jien jimxu fuq il-sitta. Issa huwa saħansitra aktar xogħol. Tmienja irid imur hawn. Sebgħa irid imur hawn. Issa sitt tista 'tmur hawn. Now I grab-ħamsa. Issa l-tmien irid imur hawn, seba irid imur hawn, sitta irid imur hawn, u issa l-ħames u ripetuti. U jien pretty ħafna jmexxuh kontinwament. Għalhekk fl-aħħar, din il algorithm-- aħna ser sejħa hija inserzjoni sort-- attwalment għandha ħafna ta 'xogħol, wisq. Huwa biss differenti tip ta 'xogħol minn Ben. xogħol Ben kellu me going quddiem u lura l-ħin kollu, għażla tal-iżgħar li jiġi wara Element ġdid u għal darb'oħra. Allura kien dan it-tip ħafna viżwali ta 'xogħol. Dan il algoritmu ieħor, li għadu correct-- dan se x-xogħol done-- biss bidliet l-ammont ta 'xogħol. Jidher qisu inizjalment int iffrankar, għax int biss jittrattaw ma 'kull element bil-quddiem mingħajr mixi kollha -triq permezz tal-lista simili Ben kien. Iżda l-problema hija, speċjalment f'dawn F'każijiet crazy fejn dan kollu lura, int biss tip ta ' jipposponi x-xogħol iebes sakemm ikollok biex jiffissaw iżbalji tiegħek. U hekk jekk inti tista 'timmaġina dan il tmienja u sebgħa u sitt u ħames u aktar tard erba 'u tlieta u tnejn jiċċaqilqu mod tagħhom permezz tal-lista, konna biss biddel il- tip ta 'xogħol li aħna qed tagħmel. Minflok tagħmel dan fil- bidu ta 'iterazzjoni tiegħi, Jien biss tagħmel dan fil- aħħar ta 'kull iterazzjoni. Għalhekk jirriżulta li dan algoritmu, wisq, ġeneralment imsejħa sort inserzjoni, huwa wkoll fuq l-ordni ta 'n kwadrat. Huwa fil-fatt ebda aħjar, ebda aħjar fil-livelli kollha. Madankollu, hemm it-tielet approċċ Nixtieq jinkoraġġixi lilna biex tikkunsidra, li hija din. Allura jissoponi lista tiegħi, għas-sempliċità darb'oħra, huwa erba, wieħed, tlieta, two-- biss erba 'numri. Ben kellhom intwizzjoni tajba, intwizzjoni bniedem tajjeb qabel, li permezz tiegħu aħna fiss kollu lista eventually-- sort inserzjoni. I coaxed magħna flimkien. Imma ejja jikkunsidraw il- Mod sempliċi biex jiffissaw din il-lista. Din il-lista mhix riżolta. Għaliex? Bl-Ingliż, spjega għaliex mhuwiex fil-fatt magħżula. Xi jfisser li ma għandux magħżula? STUDENT: Mhuwiex sekwenzali. DAVID Malan: Mhux sekwenzjali. Agħti me eżempju. STUDENT: Tpoġġihom fl-ordni. DAVID Malan: OK. Agħti me eżempju aktar speċifiku. STUDENT: f'ordni axxendenti. DAVID Malan: Mhux axxendenti ordni. Ikunu aktar preċiżi. I do not know dak li jfisser minn axxendenti. X'hemm ħażin? STUDENT: L-iżgħar ta 'l- numri mhuwiex fl-ewwel ispazju. DAVID Malan:-iżgħar numru ta mhux fl-ewwel ispazju. Tkun aktar speċifika. Jien jibdew qabda. Aħna qed isserraħ, iżda x'hemm barra ta 'ordni hawn? STUDENT: sekwenza numerika. DAVID Malan: sekwenza numerika. tip 'kulħadd ta' żamma dan here-- livell għoli ħafna. Biss litteralment tell me x'hemm ħażin bħal-jista 'ħames snin qodma. STUDENT: Plus wieħed. DAVID Malan: X'hemm li? STUDENT: Plus wieħed. DAVID Malan: X'tifhem u wieħed? Agħti me differenti ħames snin qodma. X'hemm ħażin, mom? X'hemm ħażin, dad? X'tifhem dan mhux magħżula? STUDENT: Mhuwiex l-post it-tajjeb. DAVID Malan: X'hemm mhux fil-post it-tajjeb? STUDENT: Erba. DAVID Malan: OK, tajba. Allura erba mhuwiex meta dan għandu jkun. B'mod partikolari, huwa dan id-dritt? Erba u wieħed, l-ewwel żewġ numri nara. Huwa dan id-dritt? Le, dawn qed out of order, id-dritt? Fil-fatt, naħseb issa dwar kompjuter, wisq. Hija tista 'tħares biss lejn forsi waħda, forsi żewġ affarijiet fil once-- u fil-fatt biss ħaġa waħda fi żmien, iżda jista 'mill-inqas tħares lejn ħaġa waħda allura l- Ħaġa li jmiss dritt li jmiss lilu. Allura huma dawn fl-ordni? Mhux ovvja li le. Allura inti taf liema? Għaliex ma nieħdu tarbija passi li jiffissaw din il-problema minflok tagħmel dawn fancy algoritmi bħal Ben, fejn hu tip ta 'iffissar dan billi looping permezz tal-lista minflok tagħmel dak li għamilt, fejn I biss tip ta 'iffissat kif immorru? Ejja biss litteralment tkisser il kunċett ta 'ordni numeriku order--, sejħa hija tkun xi tkun want-- f'dawn il-paraguni pairwise. Erba 'u wieħed. Huwa dan l-ordni korretta? Mela ejja jiffissaw dak. Wieħed u erba, u mbagħad aħna ser biss kopja dak. Kull dritt, tajba. I fiss wieħed u erbgħa. Tliet u żewġ? No Ħalli kliem tiegħi jaqblu swaba tiegħi. Erba 'u tliet? Mhuwiex sabiex, hekk jien ser biex jagħmlu waħda, tlieta, erba ', tnejn. OK tajjeb. Issa erba 'u tnejn? Għandna bżonn biex jiffissaw dan, wisq. Allura wieħed, tlieta, tnejn, erbgħa. Allura huwa magħżul? Le, imma huwa eqreb lejn magħżula? Huwa, għaliex aħna fissi din il żball, aħna fiss dan l-iżball, u aħna fissi dan l-iżball. Allura aħna fiss tliet żbalji forsi. Still ma verament tħares magħżula, iżda huwa oġġettivament eqreb li mifthiema għaliex aħna fiss xi wħud minn dawk l-iżbalji. Issa x'għandi nagħmel jmiss? I tip ta 'laħqu t-tmiem tal-lista. I deher li iffissaw l-iżbalji, iżda l-ebda. Minħabba f'dan il-każ, xi numri setgħet effervexxentement up eqreb għal numri oħra li għadhom out of order. Mela ejja tagħmel dan mill-ġdid, u jien ser biss tagħmel dan fil-post f'dan il-ħin. Wieħed u tlieta? Huwa tal-multa. Tliet u żewġ? Naturalment l-ebda, so ejja jibdlu din. Allura tnejn, tlieta. Tlieta u erbgħa? U issa ejja biss ikunu partikolarment pedantic hawn. Huwa magħżula? Inti bnedmin taf huwa riżolta. I għandu erġa 'pprova. Allura Olivia qed tipproponi I erġa 'pprova. Għaliex? Minħabba kompjuter m'għandux għalfejn l-lussu ta għajnejn tal-bniedem tagħna ta 'ftit glancing back-- OK, jien jsir. Kif il-kompjuter jiddetermina li l-lista issa huwa magħżul? Mekkanikament. I għandhom jgħaddu għal darba oħra, u biss jekk I ma jagħmlu / issib xi żbalji nista imbagħad tikkonkludi bħala l-kompjuter, Yep, aħna qed tajba biex tmur. Allura wieħed u tnejn, tnejn u tlieta, tlieta u erbgħa. Issa nista 'ngħid definittiv li dan huwa magħżula, minħabba I għamel l-ebda tibdil. Issa ikun bug u biss foolish jekk I, il-kompjuter, staqsa dawk l-istess domandi mill-ġdid jistennew tweġibiet differenti. Jekk ma jiġri. U għalhekk issa l-lista magħżula. Sfortunatament, running time ta din il algoritmu huwa wkoll n kwadrat. Għaliex? Minħabba li għandek numri n, u fil- agħar każ għandek timxi n-numri n drabi għax għandek biex jibqgħu għaddejjin lura biex jiċċekkja u potenzjalment tiffissa dawn in-numri. U nistgħu nagħmlu aktar analiżi formali, wisq. Allura din hija kollha li ngħidu aħna ħadt tliet approċċi differenti, wieħed minnhom immedjatament intuwittivi barra l-BAT minn Ben biex inserzjoni ssuġġerit tiegħi sort għal dan wieħed fejn inti tip ta nitilfu l-foresti, għas-siġar inizjalment. Imma mbagħad jekk inti tieħu pass lura, voila, konna ffissati l-kunċett issortjar. Allura dan huwa, DARE ngħidu, livell aktar baxx forsi minn xi wħud minn dawk l-oħra algoritmi, imma ejja ara jekk ma nkunux nistgħu Ħares dawn permezz ta 'dan il-. Allura dan huwa xi sympathique software li xi ħadd kiteb jużaw bars mlewna C'est se jagħmlu dan li ġej għalina. Kull wieħed minn dawn il-vireg jirrappreżenta għadd. Taller il-bar, l-akbar in-numru, iżgħar fost il-bar, l-iżgħar numru. Allura idealment rridu piramida sympathique fejn hija tibda żgħar u gets kbar, u dan ikun ifisser li dawn il-vireg huma magħżula. Hekk jien ser jimxi 'l quddiem u jagħżlu, per eżempju, algoritmu Ben sort għażla first--. U avviż dak li qed jagħmel. Il-mod li ħadthom għażlu li Ħares din il algoritmu hija li, bħad I kien mixi permezz ta 'lista tiegħi, dan il-programm huwa mixi permezz ta 'lista tagħha ta' numri, tenfasizza b'mod roża f'kull numru li huwa tħares lejn. U x'hemm sejjer iseħħ id-dritt issa? L-iżgħar numru li I jew Ben misjuba f'daqqa gets jiċċaqalqu lejn il-bidu tal-lista. U bl-Avviż huma għamlu tkeċċi in-numru li kien hemm, u li l-perfettament multa. I ma jsibu rwieħhom dak il-livell ta 'dettall. Iżda neħtieġu npoġġu dak in-numru x'imkien, hekk aħna biss mċaqalqa lill- post miftuħ li nħolqot. Hekk jien ser iħaffu dan il up, għax inkella isir ħafna tedious malajr. Animazzjoni speed-- hemm immorru. Allura issa istess prinċipju I kien qed japplika, imma int tista 'tibda tħossok l-algoritmu, jekk inti se, jew jarawha ftit aktar ċar. U dan algoritmu għandha l-effett li għażla tal-element li jkun imiss iżgħar, hekk int ser jibdew jarah rampa fuq ix-xellug. U fuq kull iterazzjoni, kif jien proposta, ma 'xogħol ftit inqas. Huwa ma jkollu li jmorru it-triq kollha lura għall-aħħar tax-xellug tal-lista, għaliex diġà jaf dawk huma magħżula. Għalhekk tip ta jħoss simili huwa aċċellerazzjoni, anki jekk kull pass huwa tieħu l-istess ammont ta 'ħin. Hemm passi biss inqas fadal. U issa inti tista 'tip ta' jħossu l- algoritmu tindif tal-aħħar ta 'dan, u tabilħaqq issa huwa magħżula. Allura tip inserzjoni huwa magħmul. I-ħtieġa li terġa 'randomize l-array. U Avviż nista biss iżommu randomizing dan, u aħna ser jiksbu approssimazzjoni tal l-istess approċċ, sort inserzjoni. Let me bil-mod l-isfel sa hawn. Nibdew dan fuq. Stop. Ejja skip erbgħa. Hemm immorru. Randomize huma firxa. U hawn aħna go-- tip inserzjoni. Play. Avviż li huwa li jittrattaw ma 'kull Element dan jiltaqa dritt bogħod, imma jekk jappartjeni fl l-avviż post żbaljat kollha tal-ħidma li għandu jiġri. Irridu iżommu ċaqliq aktar u aktar elementi li jagħmlu kamra l-waħda aħna tixtieq li tqiegħed fis-seħħ. Allura aħna qed jiffokaw fuq il- tmiem tax-xellug tal-lista biss. Avviż aħna lanqas biss ħarsu at-- aħna ma enfasizzati fil-xejn roża lejn il-lemin. Aħna biss jittrattaw il-problemi kif immorru, imma aħna qed joħolqu ħafna ta ' xogħol għalina għadu. U hekk jekk aħna iħaffu dan up issa biex tmur tlestija, hija għandu jħossu differenti għaliha tabilħaqq. Huwa sempliċement jiffukaw fuq l-aħħar xellug imma tagħmel xogħol ftit aktar bħala needed-- tip ta 'affarijiet twittija fuq, li jiffissa l-affarijiet, iżda jittrattaw fl-aħħar ma kull element wieħed fi żmien sakemm aħna jiksbu l the-- sew, aħna lkoll nafu kif dan se jispiċċaw, għalhekk huwa underwhelming ftit forsi. Iżda l-lista fil-end-- spoiler-- se jiġu magħżula. Mela ejja nħarsu lejn l-aħħar wieħed wieħed. Ma nistgħux sempliċement skip issa. Aħna kważi hemm. Żewġ tmur, wieħed li jmorru. U voila. Eċċellenti. Allura issa ejja nagħmlu aħħar wieħed wieħed, jerġa 'randomizing ma bużżieqa tip. U avviż hawn, speċjalment jekk jien bil-mod l isfel, dan ma jżomm swooping permezz. Iżda avviż hija biss jagħmel pairwise tip comparisons-- ta 'soluzzjonijiet lokali. Iżda hekk kif aħna nikseb biex l-aħħar tal-lista fl-roża, x'inhu għaddej li jkollhom jerġa 'jiġri? Yeah, li għaddej biex ikollhom tibda fuq, għaliex biss żbalji fissi pairwise. U li jista wrew saħansitra f'oħrajn. U hekk jekk inti tħaffef dan up, inti ser tara li, kemm jista 'jimplika l-isem, l-iżgħar elements-- jew aħjar, l elements-- akbar qed jibdew bużżieqa sal-quċċata, jekk inti se. U l-elementi iżgħar huma jibdew bużżieqa isfel lejn ix-xellug. U fil-fatt, dan huwa tip ta ' l-effett viżwali kif ukoll. U hekk dan se jispiċċaw irfinar b'mod simili ħafna, wisq. Aħna ma jkollhom biex nitkellem fuq dan wieħed partikolari. Let me tiftaħ dan issa, wisq. Hemm ftit algoritmi oħra issortjar fid-dinja, xi ftit minnhom jinqabdu hawn. U speċjalment għal studenti li mhumiex neċessarjament viżwali jew matematiċi, kif għamilna qabel, nistgħu ukoll tagħmel dan audially jekk aħna jassoċjaw ħoss ma 'dan. U biss għall-gost, Heres algoritmi differenti ftit, u wieħed minnhom b'mod partikolari int ser avviż huwa msejjaħ "tip jingħaqdu." Hija fil-fatt huwa fundamentalment algoritmu aħjar, b'tali mod li jingħaqdu sort, wieħed mill dawk int ser tara, mhuwiex ordni ta 'n kwadrat. Huwa fuq l-ordni ta 'n darbiet log ta n, li huwa attwalment iżgħar u għalhekk aktar mgħaġġla minn dawk it-tliet ieħor. U hemm koppja oħra dawk iblah li aħna ser tara. Allura here we go ma 'xi ħoss. Dan huwa tip inserzjoni, hekk darb'oħra huwa biss jittrattaw l-elementi kif dawn jidħlu. Dan huwa bużżieqa tip, dan huwa tqishom pari kull darba. U għal darb'oħra, l-akbar elementi huma tbaqbieq sal-quċċata. Issa jmiss sort għażla. Dan huwa algoritmu Ben, fejn darb'oħra hu għażla iteratively -iżgħar li jiġi element. U għal darb'oħra, issa inti tista 'verament tisma li huwa tħaffif imma biss safejn kif huwa qed jagħmel inqas u inqas xogħol fuq kull iterazzjoni. Dan huwa l-aktar mgħaġġel waħda, jingħaqdu sort, li hija l-għażla gruppi ta 'numri flimkien u mbagħad jingħaqdu. Allura look-- ix-xellug nofs huwa diġà magħżula. Issa huwa l-issortjar in-nofs id-dritt, u issa li għaddej biex jinġabru flimkien f'waħda. Din hija xi ħaġa imsejħa "Gnome tip." U inti tista 'tip ta' tara li li għaddej quddiem u lura, iffissar xogħol ftit hawn u hemm qabel ma tipproċedi għat tax-xogħol ġdid. U li hu. Hemm tip ieħor, li hija verament ftit għal skopijiet akkademiċi, imsejħa "tip stupid," li tieħu data tiegħek, xorta huwa saltwarjament, u mbagħad tiċċekkja jekk ikun magħżul. U jekk ma jkunx, għandu jerġa 'xorta li saltwarjament, kontrolli jekk huwa magħżula, u jekk mhux jirrepeti. U fit-teorija, probabilistically dan se jitlesta, iżda wara pjuttost ftit ta 'żmien. Mhuwiex l-aktar effiċjenti ta 'algoritmi. Allura xi mistoqsijiet dwar dawk Algoritmi partikolari jew xejn relatat hemm, wisq? Ukoll, ejja issa tease apparti dak kollu dawn il-linji huma li stajt ġiet tfassil u dak li jien jassumi l-kompjuter tista 'tagħmel taħt il-barnuża. Nixtieq jargumentaw li kollha ta 'dawn in-numri I iżommu drawing-- li għandhom bżonn biex jiksbu maħżuna x'imkien fil-memorja. Aħna ser teħles minn dan Guy issa, wisq. Allura biċċa ta 'memorja fil- computer-- hekk RAM DIMM huwa dak li aħna mfittxija bieraħ, doppju Memorja inline module-- tidher bħal dan. U kull wieħed minn dawn iċ-ċipep iswed ftit hija xi numru ta 'bytes, tipikament. U allura l-labar deheb huma simili l- wajers li jgħaqqdu lill-kompjuter, u l-bord tas-silikon aħdar huwa biss dak li jżomm kollox kollha flimkien. Allura dak li jfisser dan verament tfisser? Jekk I tip ta tiġbed dan l-istess stampa, ejja nassumu għas-sempliċità li dan DIMM, doppju modulu tal-memorja inline, huwa gigabyte wieħed ta 'RAM, gigabyte wieħed mill memorja, li hija kemm bytes totali? Wieħed gigabyte huwa kemm bytes? Aktar minn dak. 1124 hija kilo, 1000. Mega hija miljun. Giga hija biljun. Am I li tinsab? Nistgħu anke taqra t-tikketta? Dan huwa attwalment 128 gigabytes, dan huwa aktar. Iżda aħna ser nippretendu din il huwa biss wieħed gigabyte. Allura dan ifisser hemm biljun bytes ta 'memorja disponibbli għalija jew 8 biljun bits, iżda aħna qed tmur li nitkellmu f'termini ta 'bytes issa, miexja 'l quddiem. Allura dak li jfisser hu li dan huwa byte wieħed, dan huwa byte ieħor, dan huwa byte ieħor, u jekk aħna verament riedu li jkunu speċifiċi rridu naraw li jiġbed biljun kwadri ftit. Imma dak ma jfisser? Well, let me biss zoom fil dwar din l-istampa. Jekk Stajt ltqajna xi ħaġa li tidher bħal dan issa, li l-erba 'bytes. U hekk I tista 'tpoġġi erba' numri hawn. Wieħed, tnejn, tlieta, erba '. Jew I tista 'tpoġġi erba' ittri jew simboli. "Ħej!" tista 'tmur hemm dritt, minħabba kull waħda mill-ittri, aħna diskussa aktar kmieni, jista 'jkun rappreżentat bi tmien bits jew ASCII jew byte. Allura fi kliem ieħor, inti tista ' jitqiegħdu 8 biljun affarijiet ġewwa ta 'dan stick wieħed ta' memorja. Issa dak ma jfisser li l-affarijiet lura biex lura biex lura fil-memorja bħal din? Dan huwa dak programmer kieku ssejjaħ għal "matriċi." Fi programm tal-kompjuter, inti ma naħsibx dwar il-hardware sottostanti, per se. Inti biss jaħsbu ta 'lilek innifsek bħala li aċċess għal total biljun bytes, u inti tista 'xi ħaġa li trid magħha. Iżda għall-konvenjenza huwa ġeneralment utli li jżomm id-dritt memorja tiegħek ħdejn xulxin bħal dan. Mela jekk jien zoom fl fuq this-- għaliex aħna qed ċertament mhux ser tiġbed biljun squares-- ftit ejja nassumu li dan il-bord jirrappreżenta li twaħħal tal-memorja issa. U jien ser biss jiġbed daqs tiegħi markatur jispiċċa tajtu lili hawn. Allura issa għandna stick tal-memorja fuq il-bord li ltqajna wieħed, tnejn, tlieta, erba ', ħames, sitta, wieħed, tnejn, tlieta, erba ', ħames, sitt, seven-- hekk 42 bytes ta memorja fuq it-total iskrin. Grazzi. Iva, kont aritmetika tiegħi dritt. Allura 42 bytes ta 'memorja hawn. Allura dak li jfisser dan fil-fatt jfisser? Ukoll, programmer kompjuter fil-fatt ġeneralment think ta 'dan memorja bħala indirizzabbli. Fi kliem ieħor, kull wieħed minn dawn postijiet fil-memorja, fil-hardware, għandu indirizz uniku. Mhuwiex daqshekk kumplessa bħal Wieħed BRATTLE Pjazza, Cambridge, Mass., 02138. Minflok, huwa biss numru. Dan huwa byte in-numru żero, dan huwa wieħed, dan huwa tnejn, dan huwa tlieta, u dan huwa 41. Stenna minuta. Ħsibt I said 42 mument ilu. I bdew jingħaddu għal żero, b'tali mod li l-fatt korretta. Issa aħna ma jkollhomx biex effettivament tiġbed bħala grilja, u jekk inti tiġbed bħala grilja Naħseb affarijiet attwalment jiksbu daqsxejn qarrieqa. Liema programmer ikun, fil-memorja tiegħu jew tagħha stess, ġeneralment jaħsbu ta 'dan il- memorja kif huwa biss bħal tejp, bħal biċċa ta 'masking tejp li biss tmur fuq u fuq għal dejjem jew sakemm inti jispiċċaw ta 'memorja. Allura mod aktar komuni biex tiġbed u biss jaħsbu dwar memorja ikun li dan huwa byte żero, wieħed, tnejn, tlieta, u mbagħad dot, dot, dot. U inti għandek 42 bytes tali totali, anke għalkemm fiżikament għandu mnejn attwalment tkun xi ħaġa aktar bħal din. Mela jekk inti issa taħseb tiegħek memorja peress li dan, bħad tejp, dan huwa dak programmer ġdid kieku ssejjaħ firxa ta 'memorja. U meta inti tixtieq li attwalment jaħżnu xi ħaġa fil-memorja tal-kompjuter, inti ġeneralment tagħmel taħżen affarijiet Back-to-back lill-back-to-back. Allura aħna kont qed jitkellem dwar in-numri. U meta jien ridt li ssolvi l-problemi bħal erbgħa, wieħed, tlieta, tnejn, anki jekk I kien biss tpinġija biss il-numri erbgħa, wieħed, tlieta, tnejn fuq il-bord, il-kompjuter se verament ikollhom dan il setup fil-memorja. U dak li jkun ħdejn il- tnejn fil-memorja tal-kompjuter? Ukoll, hemm ebda risposta għal din. Aħna ma verament jafu. U sakemm l- kompjuter ma bżonnha, ma jkollhiex kura dak li huwa li jmiss għan-numri li tagħmel ħsieb dwar. U meta għidt qabel li l-kompjuter tista 'tħares biss lejn indirizz wieħed fi żmien, dan huwa tip ta 'għaliex. Mhux b'differenza rekord player u ras qari biss tkun tista 'tħares lejn ċertu kanal fi rekord fiżika qodma l-iskola fi żmien, bl-istess mod jista 'kompjuter grazzi biex CPU tiegħu u tagħha Intel sett istruzzjoni, fost li istruzzjoni jinqara mill-memorja jew ħlief għal memory-- għal kompjuter tista 'biss tfittex fil-post wieħed kull time-- kultant kombinazzjoni ta 'dawn, imma verament waħda biss post kull darba. Allura meta aħna kienu qed jagħmlu dawn id-diversi algoritmi, Jien mhux biss bil-miktub fi vacuum-- erba, wieħed, tlieta, tnejn. Dawk in-numri fil-fatt jappartjenu x'imkien fiżika fil-memorja. Allura hemm ftit żgħira transisters jew xi tip tal-elettronika taħtha l barnuża ħażna dawn il-valuri. U f'totali, kemm bits huma involut dritt issa, biss biex tkun ċara? Allura dan huwa erba 'bytes, jew issa huwa 32 bits totali. Allura hemm attwalment 32 żerijiet u Dawk li jikkomponu dawn l-erba 'affarijiet. Hemm saħansitra aktar hawn, iżda darb'oħra aħna ma jimpurtahom dwar dan. Allura issa ejja jistaqsu ieħor kwistjoni bl-użu tal-memorja, minħabba li fl-aħħar tal-ġurnata hija fil varjanza. Ma jimpurtax dak li nistgħu nagħmlu mal il-kompjuter, fl-aħħar tal-ġurnata il-hardware għadu l- istess taħt il-barnuża. Kif inkun taħżen kelma fil hawn? Ukoll, kelma fil-kompjuter bħal "Ħej!" se tkun maħżuna biss bħal din. U jekk inti riedu itwal kelma, inti tista 'sempliċement jissostitwixxu dak u jgħidu xi ħaġa bħal "bonjour" u maħżen li hawn. U hekk hawn, wisq, dan contiguousness huwa attwalment ta 'vantaġġ, minħabba kompjuter tista 'sempliċement aqra mill-lemin għax-xellug. Iżda hawn l-mistoqsija. Fil-kuntest ta 'din il-kelma, h e-l-l-o, punt exclamation, kif tista 'l-kompjuter taf fejn il- kelma jibda u fejn jintemm il-kelma? Fil-kuntest ta 'numri, kif ma 'l-kompjuter taf kemm żmien il-sekwenza ta ' numri huwa jew fejn jibda? Ukoll, jirriżulta out-- u aħna mhux se jmorru wisq fis dan il-livell ta 'detail-- Kompjuters jimxu Jittieħed madwar fil-memorja litteralment permezz ta 'dawn l-indirizzi. Allura fil-kompjuter, jekk int miktub kodiċi li jaħżnu l-affarijiet bħal kliem, dak li int verament tagħmel huwa ittajpjar espressjonijiet li tiftakar meta fil memorja tal-kompjuter dawn il-kliem huma. So let me do ħafna, Eżempju sempliċi ħafna. Jien ser jimxi 'l quddiem u jiftħu program test sempliċi, u jien ser joħolqu fajl imsejjaħ hello.c. Ħafna minn din l-informazzjoni aħna mhux se tidħol fis f'dettall kbir, imma jien ser jiktbu programm f'dik il-lingwa, C. Dan huwa ferm aktar intimidanti, Nixtieq jargumentaw, minn Scratch, imma hija simili ħafna fl-ispirtu. Fil-fatt, dawn kaboċċi braces-- inti tista tip ta think ta 'dak I biss ma dan. Ejja nagħmlu dan, fil-fatt. Meta bandiera aħdar għafast, tagħmel dan li ġej. Irrid li jistampa "bonjour." Allura issa din hija pseudocode. Jien tip ta 'ċajpir-linji. Fl Ċ, din il-lingwa jien jitkellem dwar, dan l-istampar linja bonjour fil-fatt isir "printf" ma xi parentesi u semi-colon. Imma hija l-istess idea eżatt. U dan ħafna faċli għall-utent "Meta flag aħdar għafast" isir l ferm aktar arcane "nulli prinċipali int." U dan verament għandha l-ebda immappjar, hekk jien biss se jinjora dan. Iżda l-braces kaboċċi huma simili l- biċċiet puzzle mgħawġa bħal dan. Allura inti tista 'tip ta' raden. Anke jekk inti stajt qatt programmati qabel, dak ma dan il-programm probabbilment jagħmlu? Probabbilment prints bonjour ma 'punt exclamation. Mela ejja jippruvaw dan. Jien ser tiffranka. U dan huwa, għal darb'oħra, ħafna ambjent tal-iskola antika. I ma tista 'tikklikkja, I ma tista' ttawwal. Għandi biex jikkmanda tip. So I tixtieq li run program tiegħi, so I tista 'tagħmel dan, bħall hello.c. Dik hija l-inkartament I dam. Imma stenna, jien nieqsa pass. What did ngħidu huwa neċessarju pass għal lingwa bħal C? Stajt biss sors miktub kodiċi, imma dak li għandi bżonn? Yeah, I bżonn kompilatur. Allura fuq Mac tiegħi hawn, għandi programm imsejjaħ GCC, GNU Ċ kompilatur, li tippermetti lili biex tagħmel this-- dawran sors tiegħi kodiċi fis, aħna ser sejħa hija, kodiċi tal-magna. UI jista 'jara li, darb'oħra, kif ġej, dawn huma żerijiet u dawk I biss maħluqa mill-kodiċi sors tiegħi, kollha ta 'l-żerijiet u dawk. U jekk jien tixtieq li run tiegħi program-- dan jiġri li għandu jissejjaħ a.out għall reasons-- storiku "bonjour." I tista 'taħdem mill-ġdid. Hello, bonjour, bonjour. U jidher li tkun qed taħdem. Iżda dan ifisser x'imkien fil tiegħi memorja tal-kompjuter huma l-kliem h e-l--l o, punt exclamation. U jirriżulta li, hekk bħala twarrib, dak kompjuter kieku tipikament jagħmlu b'tali mod li jaf fejn affarijiet jibdew u end-- huwa se timplimenta simbolu speċjali hawn. U l-konvenzjoni huwa li tpoġġi l- Numru żero fl-aħħar ta 'kelma sabiex tkun taf fejn fil-fatt jintemm, sabiex inti ma jżommux istampar aktar u aktar karattri mill inti fil-fatt il-ħsieb. Iżda l-takeaway hawn, anke għalkemm dan huwa pjuttost arcane, hija li huwa finalment relattivament sempliċi. Inti ġew mogħtija tip ta 'tejp, vojt spazju fuqha tista 'tikteb ittri. Inti sempliċiment għandek jkollhom simbolu speċjali, bħal b'mod arbitrarju in-numru żero, li tqiegħed fi tmiem l- kliem tiegħek hekk li l-kompjuter jaf, oh, I għandu jieqaf istampar wara Nara l-punt exclamation. Minħabba li l-ħaġa li jmiss hemmhekk hija valur ASCII ta 'żero, jew il-karattru nulli bħala xi ħadd kieku ssejjaħ dan. Iżda hemm tip ta 'problema hawn, u ejja jerġa 'lura għal numri għal mument. Ejja ngħidu li nagħmel, fil-fatt, għandhom firxa ta 'numri, u jissoponi li l programm jien bil-miktub huwa bħal ktieb grad ta 'għalliem u għalliema klassi. U dan il-programm jippermetti lilu jew lilha it-tip fil-punteġġi istudenti tagħhom fuq kwizzijiet. U jissoponi li l-istudent gets 100 fuq ewwel kwizz tagħhom, forsi bħal 80 fuq dak li jmiss, allura 75, imbagħad 90 dwar ir-raba kwizz. Allura f'dan il-punt fl-istorja, il-firxa hija ta 'daqs erbgħa. Hemm memorja assolutament aktar fil- kompjuter, iżda l-firxa, biex ngħidu hekk, hija ta 'daqs erbgħa. Ejja ngħidu issa li l-għalliem irid li tassenja wieħed minn ħamsa kwizz għall-klassi. Ukoll, waħda mill-affarijiet li jew hi se jkollhom jagħmlu huwa issa jaħżnu valur addizzjonali hawn. Iżda jekk il-firxa tal-għalliem għandu maħluqa f'dan il-programm huwa ta 'daqs għall- wieħed mill-problema ma 'firxa hija li inti tista 'mhux biss ikompli jżid mal-memorja. Minħabba dak li jekk f'parti oħra tad- programm għandu l-kelma "ħej" hemm dritt? Fi kliem ieħor, memorja tiegħi jista 'jkun użat għal kwalunkwe ħaġa fi programm. U jekk qabel I ittajpjat fil, ħej, Irrid li l-input erba punteġġi kwizz, dawn jistgħu jmorru hawn u hawn. U jekk f'daqqa waħda tbiddel moħħok wara, u jgħidu Irrid wieħed minn ħamsa kwizz punteġġ, inti ma tistax sempliċement poġġih fejn inti tixtieq, għaliex dak jekk dan Memorja qed tintuża għal xi ħaġa else-- xi programm ieħor jew xi karatteristika oħra tal-programm li int taħdem? Allura inti għandek taħseb minn qabel kif inti tixtieq li jaħżen id-data tiegħek, għaliex issa inti stajt miżbugħa lilek innifsek fis-kantuniera diġitali. Allura għalliem jista minflok jgħidu meta kitba ta 'programm taħżen tiegħu jew tagħha gradi, inti taf liema? I am ser jitolbu, meta tikteb programm tiegħi, li nixtieq żero, wieħed, tnejn, tlieta, erba, ħames, sitt, tmien gradi total. Allura wieħed, tnejn, tlieta, erba, ħames, sitt, seba ', tmien. L-għalliem jista 'ftit aktar minn jallokaw Memorja meta tikteb programm tiegħu jew tagħha u jgħidu, inti taf liema? Jien qatt ma ser tassenja aktar minn tmien kwizzijiet fi semestru. Li jinsab biss crazy. Jien qatt ma ser jalloka dik. Allura li dan il-mod hu jew hi għandu l- flessibilità biex punteġġi taħżen istudenti, bħall 75, 90, u forsi waħda żejda fejn l-istudent ltqajna kreditu żejda, 105. Imma jekk l-għalliem qatt tuża dawn it-tliet spazji, hemm takeaway intuwittivi hawn. Hu jew hi huwa biss ħela ispazju. Allura fi kliem ieħor, hemm dan tradeoff komuni fil-programmazzjoni fejn inti tista 'jew talloka eżattament kemm memorja kif trid, il rasu tagħha huwa li int super efficient-- int ma tkun ħela fil all-- iżda l-tnaqqis tagħhom huwa dak li jekk inti tbiddel moħħok meta użu tal-programm li inti tixtieq li taħżen dejta aktar milli suppost oriġinarjament maħsub. Allura forsi l-soluzzjoni hija, imbagħad, jiktbu programmi tiegħek b'tali mod li huma jużaw memorja aktar milli huma attwalment ħtieġa. Dan il-mod int mhux ser li jinżel fit din il-problema, imma int qed ħela. U l-memorja aktar programm tiegħek juża, kif iddiskutejna bieraħ, l-inqas memorja li ikunu disponibbli għal programmi oħra, l-ewwel kompjuter tiegħek jista 'jnaqqas minħabba r memorja virtwali. U hekk is-soluzzjoni ideali tista 'tkun liema? Nuqqas ta 'jiġu allokati jidher ħażin. Over-jiġu allokati jidher ħażin. Allura dak li jista 'jkun soluzzjoni aħjar? Allokazzjoni mill-ġdid. Tkun aktar dinamiku. Ma seħħ lilek innifsek biex jagħżlu priori, fil-bidu, dak li trid. U ċertament ma over-jalloka, lest inti tkun ħela. U dan biex jintlaħaq dak l-għan, aħna bżonn li tarmi din l-istruttura tad-data, biex ngħidu hekk, 'il bogħod. U iva, liema programmer tipikament se jużaw huwa xi ħaġa imsejħa mhijiex firxa iżda lista marbuta. Fi kliem ieħor, hu jew hi se jibdew jaħsbu memorja tagħhom bħala tip ta 'forma li huma jista 'jiġbed fil-mod li ġej. Jekk irrid li jaħżen numru wieħed fil a program-- hekk huwa f'Settembru, Stajt mogħtija istudenti tiegħi kwizz; Irrid li jaħżen ewwel kwizz l-istudenti, u dawn ltqajna 100 fuq it-- I vais jistaqsu kompjuter tiegħi, permezz tal-programm stajt miktub, għal blokki wieħed ta 'memorja. U jien ser taħżen l- Numru 100 fiha, u li hu. Imbagħad ftit ġimgħat wara meta nasal tieni kwizz tiegħi, u wasal iż-żmien għat-tip f'dak 90%, jiena ser li jitlob lill-kompjuter, ħej, kompjuter, nista 'jkollhom blokki ieħor ta' memorja? Huwa ser tagħti me dan il blokki vojta ta 'memorja. Jien ser jitqiegħdu fil-numru 90, iżda fil-programm tiegħi b'xi jew other-- u aħna mhux se joqogħdu jinkwetaw dwar il sintassi għall this-- I bżonn li b'xi mod katina dawn l-affarijiet flimkien. U jien ser katina flimkien ma ' dak qisu vleġġa hawn. It-tielet kwizz li jitla ', Jien se ngħid, ħej, kompjuter, agħtini blokki ieħor ta 'memorja. U jien ser jħott kwalunkwe kien, bħal 75, u I għandhom katina din il flimkien issa b'xi. Ir-Raba 'kwizz tidħol flimkien, u forsi dak l lejn it-tmiem tas-semestru. U minn dak il-punt il-programm tiegħi jista 'jkun bl-użu tal-memorja kollha fuq il-post, madwar fiżikament. U hekk biss għall kicks, jien ser tiġbed lura quiz-- ninsa dak li kien; I think forsi 80 jew something-- mod minn hawn. Imma li l-multa, għaliex pictorially Jien ser tiġbed il-linja. Fi kliem ieħor, fir-realtà, fil-hardware tal-kompjuter tiegħek, l-ewwel punteġġ tista tispiċċa hawnhekk għaliex dan huwa dritt fil-bidu tas-semestru. Il-wieħed li jmiss tista 'tispiċċa hawn minħabba ftit ta 'żmien ikun għadda u l-programm jżomm taħdem. Il-punteġġ jmiss, li kienet 75, jista 'jkun aktar hawn. U l-aħħar punteġġ tista 'tkun 80, li huwa fuq hawn. Allura fir-realtà, fiżikament, dan jista 'jkun liema memorja tal-kompjuter tiegħek Dehra. Iżda din mhix mentali utli paradigma għal programmer kompjuter. Għaliex għandek kura fejn il- Heck data tiegħek huwa jispiċċaw? Inti biss tixtieq li taħżen id-data. Dan huwa tip simili diskussjoni tagħna aktar kmieni tal tinġibed l-kubu. Għaliex inti kura dak l-angolu huwa tal-kubu u kif għandek li jduru għal tiġbed? Inti biss jixtiequ kubu. Bl-istess mod hawn, inti biss jixtiequ ktieb grad. Inti biss tixtieq li jaħsbu ta ' dan bħala lista ta 'numri. Quién kif huwa implimentat fil-hardware? Allura l-estrazzjoni issa hija din l-istampa hawn. Din hija lista marbuta, kif programmer kieku ssejjaħ dan, sakemm ikollok lista, ovvjament ta 'numri. Iżda huwa marbut pictorially permezz ta 'dawn vleġeġ, u dawn vleġeġ kollha are-- taħt il-barnuża, jekk int kurjuż, ifakkar li hardware fiżiċi tagħna indirizzi żero, wieħed, tnejn, tlieta, erba '. Kollha dawn vleġeġ huma huwa bħal mappa jew direzzjonijiet, fejn jekk 90 is-- issa Sibt biex jingħaddu. Żero, wieħed, tnejn, tlieta, erba ', ħames, sitt, seba'. Jidher qisu l-90 huwa fil Memorja Numru indirizz sebgħa. Kollha dawn vleġeġ huma hu bħal ruttam ftit ta 'karta li jagħti lill direzzjonijiet għall- programm li tgħid jsegwu din il-mappa biex jiksbu l-post sebgħa. U hemm inti ser issib l- tieni punteġġ kwizz istudent. Sadanittant, il-75-- jekk jien tkompli dan, dan huwa seba ', tmien, disa', 10, 11, 12, 13, 14, 15. Din il-vleġġa oħra biss tirrappreżenta mappa biex post memorja 15. Iżda għal darb'oħra, l-programmer ġeneralment ma ma jimpurtahom dwar dan il-livell ta 'dettall. U fil aktar minn darba kull ipprogrammar lingwa llum, l-programmer mhux se anki taf fejn fil-memorja dawn in-numri fil-fatt huma. Kollha hu jew hi għandu kura dwar huwa li b'xi mod huma marbuta flimkien fi struttura tad-data bħal dan. Iżda jirriżulta mhux biex tikseb wisq tekniċi. Iżda sempliċiment minħabba nistgħu forsi jaffordjaw li jkollhom din id-diskussjoni hawn, jissoponi li aħna tirrevedi din il-kwistjoni hawnhekk ta 'firxa. Ejja naraw jekk aħna dispjaċir tmur hawn. Dan huwa 100, 90, 75, u 80. Let me qosor tagħmel din it-talba. Dan huwa firxa, u għal darb'oħra, il- karatteristika saljenti ta 'firxa hija li kollha tad-data tiegħek huwa lura għall lura lura fil memory-- litteralment wieħed byte jew forsi erba 'bytes, xi numru fiss ta 'bytes bogħod. F'lista marbuta, li nistgħu jiġbed bħal dan, minn taħt il-barnuża li jaf fejn dan il-għalf huwa? Hija lanqas ma jeħtieġ għall-fluss bħal dan. Parti mid-dejta tista 'tkun lura lejn ix-xellug up hemm. Inti lanqas biss jafu. U hekk ma 'firxa, inti għandek Karatteristika magħrufa bħala t'aċċess bl-addoċċ. U x'mezzi b'aċċess każwali huwa li l-kompjuter tista 'tiżdied istantanjament għal kull lokazzjoni fil-firxa. Għaliex? Minħabba li l-kompjuter ikun jaf li l-ewwel post huwa żero, wieħed, tnejn, u tlieta. U hekk jekk inti tixtieq li tmur minn dan l-element li l-element li jmiss, inti litteralment, fil- moħħ tal-kompjuter, żid ftit wieħed. Jekk inti tixtieq li tmur għall-tielet element, żid ftit one-- element li jkun imiss, kemm żid waħda. Madankollu, f'dan il-verżjoni tal-istorja, jissoponi il-kompjuter bħalissa qed tfittex fi jew li jittrattaw man-numru 100. Kif tista 'tikseb għall-ieħor grad fil-ktieb grad? Int għandek tieħu seba passi, li huwa arbitrarja. Biex tikseb għal dak li jmiss, inti għandek jieħdu ieħor tmien passi biex tikseb sa 15. Fi kliem ieħor, mhuwiex ta ' distakk kontinwu bejn in-numri, u għalhekk hija biss tieħu l- kompjuter aktar żmien huwa l-punt. Il-kompjuter trid tfittex permezz memorja sabiex biex issib dak li qed tfittex. Allura billi firxa tendenza li tkun veloċi tad-data structure-- għaliex inti jistgħu litteralment biss tagħmel aritmetika sempliċi u tikseb fejn inti tixtieq billi żżid waħda, għal instance-- lista marbuta, inti sagrifiċċju dik il-karatteristika. Inti ma tistax biss jmorru mill-ewwel li t-tieni li terz lejn raba. Int għandek issegwi l-mappa. Int għandek tieħu aktar passi biex jiksbu l dawk il-valuri, li jidher li jkun żżid spiża. Allura aħna qed tħallas prezz, imma dak kien il-karatteristika li Dan kienet qed tfittex hawn? Xi jfisser lista marbuta apparentament inessu tagħmel, li kienet l-oriġini ta ' din l-istorja partikolari? Eżattament. Daqs dinamika għalih. Aħna tista 'żżid mal-lista. Nistgħu anke tiċkien il-lista, hekk li aħna qed biss jużaw memorja kemm kif aħna fil-fatt tixtieq u l-bqija aħna qed qatt jiġu allokati fuq. Issa biss sabiex ikunu verament nit-picky, hemm spiża moħbija. Allura inti m'għandekx biss let me jikkonvinċu inti li dan huwa tradeoff konvinċenti. Hemm spiża oħra moħbija hawn. Il-benefiċċju, li tkun ċara, hija li nagħmlu dinamiżmu. Jekk irrid element ieħor, I tista 'sempliċement tiġbed u tpoġġi numru fil hemmhekk. U mbagħad I tista 'rabta li bi stampa hawn, billi aktar minn hawnhekk, għal darb'oħra, jekk stajt miżbugħa myself fil-kantuniera, jekk xi ħaġa oħra huwa diġà jużaw il-memorja hawnhekk, jien minn xortih. Stajt miżbugħa myself fil-kantuniera. Imma x'inhu l-moħbija ispiża fil din l-istampa? Huwa mhux biss l-ammont ta 'żmien li dan jieħu li jmorru minn hawn hawn, li huwa ta 'seba passi, allura tmien passi, li hija aktar minn waħda. X'hemm ispiża ieħor moħbija? Mhux biss darba. Informazzjoni addizzjonali hija meħtieġ biex jinkiseb dan l-istampa. Yeah, li mappa, dawk ruttam ftit tal karta, kif I iżommu jiddeskrivu lilhom bħala. Dawn arrows-- dawn mhumiex ħielsa. A computer-- tafu dak kompjuter għandu. Hija għandha żerijiet u dawk. Jekk inti tixtieq li jirrappreżentaw vleġġa jew mappa jew numru, għandek bżonn xi memorja. Allura l-prezz oħra li jħallsu għal lista marbuta, xjenza tal-kompjuter komuni tar-riżorsi, huwa wkoll l-ispazju. U fil-fatt hekk, hekk komuni, fost il-kompromessi fit-tfassil inġinerija tas-softwer sistemi huwa żmien u space-- huma tnejn mill-ingredjenti tiegħek, tnejn ta 'ingredjenti l-aktar għaljin tiegħek. Dan huwa jiswew me aktar ħin minħabba I għandhom isegwu din il-mappa, imma hija wkoll jiswew me aktar spazju minħabba I għandhom iżommu din il-mappa madwar. Allura l-tama, kif konna tip ta ' diskussi matul bieraħ u llum, huwa li l-benefiċċji se jegħlbu l-ispejjeż. Iżda hemm ebda soluzzjoni ovvja hawn. Forsi huwa better-- malajr la u maħmuġin, kif Kareem propost earlier-- li tarmi memorja lejn il-problema. Biss jixtru memorja aktar, think inqas diffiċli dwar soluzzjoni tal-problema, u ssolvi din b'mod aktar faċli. U fil-fatt qabel, meta tkellimna dwar kompromessi, ma kienx spazju fil l-kompjuter u l-ħin. Kien żmien iżviluppatur, li huwa pass ieħor riżorsa. Għalhekk għal darb'oħra, huwa dan l-att ta 'bilanċ jippruvaw li jiddeċiedi liema minn dawk l-affarijiet huma inti lest li jonfqu? Liema hija l-inqas għalja? Li jagħti l-aħjar riżultati? Yeah? Tabilħaqq. F'dan il-każ, jekk int li jirrappreżenta numri fil-maps-- dawn huma msejħa f'ħafna lingwi "pointers" jew "l-indirizzi" - huwa doppju tal-ispazju. Dak m'għandhomx għalfejn ikunu ħażin daqs doppju jekk dritt issa aħna qed biss ħażna numri. Ejja ngħidu li konna ħażna rekords tal-pazjenti fil-hospital-- hekk ismijiet Pierson tal, numri tat-telefon, numri tas-sigurtà soċjali, it-tabib istorja. Din il-kaxxa tista 'tkun ferm, ħafna akbar, f'liema każ pointer ftit żgħira, l-indirizz tal li jmiss element-- mhuwiex big deal. Huwa tali marġinali ispiża ma jimpurtax. Iżda f'dan il-każ, yeah, huwa l-irduppjar. Good kwistjoni. Ejja nitkellmu dwar ħin ta ' ftit aktar konkret. X'hemm-running time ta 'tiftix din il-lista? Ejja ngħidu jien ridt li tfittxija permezz gradi kollha tal-istudenti, u hemm gradi n f'din l-istruttura tad-data. Hawnhekk, ukoll, nistgħu tissellef l-vokabularju ta 'qabel. Din hija struttura tad-data lineari. O Big n huwa dak li meħtieġ sabiex tikseb sa l-aħħar ta 'din l-istruttura tad-data, whereas-- u ma rajniex dan il before-- firxa jagħtik dak li sejjaħ ħin kostanti, li jfisser pass wieħed inkella tnejn jew 10 steps-- ma jimpurtax. Huwa numru fiss. Hija għandha x'taqsam xejn mal- -daqs tal-array. U r-raġuni għal dan, darb'oħra, huwa t'aċċess bl-addoċċ. Il-kompjuter tista 'sempliċement immedjatament jaqbżu post għall-ieħor, għaliex dawn qed kollha l-istess distanza mill kull ħaġa oħra. M'hemm l-ebda ħsieb involut. Kull dritt. Mela jekk nista ', let me jippruvaw żebgħa żewġ stampi finali. A waħda komuni ħafna magħruf bħala mejda hash. Allura biex jimmotivaw din id-diskussjoni, let me jaħsbu dwar kif għandek tagħmel dan. Allura kif dwar dan? Ejja ngħidu li l-problema irridu li ssolvi issa qed timplimenta b'mod dictionary-- hekk mazz sħiħ ta 'kliem Ingliż jew ikun x'ikun. U l-għan huwa li tkun kapaċi twieġeb kwistjonijiet tal-formola huwa dan kelma? Allura inti tixtieq li jimplimentaw jespliċitaw kontrollur, biss bħal dizzjunarju fiżika li inti tista 'tfittex affarijiet up fil. Suppose I kellhom jagħmlu dan ma 'firxa. I jistgħu jagħmlu dan. U jissoponi il-kliem huma tuffieħ u banana u cantaloupe. U ma nistax think ta 'frott li tibda bil d, hekk aħna qed biss ser ikollhom tliet frottiet. Allura dan huwa firxa, u aħna qed ħażna kollha ta 'dawn il-kliem f'dan il-dizzjunarju bħala firxa. Il-kwistjoni, allura, huwa kif inkella jista int taħżen din l-informazzjoni? Well, jien tip ta 'qerq hawn, għaliex kull wieħed minn dawn l-ittri fil-kelma huwa verament byte individwali. Mela jekk jien verament riedu li jkun nit-picky, I għandhom verament jkun diviż dan up fis ħafna biċċiet iżgħar ta 'memorja, u nistgħu nagħmlu eżattament dan. Iżda aħna qed tmur biex jibda fis l-istess problema bħal qabel. X'jiġri jekk, kif Merriam-Webster jew Oxford ma kull year-- huma jżidu kliem għall-dictionary-- aħna ma neċessarjament jixtiequ li żebgħa lilna nfusna fil-kantuniera ma 'firxa? Allura minflok, forsi approċċ aktar intelliġenti huwa li l-tuffieħ fil-node jew kaxxa tiegħu stess, kif aħna ngħid, banana, u allura hawnhekk għandna cantaloupe. U aħna string dawn l-affarijiet flimkien. Allura dan huwa l-firxa, u dan huwa l-lista marbuta. Jekk inti ma tistax pjuttost tara, hija biss jgħid "matriċi," u dan jgħid "lista." Allura aħna għandna l-istess Kwistjonijiet eżatti bħal qabel, permezz tagħha issa għandna dinamiżmu fil-lista marbuta tagħna. Imma aħna għandna dizzjunarju pjuttost bil-mod. Suppose I tixtieq tfittex up kelma. Jista 'jieħu me O kbar ta' n passi, minħabba li l-kelma tista tkun it-triq kollha fl-aħħar tal -lista, bħall cantaloupe. U jirriżulta li fl-ipprogrammar, sort tal-Grail qaddis ta 'data strutturi, hija xi ħaġa li jagħtik kostanti żmien bħal firxa iżda li xorta jagħtik dinamiżmu. Allura nistgħu jkollhom l-aħjar taż-żewġ dinjiet? U fil-fatt, hemm xi ħaġa imsejjaħ il-mejda hash li tippermetti li tagħmel eżattament li, għalkemm madwar. Tabella hash huwa fancier istruttura tad-data li aħna jistgħu jaħsbu bħala l- kombinazzjoni ta 'array-- u jien ser tiġbed bħall this-- u l-listi marbuta li jien ser tfassal bħal dan aktar hawn. U l-mod dan ħaġa xogħlijiet hija kif ġej. Jekk dan now-- hash table-- huwa struttura tiegħi dejta tielet, u jien tixtieq li taħżen kliem f'dan, jien ma jridux biss taħżen kollha ta 'l- Kliem lura lura lura biex lura. Irrid li lieva xi biċċa informazzjoni dwar il-kliem li se let me ġġibu fejn huwa aktar mgħaġġel. Allura minħabba l-kliem tat-tuffieħ u banana u cantaloupe, I deliberatament għażlet dawn il-kliem. Għaliex? X'hemm tip ta fundamentalment differenti dwar it-tliet? X'hemm-ovvju? Huma jibdew bl-ittri differenti. Allura inti taf liema? Pjuttost milli tpoġġi kliem kollha tiegħi fil l-istess barmil, biex ngħidu hekk, bħal fil-lista waħda kbira, għaliex ma I mill-inqas tipprova l-ottimizzazzjoni u jagħmlu listi tiegħi 26/01 sakemm. A ottimizzazzjoni konvinċenti jista 'jkun għaliex ma I-- meta ddaħħal kelma fis din l-istruttura tad-data, fil-memorja tal-kompjuter, għaliex ma nressaq il-"a" kliem hawn, kollha l- "b" kliem hawnhekk, u l-"ċ" kliem hawn? Allura dan jispiċċa tqegħid tuffieħa hawn, banana hawn, cantaloupe hawn, u oħrajn. U jekk I jkollhom addizzjonali kelma like-- x'hemm ieħor? Tuffieħ, banana, lanġas. Kulħadd jaħseb ta 'frotta li jibda bil-, b, jew c? perfetta Blueberry--. Li ser jispiċċaw hawn. U hekk aħna jidhru li jkollhom marġinalment soluzzjoni aħjar, għaliex issa jekk irrid tiftix għal tuffieħ, I first-- I do mhux biss adsa fl-istruttura tad-data tiegħi. Jien ma adsa fil-memorja tal-kompjuter tiegħi. I l-ewwel ħarsa lejn l-ewwel ittra. U dan huwa dak kompjuter xjentist ngħid. Inti hash fl-istruttura tad-data tiegħek. Tieħu input tiegħek, li fil F'dan il-każ hija kelma simili tuffieħ. Inti janalizzah, tħares lejn l-ewwel ittra f'dan il-każ, b'hekk hashing dan. Hashing huwa biha terminu ġenerali tieħu xi ħaġa bħala input u inti jipproduċi xi output. U l-produzzjoni f'dak każ huwa l-post inti trid tfittex, l-ewwel post, it-tieni post, it-tielet. Allura l-input huwa tuffieħ, l-output huwa l-ewwel. L-input huwa banana, l- output għandu jkun sekonda. L-input huwa cantaloupe, il-produzzjoni għandha tkun terza. L-input huwa blueberry, l output għandu jerġa 'jkun it-tieni. U dan huwa dak li jgħinek tieħu shortcuts permezz memorja tiegħek sabiex insir kliem jew data aktar effettiv. Issa dan inaqqas l isfel żmienna potenzjalment billi kemm wieħed minn 26, għaliex jekk inti tassumi li int għandhom bħala ħafna "a" kliem bħala "z" Kliem bħal kliem "q", li mhuwiex verament realistic-- int se jkollhom skew madwar ċerti ittri ta 'l-alphabet-- imma dan ikun inkrimentali approċċ li ma jippermettu li tirċievi kliem ferm aktar malajr. U fir-realtà, sofistikati programm, il-Google tad-dinja, il facebooks tal-world-- huma se jużaw tabella hash għal ħafna skopijiet differenti. Iżda dawn ma jkunux daqshekk naive kif li biss ħarsa lejn l-ewwel ittra fil tuffieħ jew tal-banana jew lanġas jew cantaloupe, għaliex kif inti tista 'tara dawn listi xorta jistgħu jiksbu twil. U hekk dan jista 'xorta waħda jkun tip ta linear-- hekk tip ta 'bil-mod, bħal ma 'lO kbar ta' n li aħna diskussa aktar kmieni. Allura dak tabella reali hash tajba se do-- se jkollhom firxa ħafna akbar. U se tuża ħafna aktar funzjoni hashing sofistikati, b'tali mod li ma biss ħarsa lejn il-"a." Forsi jidher fil- "a-p-p-l-e" u b'xi tikkonverti dawn il-ħames ittri fil-post fejn tuffieħ għandhom ikunu maħżuna. Aħna biss naively bl-ittra "a" waħedhom, għaliex dan huwa sbieħ u sempliċi. Iżda tabella hash, fil -aħħar, inti tista 'taħseb bħala taħlita ta ' firxa, li kull wieħed minnhom għandu lista marbuta li idealment għandu jkun qasir kemm jista 'jkun. U dan mhux soluzzjoni ovvja. Fil-fatt, ħafna mill-irfinar li tmur fuq taħt il-barnuża meta implimentazzjoni ta dawn it-tipi ta ' strutturi tad-dejta sofistikati huwa dak li huwa d-dritt tul tal-firxa? X'inhi l-funzjoni hash dritt? Kif inti taħżen l-affarijiet fil-memorja? Imma tirrealizza kemm malajr dan it-tip ta 'diskussjoni eskalat, jew s'issa li huwa tip ta fuq ras wieħed f'dan il-punt, li huwa multa. Iżda bdejna, irtirar, bil tassew xi ħaġa ta 'livell baxx u elettroniku. U għalhekk dan għal darb'oħra huwa dan tema ta 'estrazzjoni, fejn ladarba inti tibda tieħu għall mogħtija, OK, stajt ltqajna it-- hemm memorja fiżika, OK, ltqajna, kull lokazzjoni fiżika għandha l-indirizz, OK, I ltqajna, I tista 'tirrappreżenta dawk l-indirizzi bħala arrows-- inti tista 'malajr ħafna jibda jkollu konversazzjonijiet aktar sofistikati li fl-aħħar jidhru li huma jħallina naqtgħu sabiex isolvu problemi bħal tiftix u l-għażla aktar effettiv. U mistrieħ assigurat, too-- għaliex naħseb dan il huwa l-aktar fonda konna marret fis xi ta 'dawn is-suġġetti CS proper-- Imxejna isir fil-jum u nofs f'dan punt dak li inti tista tipikament do fuq il-kors ta 'tmien ġimgħat fil-semestru. Kwalunkwe mistoqsijiet dwar dawn? Nru? Kull dritt. Ukoll, għaliex ma we nieqaf hemm, tibda ikla ftit minuti kmieni, jerġgħu jibdew fi ftit madwar siegħa? U jien ser linger għal daqsxejn bil-mistoqsijiet. Imbagħad jien ser ikollhom imorru jieħdu sejħiet koppja jekk dan huwa OK. I ser idur fuq xi mużika fil-frattemp, imma ikla għandu jkun l-kantuniera.