>> DAVID MALAN: Bütün hüququ.
Biz geri.
proqramlaşdırma üzrə bu seqmentində Belə ki, nə Düşünürəm ki, biz hər şeyi bir mix nə istədiyiniz düşündüm.
One, bir az etmək bir şey praktiki,
daha oynaq istifadə olsa proqramlaşdırma environment--
nümunəvi bir fikir məhz növ
Biz haqqında söhbət etdik lakin bir az daha formal.
Two, bəzi baxmaq daha çox texniki yolları
bir proqramçı həqiqətən həll ki, axtarış problemi kimi problemlər
biz əvvəl baxdı ki, də daha əsaslı
çeşidlənməsi maraqlı problem.
>> Biz yalnız getmək almaq ehtimal ki, telefon kitab sıralanır edilmişdir ki,
lakin tək əslində belə bir bir çox müxtəlif yollarla ağır problem
həll etmək.
Beləliklə, biz bu istifadə edəcəyik problemlərin sinif
şeyi nümayəndəsi ümumiyyətlə həll edilə bilər.
Və sonra biz danışmaq lazımdır bəzi ətraflı haqqında nə
məlumat deyilir structures-- bağlı siyahıları kimi meraklısı yolları
və hash masalar və ağaclar ki bir proqramçı həqiqətən ki
istifadə ümumiyyətlə istifadə və bir tahta boya
bir şəkil nə o həyata keçirilməsi üçün nəzərdə tutulur
proqram bəzi parça.
>> Belə ki, ilk hissəsi hands-on edək.
Belə ki, yalnız bir ilə çirkli əlləri almaq ətraf mühit adlı scratch.mit.edu.
Bu istifadə bir vasitədir Bizim lisenziya sinif.
Bu nəzərdə baxmayaraq yaş 12 və üçün,
biz üçün istifadə olduqca bir az hissəsi
bir gözəl, əyləncə var-ci ildən öyrənmə qrafik yol
proqramlaşdırma haqqında bir az bir şey.
Belə ki, burada sizə ki, URL rəhbərlik çox bu kimi bir səhifə görmək lazımdır,
və irəli getmək və basın sağ üst Not Qeydiyyat
və bir istifadəçi adı və seçmək parol və nəticədə özünüz almaq
bir account-- scratch.mit.edu.
Mən bir kimi istifadə istədiyiniz fikir imkan ilk bu göstərir.
Sual fasilə zamanı gəldi nə code həqiqətən kimi görünür.
Biz söhbət C fasilə zamanı,
in particular-- xüsusilə köhnə dildə aşağı səviyyədə.
Mən yalnız bir sürətli idi Google C kodunu tapmaq üçün axtarış
ikili axtarış alqoritmi üçün ki, biz əvvəllər telefon kitab axtarış üçün istifadə.
Bu xüsusi misal, əlbəttə, telefon kitab axtarış deyil.
Bu, sadəcə bir dəstə axtarış kompüter yaddaşında nömrələri.
Amma yalnız vizual almaq istəyirsinizsə nə faktiki proqramlaşdırma hissi
, Görünür kimi dil görünür bu kimi bir az bir şey.
Belə ki, təxminən 20-plus var kod 30 və ya belə xətləri,
lakin söhbət biz fasilə üzərində edirdik
necə bu həqiqətən idi adet sıfır və olanları daxil morphed olur
və yalnız geri bilməz, əgər emal və adet sıfır və olanları getmək
kod geri.
>> Təəssüf ki, proses belə transformasiya edir
Bu çox asan olduğunu həyata daha bildirib.
Mən irəli getdi və faktiki olaraq çıxdı ki proqram, ikili axtarış,
bir yolu ilə adet sıfır və olanları nəzərə proqram compiler adlı I
mənim Mac burada var baş verir.
Və siz ekran baxmaq əgər Burada xüsusi diqqət
Bu orta altı sütun üzərində yalnız Yalnız adet sıfır və olanları görəcəksiniz.
Və o adet sıfır və olanları ki, məhz axtarış proqramı daxildir.
>> Və beş bit hər yığın, burada adet sıfır və olanları hər byte,
bəzi təlimat təmsil adətən kompüter daxilində.
Və əslində, siz eşitdim əgər marketing şüarı "Intel daxili" - ki,
əlbəttə, yalnız bir var deməkdir kompüter daxilində Intel CPU və ya beyin.
Və bir CPU olmaq nə deməkdir Bir təlimat set var ki,
belə danışmaq.
>> çox dünyada hər CPU, Onlara bu gün Intel tərəfindən,
məhdud anlayır təlimat sayı.
Və bu təlimat belə aşağı səviyyədə kimi, birlikdə bu iki ədəd əlavə
birlikdə bu iki ədəd çoxaltmaq, Burada məlumatların bu parça hərəkət
Burada yaddaş, bu saxlamaq buradan məlumat yaddaşında burada
və belə forth-- belə çox aşağı səviyyədə, demək olar ki, elektron məlumat.
Lakin həmin riyazi ilə əməliyyatları coupled
biz əvvəllər müzakirə nə ilə, məlumatların nümayəndəliyi
can adet sıfır və olanları kimi hər şey qurmaq
kompüter olub, bu gün edə bilərsiniz ki, Bu, mətn, qrafik, musiqi var
və ya başqa.
>> Belə ki, bu almaq üçün çox asandır tez alaq otları itirdi.
Və bir çox var sintaktik problemlər
vasitəsi siz sadə etmək, Proqramın hatası heç stupidest
heç işləyəcək.
Və əvəzinə istifadə C kimi dil bu səhər,
Mən bu olardı düşündüm daha çox əyləncə həqiqətən etmək
daha əyani bir şey olan uşaqlar üçün nəzərdə tutulmuşdur isə
mükəmməl təzahürüdür əslində faktiki proqramlaşdırma
language-- yalnız olur əvəzinə mətn şəkillər istifadə
həmin ideyaları təmsil edəcək.
>> Siz həqiqətən bir dəfə So scratch.mit.edu hesab,
düyməsini yaradın basın üst saytın ayrıldı.
Və sizin kimi bir mühit görməlisiniz Mən ekranda görmək haqqında Ben bir
burada.
Və biz yalnız bir az sərf edəcəyik vaxt bit burada oynayır.
biz bütün bir həll edə bilər, əgər in nəzər salaq aşağıdakı şəkildə problemlər birlikdə.
>> Beləliklə, nə siz bu ərzində görürsünüz environment-- və həqiqətən yalnız imkan
Mənə fasilə.
Hər kəs burada deyil?
Burda yox?
TAMAM.
Belə ki, mənə bir neçə qeyd edək Bu mühitin xüsusiyyətləri.
>> Ekranın sol üst Belə ki, biz Not mərhələ var, belə danışmaq.
Scratch yalnız adı Bu proqramlaşdırma dili;
bu da pişik adı var ki, Siz narıncı var ismarıcları bax.
O, səhnədə belə çox mən təsvir kimi
Bir kimi əvvəllər tısbağa düzbucaqlı ağ board mühit.
Bu pişik dünya tamamilə məhdudlaşır orada düzbucaqlı qədər üst.
>> Eyni zamanda, sağ Burada tərəfdən, bu
Yalnız bir scripts sahəsi, boş şifer Siz əgər.
Bu yazmaq olacaq harada yalnız bir anda bizim proqramları.
Və bloklar biz edilir Bu puzzle program-- yazmaq üçün istifadə
ədəd, siz will-- əgər ortada burada o,
və onlar kateqoriyalara edirik funksionallığı ilə.
Belə ki, məsələn, mən irəli getmək üçün gedirəm bu ən azı bir nümayiş etdirir.
Mən irəli getmək və basın gedirəm üst up Control kateqoriya.
>> Belə ki, bu üst up kateqoriyalar var.
Mən Control kateqoriya basın gedirəm.
Əksinə, mən Hadisələr basın gedirəm kateqoriya, ilk bir qədər top.
Və hətta birlikdə izləmək istəyirsinizsə Bunu kimi, olduqca buyrun.
Mən basın və bu sürükleyin gedirəm Birincisi, "yaşıl bayraq tıklayan."
Və sonra mən yalnız onu düşmək üçün gedirəm təxminən mənim boş şist üst.
>> Və Not haqqında gözəl nə var Bu puzzle parça zaman
digər puzzle ilə interlocked ədəd sözün etmək niyyətindədir
o puzzle ədəd etmək nə.
Belə ki, məsələn, Scratch doğru İndi onun dünya ortasında.
Mən irəli getmək və seçmək üçün gedirəm indi deyək, Motion kateqoriya,
Siz nə etmək istəyirsinizsə Motion kateqoriya same--.
İndi bir bütün var fark Burada puzzle ədəd dəstə
yenə cür etmək, ki, onlar nə.
Mən irəli getmək və sürükleyin və gedirəm Burada üzərində hərəkət blok buraxın.
>> Və tezliklə almaq kimi qeyd "Yaşıl bayraq altına yaxın
tıklayan "düyməsini bildiriş Necə ağ xətt görünür,
demək olar ki, baxmayaraq kimi maqnit, orada getmək istəyir.
Just gedək və bu snap olacaq birlikdə və şekiller uyğun olacaq.
İndi siz bəlkə demək olar ki, biz bu hara getdiyini danışarlar.
>> Siz Scratch mərhələdə baxsaq burada və artıq üst baxmaq,
Bir qırmızı işıq görəcəksiniz, bir işarəsi və yaşıl bayraq dayandırmaq.
Mən irəli getmək üçün gedirəm və screen-- baxın
yalnız bir an üçün, ola bilər, əgər.
Mən basın gedirəm İndi bayrağı yaşıl,
və o, 10 addımlar görünür nə köçürülüb və ya ekranda 10 piksel, 10 nöqtələr.
>> Və belə ki, maraqlı deyil, lakin mənə təklif edək
, Hətta bu tədris olmadan Öz intuition-- let öz istifadə
Mənə necə anlamaq ki, təklif sağ mərhələdə off Scratch gəzmək edir.
Onu sağ üçün yol var ekran, sağ bütün yol.
Sizə bir an verək və ya belə ki, güləşmək.
Siz bir nəzər istəyirəm bilər blokları digər kateqoriyalara edir.
Yaxşı.
Belə ki, yalnız biz zaman, recap üçün yaşıl, burada Ölkə bayrağı tıklayan
10 addımlar hərəkət yalnız təlimat, hər dəfə mən
yaşıl bayrağı basın, nələr olur?
Yaxşı ki, mənim proqram çalışan.
Mən bunu edə bilər bəlkə əl 10 dəfə
lakin bu bir az hiss edir bit hackish, belə ki, danışmaq
vasitəsi Mən, həqiqətən, deyiləm problemin həlli.
Mən yenə çalışıram və təkrar və yenidən
qədər mən sort təsadüfən direktiv nail olmaq
Mən əvvəllər nail olmaq üçün yola çıxdı.
>> Amma biz bilirik bizim pseudocode əvvəllər var ki,
loop proqramlaşdırma bu anlayışı, təkrar bir şey bunu.
Və mən gördüm ki, sizin bir dəstə nə puzzle parça çatmışdır?
qədər təkrarlayın.
Beləliklə, biz bir şey edə kimi qədər deyirəm.
Və məhz qədər nə demək idi?
>> TAMAM.
Və mənə bir gedək yalnız bir an üçün bir qədər sadə.
Mənə irəli getmək və bunu edək.
Siz ola bilər kimi, Qeyd edək ki, Nəzarət altında aşkar
Bu təkrar blok, var olan bu kimi baxmaq deyil ki, böyük deyil.
deyil çox otaq var bu iki sarı xətləri arasında.
Amma bəzi ola bilər Siz sürükleyin və açılan əgər, qeyd,
Bu forma doldurmaq artır necə hiss.
>> Və daha çox sığdırdı.
Bu, yalnız əgər artan saxlamaq lazımdır Siz sürükleyin və üzərində hover.
Mən nə bilmirəm burada ən yaxşı, belə ki, imkan
Mənə ən azı beş dəfə təkrar Məsələn, və sonra səhnəyə geri
və yaşıl bayrağı basın.
İndi kifayət qədər yoxdur görürsünüz.
>> İndi bəzi təklif Victoria yalnız 10 dəfə təkrar etdi.
Və ümumiyyətlə yoxdur bütün yol onu almaq,
lakin orada ki, bir daha möhkəm olması özbaşına həyata figuring çox yol
neçə hərəkət etmək üçün necə?
Nə yaxşı blok ola bilər təkrar 10 dəfə olacaq?
>> Bəli, belə ki, niyə əbədi bir şey deyil?
İndi mənə bu puzzle parça hərəkət edək orada daxilində və bu xilas.
İndi burada Scratch olursa qeyd başlayır, o kənarında gedir.
Və təşəkkürlə MİT, olan yalnız, danışıq edir
əmin o ki, heç vaxt edir tamamilə itir.
Siz həmişə onun quyruq qapmaq bilər.
>> Və yalnız daxilən, Nə üçün o hərəkət davam edir?
Burada nə gedir?
O, dayandı görünür, lakin Mən və drag ala sonra əgər
o orada getmək istəyən saxlayır.
Niyə ki?
Həqiqətən, kompüter sözün Siz demək nə gedir.
Siz onu bildirib ki, əgər Belə ki, əvvəllər bunu əbədi şey sonra 10 addım hərəkət,
gedir və davam olacaq Mən qırmızı stop işarəsi hit qədər
və ümumiyyətlə proqramını dayandırmaq.
>> Siz yox idi, hətta əgər Bunu, necə ola bilər
sürətli Scratch hərəkət etmək ekran arasında?
Daha addımlar, sağ?
Belə ki, əvəzinə 10 bunu Bir anda, niyə biz deyil
irəli getmək və to-- dəyişdirmək 50 nə propose-- olardı?
Belə ki, indi yaşıl basın gedirəm bayraq və həqiqətən, o, həqiqətən sürətli gedir.
>> Bu, əlbəttə, yalnız animasiya təzahürüdür.
animasiya nədir?
Bu yalnız sizə insan göstərən həqiqətən hələ images bütün dəstə,
həqiqətən, həqiqətən sürətli.
Və əgər biz yalnız izah edirik ona daha çox addımlar hərəkət etmək,
biz yalnız təsiri ola qarşılaşdıqda o ekranda dəyişiklik
zaman bütün daha sürətlə başına vahid.
>> Mən təklif İndi növbəti çağırış Ona kənarında off sıçrayış var idi.
Və nə puzzle bilmədən gözəl, çünki ədəd exist--
Siz almaq yoxsa challenge-- mərhələsi nə
Siz daxilən nə istəyirsiniz?
Biz onu geri sıçrama olardı və irəli, sol və sağ arasında?
>> Bəli.
Beləliklə, biz bir növ lazımdır vəziyyəti və biz
belə, conditionals üçün görünür Control kateqoriya altında danışmaq.
Bu blokları hansı biz yəqin ki, istəyirsiniz?
Bəli, bəlkə ", onda".
Belə ki, sarı blokları arasında fark Biz bu "əgər" var, burada var
və ya bu "əgər başqa" bloku edəcək ki Bizə bunu bir qərar qəbul etmək üçün imkan verir
və ya bunu.
Və hətta yuva onları Çox şeyə.
Yoxsa hələ burada getdi olsanız, Algılama kateqoriya davam
and-- Burada əgər nin görək.
>> Belə ki, nə blok burada faydalı ola bilər O mərhələ off əgər aşkar etmək üçün?
Bəli, bu blokları ki, bəzi qeyd parametrized bilər, belə danışmaq.
Onlar sort deyil, xüsusi ola bilər HTML fərqli dünən atributları ilə,
burada o atributları cür bir tag davranış özelleştirebilirsiniz.
Eynilə burada, bu toxunan qamarlamaq bilər blok və dəyişiklik və sual,
Siz siçan toxunan Kursor kimi pointer
və ya kənar toxunan olunur?
>> Belə ki, mənə getmək və bunu bildirin.
Mən bir an kiçiltmək gedirəm.
oxşar puzzle parça grab edək burada, bu puzzle parça bu,
Mən dolaşıq gedirəm yalnız bir an üçün onları.
Mən bu hərəkət gedirəm toxunan kənarında bu dəyişiklik,
Bunu Mən hərəkət gedirəm.
Belə ki, burada bəzi maddələr var.
Mən istəyirəm ki, hər şey var edirəm.
>> Kimsə necə təklif etmək istəyirsiniz I Bu bəlkə alt üst qoşula bilər
olan problemi həll etmək üçün Scratch hərəkət üçün sağ hüququ
Hər sol sağ vaxt yalnız divar off dönen?
Mən nə istəyirəm?
Hansı blok Mən qoşulmaq lazımdır "Yaşıl bayraq ilk tıklayan?"
>> OK, belə ki, ilə başlamaq edək "əbədi".
Nə gələn daxili gedir?
Başqa kimsə.
OK, addımlar hərəkət.
Yaxşı.
Sonra nə?
Beləliklə, əgər.
Və görünür, baxmayaraq ki, qeyd sıx birlikdə sandwiched,
yalnız doldurmaq artacaq.
Bu, sadəcə mən bunu istədiyiniz jump edəcək.
>> Mən arasında nə qoymaq yoxdur Əgər sonra?
Yəqin ki, "əgər kənar toxunan".
Və bildiriş yenidən, bu çox böyük Bunun üçün, ancaq doldurmaq artacaq.
Və sonra 15 dərəcə çevirmək?
Neçə dərəcə?
Bəli, belə 180 fırlatmaq edəcək ətrafında mənə bütün yol.
Mən bu hüququ var, əgər nin görək.
Mənə kiçiltmək edək.
>> Mənə Scratch qədər sürükleyin edək.
O təhrif bir az var İndi, lakin gözəl var.
Necə asanlıqla onu yenidən qura bilərsiniz?
Mən bir az fırıldaqçı gedirəm.
Mən başqa əlavə alıram məhəllə, yalnız aydın olacaq.
Mən ona 90 dərəcə qeyd etmək istəyirəm ismarıcları sağ,
mən yalnız onu demək gedirəm program bunu.
Və burada biz gedin.
Biz bunu etdik görünür.
Çünki, bir az qəribə o altüst gəzinti oldu.
Bir səhv zəng edək.
Bu səhv var.
A səhv bir proqram, bir səhv Mən insan etdi məntiqi səhv.
Nə üçün o altüst gedir?
MIT qıymaq və ya etdim mi?
>> Bəli, mən demək, bu MİT-in deyil günah. Onlar mənə bir puzzle parça verdi
ki, dərəcə, bəzi sayı çevirmək deyir.
Və Victoria təklifi, Mən 180 dərəcə dönüş alıram,
hansı doğru intuisiya edir.
Amma sanki 180 dərəcə dönüş 180 dərəcə dönüş deməkdir,
ki, həqiqətən deyil Mən istəyirəm nə, yəqin.
ən azı o var, çünki Bu iki ölçülü dünya,
belə dönüş həqiqətən gedir altüst onu çevirmek.
>> Mən yəqin ki, nə blok istifadə etmək istədiyiniz burada nə görmək əvəzinə, əsasən?
Biz bu düzeltmek bilər?
Bəli, belə ki, biz qeyd edə bilər əks istiqamətdə.
Və həqiqətən, hətta ki, kifayət qədər olacaq deyil,
biz yalnız ağır kodu çünki sol və ya sağ işarə.
>> Biz nə edə bilər nə bilirik?
biz var kimi görünür Burada rahatlığı blok.
Mən zoom varsa bax bir şey biz burada istəyirsiniz?
MİT bir var kimi Belə ki, görünür abstraksiya burada inşa.
Bu blok ekvivalent görünür digər blokları cəm olan?
>> Bu blok ekvivalent görünür bloklarının bu bütün trio üçün
ki, biz burada var.
O çıxır Mən sadələşdirmək bilər mənim ki, bütün xilas proqram
və yalnız burada bu qoymaq.
Və indi o, hələ bir az arabası ki, indi gözəl var.
Biz ki, ola tərk edəcəyik.
Amma mənim proqram hətta sadə və bu da
nümayəndəsi olacaq proqramlaşdırma bir qol
ideal kimi kodu etməkdir sadə, mümkün qədər yığcam kimi,
hələ də olarkən mümkün qədər oxunaqlı.
Siz belə qısa etmək istəmirəm çətin ki, başa düşmək.
>> Amma əvəz etdik hiss biri ilə üç blokları,
ki, arguably yaxşı bir şey deyil.
Mən anlayışı üz Abstrak etdik Siz olsanız yoxlanılması
Yalnız bir bloku ilə kənarında.
İndi biz əslində, bu ilə fun ola bilər.
Bu çox əlavə deyil intellektual dəyəri lakin oynaq dəyəri.
Mən irəli getmək üçün gedirəm və bu səs grab.
Mənə davam edək və mənə bildirin bir an proqramını dayandırmaq.
Mən aşağıdakı qeyd gedirəm, Mənim mikrofon girişi imkan verir.
>> Burada getmək.
Ouch.
Yenə bu cəhd edək.
Burada getmək.
OK, Mən yanlış bir şey qeyd edildi.
Burada getmək.
Ouch.
Yaxşı.
İndi ki, xilas etmək lazımdır.
Yaxşı.
>> Belə ki, indi mən bir yalnız qeyd "uf".
İndi Mən getmək üçün gedirəm irəli və bu "uf." zəng
Mən geri getmək üçün gedirəm Mənim scripts və indi
bildiriş deyirlər bu blok var səs "miyavlamak" oynamaq və ya səs oyun "uf".
Bu sürükleyin gedir və burada alıram Mən komik effekt üçün bu qoymaq lazımdır?
Bəli, belə ki, indi bu cür var arabası, çünki indi bu block--
qeyd necə "kənarında əgər, sıçrama "müstakil növüdür.
Mən bu düzeltmek lazımdır.
Mənə irəli getmək və bunu edək.
oxşar xilas edək və geri orijinal, daha qəsdən
funksionallıq.
"Kənar toxunan, onda" Mən istəyirəm Victoria təklif etdiyi kimi, çevirmək,
180 dərəcə.
Mən oynamaq istəyirəm orada "uf" səs?
>> Bəli, kənarda var, qeyd ki, sarı blok.
bu Belə ki, çox olardı bug, ancaq fark etdik.
Mən burada bu qədər sürükleyin gedirəm, və bildiriş indi daxili "əgər".
"Əgər" Belə ki, bu cür kimi qol kimi Blot of
yalnız olacaq Bunun içərisində nə yoxdur.
Belə ki, indi həyata zoom əgər annoying-- riski
>> COMPUTER: uf, uf, uf.
>> DAVID MALAN: Bu Yalnız əbədi davam edəcək.
İndi şeyi sürətləndirmək burada, mənə irəli getmək və açmaq bildirin,
məni bəzi gedək deyək sinif öz məhsullarının.
Və bu deyək, mənə açmaq bildirin bir bizim tədris yoldaşları tərəfindən edilən
bir neçə il əvvəl.
Belə ki, bəzi xatırlayıram bilər yesteryear bu oyun
və bu, həqiqətən gözəl var.
biz etdik baxmayaraq İndi proqramların sadə,
nin nə hesab edək həqiqətən kimi görünür.
Mənə oyun hit edək.
>> Belə ki, bu oyun, biz bir var qurbağa və arrow istifadə keys--
o Xatırlamaq daha böyük addımlar atır Bu qurbağa nəzarət var.
Məqsəd məşğul daxilində almaq üçün maşın daxil çalışan olmadan yol.
Və mən burada getmək əgər see-- edək I bir günlük ilə hərəkət etmək üçün gözləmək lazımdır.
Bu səhv kimi hiss edir.
Bu səhv növüdür.
Yaxşı.
Mən burada bu Ben orada, sonra saxlamaq
bütün almaq qədər gedir zanbaq ped üçün frogs.
İndi bu ola bilər daha mürəkkəb,
Amma qırmaq edək bu aşağı əqli
və şifahi onun tərkib blokları daxil.
Belə ki, yəqin ki, bir puzzle var Biz hələ görməmişik parça
lakin tuş vuruşlarını cavab var, şeyi mən klaviatura edib.
>> Belə ki, yəqin ki, bir növ var düyməsini yuxarı bərabərdir əgər deyir məhəllə,
sonra Scratch-- ilə bir şey Bəlkə 10 addım bu şəkildə hərəkət.
aşağı əsas bərk halda, 10 addımlar hərəkət Bu yolla, ya sol düyməsini 10 addım hərəkət
Bu yolla, 10 ki, addımlar.
Mən aydın bir qurbağa daxil pişik çıxdı etdik.
Belə ki, yalnız burada var Scratch zənglər biz onu kostyum kimi
yalnız qurbağa bir şəkil idxal.
>> Amma baş başqa nə?
Nə kodu digər xətləri, nə digər puzzle ədəd
Blake etdi, bizim tədris fellow, Görünür, bu proqram istifadə?
Hər şeyi edilməsi move-- nə proqramlaşdırma tikintisi?
>> Motion, belə ki, sure-- əmin üçün, blok hərəkət.
Və hərəkət blok var , Çox güman ki, daxilində?
Bəli, loop bir növ, bəlkə bir əbədi bəlkə təkrar, blok block--
blok qədər deyirəm.
Və nə logs edilməsi və zanbaq yastiqciqlar və başqa hər şey hərəkət
geri və irəli.
Bu, sadəcə endlessly baş.
>> Niyə avtomobil bəzi daha sürətli hərəkət?
həmin proqramların haqqında müxtəlif nədir?
Bəli, yəqin ki, onlardan bəziləri edirlər daha bir dəfə addımlar və onların bəziləri
bir dəfə daha az addımlar.
Və vizual effekt yavaş qarşı sürətli edir.
>> Siz baş nə düşünürsünüz?
Mən qurbağa var bütün yol küçə və çay boyunca
zanbaq pad, bir şey üzərində diqqətəlayiq oldu.
Nə tezliklə mən ki, kimi oldu?
Bu dayandırdı.
Bu qurbağa dayandı, Mən ikinci qurbağa var.
Belə ki, nə tikinti olmalıdır orada istifadə nə xüsusiyyət?
>> Bəli, belə bir növ var də orada vəziyyəti "əgər".
Biz bu görmədim yazaraq Və çevrilir lakin ki, digər blokları var
Siz toxunan əgər, demək olar ekranda bir şey,
Siz "sonra". lily pad toxunan edirsinizsə
Və o zaman biz var ikinci qurbağa görünür etmək.
Belə ki, bu oyun əlbəttə olsa çox hətta ilk baxışda olsa da,-ci il tarixli
var qədər Us və Blake gedir iki dəqiqə bu qızışdırmaq deyil,
yəqin ki, ona bir neçə etdi saat Bu oyun yaratmaq üçün
onun yaddaş və ya video əsasında bu yesteryear versiyası.
Lakin bu kiçik şeyi bütün təcrid ekranda gedir
bu çox sadə aşağı qaynatmaq constructs-- hərəkəti və ya hesabatları
biz müzakirə etdik kimi, loops və şərait və bu barədə var.
bir neçə digər meraklısı xüsusiyyətləri var.
Bəziləri sırf var estetik və ya akustik,
səslər kimi mən yalnız ilə oynamışdır.
Lakin çox hissəsi üçün, siz bu dil, Not var,
fundamental bütün bloklar ki, siz
C, Java, JavaScript var, PHP, Ruby, Python,
və digər dillərdə hər hansı bir sayı.
Not haqqında hər hansı bir sualınız?
Yaxşı.
Beləliklə, biz Not dərin dalış deyil, Bu həftə sonu buyrun baxmayaraq,
uşaq var, xüsusilə də əgər və ya övladları və bacı və belə
Not onları təqdim etmək.
Bu, həqiqətən bir gözəl oynaq var ətraf mühit, onun müəllifləri demək kimi,
çox yüksək tavanlar.
biz ilə başladı baxmayaraq çox aşağı səviyyədə ətraflı,
Siz, həqiqətən, bir qədər edə bilərsiniz ilə və bu bəlkə
məhz nümayişi.
>> Amma indi daha çox keçid imkan inkişaf etmiş problemləri, Siz,
"Axtarış" kimi tanınan və ümumiyyətlə ", çeşidlənməsi".
Biz bu telefon kitab əvvəllər burada idi yalnız discussion-- üçün başqa bir
biz axtarış edə idi ki, daha səmərəli, çünki
əhəmiyyətli ehtimal.
Və yalnız aydın olmaq üçün nə ehtimal I edilməsi idi
Bu telefon kitab vasitəsilə axtarış zaman?
Mike Smith olduğunu telefon kitab, I baxmayaraq
idarə edə bilər onsuz ssenari
Mən vaxtından əvvəl orada dayandırılıb əgər.
kitab əlifba edir.
Və bir çox səxavətli var ehtimal ki, çünki
I növ edirəm someone-- deməkdir bir küncündə kəsmə,
Mən kimsə çünki daha sürətli am başqa, mənim üçün ağır iş bir çox idi.
>> Amma nə telefon kitab çeşidlənməmiş idi?
Bəlkə Verizon tənbəl var, yalnız atdı hər kəsin adları və nömrələri var
bəlkə qaydada onlar telefon xidməti üçün imzalanmış.
Və nə qədər vaxt mənə görür Mike Smith kimi kimsə tapmaq üçün?
1000 səhifə telefon neçə book-- pages mən vasitəsilə baxmaq lazımdır?
>> Onların hamısı.
Siz uğurlar növ istəyirik.
Siz sözün hər baxmaq lazımdır səhifə telefon kitab yalnız əgər
təsadüfi sıralanır.
Siz xoşbəxt almaq və Mike tapa bilərsiniz ilk səhifə, o
ilk müştəri oldu telefon xidməti sifariş.
Lakin o, son ola bilər.
>> Belə ki, təsadüfi üçün yaxşı deyil.
Beləliklə, biz düzmək lazımdır Güman telefon kitab və ya ümumi sort data
biz verilmiş etdik.
Bunu necə etmək olar?
>> Yaxşı, mənə yalnız edək Burada sadə misal.
Mənə irəli getmək və silkələmək edək board bir neçə ədəd.
Var biz nömrələri düşünək nin, dörd, iki, bir, və üç deyək.
Və Ben, bizim üçün bu nömrələri düzmək.
>> Yaxşı, oldu.
Necə ki, bunu etdiniz?
Yaxşı.
Belə ki, kiçik ilə başlayın dəyəri və yüksək,
ki, həqiqətən yaxşı intuisiya var.
Və biz həyata insanlar həqiqətən olduqca var
həllində yaxşı bu kimi ən azı
data nisbətən kiçik olduqda.
Kimi tezliklə yüzlərlə başlamaq kimi nömrələri, nömrələri minlərlə
ədəd milyonlarla Ben yəqin ki, olduqca sürətli bunu edə bilər,
olduğunu fərz etsək ədəd boşluqlar.
bir milyon saymaq Pretty asan Əks halda, yalnız vaxt.
>> Belə ki, alqoritm səslənir Ben indi yalnız istifadə kimi
kiçik sayı axtarış idi.
Belə ki, biz insanlar edə bilər, baxmayaraq ki, vizual informasiya bir çox,
kompüter əslində bir az daha məhduddur.
kompüter yalnız bir-bir byte baxmaq
bir sýrada və ya bəlkə dörd bytes bir sýrada bu gün bəlkə 8 bayt
lakin çox az sayda bir zamanda bayt.
>> Belə ki, biz, həqiqətən, var ki, verilmiş Dörd ayrı dəyərlər burada
və olan kimi Ben hesab edə bilər O, kompüter belə olsaydı on blinders
O, digər bir şey görə bilməz ki bir sýrada bir saydan
belə ki, biz ümumiyyətlə kimi, güman ki, English, biz sağ sol oxumaq lazımdır.
Belə ki, ilk number Ben probably baxdı çox tez sonra dörd idi və
ki, olduqca böyük var həyata saysız me axtarır saxlamaq imkan verir.
>> iki var.
Bir dəqiqə gözlə.
İki dörd kiçikdir.
Mən xatırlayıram gedirəm.
Two indi kiçik deyil.
İndi one-- ki, hətta daha yaxşıdır.
Bu hətta kiçik var.
Mən iki unutmaq üçün gedirəm və yalnız indi bir xatırlayıram.
>> O axtarır dayandırmaq bilər?
Bəli, o, əsasən bilər Bu informasiya,
lakin o, daha yaxşı axtarış istədiyiniz siyahısı istirahət.
siyahısında nə sıfır əgər idi çünki?
Nə bir mənfi siyahısına olsaydı?
O, yalnız onun cavab bilir ki o exhaustively əgər doğru
bütün siyahısını yoxlanılır.
Beləliklə, biz bu qalan oldu.
ki Three-- vaxt itkisi idi.
uğursuz var, amma mən bunu doğru hələ.
Və indi o ehtimalla kiçik sayı seçilmiş
və yalnız əvvəlində qoymaq siyahısı, mən burada edəcəyik kimi.
İndi, baxmayaraq ki, növbəti nə etdi təxminən bu barədə düşünmürdüm
bu dərəcədə?
prosesi təkrar, loop belə bir növ.
bir tanış fikir var.
Belə ki, burada dörd edir.
Bu hal-hazırda ən kiçik var.
Bu namizəd var.
Not artıq.
İndi iki gördüm.
Bu növbəti kiçik element var.
ki, deyil kiçik Three-- İndi Ben iki həyata qırpmaq bilər.
>> İndi biz prosesi təkrar və əlbəttə üç növbəti çıxardı olur.
prosesi təkrarlayın.
Four çıxardı olur.
İndi biz nömrələri bitti, belə siyahısı sıralanır olmalıdır.
>> Şübhəsiz ki, bu, formal alqoritm edir.
A kompüter alim olardı "Seçim sort" Bu zəng
fikir sort bir olan yenidən iteratively-- siyahısı
və təkrar seçilməsi kiçik sayı.
Bu barədə gözəl nə var yalnız belə darn asan deyil.
Bu sadə.
Və eyni təkrar edə bilərsiniz əməliyyat təkrar.
Bu sadə.
>> Bu halda sürətli idi, lakin Bu, həqiqətən nə qədər lazımdır?
Nin görünür edək və bir az daha yorucu hiss edirəm.
Belə bir, iki, üç, dörd, beş-altı, yeddi, səkkiz, doqquz, 10, 11, 12, 13, 14,
15 16-- ixtiyari nömrəsi.
Mən daha çox bu istədi Yalnız dörd daha vaxt.
Mən bir bütün var, əgər ədəd dəstə onu now--
belə etməz Onlar edək are-- nə
nə haqqında düşünmək alqoritm həqiqətən kimi.
>> orada nömrələri var düşünək.
Yenə Fərq etməz nə Onlar, lakin onlar təsadüfi istəyirik.
Mən Ben alqoritm tətbiq edirəm.
Mən kiçik sayı seçmək lazımdır.
Mən nə edirəm?
Mən fiziki gedirəm onu hərəkət bu vaxt.
Axtarıram axtarır, axtarır, axtarır, axtarır.
Yalnız mən almaq zaman siyahısı son bilər
Mən kiçik həyata sayı iki bu idi.
Bir siyahıda deyil.
Mən iki yazmaq.
>> Mən növbəti nə etməliyəm?
axtarır, axtarır, axtarır, axtarır.
İndi, çünki sayı yeddi tapıldı bu nömrələr boşluqlar var
ancaq ixtiyari.
Yaxşı.
Belə ki, indi yeddi yazmaq olar.
Axtarıram axtarır, axtarır.
>> İndi ki, hərfinin alıram Əlbəttə, Ben ki, deyil
əlavə RAM var, əlavə yaddaş, çünki, əlbəttə,
Mən eyni sayda baxıram.
Şübhəsiz ki, mən yadda ola bilər o nömrələr bütün,
ki, tamamilə doğrudur.
Amma Ben bütün xatırlayır əgər nömrələri o görünür ki,
o, həqiqətən çıxarmadı fundamental tərəqqi
o, artıq var, çünki axtarış imkanı
board ədəd vasitəsilə.
bütün xatırlayan nömrələri, kömək etmir
o bir kompüter kimi hələ çünki yalnız dedik etdik, bir sıra baxmaq
anında.
Belə ki, fırıldaqçı heç cür var Siz var leverage bilər.
>> əslində, kimi Mən siyahısı axtarış saxlamaq,
Mən sözün yalnız davam etmək lazımdır Geri və irəli vasitəsilə həyata Yolma
Növbəti kiçik sayı.
Və cür nəticə çıxarmaq olar Mənim silly hərəkəti,
Bu yalnız çox olur çox tez yorucu,
Mən geri gedir görünür və irəli, geri və irəli bir qədər.
İndi ədalətli olmaq, mən getmək yoxdur olduqca, yaxşı, ədalətli olmaq see-- edək
Mən gəzmək yoxdur kimi bir çox addımlar hər zaman.
Çünki əlbəttə, mən siyahıdan nömrələri seçin
Qalan siyahısı qısa olur.
>> Və belə ki, haqqında düşünməyə imkan neçə addımlar Mən, həqiqətən, Ben
Hər zaman vasitəsilə dolaşmışlar.
ilk vəziyyət Biz 16 ədəd idi
və belə ki, yalnız imkan maximally-- bir discussion-- üçün bunu
Mən 16 vasitəsilə baxmaq idi ədəd kiçik tapa bilərsiniz.
Amma bir dəfə mən həyata yoluq kiçik sayı, necə
uzun əlbəttə qalan siyahısını idi?
Just 15.
Belə ki, neçə ədəd Ben və ya mən var idi ətrafında ikinci dəfə baxmaq üçün necə?
15, yalnız getmək və kiçik tapa bilərsiniz.
Amma indi, əlbəttə, siyahısı, də əvvəl daha kiçik.
Belə ki, necə çox addımlar etdim növbəti dəfə almaq lazımdır?
14 və daha sonra 13 və sonra 12 plus dot, Mən yalnız bir ilə tərk edirəm qədər dot, nöqtə.
Belə ki, indi bir kompüter alim olardı bütün bərabər ki, nə yaxşı, xahiş?
Bu, həqiqətən, bəzi konkret bərabərdir sayı ki, biz, əlbəttə, ola bilər
riyazi, lakin biz danışmaq istəyirəm alqoritmlər səmərəliliyi haqqında
daha formulaically bir az, siyahısı nə qədər müstəqil.
>> Və belə ki, nə?
Bu 16, lakin kimi mən əvvəl dediyim, yalnız problem ölçüsü zəng edək
n bir sayı n.
Bəlkə bəlkə bu, 16 var üç, bəlkə bir milyon var.
Bilmirəm.
Mən qayğı yoxdur.
Mən, həqiqətən, istəyirəm bir formula Mən
Bu alqoritm müqayisə üçün istifadə digər alqoritmlər qarşı
kimsə iddia edə bilər ki, yaxşı və ya pis.
>> Belə çıxır, yalnız və yalnız mən Bu sinif məktəb bu bilirik,
Bu, həqiqətən, eyni həyata çalışır ki, n-dən n kimi bir şey plus iki biridir.
Bu, bir bərabər olur Əlbəttə ki, plus n iki kvadrat n.
Belə ki, əgər mən bir düstur istədi neçə addımlar
bütün axtarır cəlb olunub təkrar o nömrələri
və təkrar, mən deyərdim Bu n plus n iki kvadrat edir.
Amma nə bilirik?
Bu messy görünür.
Mən, həqiqətən, istəyirəm şeyi ümumi mənada.
Və geri bilər orta məktəb ki, orada
ən yüksək sifariş müddəti anlayışdır.
Bu şərtlər hansı, n , N, və ya yarım kvadrat,
zamanla ən təsir göstərir?
böyük n, əldə olan ən bu məsələlərin?
>> Başqa sözlə, mən plug əgər Bir milyon, n kvadrat
çox güman ki, olacaq hakim amil,
çünki bir milyon dəfə özü çox böyükdür
çox plus bir milyon əlavə.
Belə ki, nə?
Bu bir darn böyük sayı bir sıra kvadrat əgər.
Bu, həqiqətən etməz.
Biz yalnız cross olacaq ki, həyata və bu barədə unudurlar.
Və belə bir kompüter alim deyərdim Bu alqoritm səmərəliliyi
n qaydada deyil squared-- Mən, həqiqətən, bir uyğunlaşdırılması deməkdir.
Bu sort təxminən n kvadrat edir.
Zamanla, böyük və daha böyük n bu, olur
nə üçün yaxşı qiymətdir səmərəlilik və ya səmərəliliyinin olmaması
Bu alqoritm əslində.
Mən əldə ki, əlbəttə, həqiqətən riyaziyyat bunu edir.
Amma indi mən yalnız waving alıram Mənim əlləri, çünki yalnız
Bu alqoritm bir ümumi mənada istəyirəm.
>> Belə ki, eyni məntiq istifadə edərək, eyni zamanda, Başqa bir alqoritm nəzər salaq
biz artıq at-- xətti axtarış baxdı.
Mən axtarış telefon book-- üçün
axtarış, çeşidlənməsi deyil telefon book-- vasitəsilə
biz olduğunu deyərək saxlanılır 1000 addımlar, və ya 500 addımlar.
Amma ki, ümumiləşdirmək edək.
N pages varsa telefon kitab, nə
çalışan zaman və ya xətti axtarış səmərəliliyi?
Bu əmri var neçə addımlar tapmaq üçün
Mike Smith, xətti axtarış istifadə ilk alqoritm, və ya hətta ikinci?
>> Ən pis halda, Mike In Kitabın sonunda.
telefon kitab 1000 pages Belə ki, biz ən pis halda, son dəfə bildirib
Bu təxminən necə ola bilər çox pages Mike tapmaq üçün?
1000 kimi.
Bu yuxarı bound var.
Bu pis mümkün vəziyyət var.
Ancaq yenə də, biz üz hərəkət edirik İndi 1000 kimi nömrələri.
Bu, sadəcə n var.
>> Belə ki, məntiqi nəticə nədir?
telefon Mike tapmaq n pages kitab
çox pis halda, bilər, neçə n sifarişi addımlar?
Həqiqətən kompüter alim deyərdim
çalışan zaman, və ya performans və ya səmərəlilik
alqoritm kimi və ya təsirsizlik, xətti axtarış n sifarişi edir.
Və eyni müraciət edə bilər bir şey keçən məntiqi
Mən yalnız ikinci kimi alqoritm biz telefon kitab idi
biz bir zamanda iki pages getdi.
>> Belə ki, 1000-səhifə telefon kitab bilər 500 səhifə növbə bizi, plus bir
biz bir az geri ikiqat əgər.
Belə ki, bir telefon kitab n pages, lakin biz bir zamanda iki pages edirik
ki, təxminən nə var?
iki N, belə ki, iki n kimi.
Amma iddia etdi two-- üzərində an əvvəl n
yalnız n eyni növü var.
Bu, yalnız bir sabit amil var kompüter elm demək olardı.
yalnız diqqət edək dəyişənlər, həqiqətən,
tənlik ən böyük dəyişənlər.
>> bir həyata olub xətti axtarış, Bir anda səhifə və ya bir zamanda iki pages,
sort əsaslı eyni.
Bu n qaydada hələ də var.
Amma əvvəllər mənim şəkil ilə iddia üçüncü alqoritm idi ki,
xətti.
Bu düz xətt deyil.
Bu əyri xətt idi, cəbri formula var nə idi?
n-- Giriş belə n baza iki daxil edin.
Və biz də getmək yoxdur logarithms çox ətraflı bu gün
lakin ən kompüter elm deyil ki hətta baza nə sizə.
Bu, çünki yalnız daimi amillər, belə ki, danışmaq
yalnız cüzi rəqəmli fərqlər.
Və bu çox ümumi ola bilər xüsusilə formal kompüter üçün yol
bir board elm və ya ağ board proqramçılar
həqiqətən mübahisə edən onlar istifadə ki alqoritm
və ya nə səmərəlilik onların alqoritm edir.
>> Bu mütləq bir şey deyil Hər hansı bir böyük ətraflı müzakirə
lakin yaxşı bir proqramçı kimsə kim möhkəm, formal fon var.
O, danışmaq edə yol bu cür siz
və həqiqətən etmək kimi keyfiyyətli dəlilləri
niyə bir alqoritm və ya proqram bir parça
başqa bir şəkildə üstün deyil.
əlbəttə bilər, çünki Yalnız bir şəxsin proqram run
və saniyə sayını bəzi nömrələri düzmək üçün edir,
və bəzi çalıştırabilirsiniz digər şəxsin proqram
və sayını saniyə lazım.
Amma bu daha ümumi bir yoldur ki Siz alqoritmlər analiz üçün istifadə edə bilərsiniz,
yalnız, siz əgər kağız və ya sadəcə şifahi.
Olmadan belə olmadan, çalışan hətta nümunə giriş çalışır
Yalnız onun vasitəsilə səbəb ola bilər.
Və belə bir geliştirici və ya işə ilə ona olan və ya onun sort sənə mübahisə
niyə öz alqoritm, onların gizli milyardlarla axtarış üçün sousu
üçün web pages sizin Şirkət bu, daha yaxşıdır
dəlilləri növ onlar ideal etmək lazımdır.
Və ya ən azı bunlar şeyi növ
ki, müzakirə gəlib ki, çox formal müzakirə azı.
Yaxşı.
Belə ki, Ben bir şey təklif seçim sort çağırıb.
Amma var ki, təklif gedirəm də bunu digər yolları.
Mən, həqiqətən, kimi deyil nə Ben alqoritm haqqında
o gəzinti saxlanılır, və ya ki, Mənə geri və irəli, gəzmək edərək
və geri və irəli və geri və irəli.
əvəzinə, mən bunu nə idi Burada bu nömrələri kimi bir şey
və mən yalnız hər ilə məşğul idi sayı növbəsində mən onu verilmiş alıram kimi?
>> Başqa sözlə, burada nömrələri mənim siyahısı.
Four, bir, üç, iki.
Mən aşağıdakı gedirəm.
Mən nömrələri daxil etmək üçün gedirəm onlar mənsub olduğu
bir zamanda onlara bir seçerek daha.
Başqa sözlə, burada sayı dörd var.
>> Burada mənim orijinal siyahısı.
Mən saxlamaq üçün gedirəm burada mahiyyətcə yeni bir siyahısını edir.
Belə ki, bu köhnə siyahısı.
Bu yeni siyahısı.
Mən sayı dörd ilk oldu.
Mənim yeni siyahısı ilkin boş belə ki, Trivially belədir
dörd indi siyahısını çeşidlənərək edir.
Mən yalnız mən verilmiş alıram sayı alaraq alıram və mən yeni siyahısında qoyulması alıram.
>> Bu yeni siyahı çeşidlənir?
Bəli.
yalnız bir var, çünki axmaq var element, lakin tamamilə sıralanır.
yersiz bir şey yoxdur.
Bu daha maraqlı, bu alqoritm, Mən növbəti addım hərəkət.
>> İndi bir var.
Belə ki, bir, əlbəttə, at məxsusdur başlayan və ya bu yeni siyahısı sonu?
Başlanğıc.
Mən indi bəzi iş var.
Mən qəbul etdik Mənim marker ilə azadlıqlarının
şeyi çəkərək Mən onlara istədiyiniz,
lakin həqiqətən deyil kompüter dəqiq.
Bildiyimiz kimi kompüter, var RAM, və ya Random Access Memory,
və bir byte və başqa byte və başqa byte.
Və bir gigabyte varsa RAM, bir milyard bayt var,
lakin onlar bir yerdə fiziki istəyirik.
Siz yalnız ətrafında stuff hərəkət edə bilməz board onu çəkərək
istədiyiniz yerdə.
Yeni siyahı var So yaddaş dörd locations,
təəssüf ki, dörd Artıq səhv yerdə.
>> Belə ki sayı daxil bir Mən burada çəkə bilməz.
Bu yaddaş yeri yoxdur.
Bu xəyanət olardı, və mən olmuşdur bir neçə dəqiqə pictorially xəyanət
burada.
Belə ki, həqiqətən, Mən burada bir qoymaq istəyirsinizsə, Mən müvəqqəti dörd surəti var
və sonra bir qoymaq.
>> Ki, ki, doğru deyil, gözəl ki, texniki mümkündür
lakin əlavə iş bilirik.
Mən yalnız yerdə sayı qoymadı.
Mən ilk bir hərəkət idi sayı, sonra yerdə qoyun
mən cür iş mənim məbləği iki dəfə.
Belə ki, nəzərə ki, saxlamaq.
>> Amma indi bu element ilə bitirdim.
İndi sıra üç qamarlamaq istəyirəm.
Harada, əlbəttə, bu, aid deyil?
Arasında.
Mən artıq fırıldaqçı bilməz və yalnız orada qoyun
Yenə, bu yaddaş çünki fiziki yerlərdə var.
Mən dörd surəti var və burada üç qoymaq.
Bir böyük.
Bu, yalnız bir əlavə addım again-- çox ucuz hiss edir.
>> Amma indi iki keçin.
iki, əlbəttə, burada məxsusdur.
İndi necə başlamaq iş qalamaq bilər.
İndi mən nə etmək lazımdır?
Bəli, mən dörd hərəkət var, Mən, üç surəti var
və indi iki əlavə edə bilərsiniz.
Bu ilə tutmaq alqoritm, Maraqlıdır ki,
ki, biz bir daha çox var Güman edilir Bu səkkiz yeddi deyək işi,
altı, beş, dörd, üç, iki, bir.
Bu çox kontekstlərdə edir, ən pis halda ssenari,
darn şey çünki sanki geri edir.
>> Bu, həqiqətən deyil , Ben alqoritm təsir
çünki Ben seçilməsi sort o saxlamaq olacaq
geri və irəli siyahısı keçir.
O, həmişə axtarır, çünki bütün qalan siyahısını,
etməz elementləri olduğu.
Amma mənim taxmadan ilə bu halda approach-- bu cəhd edək.
>> Belə bir, iki, üç, dörd, beş, altı, yeddi, səkkiz.
Bir iki üç dörd, beş, altı, yeddi, səkkiz.
Mən səkkiz almaq üçün gedirəm və harada qoymaq bilərəm?
Bəli, mənim siyahının başında, Bu yeni siyahı sıralanır çünki.
Mən onu keçmək.
>> Harada yeddi qoymaq bilərəm?
bu darn.
Bu, orada getmək lazımdır, belə ki, Mən bəzi çıxarmaq var.
İndi yeddi burada gedir.
İndi altı keçin.
İndi hətta daha çox iş var.
>> Səkkiz burada getmək üçün var.
Seven burada getmək üçün var.
İndi altı burada edə bilərsiniz.
İndi beş grab.
İndi səkkiz getmək üçün var Burada yeddi burada getmək üçün var,
altı burada getmək üçün var, və İndi beş və təkrar.
Mən olduqca çox deyiləm daim hərəkət.
>> Belə ki, sonunda, bu alqoritm alacağıq durub həqiqətən sort zəng
çox çox iş var.
Bu, sadəcə fərqli Ben daha işinin cür.
Ben iş mənə davam idi geri və irəli bütün vaxt,
kiçik növbəti seçilməsi element təkrar.
Belə ki, iş bu çox əyani cür idi.
>> hələ də bu digər alqoritm, correct-- bu iş olacaq done--
yalnız iş məbləği dəyişir.
Əvvəlcə siz etdiyiniz kimi görünür Yalnız istəyirik, çünki, qənaət
Hər bir element ilə məşğul ön qədər bütün gəzinti olmadan
Ben kimi siyahısını yol idi.
Amma problem xüsusilə bu da var bütün geri var crazy hallarda,
Siz cür yalnız istəyirik ağır iş təxirə salınması
Siz səhvlər düzeltmek üçün qədər.
>> Və əgər bu təsəvvür edə bilərsiniz səkkiz və yeddi və altı və beş
və sonra dörd və üç və iki siyahısı vasitəsilə yol hərəkət,
biz yalnız değiştirdik iş növü biz bunu edirik.
Bunun əvəzinə onu bunu Mənim iteration başlayan,
Mən yalnız onu edirəm hər iteration sonunda.
Belə ki, bu alqoritm çıxır ki, çox, ümumiyyətlə deyilən durub sort,
kvadrat n qaydada edir.
Bu daha yaxşı həqiqətən var yaxşı bütün.
>> Lakin, üçüncü yanaşma var Mən hesab bizi təşviq edəcək
olan bu.
Belə sadəlik üçün, mənim siyahısı güman yenə dörd bir, üç,
yalnız dörd ədəd two--.
Ben yaxşı intuisiya idi yaxşı insan intuisiya
əvvəl olan biz bütün sabit eventually-- durub sort siyahısı.
Bizi boyunca coaxed.
Amma hesab edək bu siyahı düzeltmek üçün sadə yolu.
>> Bu siyahı sıralanır deyil.
Niyə?
İngilis dili, izah bu, həqiqətən sıralanır deyil.
Bu sıralanır deyil nə deməkdir?
>> TƏLƏBƏ: Bu ardıcıl deyil.
>> DAVID MALAN: ardıcıl deyil.
mənə bir nümunə çəkin.
>> TƏLƏBƏ: onları qoyun.
>> DAVID MALAN: OK.
Mənə bir daha xüsusi nümunə çəkin.
>> TƏLƏBƏ: sifariş Artan.
DAVID MALAN: sifariş artan deyil.
daha dəqiq olun.
Mən artan demək nə bilmirəm.
Səhv nədir?
>> TƏLƏBƏ: kiçik ədəd ilk kosmik deyil.
>> DAVID MALAN: kiçik sayı üzrə ilk kosmik.
Daha konkret olun.
Mən tutmaq üçün başlayan alıram.
Biz sayılması, lakin edirik burada qaydada həyata nə var?
>> TƏLƏBƏ: ədədi ardıcıllığı.
DAVID MALAN: ədədi ardıcıllığı.
saxlanılması Hər kəsin cür bu, çox yüksək səviyyədə burada.
Just sözün nə mənə beş yaşlı gücü kimi yanlış.
>> TƏLƏBƏ: Plus biridir.
>> DAVID MALAN: Nə olub?
>> TƏLƏBƏ: Plus biridir.
>> DAVID MALAN: Siz plus bir deməkdir?
Mənə başqa bir beş yaşlı verin.
yanlış, mom nədir?
səhv dad nədir?
Bu sıralanır deyil nə deməkdir?
>> TƏLƏBƏ: Bu doğru yer deyil.
>> DAVID MALAN: Nə Biz doğru yerdə?
>> TƏLƏBƏ: Four.
DAVID MALAN: OK, yaxşı.
Bu olmalıdır Belə ki, dörd deyil.
Xüsusilə, bu doğru deyil?
Dörd bir ilk Mən iki ədəd.
bu doğru deyilmi?
Xeyr, onlar üçün bitti, sağ?
Əslində, indi düşünürəm çox kompüter haqqında.
Bu, yalnız bəlkə bir baxmaq olar once-- bəlkə iki şey
və həqiqətən yalnız bir şey Bir anda, lakin ola bilər, ən azı
bir şey sonra baxmaq sağ yanındakı növbəti şey.
>> Belə ki, bu qaydada var?
Əlbəttə yox.
Belə ki, nə?
Niyə biz körpə etmirlər Bu problem təyinat addımlar
əvəzinə bu xülya bunu Ben kimi alqoritmlər
o cür ilə təyinat oldu siyahısını loop
Əksinə, mən nə bunu biz getmək kimi yalnız cür sabit?
Yalnız sözün qırmaq edək order-- ardıcıl anlayışı,
Siz want-- nə zəng Bu pairwise müqayisə daxil.
>> Dörd bir.
Bu düzgün qaydada deyilmi?
Belə ki, düzeltmek bildirin.
Bir və dörd və sonra biz yalnız surəti lazımdır.
Bütün sağ, yaxşı.
Mən bir və dörd əsas.
Üç və iki?
Yox.
Mənim sözlərim mənim barmaqlarını uyğun edək.
Dörd və üç?
>> Bu qaydada deyil, belə ki, mən gedirəm bir, üç, dörd, iki etmək.
Yaxşı, oldu.
İndi dörd və iki?
Biz də bu düzeltmek lazımdır.
Belə ki, bir, üç, iki, dörd.
Belə ki, çeşidlənir?
Xeyr, lakin bu sıralanır daha yaxındır?
>> bu sabit, çünki var səhv, biz bu səhvi sabit
və biz bu səhvi müəyyən.
Beləliklə, biz arguably üç səhvlər Sabit.
Hələ həqiqətən sorted baxmaq deyil, Bu sorted obyektiv yaxındır
biz o səhvləri bəzi sabit, çünki.
>> İndi mən növbəti nə etməliyəm?
I növ siyahısı sona gəlindi.
Mən sabit görünürdü bütün səhvlər, lakin heç bir.
bu halda, bəzi nömrələri Çünki yaxın up bubbled ola bilər
digər nömrələri ki, qaydada həyata hələ də.
Belə ki, daha bunu edək və mən lazımdır yalnız yerdə bu dəfə bunu.
Bir və üç?
Bu yaxşıdır.
Üç və iki?
Əlbəttə yox, belə ki, dəyişdirmək imkan verir.
Belə ki, iki, üç.
Üç və dörd?
İndi yalnız olsun Burada xüsusilə xırdaçı.
Bu çeşidlənir?
Siz insanlar sıralanır bilirik.
>> Mən yenidən cəhd etməlidir.
Belə ki, Olivia mən bir daha cəhd təklif edir.
Niyə?
Kompüter yoxdur, çünki insan gözü lüks
yalnız back-- OK salan, mən bitirdim.
Necə kompüter müəyyən edir siyahısı indi çeşidlənir ki?
Mexaniki.
>> Mən vasitəsilə getmək lazımdır bir daha, yalnız və yalnız əgər mən
Mən hər hansı bir səhv tapmaq / bilərsiniz yoxdur sonra yep, kompüter bağlamaq,
biz getmək iyi.
Belə ki, bir və iki, iki və üç, üç və dörd.
İndi qəti bu demək olar Mən heç bir dəyişiklik etdi, çünki, çeşidlənir.
İndi bir səhv və yalnız ki, axmaq I əgər, kompüter,
yenə həmin suallar müxtəlif cavablar gözləyirik.
baş verə bilməz.
>> Və indi siyahısı çeşidlənir.
Təəssüf ki, vaxt çalışan Bu alqoritm də kvadrat n.
Niyə?
Siz n nömrələri, və var ən pis halda siz n nömrələri hərəkət var
n dəfə davam etmək lazımdır, çünki geri yoxlamaq üçün və potensial fix
bu nömrələri.
Və biz bir çox edə bilərsiniz çox formal təhlili.
>> Belə ki, bu biz qəbul etdik demək deyil üç müxtəlif yanaşmalar, bir
Onların dərhal intuitiv Ben yarasa off
Mənim təklif daxil etmək bu bir sort
cür qaçırmaq olduğu ilkin ağaclar üçün meşə.
Amma sonra, bir addım geri əgər voiture, biz çeşidlənməsi anlayışı müəyyən etdik.
Belə ki, bu, demək cəsarət edir aşağı səviyyədə bəlkə
həmin digər bir çox alqoritmlər, lakin edək
biz görüntüləmək bilməz görmek bu yolu bu.
>> Belə ki, bu, bəzi gözəl proqram ki, kimsə
rəngarəng bar istifadə yazdı bizim üçün aşağıdakı etmək üçün gedir.
Bu bar hər bir sayını göstərir.
böyük, bar Taller sayı, kiçik bar,
sayı kiçik.
Belə ki, ideal bir gözəl piramida istəyirəm kiçik başlayır və böyük olur,
və ki, demək olardı bu bar sıralanır.
Mən irəli getmək və seçmək üçün gedirəm Məsələn, Ben alqoritm
first-- seçim sort.
>> Və bunu nə görürsünüz.
onlar seçdiyiniz yol Bu alqoritm görüntüləmək
Mən kimi, yəni Mənim siyahısı ilə gəzinti,
Bu proqram gəzinti nömrələrin siyahısına vasitəsilə
çəhrayı hər işıqlandırılması Bu baxaraq nömrəsini.
Və indi baş haqqında nə?
>> kiçik sayı ki, I və ya Ben birdən tapıldı
siyahının başında köçürülüb olur.
Onlar köçürmək etdi ihbar var idi nömrəsi,
ki, mükəmməl gözəl var.
Mən ətraflı səviyyədə daxil etməyib.
Amma biz qoymaq lazımdır haradasa ki sayı,
belə ki, biz yalnız köçürülüb yaradılmışdır açıq spot.
Mən bu sürətli gedirəm up, başqa çünki
tez çox yorucu olur.
Animation var speed-- getmək.
Belə ki, indi eyni prinsip Mən müraciət edilib, lakin siz
əgər, alqoritm hiss başlaya bilərsiniz olacaq, və ya bir az daha aydın görürük.
Bu alqoritm təsiri var növbəti kiçik element seçilməsi,
belə ki, başlamaq olacaq Bu sol ramp baxın.
Və hər iteration, mən təklif, bir az çalışır.
Bu, bütün yol getmək yoxdur geri siyahısı sol sonuna,
artıq çünki sıralanır o bilir.
bu kimi belə bu cür hiss hər bir addım olsa, sürətləndirilməsi
eyni məbləği alaraq.
Qalan yalnız az addımlar var.
İndi cür hiss edə bilər alqoritm, bu sonu təmizlənməsi
və həqiqətən indi sıralanır.
>> Belə ki, durub sort bütün edilir.
Mən array yenidən randomize üçün lazımdır.
Və qeyd Mən yalnız bilərsiniz onu randomizing saxlamaq
və biz bir uyğunlaşdırılması almaq lazımdır Eyni yanaşma, durub sırala.
Mənə burada aşağı yavaş edək.
ki artıq başlamaq edək.
Stop.
>> dörd keçmək edək.
biz var gedin.
onlar array randomize.
Və burada biz durub sort git.
Oynamaq.
hər ilə məşğul oldu Qeyd edək ki, dərhal görür element,
lakin bu məxsusdur əgər yanlış yer bildiriş
baş var iş bütün.
Biz daha çox dəyişkən saxlamaq lazımdır və daha çox elementləri otaq etmək
bir biz yerdə qoymaq istəyirik.
>> Beləliklə, biz diqqət edirik siyahısı yalnız sol sonu.
Biz hətta at-- baxdı yoxdur edək çəhrayı bir şey qeyd yoxdur
sağ.
Biz yalnız ilə məşğul olduğunuz problemlərini, getmək kimi
lakin biz bir çox yaratmaq edirik hələ özümüz üçün çalışır.
Və biz bu sürətləndirmək əgər indi başa getmək üçün,
həqiqətən bu fərqli bir hiss var.
Bu, yalnız sol sonunda diqqət, lakin needed-- kimi bir az daha çox iş edir
sığal şeyi cür üzərində, hər şeyi təyinat
lakin nəticədə məşğul bir zamanda hər element bir
biz the-- almaq qədər, biz Bütün bu başa gedir necə,
belə ki, bir az underwhelming bəlkə var.
>> Amma end-- siyahısı spoiler-- sıralanır olacaq.
Belə ki, son bir bir baxaq.
Biz yalnız indi keçmək bilməz.
Biz demək olar ki, orada istəyirik.
Iki bir getmək, getmək üçün.
Və voiture.
Əla.
>> Belə ki, indi bir son bir imkan, yenidən randomizing bubble növ ilə.
Mən onu yavaş, xüsusilə də əgər, burada qeyd aşağı, bu yolu swooping saxlamaq yoxdur.
Amma bu yalnız pairwise edir bildiriş yerli həllər comparisons-- sort.
Amma tezliklə biz almaq kimi çəhrayı siyahısı sonunda,
nə yenidən baş var olacaq?
Bəli, bu var olacaq , Başlamaq çünki yalnız
sabit pairwise səhvlər.
Və hələ başqaları aşkar ola bilər.
Bu sürətləndirmək əgər, siz lazımdır , Adı nəzərdə tutur qədər, ki, görəcəksiniz
, Elementləri kiçik və ya daha çox böyük elementlərinin başlayır
bubble üst qədər, siz olacaq.
Və kiçik elementləri aşağı sol bubble başlayır.
And olsun ki, bu cür var həmçinin vizual effekt.
Və bu başa sona çatacaq çox çox oxşar şəkildə.
>> Biz əbədi yoxdur bu bir.
Mənə çox, indi bu açaq.
bir neçə digər çeşidlənməsi alqoritmləri var Dünyada bir neçə olan
Burada əsir.
Və xüsusilə öyrənənlər üçün kim deyil mütləq vizual və ya riyazi,
biz əvvəl olduğu kimi, biz də audially bunu
biz bu səs şərik əgər.
Və yalnız əyləncə üçün, burada bir bir neçə müxtəlif alqoritmləri,
sen xüsusilə onlardan bir adlanır qeyd etmək gedir "birləşməsi sort".
>> Bu, həqiqətən bir əsaslı var yaxşı alqoritm,
Bir növ birləşməsi ki, belə görmək istəyirik olanları
kvadrat n sifariş deyil.
Bu n dəfə daxil əmri var həqiqətən kiçik və beləliklə n,
o digər üç daha sürətli.
Və digər bir neçə var görəcəyik silly olanları.
>> Belə ki, burada biz bir səs ilə gedin.
Bu yenə, durub növ yalnız elementləri ilə məşğul oldu
Onlar gəlmək kimi.
Bu bubble sort, belə ki, bu onlara bir anda cüt nəzərə alaraq.
Və yenə ən böyük elementləri üst qədər burda olunur.
>> Növbəti seçim sort.
Bu Ben alqoritm edir daha o iteratively seçilməsi oldu
Növbəti kiçik element.
Və yenə, indi həqiqətən eşitmək bilər Bu ancaq bu günə qədər sürətləndirilməsi edir
Bu daha az bunu kimi hər iteration üzərində işləyirik.
Bu daha sürətli bir, sort birləşməsi, nömrələri qruplar çeşidlənməsi olan
birlikdə və sonra onları birləşdirən.
Belə ki, sol look-- yarım artıq çeşidlənir.
>> İndi sağ yarım çeşidlənməsi və var indi bir onları birləşdirmək olacaq.
Bu deyilən bir şey deyil "Gnome sort".
Və cür görə bilərsiniz Bu geri və irəli gedir
bir az burada iş təyinat və yeni iş var gəlir əvvəl.
Və bu.
başqa sort var həqiqətən, yalnız akademik məqsədlər üçün,
edir "axmaq sort" adlı Sizin data, təsadüfi növ
sıralanır əgər və sonra yoxlayır.
bu deyil, əgər, yenidən növ onu sıralanır əgər təsadüfi yoxlayır,
və təkrar əgər.
Və nəzəri, probabilistically bu başa çatacaq
lakin vaxt kifayət qədər bir az sonra.
Bu ən deyil alqoritmlər səmərəli.
o So hər hansı bir sualınız xüsusi alqoritmlər və ya bir şey
də orada aid?
>> Yaxşı, indi nə bütün ayrı tease bildirin bu xətlər mən rəsm etdik ki var
və nə mən kompüter hərfinin alıram başlıq altında edə bilərsiniz.
Mən bu nömrələr bütün iddia edirəm Mən almaq lazımdır drawing-- saxlamaq
yaddaşında yerdə saxlanılır.
Biz də, indi bu oğlan xilas edəcəyik.
>> bir yaddaş Belə ki, bir parça belə RAM DIMM deyil kompüter üçün
Dünən, ikili axtarış nə bu kimi görünür module-- inline yaddaş.
Bu kiçik qara fiş hər adətən bayt bəzi sayı.
Və sonra qızıl sancaqlar kimi kompüter qoşun teller,
və yaşıl silikon board yalnız nə bütün birlikdə hər şey saxlayır.
Belə ki, bu, həqiqətən nə deməkdir?
I növ bu şəkil çəkmək varsa, nin sadəlik üçün fərz edək
Bu DIMM, ikili ki inline yaddaş modulu,
RAM bir gigabyte, biri gigabyte edir neçə bytes cəmi yaddaş?
One gigabyte neçə bayt edir?
Daha çox.
1124, kilo 1000.
Mega mln.
Giga bir mlrd.
>> Mən yalançı Am?
biz hətta etiket oxumaq olarmı?
Bu, həqiqətən, 128 qiqabayt, belə ki, daha çox.
Amma biz bu iddia lazımdır Yalnız bir gigabyte edir.
o deməkdir ki, Belə ki, bir milyard var Mənə mövcud yaddaş bytes
və ya 8 milyard bit, lakin biz gedirik İndi bayt baxımından danışmaq,
irəliləyir.
>> Belə ki, nə o deməkdir ki, bu deyil bir byte, bu başqa byte deyil,
bu başqa byte deyil, və biz, həqiqətən istəyirdi
biz olardı xüsusi olmaq bir milyard az meydanların cəlb edir.
Amma nə deməkdir?
Yaxşı, mənə yalnız zoom imkan Bu şəkil haqqında.
Mən bir şey var ki, əgər görünür indi kimi, dörd bayt var.
>> Və mən burada dörd ədəd qoymaq bilər.
Bir iki üç dörd.
Və ya dörd məktublar və ya simvolları qoymaq bilər.
"Hey!" orada getmək bilər, məktubları hər çünki,
Biz əvvəllər müzakirə təmsil oluna bilər
səkkiz bit və ya ASCII və ya bir byte ilə.
Belə ki, başqa sözlə, siz daxili 8 milyard şeyi qoymaq
yaddaş bu bir stick.
İndi geri şeyi qoymaq üçün nə deməkdir oxşar yaddaş geri geri?
Bu nə bir proqramçı bir "sıra". adlandırardım
bir kompüter proqramı, siz düşünmürəm əsas hardware haqqında, özlüyündə.
olan kimi Siz yalnız özünüz düşünün bir milyard bytes ümumi giriş,
və bir şey ilə istədiyiniz bilər.
Amma rahatlığı üçün ümumiyyətlə faydalı
Yaddaş sağ saxlamaq üçün bu kimi bir-birinə yanında.
Mən bu barədə zoom əgər biz əlbəttə fikrində deyilik, çünki
bir milyard az squares-- çəkmək Bu board təmsil güman edək
İndi yaddaş ki, stick.
Mən yalnız kimi bir çox çəkmək lazımdır mənim marker burada mənə verilməsi başa çatır.
Belə ki, indi biz bir stick var board yaddaş
ki, var bir, iki, üç, dörd, beş, altı, bir, iki, üç, dörd, beş, altı,
belə 42 bayt seven-- ekran cəmi yaddaş.
Çox sağ ol.
Bəli, mənim hesab sağ idi.
Burada yaddaş So 42 bytes.
Belə ki, bu, həqiqətən, nə deməkdir?
Yaxşı, bir kompüter proqramçı ki, həqiqətən, ümumiyyətlə
addressable bu yaddaş edirəm.
Başqa sözlə, bu hər bir yaddaş locations, hardware,
unikal ünvanı var.
>> Bu One BRATTLE kimi mürəkkəb deyil Square, Cambridge, Mass., 02138.
Bunun əvəzinə, yalnız bir sıra.
Bu byte sayı sıfır, bu deyil bir bu iki, bu üç,
bu 41.
Bir dəqiqə gözlə.
Mən bir an əvvəl 42 bildirib düşündüm.
Mən sıfır hesablanması başlamaq belə ki, həqiqətən, doğru deyil.
İndi biz həqiqətən çəkmək yoxdur bir grid kimi və bir grid kimi çəkmək əgər
Mən hər şeyi həqiqətən hesab edirəm ki, bir az yanlış almaq.
Nə proqramçı ki, öz nəzərə,
ümumiyyətlə, bu hesab yaddaş yalnız bir tape kimi kimi,
maskeleme tape bir parça kimi yalnız və əbədi gedir
və ya yaddaş tökülmək qədər.
Belə ki, bir daha ortaq bir yol çəkmək üçün və yalnız yaddaş haqqında düşünmək
bu byte sıfır, biri olduğunu olacaq iki, üç, və sonra, dot dot dot.
Və hətta, 42 belə bytes ümumi var fiziki bu, həqiqətən güc olsa
bu kimi daha çox bir şey ola bilər.
>> İndi hesab əgər Belə ki, yaddaş bu, yalnız bir tape kimi,
Bu nə bir proqramçı yenidən yaddaş bir sıra adlandırardım.
Və həqiqətən saxlamaq istədiyiniz zaman kompüter yaddaşında bir şey,
ümumiyyətlə mağaza şeyi geri-to-geri-to-geri.
Beləliklə, biz nömrələri haqqında söhbət etdik.
Mən istəyirdim zaman problemləri həll etmək üçün kimi dörd bir, üç, iki,
hətta mən yalnız rəsm baxmayaraq yalnız nömrələri dörd bir, üç,
board iki, kompüter olardı həqiqətən yaddaş bu quraşdırma.
>> Və yanında nə olardı kompüter yaddaşında iki?
Yaxşı ki, heç bir cavab var.
Biz, həqiqətən, bilmirəm.
Və belə uzun kompüter lazım deyil,
növbəti nə qayğı yoxdur ədəd üçün qayğı haqqında edir.
Mən əvvəllər bir kompüter bildirib ki, zaman yalnız bir zaman bir ünvanda baxmaq olar,
Bu niyə növüdür.
>> Bir rekord fərqli oyunçu və oxu baş
yalnız müəyyən baxmaq edə fiziki köhnə məktəb rekord groove
Bir anda, eyni Kompüter thanks bilər
Onun CPU və onun üçün Intel təlimat set,
onların təlimat arasında yaddaş oxumaq
və ya, yaddaş saxlamaq kompüter yalnız baxmaq olar
bir sýrada bir yerdə bəzən onların bir birləşməsi,
lakin bir zamanda həqiqətən yalnız bir yer.
Belə ki, biz bunu edilmişdir bu müxtəlif alqoritmlər,
Mən yalnız bir yazılı deyiləm vacuum-- dörd bir, üç, iki.
Həmin nömrələri həqiqətən aid yaddaşında fiziki yerdə.
Belə ki, kiçik bir az var tranzistorlar və ya bir növ
altında elektronika hood bu dəyərləri saxlanılması.
>> Və cəmi neçə bit var İndi cəlb, yalnız aydın olacaq?
Belə ki, bu dörd bytes, və ya indi 32 bit ümumi var.
Yəni əslində 32 adet sıfır var və bu dörd şeyi bəstələmək olanları.
burada daha çox var, lakin yenə biz bu barədə qayğı yoxdur.
>> Belə ki, indi başqa soruşaq yaddaş istifadə edərək sual,
sonunda çünki gün zidd deyil.
Olursa olsun biz edə bilər nə Günün sonunda kompüter,
hardware hələ başlıq altında eyni.
Mən burada bir söz saxlamaq olar?
Yaxşı, bir kompüter bir söz kimi "Hey!" yalnız bu kimi saxlanılır olunacaq.
Və uzun istəyirdi söz, siz sadəcə bilərsiniz
ki, yazmaq və bir şey demək burada "salam" və mağaza kimi.
>> Və belə ki, burada da, bu contiguousness bir üstünlük, əslində
bir kompüter yalnız çünki sağdan sola oxuyun.
Amma burada bir sual var.
bu sözün çərçivədə, h-e-l-l-o, nida point,
kompüter harada necə söz başlayır və söz başa harada?
ədəd kontekstində, necə kompüter yoxdur
necə ardıcıllıqla uzun nömrələri və ya başlayır?
Bəli, bu çıxır və biz çox getmək olmaz
detail-- bu səviyyəyə kompüter yaddaşında ətrafında stuff hərəkət
sanki bu ünvanlar yolu ilə.
Siz istəyirsinizsə, bir kompüter So kodu yazılı şeyi saxlamaq üçün
sözləri kimi, siz nə istəyirik həqiqətən yazaraq bunu
xatırlayıram ifadələr kompüter yaddaş bu sözlərdir.
Belə ki, mənə çox bir imkan, çox sadə misal.
>> Mən irəli getmək üçün gedirəm və bir sadə mətn proqramı açmaq,
Mən yaratmaq gedirəm bir fayl hello.c çağırıb.
bu məlumatların çoxu biz böyük ətraflı daxil deyil,
amma yazmaq üçün gedirəm eyni dildə proqram,
C. Bu, daha qorxuducu deyil Mən Not daha iddia edirəm
lakin bu ruhunda çox oxşar.
Əslində, bu buruq braces-- Siz cür
Mən yalnız bu nə düşünürəm.
>> həqiqətən, bunu edək.
yaşıl bayraq tıklayan zaman, aşağıdakı.
Mən çap etmək istəyirəm "salam".
Belə ki, bu, indi pseudocode edir.
I növ xətləri blurring alıram.
C, bu dil mən söhbət alıram haqqında bu xətt çap salam
həqiqətən "printf" ilə olur bəzi parantez və yarı kolon.
>> Amma eyni fikirdir.
Bu çox istifadəçi dostu "Yaşıl bayraq tıklandığında" olur
daha çox gizli "int əsas etibarsız."
Və bu, həqiqətən, heç bir mapping var, mən ki, yalnız ignore gedirəm.
Amma buruq aşırma kimi oxşar əyri puzzle ədəd.
>> Belə ki, siz cür danışarlar.
Hətta, siz əvvəl proqramlaşdırılmış heç varsa Bu proqram yəqin ki, nə edir?
Yəqin ki, salam yazdıran bir ünlem ilə.
>> Belə ki, cəhd edək.
Mən bunu saxlamaq üçün gedirəm.
Bu yenə, çox, deyil köhnə məktəb ətraf mühit.
Mən sürükleyin bilməz, basın bilməz.
Mən əmrləri yazın var.
Mən ki, mənim proqram almaq istəyirsinizsə Mən hello.c kimi bunu bilər.
Mən qaçdım fayl var.
Amma bir addım itkin alıram, gözləyin.
Nə demək zəruri edir C kimi dil üçün addım?
Mən yalnız mənbə yazdıq indeksi, amma nə lazımdır?
Bəli, mən bir compiler lazımdır.
Burada mənim Mac Belə ki, bir GCC adlı proqram, GNU C compiler,
olan mənə şeylərdir növbəsində imkan verir Mənim mənbə kodu daxil, biz zəng edəcəyik,
maşın kodu.
>> Mən görə bilərsiniz, yenə belə, bu
adet sıfır və olanları mən yalnız mənim mənbə kodu yaradılmış,
adet sıfır və olanları bütün.
Mən almaq istəyirsinizsə, mənim proqram olur
üçün a.out zəng etmək tarixi reasons-- "salam".
Mən bir daha çalıştırabilirsiniz.
salam, salam, salam.
Və bu iş görünür.
>> Amma bu yerdə deməkdir mənim kompüter yaddaş sözləri
h-e-l-l-o, nida point.
Və bu, kənara yalnız bir kimi, çıxır nə bir kompüter adətən ki
belə ki, bilir ki, nə hər şeyi başlamaq və bu end--
Burada xüsusi simvolu qoymaq niyyətindədir.
Və Konvensiyanın qoymaq üçün bir söz sonunda sayı sıfır
siz harada bilirik ki, həqiqətən, başa çatır ki,
daha çox çap saxlamaq yoxdur daha simvol həqiqətən niyyətindəyik.
>> Amma burada paket, hətta Bu kifayət qədər gizli olsa da,
nəticədə var ki nisbətən sadə.
Siz boş bir tape növ verildi Siz məktublar yazmaq biləcəyi məkan.
Siz sadəcə bir var özbaşına kimi xüsusi simvol,
sayı sıfır sonunda qoymaq üçün Sizin sözləri kompüter bilir ki,
oh, mən sonra çap dayandırmaq lazımdır Mən ünlem bax.
orada növbəti şey, çünki sıfır bir ASCII dəyəri var
və ya null xarakter kimi Kimsə zəng.
Amma bir problem cür var Burada və geri dönmek edək
bir an nömrələri.
Mən düşünək ki, əslində, , Nömrələri bir sıra var
və güman Mən yazıram proqram
bir müəllim üçün grade kitab kimi və müəllimlər sinif.
Bu proqram ona imkan verir tələbələrin puanları yazın
sınavlar.
Və Tələbə olur ki, güman ilk viktorina 100, bəlkə
sonra növbəti bir 80 kimi 75, sonra dördüncü viktorina 90.
>> hekayə bu nöqtədə Belə ki, array ölçüsü dörd edir.
tamamilə daha çox yaddaş da var kompüter, lakin array, belə ki, danışmaq
ölçüsü dörd edir.
müəllim istəyir ki, indi düşünək sinif beşinci viktorina təyin etmək.
Bəli, hər şeyi bir o və ya o nə üçün gedir
İndi burada bir əlavə dəyər mağaza edir.
Amma array əgər müəllim var Bu proqram yaradılmış üçün ölçüsü edir
bir sıra ilə problem biri edir Siz yalnız yaddaş əlavə edə bilməz.
Çünki nə varsa bir hissəsi proqram orada "hey" sözü var?
>> Başqa sözlə, mənim yaddaş ola bilər bir proqram bir şey üçün istifadə olunur.
Və əvvəlcədən mən hey, çap əgər Mən giriş dörd viktorina puanları istəyirəm,
Onlar burada və burada getmək bilər.
Və birdən-birə sizin fikrinizi dəyişdirmək əgər sonra və mən beşinci viktorina istəyirsiniz
hesab, siz bilməzsiniz yalnız Istədiyiniz yerdə qoymaq,
çünki nə bu halda yaddaş istifadə olunur
bir şey üçün bir sıra digər proqram else-- və ya proqram bəzi digər xüsusiyyət
Siz yayınlıyorsanız ki?
Belə ki, əvvəlcədən düşünmək lazımdır sizin data saxlamaq istəyirəm necə,
İndi boyalı etdik, çünki Özünüz bir digital küncə.
>> Belə ki, bir müəllim yerinə bilər bir proqram yazarkən demək
saxlamaq üçün onun notları, siz nə bilirik?
Mən tələb gedirəm mənim proqram yazarkən,
Mən istəyirəm ki, sıfır, bir, iki, üç, dörd, beş, altı, səkkiz notları cəmi.
Belə bir, iki, üç, dörd, beş, altı, yeddi, səkkiz.
müəllim artıq-ayıra bilər yaddaş onun proqram yazarkən
və nə bilirsiniz, demək?
Mən heç vaxt daha təyin gedirəm bir dövr səkkiz sınavlar daha.
Bu yalnız crazy var.
Hesab edirəm ki, ayrılması heç vaxt lazımdır.
Bu yolla o var ki mağaza tələbə puanları rahatlıq,
75, 90, və bəlkə bir əlavə kimi tələbə, 105 əlavə kredit almışdır.
>> Amma əgər müəllim heç vaxt Bu üç boşluq istifadə edir,
burada bir intuitiv paket var.
O, yalnız yer israf edilir.
Belə ki, başqa sözlə, bu var proqramlaşdırma ümumi tradeoff
ya ayıra bilər harada tam olaraq çox yaddaş istədiyiniz kimi,
ayaq siz super istəyirik ki, efficient-- siz israfçı olan deyilik
at bütün və lakin İşin mənfi tərəfi odur nə sizin fikrinizi zaman dəyişdirmək əgər
Siz saxlamaq istədiyiniz proqramı istifadə edərək daha çox məlumat, ilk nəzərdə tutulmuşdur.
>> Belə ki, bəlkə həll, sonra deyil elə proqramları yazmaq
onlar daha çox yaddaş istifadə Onlar, həqiqətən, ehtiyac çox.
Siz fikrində deyilik Bu yolla ki, problem daxil,
ancaq israfçı olan edirik.
Və proqram istifadə daha çox yaddaş, Dünən müzakirə az
mövcud yaddaş digər proqramları üçün,
tez sizin kompüter yavaş bilər aşağı, çünki virtual yaddaş.
Və ideal həll nə ola bilər?
>> Under-ayrılması pis görünür.
Over-ayrılması pis görünür.
Belə ki, nə daha yaxşı bir həll ola bilər?
Reallocating.
daha dinamik olun.
bir seçmək üçün özünüzü məcbur etməyin priori başında, nə istəyirəm.
Və əlbəttə ki, artıq-ayrılması deyil Siz deyə israfçı olmaq.
>> Və belə ki, məqsədə nail olmaq üçün, biz Bu data strukturu atmaq lazımdır,
belə uzaq danışmaq.
Və nə proqramçı adətən istifadə edəcək
bir şey adlanır array lakin bir bağlı siyahı.
Başqa sözlə, o olacaq onların yaddaş düşünməyə başlayır
bir forma olan növ kimi ki, onlar aşağıdakı şəkildə cəlb edə bilər.
Mən bir sıra saxlamaq istəyirsinizsə Bu sentyabr belə bir program--,
Mən tələbələr viktorina təqdim etdik; Mən istəyirəm şagirdlərin ilk viktorina saxlamaq üçün,
və onlar pseudocode I bir 100 var mənim kompüter xahiş gedirəm,
Mən var proqramı yolu ilə yaddaş bir yığın üçün yazılı.
Mən saxlamaq üçün gedirəm bu sayı 100 ki, bu.
>> Sonra bir neçə həftə sonra Mən ikinci viktorina almaq zaman,
və bu növü üçün vaxt 90%, mən gedirəm
kompüter soruşmaq, hey, kompüter, Mən yaddaş bir yığın ola bilər?
Bu mənə bu vermək olacaq yaddaş boş yığın.
Mən sayı 90 qoymaq üçün gedirəm lakin mənim proqramı elə ya other--
və biz narahat deyil Mən lazım şeylərdir üçün sintaksis
elə bir araya bunları zəncir.
Mən birlikdə zəncir onlara lazımdır Burada ox kimi görünür.
>> gəlir üçüncü viktorina, Mən demək gedirəm, hey, kompüter,
Mənə yaddaş bir yığın verir.
Mən yazmaq üçün gedirəm nə olursa olsun, 75 kimi idi
Mən zənciri bu var birlikdə indi elə.
Dördüncü viktorina çıxınca, və bəlkə ki, dövr sonuna doğru deyil.
Və o nöqtədə mənim proqram çox yaddaş istifadə edilə bilər
bütün yer üzərində, bütün fiziki üzərində.
Və belə ki, yalnız kicks üçün, mən Bu irəli cəlb
viktorina Mən bunu nə unutmaq; mən bəlkə düşünmək 80 və ya bir şey
yol üzərində burada.
>> Amma çünki pictorially, gözəl var Bu xətt çəkmək üçün gedirəm.
Başqa sözlə, əslində, kompüter hardware,
ilk hesab bilər Bu, çünki burada sona
sağ dövr əvvəlində.
Növbəti bir burada son bilər zaman bir az keçdi, çünki
və proqram çalışan saxlayır.
idi növbəti hesab, 75, burada ola bilər.
Və son hesab ola bilər, burada artıq 80.
>> Belə ki, əslində, fiziki, bu ola bilər Sizin kompüter yaddaş kimi görünür.
Amma bu faydalı ruhi deyil Kompüter proqramçı üçün paradiqma.
Niyə burada qayğı lazımdır heck sizin data sona olunur?
Siz yalnız veri istəyirəm.
>> Bu, bizim müzakirə kimi növ edir kub rəsm əvvəllər.
Niyə qayğı nə bucaq kub edir
və necə cəlb etmək çevirmək lazımdır?
Siz yalnız bir kub istəyirəm.
Eynilə Burada, yalnız grade kitab istəyirəm.
Siz yalnız düşünmək istəyirəm nömrə bir siyahısı kimi, bu.
Bu necə Kim qayğıları hardware tətbiq?
>> İndi abstraksiya So burada bu şəkil.
Bu kimi, siyahı bağlı edilir bir proqramçı zəng ki,
Bir var insofar kimi siyahısı, açıq-aydın nömrələri.
Amma bu pictorially bağlı oldu Bu oxlar yolu ilə,
və bütün bu oxlar altında are-- başlıq, siz maraqlı olduğunuz halda,
fiziki hardware Xatırladaq ki ünvanları, bir, iki, üç, dörd sıfır.
Bütün bu oxlar bir xəritə kimi və ya istiqamətləri, əgər 90 is-- indi
Mən saymaq lazımdır.
>> Zero, bir, iki, üç, dörd, beş, altı, yeddi.
90 kimi görünür yaddaş ünvan sayı yeddi.
Bütün bu oxlar edir kağız bir az qırıntıları kimi
ki, istiqamətləri verilməsi Bu xəritəsi edin deyir proqram
yeri yeddi almaq üçün.
Və orada tapa tələbə ikinci viktorina hesab.
Eyni zamanda, 75-- bu davam edərsə, Bu yeddi, səkkiz, doqquz, 10, 11, 12,
13, 14, 15.
>> Bu, digər arrow yalnız təmsil yaddaşda 15 xəritəsi.
Ancaq yenə də, proqramçı ümumiyyətlə yoxdur detal bu səviyyədə qayğı deyil.
Və ən hər proqramlaşdırma dil bu gün proqramçı
hətta yaddaşında bilmirəm bu nömrələri həqiqətən var.
o var bütün haqqında qayğı onlar elə birlikdə bağlıdır ki,
oxşar data strukturunda.
>> Amma bu çıxır çox texniki almaq üçün.
yalnız, çünki biz bəlkə bilər Burada bu müzakirə imkanı,
biz yenidən Güman Burada bir sıra bu məsələ.
biz burada gedən peşman əgər in nəzər salaq.
Bu 100, 90, 75, və 80.
>> Mənə qısaca bu iddianı edək.
Bu array, və yenidən, bir sıra qabarıq xüsusiyyəti
sizin data bütün geri ki, geri sözün yaddaş-geri
bir byte və ya bəlkə dörd bytes, üz bayt bəzi sabit sayı.
bir bağlı siyahı, biz cəlb biləcək bu kimi başlıq altında olan
ki, stuff olduğu bilir?
Hətta bu kimi axmağa lazım deyil.
məlumatların bəzi ola bilər geri qədər sol.
Siz hətta bilmirəm.
>> Və belə bir sıra ilə, bir var təsadüfi giriş kimi tanınan xüsusiyyət.
Və nə təsadüfi giriş vasitəsidir kompüter dərhal jump bilər ki,
bir sıra hər hansı bir yerə.
Niyə?
kompüter bilir, çünki ilk yeri olduğunu
sıfır, bir, iki, üç.
>> Və siz getmək istəyirsinizsə növbəti element üçün bu element,
siz sözün ildə kompüter mind, yalnız bir əlavə.
üçüncü element getmək istəyirsinizsə, yalnız yalnız növbəti element one-- əlavə
bir əlavə.
Lakin bu versiya hekayə, güman
kompüter hazırda axtarır və ya sayı 100 ilə məşğul.
Necə növbəti alıram Bu sinif kitab grade?
>> Yeddi almaq lazımdır ixtiyari deyil addımlar.
növbəti bir almaq üçün, var 15 almaq üçün başqa səkkiz addımlar.
Başqa sözlə, bu, deyil ədəd arasında daimi boşluğu,
və belə ki, yalnız edir kompüter daha time point edir.
kompüter axtarış var üçün yaddaş vasitəsilə
Aradığınız nə tapa bilərsiniz.
>> bir sıra bir olmağa çalışır isə So sürətli data quruluşu çünki
sözün yalnız sadə hesab edə bilər və bir əlavə siz istədiyiniz almaq,
bir bağlı siyahı misal üçün, Siz xüsusiyyət qurban.
Siz yalnız ilk getmək bilməz ikinci, üçüncü üçün dördüncü.
Siz xəritə əməl etmək lazımdır.
Daha çox addımlar var o dəyərləri almaq üçün
bir dəyəri əlavə olacağını düşünürük.
Beləliklə, biz bir dəyər ödəyir, lakin nə idi edirik Dan burada axtarır ki, xüsusiyyət?
Nə bağlı siyahı yoxdur yəqin bizə imkan,
hansı mənşəyi idi bu hekayə?
>> Məhz.
bu dinamik ölçüsü.
Biz bu siyahıya əlavə edə bilərsiniz.
Biz hətta belə, siyahısı shrink biz yalnız daha çox yaddaş istifadə etdiyiniz
biz, həqiqətən, istədiyiniz kimi və s biz artıq-ayrılması heç vaxt istəyirik.
>> İndi yalnız, həqiqətən sirke picky olmaq bir gizli dəyəri var.
Belə ki, yalnız məni inandırmağa imkan deyil Bu bir məcburedici tradeoff edir.
Burada başqa bir gizli dəyəri var.
fayda, aydın olmaq biz dinamizm almaq edir.
Mən başqa element istəyirsinizsə, mən yalnız bilərsiniz çəkmək və orada bir sıra qoydu.
Və sonra mən onu keçid edə bilərsiniz Burada bir şəkil ilə,
burada isə, yenə var əgər , Bir küncə özümü boyalı
başqa bir şey artıq istifadə əgər burada yaddaş, mən uğurlar edirəm.
Mən küncə özüm boyalı etdik.
>> Amma gizli nə Bu şəkil başa?
Bu, sadəcə məbləği deyil Bu edir vaxt
burada buradan getmək üçün daha sonra, yeddi addımlar
daha çox səkkiz addımlar.
başqa gizli dəyəri nədir?
Yalnız vaxt.
Əlavə məlumat zəruri bu şəkil əldə etmək üçün.
>> Bəli, xəritə, o kiçik not kağız, mən kimi təsvir saxlamaq kimi.
o arrows-- Bu pulsuz deyil.
Bildiyiniz A kompüter üçün kompüter nə.
Bu adet sıfır və olanları var.
Bir arrow və ya təmsil etmək istəyirsinizsə, xəritəyə və ya bir sıra, bəzi yaddaş lazımdır.
Digər qiymət Belə ki, bir bağlı siyahı ödəmək,
ümumi kompüter resurs da sahibidir.
>> Həqiqətən, belə ki, belə çox, əvəzetmələr arasında
proqram mühəndisliyi dizayn sistemləri vaxt və boşluq var
Sizin maddələr olan iki, iki ən bahalı maddələr.
Bu mənə daha çox vaxt başa gəlir Bu xəritə əməl etmək lazımdır, çünki,
həm də mənə daha çox yer olan oldu Mən ətrafında bu xəritəni saxlamaq lazımdır, çünki.
Belə ümid kimi biz növ var dünən və bu gün artıq müzakirə
faydaları ki, xərcləri üstün olacaq.
>> Amma burada heç bir aydın həll var.
Bəlkə bir yaxşı deyil a la sürətli və çirkli,
Kareem əvvəllər təklif problem yaddaş atmaq.
Just daha çox yaddaş almaq, az düşünmək problemin həlli haqqında ağır,
və daha asan bir şəkildə həll edir.
Həqiqətən əvvəllər zaman biz əvəzetmələr haqqında danışdı,
Bu kosmik deyildi kompüter və vaxt.
Bu geliştirici vaxt idi başqa kaynaktır.
>> Belə ki, yenə, bu balans aktı var qərar çalışır o şeyi hansı
sərf etmək istəyən var?
ən bahalı hansıdır?
Hansı daha yaxşı nəticələr verir?
Bəli?
>> Həqiqətən.
Bu halda, siz əgər maps-- nömrələri təmsil
Bu çox dillərdə deyilir "Göstəricilərinə" və ya "ünvanları" -
Bu ikiqat yer var.
Ki, əgər ikiqat kimi pis ola lazımdır İndi biz yalnız nömrələri saxlanılması edirik.
biz saxlanılması ki, düşünək bir hospital-- xəstə qeydlər
Pierson adları, telefon nömrələri, belə ki, sosial təhlükəsizlik nömrələri, həkim
tarixi.
Bu qutusu, çox ola bilər , Daha böyük olan halda
kiçik bir az göstərici, ünvanı növbəti bir böyük deyil element.
Belə bir saçaq var etməz başa gəlir.
Lakin bu halda, Bəli, bu bir misli var.
Yaxşı sualdır.
>> vaxt a danışaq daha konkret az.
çalışan zaman nə bu siyahı axtarış?
Mən axtarış istəyirdi Güman bütün tələbələrin siniflər vasitəsilə
və n notları var Bu data strukturu.
Burada da biz borc bilər əvvəllər lüğət.
Bu xətti data strukturu.
>> n Big O almaq üçün lazım nə Bu data strukturu sonuna,
whereas-- biz görməmişik bu bir sıra verir, əvvəl
nə deməkdir ki, daimi vaxt deyirlər bir addım və ya iki addımlar və ya 10 steps--
fərqi yoxdur.
Bu sabit sayı var.
Bu ilə heç bir əlaqəsi yoxdur serialın ölçüsü.
Və səbəbi, yenə təsadüfi imkanı.
kompüter bilərsiniz yalnız dərhal başqa yerə tullanmaq,
onlar eyni istəyirik, çünki başqa hər şey məsafə.
cəlb heç bir düşüncə yoxdur.
Yaxşı.
Mən Belə ki, mənə edək iki final şəkillər boya.
bir hash masa kimi tanınan çox ümumi bir.
Belə ki, bu müzakirə motivasiya etmək, Mənə bunu necə düşünmək edək.
>> Belə ki, necə bu barədə?
problem Güman Biz indi həll etmək istəyirik
bir dictionary-- da həyata keçirir İngilis dili sözlər belə bütün dəstə
və ya hər hansı.
Və məqsəd cavab verə olmaq şəklində sual bu söz?
Belə ki, həyata istəyirəm bir yazım checker yalnız
fiziki lüğət kimi Siz şeyi axtarmaq bilər.
Mən bir sıra ilə bunu idi düşünək.
Mən bunu edə bilər.
>> Və sözləri alma Güman və banan və daşqovun.
Mən meyvə hesab edə bilməz D ilə başlamaq, belə ki, biz yalnız istəyirik
üç meyvə gedir.
Belə ki, bu bir sıra və biz istəyirik bu sözləri bütün saxlanılması
bir sıra kimi bu lüğət.
sual, sonra necə başqa bir Bu məlumat saxlamaq bilər?
>> Bəli, I növ, çünki burada aldadıcı alıram sözü bu məktubları hər
həqiqətən fərdi byte edir.
Mən, həqiqətən, olmaq istəyirdi sirke-picky, Mən, həqiqətən, lazım
çox bu qədər bölünməsi edilə yaddaş kiçik chunks,
və biz məhz bunu edə bilər.
Amma biz daxil olacaq əvvəl eyni problem.
Nə əgər Merriam Webster və ya Oksford kimi hər onlar sözləri əlavə year-- yoxdur
dictionary-- biz deyil mütləq özümüzü çəkmək istəyirəm
bir sıra ilə bir küncə?
>> Belə ki, əvəzinə, bəlkə asan yanaşma öz node və ya qutusuna alma qoymaq üçün,
biz demək kimi, banana, və sonra biz burada daşqovun var.
bunlar birlikdə biz string.
Belə ki, bu array və bu bağlı siyahı var.
Siz olduqca görmək bilməz, bu, yalnız deyir "array" və deyir "siyahısı."
>> Belə ki, biz eyni əvvəl dəqiq məsələlər
vasitəsi biz indi Bizim bağlı siyahı dinamizm.
Amma biz kifayət qədər yavaş lüğət var.
Mən bir söz baxmaq istəyirəm düşünək.
Mənə n böyük O bilər addımlar, söz güc, çünki
sonunda bütün yol ola qovun kimi siyahısı.
Və bu çıxır ki, proqramlaşdırma, sort
məlumatların Müqəddəs Grail strukturları, bir şey deyil
ki, daimi verir bir sıra kimi vaxt
lakin hələ də dinamizm verir.
>> Beləliklə, biz həm də dünyanın ən yaxşı ola bilər?
Şübhəsiz ki, bir şey var hash table adlı
ki, tam imkan verir olsa təxminən ki.
A hash masa meraklısı deyil data structure ki, biz
kimi hesab edə bilər bir serialın birləşməsi
və bunu çəkmək gedirəm şeylərdir və bağlı siyahıları kimi
Mən burada bu kimi çəkmək lazımdır ki.
>> bu şey və yol Aşağıdakı kimi işləri var.
Bu Masa hash now-- varsa üçüncü data structure edir
Mən saxlamaq istədiyiniz Bu sözlər, mən deyil
Yalnız bütün saxlamaq üçün istəyirəm sözləri geri geri geri geri.
Mən bəzi leverage istəyirəm İnformasiya parça
imkan verir sözləri daha sürətli olduğu mənə almaq.
>> Belə ki, sözləri alma verilir və banan və qovun,
Mən qəsdən bu sözləri seçdi.
Niyə?
Nə əsaslı sort üç haqqında müxtəlif?
Aşkar nədir?
Onlar müxtəlif hərflərlə başlayır.
>> Belə ki, nə?
bütün mənim sözlər qoymaq əvəzinə Eyni bucket, belə ki, danışmaq
kimi böyük bir siyahısı, niyə yoxdur Mən ən azı bir optimallaşdırılması cəhd edin
və siyahıları 1/26 kimi uzun edir.
A çekici optimallaşdırma Biz niyə ola bilər
Istisna olmaqla, mən bir söz daxil Bu data strukturu,
kompüter yaddaş, niyə daxil Mən burada bütün bir "sözləri qoymaq deyil
bütün burada b 'sözləri, və bütün 'c' sözləri?
Belə ki, bu bir alma qoyulması başa Burada burada banana, qovun,
və sairə.
>> Mən əlavə varsa Sözü bir nə like--?
Apple, banan, armud.
Hər kəs bir meyvə hesab ki, b, və ya c ilə başlayır?
Blueberry-- mükəmməl.
Burada başa gedir.
Və belə ki, biz bir var görünür cüzi yaxşı həll,
İndi mən istəyirəm, çünki alma üçün axtarış, mən
first-- Mən dive deyil Mənim data strukturu.
Mən kompüter yaddaş dalış deyil.
Mən ilk ilk məktub oldu.
>> Və bu nə bir kompüter alim demək olardı.
Siz data strukturu hash.
Siz daxil, almaq Bu halda alma kimi bir söz.
Siz baxaraq, onu təhlil bu halda ilk məktub,
bununla onu hashing.
Hashing ümumi müddət vasitəsi deyil Siz giriş kimi bir şey almaq
və bəzi çıxış istehsal edir.
Və çıxış hal yer
Siz ilk axtarış etmək istəyirəm yeri, ikinci yer, üçüncü.
Belə ki, daxil alma, çıxış ilk.
input banan edir Çıxış ikinci olmalıdır.
giriş, qovun var Çıxış üçüncü olmalıdır.
giriş, blueberry edir Çıxış yenidən ikinci olmalıdır.
Və siz almaq kömək edir nə var Yaddaş vasitəsilə qısa yolları
sözləri almaq üçün və ya data daha səmərəli.
>> İndi bu potensial bizim vaxt aşağı azalıb qədər 26 adamdan birinin kimi ilə,
Siz güman, çünki ki, siz "Z" kimi bir çox "a" sözləri var
"Q" sözləri kimi sözlər olan həqiqətən realistic-- deyil
Siz arasında çəp olacaq alphabet-- müəyyən məktubları
lakin bu, artan olacaq imkan vermir yanaşma
Siz daha tez sözləri almaq üçün.
Və əslində, inkişaf etmiş bir proqram, dünyanın Googles,
vücuda of Facebooks Onlar hash masa istifadə edir
müxtəlif təyinatlı bir çox.
Amma onlar belə sadəlövh olmaz yalnız ilk məktub baxmaq
alma və ya banan və ya armud və ya qovun,
bu edə bilərsiniz, çünki siyahıları hələ uzun əldə edə bilər.
>> Və bu hələ sort ola bilər of linear-- belə növ yavaş,
n böyük O kimi ki, biz əvvəllər müzakirə.
Belə ki, nə bir real yaxşı hash table edəcək Bu daha böyük array olacaq do--.
Və bir daha istifadə edəcək mürəkkəb hashing funksiyası,
ki, yalnız baxmaq deyil "a."
Bəlkə baxır "a-p-p-l-e" və elə those beş məktublar çevirir
harada yeri daxil alma saxlanılır olmalıdır.
Biz yalnız naively məktub 'a' istifadə etdiyiniz tək, bu gözəl və sadə, çünki.
>> Amma hash table ildə sonunda, siz hesab edə bilər
of birləşməsi kimi bir sıra, hər hansı
ki, ideal bir bağlı siyahı var mümkün qədər qısa olmalıdır.
Bu açıq-aydın həlli deyil.
gözəl tuning Əslində, çox ki, başlıq zaman altında gedir
bu cür həyata mürəkkəb data strukturları
sağ nə serialın uzunluğu?
sağ hash funksiyası nədir?
Necə yaddaşında şeyi saxlamaq edirsiniz?
>> Amma necə tez həyata Müzakirələrin bu cür
bu cür ki, ya bu günə qədər qızışdı Bu nöqtədə bir baş üzərində olan
gözəl.
Amma biz həqiqətən ilə, geri başladı bir şey aşağı səviyyəli və elektron.
Və bu bir daha bu abstraksiya tema,
harada almaq üçün başlamaq bir dəfə verilmiş, OK, mən var pseudocode var
fiziki yaddaş, OK, hər, var fiziki yeri, bir ünvan var
OK, var, mən təmsil edə bilər arrows-- həmin ünvanları
çox tez var başlaya bilərsiniz daha mürəkkəb söhbət ki,
Sonda bizə imkan görünür axtarış kimi problemləri həll etmək üçün
və daha səmərəli çeşidlənməsi.
Və too-- arxayın Mən bu hesab edirəm, çünki
biz bəzi getdi sonra dərin deyil biz sizin proper-- bu CS mövzular
Bu bir gün yarım həyata Siz adətən artıq edə bilər nə qeyd
bir dövr səkkiz həftə əlbəttə.
>> Bu hər hansı suallar?
Yox?
Yaxşı.
Yaxşı, niyə biz orada fasilə deyil, bir neçə dəqiqə erkən nahar başlamaq,
yalnız bir saat da davam?
Mən uzanmaq lazımdır sual ilə bir az.
Sonra getmək üçün gedirəm OK, əgər bir neçə zəngləri almaq.
Mən bu vaxt bir musiqi yandırmaq lazımdır lakin nahar köşedeki olmalıdır.