>> HOPARL脰R 1: B眉t眉n sa臒, bel蓹 ki, bu deyil CS50 Bu h蓹ft蓹 be艧 sonu.
V蓹 son d蓹f蓹 xat谋rlay谋ram, biz a莽谋lm谋艧 merakl谋s谋 data baxaraq
h蓹ll ba艧lad谋 strukturlar谋 t蓹qdim ba艧lad谋 probleml蓹r,
yeni probleml蓹r, lakin bu 蓹sas Threading c眉r idi ki, biz
node node etm蓹y蓹 ba艧lad谋.
Bel蓹 ki, 蓹lb蓹tt蓹, bu bir story ba臒l谋 siyah谋.
V蓹 story, ba臒l谋 M蓹n yaln谋z bir var dem蓹kdir
bu qov艧aqlar谋n谋n h蓹r aras谋nda m枚vzu.
Siz merakl谋s谋 ed蓹 bil蓹rsiniz 莽谋x谋r ikiqat ba臒l谋 siyah谋lar谋 kimi 艧eyl蓹r
bir arrow var qovu艧durma臒谋m谋z h蓹r iki istiqam蓹td蓹 gedir ki,
m眉蓹yy蓹n verim il蓹 k枚m蓹k ed蓹 bil蓹r.
Amma bu problemi h蓹ll?
Bu n蓹dir problem h蓹ll etdi?
Biz bazar ert蓹si Niy蓹 qay臒谋 idi?
Niy蓹, n蓹z蓹ri, biz bazar ert蓹si qay臒谋 idi?
O n蓹 edir?
>> Auditoriya: Biz dinamik boyutland谋r bil蓹r.
>> HOPARL脰R 1: OK, biz bel蓹 dinamik boyutland谋r.
Yax艧谋 Siz d蓹 apar谋l谋r.
Bel蓹 ki, dinamik bu boyutland谋r bil蓹r data structure, bir s谋ra halbuki,
Xat谋rladaq ki, bir bilm蓹k laz谋md谋r priori n蓹 q蓹d蓹r yer ist蓹diyiniz
v蓹 bir az daha laz谋md谋r, 蓹g蓹r space, siz u臒urlar c眉r ist蓹yirik.
Siz yeni bir s谋ra yaratmaq laz谋md谋r.
Siz b眉t眉n h蓹r蓹k蓹t var sizin bir dig蓹r m蓹lumatlar,
n蓹tic蓹d蓹 k枚hn蓹 s谋ra pulsuz Siz, sonra davam edin.
Hans谋 yaln谋z 莽ox bahal谋 hiss v蓹 莽ox s蓹m蓹r蓹siz v蓹 h蓹qiq蓹t蓹n ola bil蓹r.
Amma bu, b眉t眉n yax艧谋 deyil.
Biz qiym蓹t 枚d蓹m蓹k, bir n蓹 idi daha ayd谋n qiym蓹tl蓹ri biz
bir ba臒l谋 siyah谋 istifad蓹 ed蓹r蓹k 枚d蓹m蓹k?
>> Auditoriya: Biz istifad蓹 etm蓹k laz谋md谋r h蓹r biri 眉莽眉n ikiqat yer.
HOPARL脰R 1: B蓹li, bel蓹 ki, biz laz谋md谋r 蓹n az谋 iki d蓹f蓹 莽ox yer kimi.
茝slind蓹, m蓹n h蓹yata bu 艧蓹kil nin h蓹tta bir az yanl谋艧,
莽眉nki m眉asir bir 莽ox CS50 IDE haqq谋nda komp眉ter, bir pointer v蓹 ya bir 眉nvan
茝slind蓹 d枚rd bytes deyil.
Bu, 莽ox tez-tez bu var g眉n s蓹kkiz bytes olan
alt dem蓹kdir 蓹n 蓹slind蓹 orada d眉zbucaql谋
iki d蓹f蓹 kimi n枚v M蓹n t蓹rtib etdik n蓹 kimi b枚y眉k,
siz 眉莽 d蓹f蓹 kimi istifad蓹 edirik dem蓹kdir biz ba艧qa ola bil蓹r kimi 莽ox yer.
陌ndi eyni zamanda, biz ist蓹yirik h蓹l蓹 bayt s枚hb蓹t, sa臒?
Biz m眉tl蓹q s枚hb蓹t deyilik megabayt v蓹 ya gigabayt,
Bu m蓹lumatlara halda strukturlar谋 b枚y眉k almaq.
>> V蓹 bel蓹 ki, bu g眉n biz hesab ba艧lamaq biz data ara艧d谋rmaq bil蓹r nec蓹
daha s蓹m蓹r蓹li 蓹g蓹r fakt data daha b枚y眉k olur.
Amma canonicalize ed蓹k ilk 蓹m蓹liyyatlar谋
bu ed蓹 bil蓹rsiniz ki, data strukturlar谋 n枚vl蓹ri.
Bir ba臒l谋 kimi bel蓹 bir 艧ey siyah谋s谋, 眉mumiyy蓹tl蓹 d蓹st蓹kl蓹yir
蓹m蓹liyyatlar silm蓹k ist蓹yir蓹m, daxil edin v蓹 axtar谋艧.
V蓹 m蓹n ki, n蓹 dem蓹kdir?
Bu yaln谋z, ad蓹t蓹n dem蓹kdir insanlar ba臒l谋 siyah谋 istifad蓹 蓹g蓹r,
onlar v蓹 ya ba艧qas谋 h蓹yata ke莽irdi sil, insert kimi funksiyalar谋,
v蓹 axtar谋艧, siz bel蓹 h蓹qiq蓹t蓹n bir 艧ey
data strukturu il蓹 faydal谋.
Bel蓹 ki, tez n蓹z蓹r salaq biz h蓹yata bil蓹r nec蓹
bir ba臒l谋 siyah谋 b蓹zi kodu kimi bel蓹.
>> Bel蓹 ki, bu yaln谋z bir C kodu, bel蓹 tam bir proqramd谋r
M蓹n, h蓹qiq蓹t蓹n, tez 莽谋rp谋lm谋艧 ki.
Bu paylanmas谋nda online deyil kodu, bu, h蓹qiq蓹t蓹n run deyil, 莽眉nki.
Amma yaln谋z var fark 艦蓹rh dedi,
dot dot dot, bir 艧ey var var, orada bir 艧ey dot dot dot.
V蓹 yaln谋z baxaq 艧ir蓹li hiss蓹l蓹ri n蓹.
Bel蓹 ki, x蓹tt 眉莽, bu art谋q Xat谋rladaq ki,
Biz son bir node elan t蓹klif vaxt, o d眉zbucaql谋 obyektl蓹rind蓹n biri.
Bu, biz n z蓹ng ed蓹c蓹yik int var lakin biz bir 艧ey z蓹ng ed蓹 bil蓹r,
v蓹 sonra bir struct node ulduz n枚vb蓹ti 莽a臒谋r谋b.
V蓹 yaln谋z, ikinci ayd谋n olmaq line line alt谋 on ki, n蓹dir?
Bu, bizim 眉莽眉n n蓹 edir?
Bu, 蓹lb蓹tt蓹, daha g枚r眉n眉r, 莽眉nki bizim adi d蓹yi艧蓹nl蓹r 莽ox sirli.
>> Auditoriya: Bu art谋q h蓹r蓹k蓹t edir.
>> HOPARL脰R 1: Bu art谋q h蓹r蓹k蓹t edir.
V蓹 daha d蓹qiq olmal谋d谋r Bu 眉nvan saxlamaq olacaq
眉莽眉n n蓹z蓹rd蓹 node semantically yan谋nda, sa臒?
Bel蓹 ki, etm蓹k niyy蓹tind蓹 deyil m眉tl蓹q bir 艧ey h蓹r蓹k蓹t.
Bu, sad蓹c蓹 olacaq olan bir d蓹y蓹r saxlamaq
脺nvan olacaq b蓹zi dig蓹r node,
biz struct bildirib etdik niy蓹 v蓹 ki node ulduz, star belirten
bir g枚st蓹rici v蓹 ya 眉nvan谋.
OK, bel蓹 ki, indi biz g眉man 蓹g蓹r biz蓹 m枚vcud bu N, v蓹 ed蓹k
ba艧qas谋n谋n var ki, g眉man integers b眉t眉n d蓹st蓹 daxil
bir ba臒l谋 siyah谋s谋na daxil.
V蓹 ba臒l谋 siyah谋s谋 bir n枚qt蓹d蓹 il蓹 i艧ar蓹
bir d蓹yi艧蓹n adl谋 siyah谋s谋 bir parametri kimi burada ke莽di,
nec蓹 x蓹tti haqq谋nda getm蓹k yoxdur 14 axtar谋艧 h蓹yata?
Ba艧qa s枚zl蓹, m蓹n h蓹yata edir蓹m kimin m蓹qs蓹di h蓹yat funksiyas谋
sonra bir int v蓹 almaq 眉莽眉n bir ba臒l谋 siyah谋 ba艧layan,
ki ba臒l谋 siyah谋 bir g枚st蓹ricisidir.
Ilk kimi, m蓹n David kim hesab edir蓹m ki, k枚n眉ll眉, Bazar ert蓹si g眉n眉 idi
O i艧ar蓹 edildi b眉t眉n ba臒l谋 siyah谋,
biz ke莽蓹n etdiyiniz kimi bu David burada arqument kimi.
Nec蓹 ki, biz bu siyah谋 traversing haqq谋nda getm蓹k yoxdur?
B蓹li, bu 莽谋x谋r ki, baxmayaraq ki, g枚st蓹ricil蓹rin蓹, biz蓹 indi nisb蓹t蓹n yeni
biz nisb蓹t蓹n bunu ed蓹 bil蓹rsiniz straightforwardly.
>> M蓹n ir蓹li getm蓹k 眉莽眉n gedir蓹m v蓹 m眉v蓹qq蓹ti d蓹yi艧蓹n elan ki,
Konvensiya il蓹 yaln谋z gedir 眉莽眉n, PTR pointer 莽a臒谋r谋b, v蓹 ya
lakin siz ist蓹diyiniz bir 艧ey z蓹ng ed蓹 bil蓹r.
M蓹n ba艧lamaq 眉莽眉n gedir蓹m Bu siyah谋da ba艧lamas谋.
Bel蓹 ki, siz c眉r bu hesab ed蓹 bil蓹r M蓹n蓹 m眉蓹llim kimi dig蓹r g眉n,
c眉r kims蓹 i艧ar蓹 k枚n眉ll眉 olaraq insanlar aras谋nda.
Bel蓹 ki, bir m眉v蓹qq蓹ti d蓹yi艧蓹n deyil蓹m yaln谋z eyni 艧ey i艧ar蓹
bizim t蓹sad眉f蓹n adl谋 k枚n眉ll眉 David d蓹 i艧ar蓹 etdi.
陌ndi g枚st蓹rici is蓹 null deyil, 莽眉nki geri
ki null b蓹zi x眉susi sentinel d蓹y蓹ri siyah谋 sonunda ay谋r谋r
M蓹n i艧ar蓹 deyil蓹m is蓹 son k枚n眉ll眉 kimi torpaq
idi nin ir蓹li ged蓹k v蓹 a艧a臒谋dak谋.
G枚st蓹rici 茝g蓹r indi c眉r ist蓹yir蓹m biz t蓹l蓹b蓹 il蓹 n蓹 etm蓹k
qurulu艧u pointer dot n枚vb蓹ti 蓹g蓹r b蓹rab蓹rdir pointer dot N b蓹rab蓹rdir olduqca 蓹g蓹r
d蓹yi艧蓹n N b蓹rab蓹rdir q蓹bul edilmi艧dir d蓹lil,
sonra ir蓹li getm蓹k ist蓹yir蓹m v蓹 do臒ru qay谋tmaq deyirl蓹r.
M蓹n daxili say谋 N g枚rd眉k M蓹nim ba臒l谋 siyah谋 qov艧aqlar谋n谋n biri.
Amma dot art谋q bu 莽蓹r莽iv蓹d蓹 i艧l蓹yir,
pointer, PTR, 莽眉nki h蓹qiq蓹t蓹n bir g枚st蓹rici, bir 眉nvan,
Biz, h蓹qiq蓹t蓹n, g枚z蓹l ed蓹 bil蓹rsiniz sintaksis n蓹hay蓹t bir par莽a istifad蓹
markal谋 bel蓹 intuitiv m蓹nada v蓹 h蓹qiq蓹t蓹n
getm蓹k dem蓹kdir ki, burada bir arrow istifad蓹 orada tam ki, 眉nvan谋.
Bel蓹 ki, 莽ox ox艧ar dot operator ruhu,
lakin pointer bir g枚st蓹rici deyil, 莽眉nki v蓹 faktiki struct 枚z眉,
biz yaln谋z arrow istifad蓹 edin.
>> Bel蓹 ki, cari node ki, m蓹n, m眉v蓹qq蓹ti d蓹yi艧蓹n i艧ar蓹 edir蓹m
N, m蓹n n蓹 ist蓹yir蓹m deyil?
B蓹li, m蓹nim insan k枚n眉ll眉l蓹ri il蓹 biz g眉n burada idi ki,
M蓹nim ilk insan bir m蓹n deyil ist蓹yirik v蓹 b蓹lk蓹 ikinci insan deyil
M蓹n ist蓹yir蓹m biri v蓹 眉莽眉nc眉, m蓹n h蓹r蓹k蓹t fiziki saxlamaq laz谋md谋r.
Kimi nec蓹 bir siyah谋s谋n谋 add谋m edirsiniz?
Biz bir s谋ra idi, siz yaln谋z i plus plus kimi etdi.
Lakin bu halda, bu kifay蓹tdir n枚vb蓹ti g枚st蓹rici olur, g枚st蓹rici yoxdur.
Ba艧qa s枚zl蓹, n枚vb蓹ti sah蓹sind蓹 sol 蓹lind蓹 b眉t眉n kimi
ki, bazar ert蓹si insan k枚n眉ll眉 b蓹zi dig蓹r node qeyd etm蓹k 眉莽眉n istifad蓹 idi.
H蓹min onlar谋n n枚vb蓹ti qon艧ular谋 idi.
>> M蓹n bu siyah谋da gezinmek 眉莽眉n ist蓹yirsinizs蓹 Bel蓹 ki, M蓹n art谋q m蓹n bunu plus plus bilm蓹z
M蓹n 蓹v蓹zin蓹 dem蓹k laz谋md谋r M蓹n pointer, gedir
n枚vb蓹ti sah蓹sind蓹 n蓹 b蓹rab蓹r, n枚vb蓹ti sah蓹sind蓹, n枚vb蓹ti sah蓹sind蓹 var
o sol 蓹ll蓹ri a艧a臒谋dak谋 biz m蓹rh蓹l蓹 i艧ar蓹 idi ki,
bir sonrak谋 d蓹y蓹rl蓹r蓹.
M蓹n vasit蓹sil蓹 almaq 蓹g蓹r ki, b眉t眉n iteration,
v蓹 n蓹hay蓹t, m蓹n olmayan null edib a艧kar N h蓹l蓹, m蓹n yaln谋z yalan qay谋tmaq.
Bel蓹 ki, yen蓹, biz burada edirik ki, b眉t眉n, bir an 蓹vv蓹l 艧蓹kil kimi,
i艧ar蓹 il蓹 ba艧lay谋r ehtimalla siyah谋s谋 ba艧layan.
V蓹 sonra m蓹n yoxlamaq, d蓹y蓹ri n蓹 M蓹n doqquz b蓹rab蓹r ar谋yorum?
茝g蓹r bel蓹dirs蓹, m蓹n do臒ru qay谋tmaq v蓹 m蓹n bitirdim.
茝g蓹r, 蓹limi yenil蓹m蓹 AKA pointer, qeyd etm蓹k
n枚vb蓹ti Ok'un yeri, v蓹 sonra yan谋ndak谋 arrow yeri,
v蓹 n枚vb蓹ti.
M蓹n sad蓹c蓹 bu array vasit蓹sil蓹 g蓹zinti edir蓹m.
>> Bel蓹 ki, yen蓹, kimin umurunda?
Like bu bir t蓹rkib hiss蓹si n蓹dir?
Yax艧谋, biz t蓹qdim ki, xat谋rlay谋ram bir y谋臒谋n anlay谋艧谋 olan
bu kimi m眉c蓹rr蓹d data insofar yaz谋n bir C 艧ey, bir CS50 艧ey deyil,
Bu m眉c蓹rr蓹d fikir, bu fikir bir-birin蓹 眉st 艧eyi y谋臒ma
ki, h蓹yata ke莽iril蓹 bil蓹r m眉xt蓹lif yollarla d蓹st蓹l蓹ri.
V蓹 biz t蓹klif bir yolu idi bir s谋ra, v蓹 ya bir ba臒l谋 siyah谋s谋 il蓹.
V蓹 bu ki, canonically 莽谋x谋r y谋臒谋n谋 蓹n az谋 iki 蓹m蓹liyyatlar谋 d蓹st蓹kl蓹yir.
V蓹 buzz s枚zl蓹ri, push var y谋臒谋n谋 眉z蓹rin蓹 bir 艧ey t蓹kan,
yeni tray kimi yemekhane, v蓹 ya pop,
olan topmost aradan qald谋r谋lmas谋 dem蓹kdir yem蓹k y谋臒谋n谋 tray
zal谋, sonra b蓹lk蓹 b蓹zi dig蓹r 蓹m蓹liyyatlar h蓹m莽inin.
Bel蓹 ki, nec蓹 biz strukturu m眉蓹yy蓹n ed蓹 bil蓹r biz indi bir y谋臒谋n z蓹ng edirik ki?
>> B蓹li, biz z蓹ruri b眉t眉n var deyir蓹m C. bizim s蓹r蓹ncam谋nda syntax,
M蓹n蓹 bir n枚v眉 t蓹rif verm蓹k bir y谋臒谋n daxilind蓹 struct,
M蓹n, bir s谋ra edir dem蓹k gedir蓹m b眉t眉n n枚mr蓹l蓹ri d蓹st蓹 v蓹 sonra 枚l莽眉s眉.
Bel蓹 ki, ba艧qa s枚zl蓹, m蓹n ist蓹yir蓹m kodu bu h蓹yata ke莽irilm蓹si 眉莽眉n,
M蓹n蓹 getm蓹k v蓹 yaln谋z c眉r imkan bu s枚yl蓹y蓹r蓹k n蓹 c蓹lb edir.
Bu deyib ki, m蓹n蓹 verm蓹k bir s谋ra var qurulu艧u,
v蓹 m蓹n g眉c眉 n蓹 bilmir蓹m M蓹n etdik ki, y蓹qin b蓹zi daimi var
ba艧qa m眉蓹yy蓹n ki, g枚z蓹l var.
Lakin, yaln谋z bir G眉man iki, 眉莽, d枚rd, be艧.
Bel蓹 ki, g眉c眉 5-dir.
Daxilind蓹 bu element m蓹nim strukturu n枚mr蓹l蓹ri adlanacaq.
V蓹 sonra m蓹n bir ehtiyac dig蓹r d蓹yi艧蓹n y蓹qin
蓹vv蓹lc蓹 m蓹n gedir蓹m adl谋 枚l莽眉s眉 s谋f谋r ba艧lan谋r m眉蓹yy蓹n etm蓹k.
He莽 bir 艧ey varsa y谋臒谋n谋 枚l莽眉s眉, s谋f谋r
v蓹 n枚mr蓹l蓹r zibil d蓹y蓹rl蓹r var.
M蓹n h蓹l蓹 orada n蓹 he莽 bir fikrim yoxdur.
>> M蓹n basmaq ist蓹yirsinizs蓹 Bel蓹 ki, y谋臒谋n谋 眉z蓹rin蓹 bir 艧ey,
M蓹n funksiyas谋 t蓹kan z蓹ng G眉man, v蓹 M蓹n say谋 50 kimi 50 t蓹kan dem蓹k
burada t蓹klif edir蓹m M蓹n bu array onu c蓹lb?
Be艧 m眉xt蓹lif m眉mk眉n cavab var.
Harada say谋 50 basmaq ist蓹yirsiniz?
Burada m蓹qs蓹d varsa, yen蓹 z蓹ng funksiyas谋 push, bir d蓹lil ke莽m蓹k
50, m蓹n bunu harada qoymaq bil蓹r蓹m?
Be艧 m眉mk眉n var 20% 艧ans d眉zg眉n t蓹xmin.
B蓹li?
>> Auditoriya: Far h眉ququ.
>> HOPARL脰R 1: Far h眉ququ.
25% 艧ans art谋q var d眉zg眉n t蓹xmin.
Bel蓹 ki, h蓹qiq蓹t蓹n g枚z蓹l olard谋.
Konvensiya, m蓹n bir s谋ra il蓹 dem蓹k laz谋md谋r, biz 眉mumiyy蓹tl蓹, sol ba艧layacaq
lakin biz, 蓹lb蓹tt蓹 bil蓹r sa臒 ba艧lamaq.
Bel蓹 ki, burada spoyler M蓹n olard谋 y蓹qin ki, sol onu c蓹lb,
yaln谋z bir normal s谋ra oldu臒u kimi M蓹n soldan sa臒a ged蓹n ba艧lamaq.
Amma flip bil蓹r, 蓹g蓹r hesab, g枚z蓹l.
Bu, yaln谋z 艧蓹rti deyil.
OK, M蓹n bir etm蓹k laz谋md谋r baxmayaraq daha d蓹yi艧iklik.
陌ndi m蓹n bir 艧ey s枚vq etdik ki, y谋臒谋n谋 眉z蓹rin蓹, n蓹 g蓹l蓹n var?
>> B眉t眉n sa臒, m蓹n 枚l莽眉s眉 artt谋rmay谋 var.
M蓹n蓹 ir蓹li v蓹 yaln谋z gidelim s谋f谋r olan bu yenil蓹m蓹.
茝v蓹zin蓹 indi m蓹n gedir蓹m d蓹y蓹ri bir qoymaq 眉莽眉n.
陌ndi ba艧qa bir t蓹kan g眉man y谋臒谋n谋 眉z蓹rin蓹 say谋 51 kimi.
B蓹li, m蓹n bir daha etm蓹k laz谋md谋r 枚l莽眉s眉 iki q蓹d蓹r d蓹yi艧iklik.
V蓹 sonra m蓹n bir daha t蓹kan g眉man 61 kimi y谋臒谋n谋 眉z蓹rin蓹 say谋,
indi 枚l莽眉s眉 g眉ncellemeniz laz谋md谋r daha bir vaxt谋 v蓹 枚l莽眉s眉 kimi d蓹y蓹r 3 almaq.
陌ndi pop z蓹ng g眉man edirl蓹r.
陌ndi Konvensiya il蓹, pop, bir d蓹lil deyil.
Bir y谋臒谋n谋 il蓹 b眉t眉n tray m蓹caz point
Siz m眉lahiz蓹 yoxdur ki, ki, tray almaq getm蓹k, b眉t眉n ed蓹 bil蓹rsiniz
olan topmost bir pop edir y谋臒谋n谋 yaln谋z 莽眉nki.
Y蓹ni bu data structure n蓹 var.
>> Ki m蓹ntiqi Bel蓹 ki, pop, n蓹 off g蓹lir dem蓹k?
Bel蓹 ki, 61.
Bel蓹 ki, h蓹qiq蓹t蓹n, komp眉ter n蓹 yadda艧 n蓹 ed蓹c蓹k?
M蓹nim code n蓹 var?
N蓹 t蓹klif edir蓹m biz ekranda d蓹yi艧dirm蓹k?
N蓹 d蓹yi艧dirm蓹k laz谋md谋r?
Ba臒谋艧lay谋n?
Bel蓹likl蓹, biz 61 durun.
Bel蓹likl蓹, m蓹n m眉tl蓹q bunu ed蓹 bil蓹rsiniz.
M蓹n 61 xilas ed蓹 bil蓹r.
V蓹 sonra n蓹 dig蓹r d蓹yi艧iklik ba艧 etm蓹k laz谋md谋r?
Size y蓹qin ki, iki geri getm蓹k 眉莽眉n var.
V蓹 bel蓹 ki, g枚z蓹l.
Amma bir d蓹qiq蓹, 枚l莽眉s眉 g枚zl蓹yin bir an 蓹vv蓹l 眉莽 idi.
Yaln谋z tez a臒l谋 ba艧谋nda olma 莽ek ed蓹k.
Biz nec蓹 ki, bilirdinizmi 61 qurtarmaq ist蓹yirdi?
Biz yaratma edirik, 莽眉nki.
V蓹 m蓹n bu ikinci 蓹mlak 枚l莽眉s眉 var.
>> M蓹n, bir d蓹qiq蓹 g枚zl蓹yin h蓹ft蓹 iki geri d眉艧眉nc蓹
Biz s枚hb蓹t a莽谋lm谋艧 zaman Bu yer s谋f谋r idi Diziler,
Bu yer bir idi, bu yer idi iki, bu yer 眉莽, d枚rd,
bu kimi g枚r眉n眉r 枚l莽眉s眉 aras谋nda 蓹laq蓹l蓹r
v蓹 m蓹n ist蓹yir蓹m element aradan qald谋r谋lmas谋 眉莽眉n array yaln谋z n蓹 ola g枚r眉n眉r?
Size minus biridir.
V蓹 bel蓹 ki, nec蓹 insanlar kimi deyil biz 61 birinci g蓹lir bilirik.
Nec蓹 komp眉ter bilm蓹k olacaq?
Zaman kodu harada siz y蓹qin ki, 枚l莽眉s眉 minus bir etm蓹k ist蓹yir蓹m,
Bel蓹 ki, 眉莽 minus iki, v蓹 ki, biz 61 qurtarmaq ist蓹yir蓹m dem蓹kdir.
V蓹 sonra biz h蓹qiq蓹t蓹n t蓹kmill蓹艧dir蓹 bil蓹r ki, 枚l莽眉s眉 bel蓹 枚l莽眉s眉 indi
yaln谋z iki 眉莽 gedir.
V蓹 yaln谋z x谋rda莽谋 olmaq 眉莽眉n gedir蓹m M蓹n, bitirdim ki, t蓹klif 眉莽眉n nec蓹?
Siz daxil蓹n t蓹klif D眉zg眉n M蓹n 61 qurtarmaq laz谋md谋r.
Amma yox I n枚v sort 61 xilas kazan谋lm谋艧?
M蓹n s蓹m蓹r蓹li unuttuysan谋z ki, h蓹qiq蓹t蓹n var.
Siz oxumaq sonra 蓹g蓹r, geri pset4 d眉艧眉nm蓹k Suclari haqq谋nda m蓹qal蓹, PDF
biz ki, u艧aqlar oxumaq, v蓹 ya pset4 眉莽眉n bu h蓹ft蓹 oxumaq olacaq.
Bu h蓹qiq蓹t蓹n ilgili Xat谋rladaq ki komp眉ter Suclari b眉t眉n fikir.
Hans谋 bir komp眉ter 眉mumiyy蓹tl蓹 yoxdur edir bir 艧ey oldu臒u yaln谋z, unudur
lakin bu getm蓹k v蓹 kimi deyil onu v蓹 ya yaln谋艧 dan谋艧谋q 眉莽眉n c蓹hd edin
adet s谋f谋r v蓹 olanlar谋 olanlar bit v蓹 ya dig蓹r t蓹sad眉fi model
Sizin halda 枚z眉n眉z bel蓹 q蓹sd蓹n yoxdur.
Bel蓹 ki, intuisiya idi sa臒, 61 xilas ed蓹k.
Lakin 蓹slind蓹, biz narahat yoxdur.
Biz yaln谋z ki, unutmaq laz谋md谋r bu, bizim 枚l莽眉s眉 d蓹yi艧蓹n var.
>> 陌ndi bu y谋臒谋n谋 il蓹 bir problem var.
M蓹n h蓹r 艧eyi basmaqla saxlamaq y谋臒谋n谋 眉z蓹rin蓹, n蓹
a莽谋q-ayd谋n ba艧 ver蓹c蓹k yaln谋z bir ne莽蓹 d蓹qiq蓹 vaxt?
Biz yer t枚k眉lm蓹k olacaq.
V蓹 biz n蓹 etm蓹liy蓹m?
Biz c眉r berbat edirik.
Bu h蓹yata imkan vermir istifad蓹 ed蓹r蓹k, 莽眉nki biz蓹 s谋ra 枚l莽眉s眉n眉
Bu syntax, 蓹g蓹r h蓹ft蓹 iki geri hesab edir蓹m ki,
Siz b蓹yan sonra bir s谋ra 枚l莽眉s眉,
biz harada bir mexanizm g枚rm蓹dim Siz serial谋n 枚l莽眉s眉n眉 d蓹yi艧蓹 bil蓹rsiniz.
H蓹qiq蓹t蓹n C x眉susiyy蓹t yoxdur.
Des蓹niz m蓹n蓹 be艧 verm蓹k Nths, onlara z蓹ng n枚mr蓹l蓹ri,
ki, siz onu almaq olacaq b眉t眉n var.
Bel蓹likl蓹, biz Bazar ert蓹si kimi indi var h蓹ll ifad蓹 etm蓹k qabiliyy蓹ti
baxmayaraq ki, biz yaln谋z 莽imdik laz谋md谋r Bizim y谋臒谋n谋 m眉蓹yy蓹n
b蓹zi a臒谋r kodlu array ola, lakin yaln谋z bir 眉nvan saxlamaq 眉莽眉n.
>> 陌ndi niy蓹 bu?
陌ndi biz yaln谋z rahat olmal谋d谋r fakt m蓹nim proqram 莽al谋艧谋r ki,
M蓹n g眉man gedir蓹m insan soru艧maq laz谋md谋r,
ne莽蓹 蓹d蓹d saxlamaq ist蓹yirsiniz?
Bel蓹 ki, giri艧 bir yerd蓹n g蓹lm蓹k var.
Amma bir d蓹f蓹 say谋, sonra m蓹n yaln谋z bil蓹rsiniz
verm蓹k f蓹aliyy蓹t n蓹 istifad蓹 M蓹n蓹 yadda艧 y谋臒谋n?
M蓹n malloc istifad蓹 ed蓹 bil蓹rsiniz.
M蓹n h蓹r hans谋 bir say谋 dem蓹k olar bytes geri bu Nths 眉莽眉n ist蓹yir蓹m.
V蓹 b眉t眉n n枚mr蓹l蓹ri saxlamaq 眉莽眉n bu struct daxilind蓹 burada d蓹yi艧蓹n
n蓹 olmal谋d谋r?
N蓹 h蓹qiq蓹t蓹n gider Bu ssenari n枚mr蓹l蓹ri?
B蓹li, ilk bir g枚st蓹rici yadda艧 ki, y谋臒谋n byte,
v蓹 ya daha 莽ox x眉susi, 眉nvan o bayt ilk.
Bu bir, 蓹g蓹r F蓹rq etm蓹z byte v蓹 ya bir milyard bytes,
M蓹n ilk haqq谋nda qay臒谋 laz谋md谋r.
脟眉nki n蓹 malloc z蓹man蓹tl蓹ri v蓹 M蓹nim 蓹m蓹liyyat sistemi z蓹man蓹t,
ki, yadda艧 I y谋臒谋n almaq, bu biti艧ik olacaq.
Bo艧luqlar var olacaq deyil.
M蓹n 50 xahi艧 etdik Bel蓹 ki bytes v蓹 ya 1000 bytes,
onlar b眉t眉n olacaq geri geri geri.
V蓹 bel蓹 uzun m蓹n nec蓹 b枚y眉k xat谋rlay谋ram q蓹d蓹r m蓹n bilm蓹k laz谋md谋r b眉t眉n ist蓹di
ilk 眉nvan.
>> Bel蓹 ki, indi biz kodu imkan谋 var.
Olsa da, bu, bizi almaq olacaq 莽ox vaxt bu q蓹d蓹r yazmaq
indi ki, yadda艧 t蓹krar b枚l眉艧d眉r蓹 bil蓹r yaln谋z orada f蓹rqli bir 眉nvan saxlan谋lmas谋
biz h蓹tta daha b枚y眉k v蓹 ya ist蓹yirsinizs蓹 yadda艧 ki莽ik bir y谋臒谋n.
Bel蓹 ki, burada bir ticar蓹t off.
陌ndi biz dinamizm almaq.
Biz h蓹l蓹 var contiguousness M蓹n iddia edir蓹m.
Malloc biz蓹 ver蓹c蓹k, 莽眉nki yadda艧 biti艧ik y谋臒谋n.
Amma bu bir a臒r谋 olacaq bizim 眉莽眉n boyun, proqram莽谋,
h蓹qiq蓹t蓹n kod.
Bu, yaln谋z daha 莽ox i艧 var.
Biz n蓹 yax谋n kodu laz谋md谋r Yaln谋z bir an 蓹vv蓹l h蓹yata tarp谋lt谋.
脟ox doable, lakin bu m眉r蓹kk蓹bliyi ed蓹r.
V蓹 bel蓹 geli艧tirici zaman, proqram莽谋 vaxt ba艧qa bir resurs deyil
biz s蓹rf etm蓹k laz谋md谋r bil蓹r ki, bir m眉dd蓹t yeni funksiyalar almaq 眉莽眉n.
V蓹 sonra 蓹lb蓹tt蓹 bir s谋ra var.
Biz bu girm蓹y蓹c蓹y蓹m 莽ox 蓹trafl谋 bir.
Amma bu ruhunda 莽ox ox艧ar.
M蓹n bir s谋ra h蓹yata v蓹 bil蓹r m眉vafiq 蓹m蓹liyyatlar,
enqueue v蓹 ya dequeue, 蓹lav蓹 v蓹 ya aradan qald谋r谋lmas谋 kimi, Bu, dey蓹r蓹k bir merakl谋s谋 yoldur
enqueue v蓹 ya dequeue kimi edir.
M蓹n yaln谋z 枚z眉m眉 bir struct ver蓹 bil蓹r ki, yen蓹 bir s谋ra nin s谋ra var,
ki, yen蓹 bir 枚l莽眉s眉 var, amma niy蓹 indi laz谋md谋r
bir s谋ra qar艧谋s谋nda takip?
M蓹n bilm蓹k laz谋m deyil M蓹nim y谋臒谋n谋 qar艧谋s谋nda.
Yax艧谋, 蓹g蓹r m蓹n yen蓹 bir S谋raya yaln谋z a臒谋r ed蓹k
Be艧 kimi olan kimi kod burada potensial da integers.
Bel蓹 ki, bu s谋f谋r, bir, iki, 眉莽, d枚rd edir.
Bu olacaq yenid蓹n 莽a臒谋r谋b n枚mr蓹l蓹ri.
Bu size adlanacaq.
>> Niy蓹 kifay蓹t deyil yaln谋z 枚l莽眉s眉 var?
Yax艧谋, o eyni n枚mr蓹l蓹r t蓹kan ed蓹k.
M蓹n enqueued, v蓹 ya basd谋 pushed--.
陌ndi sonra 50 enqueue v蓹 laz谋md谋r 51, sonra 61, v蓹 dot dot dot.
Bel蓹 ki, enqueue var.
M蓹n sonra 61, sonra 50, 51 enqueued.
V蓹 eyni g枚r眉n眉r indiy蓹 q蓹d蓹r bir y谋臒谋n谋,
istisna olmaqla, m蓹n bir d蓹yi艧iklik etm蓹k laz谋md谋r.
Bu 枚l莽眉s眉 g眉ncellemeniz laz谋md谋r, bel蓹 ki, m蓹n getm蓹k 陌ndi 眉莽 iki bir s谋f谋rdan.
Nec蓹 dequeue edirsiniz?
N蓹 dequeue olur?
Kim ilk bu siyah谋 off g蓹lm蓹k laz谋md谋r Apple Store x蓹tt var, 蓹g蓹r?
Bel蓹 ki, 50.
Bel蓹 ki, bu c眉r trickier bu vaxt var.
Son d蓹f蓹 is蓹 bu super idi asan yaln谋z, 枚l莽眉s眉 minus bir etm蓹k
M蓹n s蓹m蓹r蓹li m蓹nim serial谋n sonuna almaq 蓹d蓹d oldu臒u, bu 61 r蓹dd et.
Amma 61 莽谋xarmaq ist蓹mir蓹m.
M蓹n 50 etm蓹k ist蓹y蓹n 5:00 AM var idi
眉莽眉n s谋raya girdi Yeni iPhone v蓹 ya etajer.
V蓹 m蓹n, 50 qurtarmaq 眉莽眉n sa臒, bunu ed蓹 bilm蓹z?
M蓹n 50 silm蓹k olar.
Amma biz yaln谋z biz bildirib bel蓹 anal olmaq yoxdur
kimi dan谋艧谋q v蓹 ya m蓹lumat gizl蓹tm蓹k.
Oldu臒u Biz yaln谋z unuda bil蓹r.
>> Amma indi m蓹nim 枚l莽眉s眉n眉 d蓹yi艧dirm蓹k 蓹g蓹r iki, bu kifay蓹t q蓹d蓹r m蓹lumat var
M蓹nim n枚vb蓹 gedir n蓹 bilirik?
H蓹qiq蓹t蓹n.
M蓹nim 枚l莽眉s眉, iki Like lakin queue harada ba艧lay谋r,
x眉susil蓹 M蓹n h蓹l蓹 varsa yadda艧 h蓹min n枚mr蓹l蓹ri.
50, 51, 61.
Bel蓹 ki, xat谋rlamaq laz谋md谋r 陌ndi 枚n oldu臒u.
V蓹 m蓹n q蓹d蓹r t蓹klif orada biz yaln谋z 莽a臒谋r谋b laz谋md谋r
Onun ilkin Nth 枚n, d蓹y蓹ri n蓹 olmal谋d谋r?
Zero siyah谋 yaln谋z ba艧lan臒谋c谋d谋r.
Amma indi 蓹lav蓹 decrementing 眉莽眉n 枚l莽眉s眉, biz yaln谋z 枚n artt谋rmay谋.
陌ndi burada bir problem var.
Bel蓹 ki, davam bir.
Bu say谋 d眉艧眉n蓹k kimi 121, 124, sonra dammit,
M蓹n kosmik h蓹yata deyil蓹m.
Amma deyil蓹m, bir d蓹qiq蓹 g枚zl蓹yin.
Hekay蓹 bu n枚qt蓹d蓹, bel蓹 ki, size bir iki G眉man,
眉莽, d枚rd, bel蓹 ki, g眉man 枚l莽眉s眉, 枚n biridir, d枚rd
bel蓹 51 qar艧谋s谋nda deyil.
M蓹n burada bir s谋ra qoymaq ist蓹yir蓹m, lakin, dammit, m蓹n kosmik h蓹yata deyil蓹m.
Amma sa臒, h蓹qiq蓹t蓹n deyil蓹m?
M蓹n harada qoymaq bil蓹r 171 kimi 蓹lav蓹 d蓹y蓹r?
B蓹li, m蓹n bil蓹c蓹yi yaln谋z c眉r sa臒, 眉z蓹rind蓹 geri getm蓹k?
V蓹 sonra 50 silm蓹k, v蓹 ya yaln谋z 171 il蓹 眉zerine.
V蓹 niy蓹 merak edirsinizs蓹 Bizim n枚mr蓹l蓹ri, bel蓹 ki, t蓹sad眉fi var
Bu ad蓹t蓹n komp眉ter al谋n谋r CS50 sonra Harvard elm kurslar谋.
Amma yax艧谋 bir optimalla艧d谋rma idi, 陌ndi, 莽眉nki m蓹n yer israf deyil蓹m.
M蓹n h蓹l蓹 yadda var nec蓹 b枚y眉k bu 艧ey 眉mumi edir.
Bu be艧 眉mumi var.
M蓹n ist蓹mir蓹m, 莽眉nki 51 yadda ba艧lay谋n.
Bel蓹 ki, indi m蓹n h蓹l蓹 kosmik h蓹yata am, bel蓹 ki, eyni problem 蓹vv蓹lki kimi.
Amma nec蓹 indi g枚r蓹 bil蓹rsiniz Sizin kodu, y蓹qin ki,
bir az daha yazmaq laz谋md谋r m眉r蓹kk蓹bliyi ba艧 etm蓹k 眉莽眉n.
V蓹 蓹slind蓹, n蓹 operator C y蓹qin ki, imkan verir ki,
Siz magically bu circularity edirsiniz?
B蓹li modulo operator, faiz i艧ar蓹si.
Bel蓹 ki, bir s谋ra haqq谋nda s蓹rin c眉r n蓹, biz r蓹sm seriallar谋n saxlamaq, baxmayaraq ki,
bu kimi d眉z x蓹tl蓹ri kimi, 蓹g蓹r c眉r E臒me kimi bu bar蓹d蓹 d眉艧眉nm蓹k
蓹traf谋nda bir dair蓹 kimi, sonra yaln谋z daxil蓹n bu c眉r 蓹qli i艧l蓹ri
M蓹n daha 莽ox pakiz蓹 bir az d眉艧眉nm蓹k.
Siz h蓹l蓹 h蓹yata ke莽irm蓹k olard谋 kodu ki, ruhi model.
Bel蓹 ki, 莽蓹tin, n蓹tic蓹d蓹, h蓹yata ke莽irm蓹k 眉莽眉n
lakin biz h蓹l蓹 deyil, size-- itirm蓹k Bunu halda qabiliyy蓹ti, boyutland谋r.
>> Biz serial谋n qurtarmaq 眉莽眉n var, biz bir g枚st蓹rici il蓹 蓹v蓹z,
v蓹 sonra bir yerd蓹 m蓹nim kodu I var bir h蓹qiq蓹t蓹n yaratmaq 眉莽眉n f蓹aliyy蓹t n蓹 z蓹ng
array adl谋 n枚mr蓹l蓹ri?
Malloc, v蓹 ya b蓹zi ox艧ar funksiyas谋, d蓹qiq.
Bacalar v蓹 ya s谋ralar谋nda h蓹r hans谋 bir sual.
Evet?
Yax艧谋 suald谋r.
N蓹 modulo burada istifad蓹 edir.
Bel蓹 ki, 眉mumiyy蓹tl蓹, istifad蓹 ed蓹rk蓹n mod, siz bunu
枚l莽眉s眉 il蓹 b眉t眉n data structure.
Bel蓹 ki, bir 艧ey be艧 v蓹 ya g眉c眉, 蓹g蓹r kimi daimi var, y蓹qin ki, i艧tirak edir.
Amma yaln谋z modulo be艧 edir y蓹qin ki, kifay蓹t q蓹d蓹r deyil
Biz bilm蓹k laz谋md谋r, 莽眉nki biz n蓹 burada v蓹 ya burada v蓹 ya burada 蓹traf谋nda kesmek.
Bel蓹likl蓹, siz y蓹qin ki, h蓹m莽inin ist蓹yirik c蓹lb etm蓹k ist蓹yir蓹m olacaq
艧ey 枚l莽眉s眉, v蓹 ya el蓹c蓹 d蓹 枚n d蓹yi艧蓹n.
Bel蓹 ki, yaln谋z bu nisb蓹t蓹n var sad蓹 hesab ifad蓹 ed蓹r蓹k,
lakin modulo 蓹sas t蓹rkib hiss蓹si olacaq.
>> Bel蓹 ki, q谋sa film olacaq 蓹g蓹r.
Bir animasiya ki, b蓹zi ba艧qa universitetd蓹 insanlar
biz birlikd蓹 qoymaq Bu m眉zakir蓹 眉莽眉n uy臒unla艧d谋r谋lm谋艧d谋r.
Bu Jack 枚yr蓹nm蓹k daxildir s谋ralar谋nda v蓹 stats haqq谋nda faktlar.
>> FILM: Bir zamanlar, Jack adl谋 bir o臒lan var idi.
Bu dostlar edilm蓹si g蓹l蓹nd蓹, Jack bir bacar谋q yox idi.
Bel蓹 ki, Jack dan谋艧maq 眉莽眉n getdi 蓹n m蓹艧hur o臒lan bilirdi.
O, Lou getdi v蓹 m蓹n n蓹 etm蓹liy蓹m, xahi艧?
Lou yolda艧谋 g枚rd眉m ki, h蓹qiq蓹t蓹n 莽蓹tin idi.
B蓹li, o, yaln谋z ba艧lad谋 Siz geyimli etdiyiniz nec蓹 baxmaq.
茝g蓹r h蓹r hans谋 bir paltar yoxdur f蓹rqli bir g枚z il蓹?
B蓹li, Jack bildirib.
M蓹n 蓹min蓹m ki, yoxdur.
Evim蓹 g蓹lin v蓹 M蓹n siz蓹 onlara g枚st蓹rm蓹k laz谋md谋r.
Bel蓹 ki, onlar Jack 莽谋xd谋.
V蓹 Jack Lou qutusu g枚st蓹rdi o, b眉t眉n k枚yn蓹k saxlan谋l谋r
v蓹 onun 艧alvar v蓹 onun corab.
Lou M蓹n g枚rm蓹k oldu臒unu ifad蓹 ed蓹r蓹k, bir qalaq b眉t眉n paltar.
Niy蓹 b蓹zi geym蓹k deyil biraz d蓹f蓹 ba艧qalar谋?
>> Jack, dedi yax艧谋, m蓹n , paltar v蓹 corab aradan qald谋r谋lmas谋
M蓹n onlar谋 yumaq v蓹 qoymaq onlara 眉z qutusuna.
Sonra g蓹l蓹n g蓹lir s蓹h蓹r v蓹 m蓹n hop.
M蓹n qutusu getm蓹k v蓹 almaq 眉st off m蓹nim paltar.
Lou tez h蓹yata Jack il蓹 problem.
O, paltar, CD saxlan谋l谋r v蓹 y谋臒谋n谋 kitablar.
O 莽atd谋qda bir 艧ey oxumaq v蓹 ya geym蓹k,
O top kitab v蓹 ya alt se莽m蓹k ist蓹diyiniz.
Sonra o, g枚r眉l蓹n zaman, o, sa臒 geri qoymaq olard谋.
Geri y谋臒谋n谋 眉st, getm蓹k olard谋.
M蓹n h蓹ll bilirik, bir z蓹f蓹r Loud bildirib.
Siz 枚yr蓹nm蓹k laz谋md谋r bir s谋ra istifad蓹 ed蓹r蓹k ba艧lay谋n.
Lou Jack paltar g枚t眉r眉b gizli onlara asd谋.
O, bo艧ald谋lm谋艧 zaman box, o, yaln谋z onu tossed.
>> Sonra o, Jack sonunda ke莽diyini ifad蓹 ed蓹r蓹k, g眉n, sol paltar qoymaq
茝g蓹r siz onlar谋 眉z qoymaq zaman.
Sonra sabah s蓹h蓹r zaman Sizin paltar almaq, g眉n蓹艧 g枚rm蓹k
x蓹ttinin sonunda sa臒, on.
Siz g枚rm眉rl蓹rmi? Lou bildirib.
Bu, bel蓹 g枚z蓹l olacaq.
Siz bir d蓹f蓹 h蓹r 艧eyi geym蓹k laz谋md谋r 蓹vv蓹l iki d蓹f蓹 bir 艧ey k枚hn蓹lir.
V蓹 s谋ralar谋nda h蓹r 艧eyi il蓹 onun gizli v蓹 艧elfind蓹,
Jack hiss etm蓹y蓹 ba艧lay谋b 枚z眉 kifay蓹t q蓹d蓹r 蓹min.
Lou B眉t眉n thanks v蓹 onun g枚z蓹l queue.
HOPARL脰R 1: Yax艧谋, bu sitayi艧蓹 layiq deyil.
Bel蓹 ki, h蓹qiq蓹t蓹n gedir n蓹 陌ndi ba艧l谋q alt谋nda?
Biz g枚st蓹ricil蓹rin蓹 var ki, biz malloc var ki,
biz yaratmaq imkan谋 var ki, 枚z眉m眉z 眉莽眉n yadda艧 chunks
dinamik.
Bel蓹 ki, bu 艧蓹kil biz yaln谋z g眉n glimpsed.
Biz, h蓹qiq蓹t蓹n, 蓹b蓹di etm蓹yib bu, ancaq bu 艧蓹kil
alt谋nda var davam 陌ndi h蓹ft蓹 ba艧l谋q.
V蓹 bu, yaln谋z t蓹msil Biz t蓹rtib etdik d眉zbucaql谋,
komp眉ter yadda艧.
V蓹 b蓹lk蓹 sizin komp眉ter v蓹 ya CS50 ID, yadda艧 v蓹 ya RAM gigabayt var
v蓹 ya iki qiqabayt v蓹 ya d枚rd.
Bu, h蓹qiq蓹t蓹n etm蓹z.
Sizin 蓹m蓹liyyat sistemi Windows v蓹 ya Mac OS v蓹 ya Linux,
mahiyy蓹tc蓹 proqram imkan verir Bu 莽谋x谋艧谋 var hesab edir蓹m ki,
tam 眉莽眉n komp眉ter yadda艧,
h蓹tta 莽al谋艧an bil蓹r, baxmayaraq Eyni anda bird蓹n 莽ox proqramlar谋.
Bel蓹 ki, 蓹slind蓹, h蓹qiq蓹t蓹n i艧l蓹mir.
Lakin bir ill眉ziya n枚v眉 var proqramlar谋 b眉t眉n verilir.
Bel蓹 ki, bu RAM iki gigs var idi Komp眉ter hesab ed蓹 bil蓹r nec蓹.
>> 陌ndi t蓹sad眉f蓹n, bu bir 艧eyi, yadda艧 bu seqmentl蓹ri biri
bir y谋臒谋n adlan谋r.
H蓹qiq蓹t蓹n he莽 bir zaman indiy蓹 q蓹d蓹r yaz谋l谋 kodu
Siz 莽a臒谋r谋b ki, instansiya 蓹sas funksiyas谋.
He莽 bir zaman m蓹n var Xat谋rladaq ki, t蓹rtib komp眉ter yadda艧,
M蓹n h蓹mi艧蓹 sort 莽蓹km蓹k burada d眉zbucaql谋 yar谋m
v蓹 s枚hb蓹t narahat etmir Yuxar谋da n蓹 haqq谋nda.
茝sas adlan谋r zaman, m蓹n iddia 莽眉nki Siz yadda艧 bu q蓹lp蓹 almaq
burada enir.
茝sas 蓹g蓹r bir funksiyas谋 adlan谋r svop kimi, yax艧谋 svop burada gedir.
V蓹 bu ki, 莽谋x谋r harada sona oldu.
Bir y谋臒谋n adl谋 bir 艧ey On Sizin komp眉ter yadda艧 daxilind蓹.
陌ndi g眉n眉n sonunda, Bu yaln谋z m眉raci蓹t edir.
Bu byte s谋f谋r kimi byte bir byte 2 milyard.
Amma bu bar蓹d蓹 d眉艧眉nm蓹k Bu d眉zbucaql谋 obyekt kimi,
b眉t眉n biz h蓹r edirik d蓹f蓹 biz bir funksiyas谋 z蓹ng
yadda艧 yeni bir dilim layering.
Biz dilim funksiyas谋 枚t眉r眉r 枚z yadda艧 il蓹 i艧l蓹m蓹k 眉莽眉n.
>> Bu 蓹h蓹miyy蓹tli oldu臒unu indi xat谋rlay谋ram.
Biz var, 莽眉nki svop kimi bir 艧ey
A v蓹 B v蓹 kimi v蓹 iki yerli d蓹yi艧蓹nl蓹rin biz bir v蓹 iki h蓹min d蓹y蓹rl蓹ri d蓹yi艧dirm蓹k
iki v蓹 bir geri 眉莽眉n svop qaytar谋r zaman,
Bu dilim sanki var yadda艧 yaln谋z getdi.
茝slind蓹, bu, h蓹l蓹 d蓹 var orada forensically.
V蓹 bir 艧ey h蓹qiq蓹t蓹n var h蓹l蓹 d蓹 var.
Amma konseptual, bu kimi deyil baxmayaraq ki, tamamil蓹 getdi.
V蓹 bel蓹 ki, 蓹sas i艧 h蓹r hans谋 bir bilmir ki, ki, m眉badil蓹 funksiyas谋 edildi
Bu, h蓹qiq蓹t蓹n o ke莽di halda pointer ya istinad蓹n d蓹lill蓹ri.
陌ndi fundamental h蓹ll svop il蓹 problem
眉nvan谋 艧eyi ke莽ir.
Amma bu da n蓹 var, 莽谋x谋r bir hiss蓹si yuxar谋da davam
d眉zbucaql谋 b眉t眉n bu vaxt h蓹l蓹 daha 莽ox yadda艧 orada var.
V蓹 zaman dinamik yadda艧 ayr谋lmas谋,
Bu GetString, daxilind蓹 olub ki, biz CS50 sizin 眉莽眉n bunu etdik
kitabxana, v蓹 ya u艧aqlar 蓹g蓹r malloc z蓹ng v蓹 xahi艧
bir y谋臒谋n 眉莽眉n 蓹m蓹liyyat sistemi yadda艧, bu y谋臒谋n谋 deyil.
Bu ba艧qa yer蓹 g蓹lir komp眉ter yadda艧
ki, y谋臒谋n deyirl蓹r.
V蓹 h蓹r hans谋 bir f蓹rqli deyil.
Bu eyni RAM var.
Bu eyni yadda艧 var.
Bu q蓹d蓹r yaln谋z RAM var orada 蓹v蓹zin蓹 a艧a臒谋 burada.
>> V蓹 bel蓹 ki, n蓹 dem蓹kdir?
Yax艧谋, sizin komp眉ter varsa yadda艧 m蓹hdud m蓹bl蓹臒i
v蓹 y谋臒谋n谋, bel蓹 ki, b枚y眉y眉r dan谋艧maq, v蓹 y谋臒谋n, g枚r蓹
bu arrow a艧a臒谋 art谋r.
Ba艧qa s枚zl蓹, h蓹r zaman malloc z蓹ng
Bir dilim veril蓹c蓹k edirik yadda艧 yuxar谋da,
Bir az sonra, a艧a臒谋 sonra b蓹lk蓹 bir az a艧a臒谋, siz malloc z蓹ng h蓹r zaman,
y谋臒谋n, bu istifad蓹 var, c眉r art谋r,
n蓹 daha yax谋n v蓹 daha artan?
y谋臒谋n谋.
Bel蓹 ki, bu yax艧谋 bir fikir kimi g枚r眉n眉r?
Bu, h蓹qiq蓹t蓹n, a莽谋q-ayd谋n deyil M蓹n dem蓹k, ba艧qa n蓹 yaln谋z ed蓹 bil蓹rsiniz
yadda艧 m蓹hdud miqdar谋 var.
Amma bu, 艧眉bh蓹siz ki, pis.
Bu iki oxlar bir var bir-birin蓹 kurs q蓹za.
>> V蓹 bu pis o臒lan, insanlar 莽谋x谋r , proqramla艧d谋rma il蓹 x眉susil蓹 yax艧谋
v蓹 komp眉ter hack 莽al谋艧谋r, Bu h蓹qiq蓹ti istifad蓹 ed蓹 bil蓹rsiniz.
茝slind蓹, hesab ed蓹k bir az par莽as谋n谋.
Bel蓹 ki, bu oxuya bil蓹rsiniz bir n眉mun蓹sidir haqq谋nda Wikipedia daha 蓹trafl谋.
Biz siz蓹 qeyd ed蓹c蓹yik M蓹qal蓹d蓹 蓹g蓹r maraql谋.
Amma bir h眉cum 眉mumiyy蓹tl蓹 var bufer da艧q谋n kimi tan谋nan
insanlar kimi uzun 眉莽眉n m枚vcud manipulyasiya etm蓹k imkan谋 var
x眉susil蓹 C. komp眉ter yadda艧, Bel蓹 ki, bu, 莽ox 枚zba艧谋na proqram,
lakin alt q蓹d蓹r oxumaq bildirin.
Argc char star argv daxil Main.
Bel蓹 ki, edir ki, bir proqram command line d蓹lill蓹ri.
V蓹 b眉t眉n 蓹sas y蓹qin z蓹ng etmir bir funksiyas谋, sad蓹lik 眉莽眉n F 莽a臒谋r谋r谋q.
V蓹 n蓹 ke莽ir?
Bir argv.
Bel蓹 ki, F ke莽ir n蓹 Word istifad蓹莽i tipli ki,
sonra s蓹tirin蓹 Proqram谋n ad谋 b眉t眉n.
Bel蓹 ki, 莽ox Sezar v蓹 ya Vigenere kimi olan Siz argv il蓹 m蓹艧臒ul xat谋rlay谋ram bil蓹r.
>> Bel蓹 ki, F n蓹dir?
F simli edir onun yegan蓹 arqument kimi,
AKA bir char ulduz, eyni 艧ey, bir string kimi.
V蓹 bu 枚zba艧谋na deyirl蓹r Bu misalda bar.
V蓹 sonra char c 12 yaln谋z layman nin bax谋m谋ndan,
bizim 眉莽眉n bunu char c bracket 12 n蓹dir?
N蓹 olub?
X眉susi, yadda艧 ayr谋lmas谋 12 chars 12 bytes.
M蓹hz.
V蓹 sonra son x蓹tt, t蓹rp蓹nm蓹k v蓹 sur蓹ti, y蓹qin ki, g枚rm蓹dim etdik.
Bu string sur蓹ti kimin m蓹qs蓹di h蓹yat funksiyas谋
ikinci arqument sur蓹ti deyil ilk m眉bahis蓹y蓹,
lakin yaln谋z bir q蓹d蓹r bayt m眉蓹yy蓹n sayda.
Bel蓹 ki, 眉莽眉nc眉 arqument deyir Nec蓹 bir 莽ox bytes sur蓹ti laz谋md谋r?
bar uzunlu臒u, n蓹 Y谋臒d谋臒谋n谋z istifad蓹莽i.
V蓹 m蓹zmunu ki, ki, simli bar
yadda艧 daxil sitemizi C i艧ar蓹
>> Bel蓹 ki, bu c眉r axmaq g枚r眉n眉r, o da olur.
Bu g枚st蓹rdi misal var, lakin bu n眉may蓹nd蓹si var
h眉cum istiqam蓹tini sinfinin, bir proqram h眉cum bir yol.
B眉t眉n g枚z蓹l v蓹 istifad蓹莽i 蓹g蓹r yax艧谋 11 simvol bir s枚zl蓹 n枚vl蓹ri
az, plus backslash s谋f谋r v蓹 ya.
Daha istifad蓹莽i n枚vl蓹ri daha 蓹g蓹r 11 v蓹 ya 12 v蓹 ya 20 v蓹 ya 50 simvol?
Ed蓹c蓹yimiz bu proqram n蓹dir?
Potensial seg g眉nah. Gedir kor-koran蓹 up bar h蓹r 艧eyi sur蓹ti
onun uzunlu臒u sanki bar h蓹r 艧ey
脺nvan daxil C. Lakin C i艧ar蓹 yaln谋z preemptively 12 bayt kimi verdi.
Amma he莽 bir 蓹lav蓹 莽ek var.
艦蓹rtl蓹ri 蓹g蓹r he莽 bir var.
Burada yoxlan谋lmas谋 he莽 bir s蓹hv var.
>> V蓹 bu proqram n蓹 ed蓹c蓹yimiz yaln谋z kor-koran蓹 deyil
dig蓹r bir 艧ey sur蓹ti.
V蓹 bel蓹 ki, biz bu aparsaq bir 艧蓹kil kimi, burada
yadda艧 alan谋 yaln谋z bir sliver.
Bel蓹 ki, biz, alt谋ndak谋 qeyd yerli d蓹yi艧蓹n bar var.
Store-- olacaq ki, pointer So ki, yerli d蓹lil deyil,
string bar saxlamaq 眉莽眉n gedir.
V蓹 sonra yaln谋z qeyd Yuxar谋da bir y谋臒谋n谋,
莽眉nki xahi艧 h蓹r zaman y谋臒谋n谋 yadda艧 眉莽眉n,
Bu bir az gedir pictorially yuxar谋da,
biz orada 12 bytes var bildiri艧.
sol 眉st bir C bracket s谋f谋r v蓹 sa臒 alt bir C bracket 11.
Bu nec蓹 komp眉ter var onu qoymaq niyy蓹tind蓹dir.
Bel蓹 ki, yaln谋z daxil蓹n, bar daha var, 蓹g蓹r olmaq 眉zr蓹 c蓹md蓹 12 simvol daha
var backslash s谋f谋r, 12 v蓹 ya C bracket 12 getm蓹k 眉莽眉n gedir?
V蓹 ya daha burada 12-ci xarakter v蓹 ya 13 xarakteri,
gedir y眉z眉nc眉 xarakter 艧蓹kil ba艧a?
Yuxar谋da v蓹 ya a艧a臒谋da?
>> Sa臒, baxmayaraq ki, 莽眉nki y谋臒谋n谋 枚z眉 yuxar谋 art谋r
Siz m蓹hsullar谋 qoymaq sonra Bu, dizayn s蓹b蓹bl蓹r蓹 g枚r蓹,
眉std蓹n-a艧a臒谋 yadda艧 qoyur.
Siz 12-d蓹n 莽ox bayt var Bel蓹 ki, Siz bar 眉zerine ba艧lamaq olacaq.
陌ndi bir s蓹hv var, lakin bu h蓹qiq蓹t蓹n b枚y眉k.
Var, 莽眉nki Lakin bu, b枚y眉k edir yadda艧 ged蓹n daha stuff.
Bel蓹 ki, burada biz nec蓹 g眉c var ayd谋n olmaq, salam qoydu.
M蓹n s蓹tirin蓹 salam 莽ap edin.
H-E-L-L-O backslash s谋f谋r 蓹rzind蓹 ba艧a o 12 bytes, biz super t蓹hl眉k蓹siz edirik.
H蓹r 艧ey yax艧谋d谋r.
Amma bir 艧ey yaz谋n 蓹g蓹r art谋q potensial bu
bar kosmosa d谋rma艧maq gedir.
Amma pis h蓹l蓹, bu 莽evrilir B眉t眉n bu m眉dd蓹t h蓹yata,
Biz s枚hb蓹t he莽 etdik olsa da bu y谋臒谋n谋 dig蓹r m蓹hsullar谋 眉莽眉n istifad蓹 olunur.
Bu, sad蓹c蓹 yerli d蓹yi艧蓹nl蓹rin deyil.
>> C 莽ox a艧a臒谋 s蓹viyy蓹d蓹 dilidir.
V蓹 bu c眉r gizli d蓹 y谋臒谋n谋 istifad蓹
zaman xat谋rlamaq bir funksiyas谋, n蓹 adlan谋r
眉nvan, 蓹vv蓹lki funksiyas谋 var bel蓹 ki, geri funksiyas谋 atlayabilirsiniz.
Bel蓹 ki, 蓹sas z蓹ngl蓹r aras谋nda m眉badil蓹 zaman 艧eyi y谋臒谋n谋 眉z蓹rin蓹 basd谋
yaln谋z yerli d蓹yi艧蓹nl蓹rin svoplar谋 deyil v蓹 ya onun d蓹lill蓹ri d蓹 gizli basd谋
y谋臒谋n谋 眉z蓹rin蓹 t蓹msil Burada q谋rm谋z谋 dilim il蓹,
蓹sas 眉nvan谋 fiziki Sizin komp眉ter yadda艧谋nda,
ki, svop edilir, komp眉ter M蓹n 蓹sas geri getm蓹k laz谋md谋r bilir
v蓹 蓹sas funksiyas谋 h蓹yata tamamlay谋n.
Bel蓹 ki, bu, indi t蓹hl眉k蓹li, 莽眉nki salam daha yax艧谋 daha 莽ox istifad蓹莽i,
陌stifad蓹莽i giri艧i clobbers ki, bel蓹 v蓹 ya, q谋rm谋z谋 b枚lm蓹 眉zerine yaz谋r
m蓹ntiqi 蓹g蓹r komp眉ter yaln谋z kor-koran蓹 g眉man gedir
ki, q谋rm谋z谋 dilim bytes var ki, Bu qaytarmal谋d谋r olan 眉nvan,
r蓹qib n蓹 varsa kifay蓹t q蓹d蓹r a臒谋ll谋 v蓹 ya bayt ard谋c谋ll谋臒谋 qoymaq 眉莽眉n kifay蓹t q蓹d蓹r 艧ansl谋
orada bir 眉nvan kimi g枚r眉n眉r ki, lakin bu kodu 眉nvan谋 var
o komp眉ter ist蓹yir ki, 蓹v蓹zin蓹 蓹sas icra?
>> Ba艧qa s枚zl蓹, n蓹 蓹g蓹r istifad蓹莽i tez at yazaraq
yaln谋z bir 艧ey deyil , salam x蓹t蓹rsiz kimi
lakin bu ekvivalent var code h蓹qiq蓹t蓹n Bu istifad蓹莽inin b眉t眉n fayllar谋 silm蓹k 眉莽眉n?
V蓹 ya m蓹n蓹 枚z parol e-po莽t?
V蓹 ya giri艧 ba艧lamaq onlar谋n tu艧 vuru艧lar谋n谋, sa臒?
Bir yol yoxdur, bu g眉n m眉蓹yy蓹n ed蓹k Onlar salam yaln谋z yaz谋n bil蓹r ki,
d眉nya v蓹 ya onlar谋n ad谋, onlar mahiyy蓹tc蓹 bil蓹r
indeksi, adet s谋f谋r ke莽m蓹k v蓹 olanlar, komp眉ter
kodu v蓹 眉nvan谋 眉莽眉n s蓹hvl蓹r.
Olsa bel蓹 q蓹d蓹r m眉c蓹rr蓹d, 蓹g蓹r kifay蓹t q蓹d蓹r 莽蓹ki艧m蓹 kodu istifad蓹莽i
Biz burada kimi 眉mumil蓹艧dirm蓹k laz谋md谋r ki, A. A h眉cum v蓹 ya d眉艧m蓹n edir.
Bel蓹 ki, yaln谋z pis stuff.
Biz haqq谋nda qay臒谋 yoxdur n枚mr蓹l蓹ri v蓹 ya adet s谋f谋r v蓹 ya olanlar谋
bu g眉n bel蓹 ba艧a ki, q谋rm谋z谋 b枚lm蓹 yadda,
bayt ki, ard谋c谋ll谋qla qeyd.
O 835 C s谋f谋r s蓹kkiz s谋f谋r.
陌ndi burada Wikipedia m蓹qal蓹 陌ndi h蓹qiq蓹t蓹n ba艧lamaq 蓹g蓹r, t蓹klif edib
Sizin komp眉ter-ci ild蓹 bayt etiketleme yadda艧, Wikipedia article n蓹
t蓹klif edir ki, n蓹 眉nvan 蓹g蓹r ki, sol 眉st byte 80 C 0 3508 edir.
>> Ba艧qa s枚zl蓹, pis adam 蓹g蓹r onun kodu il蓹 kifay蓹t q蓹d蓹r a臒谋ll谋
h蓹qiq蓹t蓹n, burada bir s谋ra qoymaq ki, kodu 眉nvan谋 uy臒undur
o vurulub komp眉ter, siz
komp眉ter bezemek bil蓹r bir 艧ey bunu n蓹z蓹r蓹.
, Fayllar谋 aradan qald谋r谋lmas谋 e-po莽t 艧eyi, trafik koklama,
sanki bir 艧ey ola bil蓹r Komp眉ter enjekte.
V蓹 bel蓹 bir bufer da艧q谋n onun 蓹sas h眉cum
Yaln谋z bir axmaq, axmaq bir s谋ra 蓹sas ki,
onun s蓹rh蓹dl蓹ri yoxlan谋l谋r yox idi.
Bu super t蓹hl眉k蓹li n蓹 v蓹 eyni zamanda super g眉cl眉
C biz h蓹qiq蓹t蓹n var ki, yadda艧 yerd蓹 莽谋x谋艧.
Bu, bizim 眉莽眉n var, proqram莽谋lar, olan orijinal kodu yazmaq
h蓹r hans谋 bir darn uzunlu臒u yoxlamaq 眉莽眉n biz manipulyasiya edirik Diziler.
Bel蓹 ki, ayd谋n olmaq, fix n蓹 var?
Bu geri g蓹zm蓹k kodu, m蓹n olmal谋d谋r yaln谋z
bar uzunlu臒u d蓹yi艧dirm蓹k, n蓹 ba艧qa m蓹n yoxlan谋lmas谋 laz谋md谋r?
N蓹 m蓹n bunu etm蓹k laz谋md谋r tamamil蓹 bu h眉cumun qar艧谋s谋n谋?
M蓹n yaln谋z kor-koran蓹 dem蓹k ist蓹mir蓹m Siz kimi bir 莽ox bytes sur蓹ti laz谋md谋r ki,
kimi bar uzunlu臒u.
M蓹n sur蓹ti, dem蓹k ist蓹yir蓹m kimi bir 莽ox bytes bar var
ayr谋lan q蓹d蓹r yadda艧, v蓹 ya maksimum 12.
Bel蓹likl蓹, m蓹n v蓹ziyy蓹td蓹 蓹g蓹r bir n枚v laz谋md谋r ki, bar uzunlu臒u yoxlamaq yoxdur,
lakin bu 12, biz yaln谋z a臒谋r kodu art谋q olduqda Maksimum m蓹saf蓹 12.
茝ks halda qondarma bufer da艧q谋n h眉cum ola bil蓹r.
Bu slaydlar alt谋nda, daha 莽ox oxumaq maraql谋 oldu臒unuz halda
faktiki orijinal m蓹qal蓹 Bir n蓹z蓹r ist蓹yirsinizs蓹.
>> Amma indi, qiym蓹tl蓹r aras谋nda qeyri-s蓹m蓹r蓹li burada idi etmi艧dir.
Bel蓹 ki, tez idi a艧a臒谋 s蓹viyy蓹d蓹 baxmaq n蓹
probleml蓹r ki, biz indi yarana bil蓹r komp眉ter yadda艧 girm蓹 imkan谋 vard谋r.
Amma bir problem biz Art谋q bazar ert蓹si stumbled
yaln谋z t蓹sirsizlik idi bir ba臒l谋 siyah谋.
Biz geri x蓹tti vaxt var.
Biz art谋q bir biti艧ik array var.
Biz t蓹sad眉fi 莽谋x谋艧谋 yoxdur.
Biz kvadrat m枚t蓹riz蓹 notation istifad蓹 ed蓹 bilm蓹z.
Biz s枚z眉n bir m眉dd蓹t loop istifad蓹 etm蓹k laz谋md谋r kimi m蓹n bir an 蓹vv蓹l yazm谋艧d谋r.
Lakin bazar ert蓹si, biz 蓹limizd蓹n iddia etdi s蓹m蓹r蓹liliyinin sah蓹sind蓹 geri d谋rma艧maq
ki, bir 艧ey 蓹ld蓹 logarithmic b蓹lk蓹, v蓹 ya 蓹n yax艧谋 h蓹l蓹,
b蓹lk蓹 h蓹tta bir 艧ey daimi vaxt qondarma.
Bel蓹likl蓹, biz bu yeni istifad蓹 ed蓹r蓹k nec蓹 ed蓹 bil蓹rik al蓹tl蓹r, bu 眉nvanlar谋, bu g枚st蓹ricil蓹r,
v蓹 枚z 艧eyi Threading?
Yax艧谋 ki, g眉man Burada, bu bir d蓹st蓹 var
Biz saxlamaq ist蓹diyiniz n枚mr蓹l蓹ri s蓹m蓹r蓹li data strukturu v蓹 axtar谋艧.
Biz tamamil蓹 h蓹ft蓹 geri bil蓹r iki, bir s谋ra bu atmaq
v蓹 ikili axtar谋艧 istifad蓹 ed蓹r蓹k, onlar谋 axtarmaq.
B枚l眉n v蓹 f蓹th.
V蓹 蓹slind蓹 siz yazd谋 pset3 ikili axtar谋艧,
harada tapmaq proqram谋n谋 h蓹yata ke莽irmi艧dir.
Amma bilirik.
Daha n枚v眉 var bunu a臒谋ll谋 yol.
Bu bir az daha 莽ox inki艧af etmi艧 v蓹 b蓹lk蓹
Bizi niy蓹 ikili g枚rm蓹k 眉莽眉n imkan verir Axtar谋艧 莽ox daha s眉r蓹tli bel蓹 deyil.
Birincisi, t蓹qdim ed蓹k bir a臒ac anlay谋艧谋.
Hans谋 h蓹tta baxmayaraq reall谋q a臒aclar c眉r
Komp眉ter d眉nyada, bu kimi inki艧af Onlar c眉r a艧a臒谋 bitir elm
bir ail蓹 a臒ac kimi Sizin grandparents v蓹 ya b枚y眉k babas谋
v蓹 ya etajer 眉st patriarx谋 v蓹 ail蓹 matriarch yaln谋z bir
k枚k, node, a艧a臒谋dak谋 qondarma onun u艧aqlar olan var,
A艧a臒谋da onun u艧aqlar, v蓹 ya onun n蓹v蓹l蓹ri 眉mumiyy蓹tl蓹.
V蓹 h蓹r k蓹s off asma ail蓹 alt
a臒ac, olmaqla yana艧谋 ail蓹 g蓹nc,
d蓹 yaln谋z generically ola bil蓹r Onun yarpaqlar谋 莽a臒谋r谋b.
>> Bel蓹 ki, bu, yaln谋z bir d蓹st蓹 s枚zl蓹r v蓹 anlay谋艧lar
bir 艧ey 眉莽眉n komp眉ter bir a臒ac adl谋 elm, bir ail蓹 a臒ac kimi.
Amma maraql谋s谋 incarnations var a臒ac, biri
bir ikili axtar谋艧 a臒ac adlan谋r.
V蓹 siz tease c眉r Bu 艧ey yoxdur ayr谋 n蓹.
B蓹li, bu n蓹 m蓹nada ikili var?
Harada ikili buradan g蓹lir?
Ba臒谋艧lay谋n?
Bu, 莽ox bir v蓹 ya deyil.
Bu qov艧aqlar谋n谋n h蓹r bir var ki, daha 莽ox daha iki u艧aq, biz burada g枚r眉r眉k.
脺mumiyy蓹tl蓹, bir a臒ac v蓹 valideynl蓹r v蓹 grandparents
kimi bir 莽ox u艧aq ola bil蓹r v蓹 ya grandkids onlar h蓹qiq蓹t蓹n ist蓹diyiniz kimi,
v蓹 bel蓹 m蓹s蓹l蓹n, orada biz 眉莽 ki, sa臒 node off u艧aqlar,
lakin bir ikili a臒ac, bir node var maksimum s谋f谋r, bir, ya iki u艧aqlar.
V蓹, bir g枚z蓹l 蓹mlak var Bu iki ba艧谋ba臒l谋 蓹g蓹r 莽眉nki,
biz m眉mk眉n olacaq bir az log bazas谋 almaq iki
F蓹aliyy蓹t burada n蓹tic蓹d蓹 gedir.
Bel蓹likl蓹, biz logarithmic bir 艧ey var.
Amma bir an ki, daha 莽ox.
Axtar谋艧 a臒ac n枚mr蓹l蓹ri o dem蓹kdir ki, t蓹艧kil, bel蓹 ki, sol u艧aq
d蓹y蓹ri k枚k daha b枚y眉kd眉r.
V蓹 onun sa臒 u艧aq k枚k daha b枚y眉k.
Ba艧qa s枚zl蓹, siz h蓹r hans谋 bir 蓹g蓹r qov艧aqlar谋n谋n, bu 艧蓹kil dair蓹l蓹r,
v蓹 onun sol bax谋r u艧aq v蓹 sa臒 u艧aq,
ilk, az olmal谋d谋r ikinci daha 莽ox olmal谋d谋r.
Bel蓹 ki, a臒l谋 ba艧谋nda olma 55 oldu.
Bu u艧aq qalan 33.
Bu az deyil.
55, onun sa臒 u艧aq 77.
Bu daha 莽ox var.
V蓹 bir recursive m眉蓹yy蓹n edir.
Biz o h蓹r bir yoxlamaq bil蓹r qov艧aqlar谋n谋n v蓹 saxlay谋n ki, eyni model.
>> Bel蓹 ki, bir g枚z蓹l n蓹 var ikili axtar谋艧 a臒ac
ki, bir, biz bunu h蓹yata ke莽ir蓹 bil蓹r bir struct il蓹, yaln谋z bu kimi.
V蓹 biz atma edirik, baxmayaraq ki, Sizin at strukturlar谋n谋n 莽ox,
onlar bir q蓹d蓹r ist蓹yirik intuitiv indi in艧allah.
syntax h蓹l蓹 蓹min 眉莽眉n gizli deyil lakin bu bir node m蓹zmunu
kontekstd蓹 v蓹 biz saxlamaq s枚z node istifad蓹 ed蓹r蓹k,
bu bir d眉zbucaql谋 olub ekran v蓹 ya bir dair蓹 眉zr蓹,
Bu, yaln谋z bir 眉mumi konteyner var kimi bir a臒ac bu halda,
Biz bir tam laz谋md谋r, g枚rd眉m qov艧aqlar谋n谋n h蓹r
v蓹 sonra m蓹n iki g枚st蓹ricil蓹rin蓹 i艧ar蓹 laz谋md谋r sol u艧aq v蓹 sa臒 u艧aq,
olaraq t蓹yin olundu.
Ki Bel蓹 ki, nec蓹 biz bil蓹r bir struct ki, h蓹yata ke莽irir.
V蓹 nec蓹 kodu bunu h蓹yata bil蓹r?
Yax艧谋, tez g枚t眉r蓹k Bu ki莽ik n眉mun蓹 oldu.
Bu funksional deyil, lakin m蓹n var sitemizi v蓹 strukturu yap谋艧d谋r谋l谋r.
茝g蓹r bir ikili 眉莽眉n funksiyas谋 axtar谋艧 a臒ac, axtar谋艧 adlan谋r
v蓹 bu iki d蓹lill蓹ri edir, bir tam N v蓹 bir pointer
a臒ac bir node, bel蓹 bir g枚st蓹rici v蓹 ya bir a臒ac k枚k bir g枚st蓹rici,
nec蓹 N 眉莽眉n axtar谋艧 haqq谋nda getm蓹k yoxdur?
B蓹li, ilk, m蓹n deyil蓹m, 莽眉nki g枚st蓹ricil蓹r il蓹 m蓹艧臒ul,
M蓹n a臒l谋 ba艧谋nda olma 莽ek etm蓹k gedir蓹m.
A臒ac b蓹rab蓹r null b蓹rab蓹rdir 蓹g蓹r, N Bu a臒ac v蓹 ya bu a臒ac?
Bu do臒ru ola bil蓹r?
M蓹n null ke莽mi艧 am varsa, orada he莽 n蓹 yoxdur.
M蓹n g眉c h蓹m莽inin yaln谋z kor-koran蓹 saxta qay谋tmaq deyirl蓹r.
M蓹n蓹 he莽 bir 艧ey vers蓹l蓹r, m蓹n m眉tl蓹q bilm蓹z h蓹r hans谋 bir say谋 N. tapmaq ba艧qa Bel蓹 ki, n蓹 m蓹n bil蓹r
陌ndi yoxlamaq?
M蓹n d蓹 ba艧qa N 蓹g蓹r dem蓹k gedir蓹m a臒ac node n蓹 az
M蓹n N d蓹y蓹r t蓹qdim etdik ki.
Ba艧qa s枚zl蓹, say谋 Ben 蓹g蓹r N axtar谋r, node az
M蓹n bax谋ram ki.
V蓹 node I ar谋yorum a臒ac adlan谋r at,
v蓹 蓹vv蓹lki M蓹s蓹l蓹n geri bir pointer d蓹y蓹ri almaq 眉莽眉n,
M蓹n arrow notation istifad蓹 edin.
N a臒ac arrow az olduqda bel蓹 N, m蓹n konseptual sol getm蓹k ist蓹yir蓹m.
Nec蓹 sol axtar谋艧 ifad蓹 edirsiniz?
Bu halda, ayd谋n olmaq sual 艧蓹kil,
M蓹n q蓹bul etdik topmost ki ki, a艧a臒谋 i艧ar蓹 arrow.
Bu m蓹nim a臒ac g枚st蓹rici var.
M蓹n a臒ac k枚k眉 i艧ar蓹 edir蓹m.
V蓹 m蓹n, dem蓹k ar谋yorum 枚zba艧谋na say谋 44.
Daha az v蓹 ya 44 a莽谋q-ayd谋n 55-d蓹n 莽ox?
Bel蓹 ki, az deyil.
V蓹 bu halda v蓹ziyy蓹t t蓹tbiq edilir.
Bel蓹 ki, konseptual, m蓹n n蓹 ist蓹yir蓹m M蓹n 44 ar谋yorum 蓹g蓹r n枚vb蓹ti axtar谋艧?
Evet?
>> M蓹hz, M蓹n ist蓹yir蓹m sol u艧aq axtar谋艧
v蓹 ya bu 艧蓹kil sol alt a臒ac.
V蓹 蓹slind蓹, m蓹ni vasit蓹sil蓹 bildirin a艧a臒谋 burada 艧蓹kil
yaln谋z bir an 眉莽眉n,-ci ild蓹n M蓹n bu dan谋艧谋q bilm蓹z.
M蓹n 55 burada ba艧lamaq v蓹 蓹g蓹r M蓹n bilir蓹m ki, d蓹y蓹ri 44
Etm蓹k 眉莽眉n m蓹n ar谋yorum Sol, bu c眉r
bir telefon kitab qoparmaq kimi yar谋m v蓹 ya yar谋s谋nda a臒ac qoparmaq.
M蓹n art谋q qay臒谋 var a臒ac b眉t眉n bu yar谋s谋.
V蓹 h蓹l蓹, maraqla bax谋m谋ndan strukturu, burada bu 艧ey
33 il蓹 ba艧lay谋r 枚z眉 ki, bir ikili axtar谋艧 a臒ac.
脟眉nki 蓹vv蓹l s枚z recursive bildirib H蓹qiq蓹t蓹n, bu data structure ki,
m眉蓹yy蓹n recursive edir.
Bu bir a臒ac ola bil蓹r b枚y眉k, lakin onun u艧aqlar谋n h蓹r biri
ki莽ik bir az bir a臒ac t蓹msil edir.
茝v蓹zind蓹 bu baba olan v蓹 ya n蓹n蓹, indi yaln谋z ana var
or-- M蓹n ana deyil dem蓹k olmaz v蓹 ya dad, ki, q蓹rib蓹 olard谋.
茝v蓹zin蓹 iki u艧aq qarda艧谋 v蓹 qarda艧谋 kimi olacaq.
Ail蓹 a臒ac yeni n蓹sil.
Amma struktur, eyni fikirdir.
V蓹 m蓹n bir funksiyas谋 var 莽谋x谋r olan bir ikili axtar谋艧 axtar谋艧 ed蓹 bil蓹rsiniz
a臒ac.
Bu axtar谋艧 adlan谋r.
M蓹n a臒ac arrow sol N 眉莽眉n axtar谋艧 N d蓹y蓹rind蓹n art谋q ba艧qa 蓹g蓹r
M蓹n haz谋rda edir蓹m.
Bir an 蓹vv蓹l hekay蓹 55.
M蓹n adl谋 funksiyas谋 var Axtar谋艧 ki, m蓹n yaln谋z bil蓹rsiniz
N bu ke莽ir v蓹 recursively axtar谋艧 sub-a臒ac v蓹 yaln谋z qaytar谋lmas谋
n蓹 ki, cavab.
Else M蓹n burada bir final baza halda var.
>> Son i艧i n蓹dir?
Tree ya null edir.
M蓹n ya ar谋yorum d蓹y蓹ri daha bu daha az v蓹 ya daha 莽ox
v蓹 ya ona b蓹rab蓹r.
M蓹n b蓹rab蓹r dey蓹 bil蓹r b蓹rab蓹r, lakin m蓹ntiqi bu
yaln谋z burada ba艧qa dey蓹r蓹k b蓹rab蓹rdir.
Bel蓹 ki, do臒ru, m蓹n bir 艧ey tapmaq nec蓹.
Bel蓹 ki, in艧allah bu bir deyil daha 莽ekici n眉mun蓹
axmaq sigma funksiyas谋 daha Biz bir ne莽蓹 m眉hazir蓹 etdi
harada bir loop istifad蓹 etm蓹k kimi asan idi biri b眉t眉n n枚mr蓹l蓹ri saymaq
bir veri strukturu Burada N. 枚z眉 recursively ki,
biz indi, m眉蓹yy蓹n v蓹 recursively t蓹rtib 枚z眉m眉z眉 ifad蓹 etm蓹k imkan谋 var
kodu 枚z眉 recursive edir.
Bel蓹 ki, burada eyni kodu.
>> Bel蓹likl蓹, biz n蓹 dig蓹r probleml蓹ri h蓹ll ed蓹 bil蓹r?
Uzaq Bel蓹 ki, tez add谋m yaln谋z bir an 眉莽眉n a臒aclar.
Burada, Alman bayra臒谋 deyirl蓹r.
V蓹 ayd谋n var bir Bu bayraq model.
V蓹 莽ox var D眉nyada bayraqlar谋 ki,
bax谋m谋ndan bu kimi sad蓹 Onlar谋n r蓹ngl蓹r v蓹 n眉mun蓹l蓹ri.
Amma bu kimi saxlan谋l谋r ki, g眉man GIF v蓹 ya JPEG, v蓹 ya bitmap v蓹 ya ping,
h蓹r hans谋 bir qrafik fayl format olan siz, tan谋艧 oldu臒unuz
Biz ist蓹yirik ki, b蓹zi pset4 il蓹 oynay谋r.
Bu saxlamaq 眉莽眉n d蓹y蓹rli g枚r眉nm眉r qara pixel, qara pixel, qara pixel,
n枚qt蓹, n枚qt蓹, n枚qt蓹, b眉t眉n d蓹st蓹 ilk scanline qara piksel,
v蓹 ya sat谋r, sonra b眉t眉n d蓹st蓹 eyni, sonra b眉t眉n d蓹st蓹
sonra eyni v蓹 q谋rm谋z谋 piksel b眉t眉n d蓹st蓹,
q谋rm谋z谋 piksel, q谋rm谋z谋 piksel, sonra b眉t眉n sar谋 sar谋 piksel d蓹st蓹, sa臒?
>> Bel蓹 s蓹m蓹r蓹sizlik burada var.
Nec蓹 daxil蓹n siz ki Alman bayraq kompres
bir fayl olaraq h蓹yata 蓹g蓹r?
N蓹 m蓹lumat kimi biz bilm蓹z m蓹qs蓹dil蓹 disk saxlan谋lmas谋 narahat
kimi bizim fayl 枚l莽眉s眉 azaltmaq 眉莽眉n bir kilobayt, bir 艧ey 眉莽眉n bir MB
ki莽ik?
Orada redundancy yat谋r Burada ayd谋n olmaq?
Siz n蓹 ed蓹 bil蓹r?
Evet?
M蓹hz.
Niy蓹 daha 莽ox xat谋rlay谋ram h蓹r darn pixel r蓹ng
yaln谋z pset4 etdiyini etdiyiniz kimi bitmap fayl format谋 il蓹,
niy蓹 yaln谋z t蓹msil etmir m蓹s蓹l蓹n piksel leftmost s眉tun,
qara piksel bir d蓹st蓹, bir d蓹st蓹 q谋rm谋z谋 v蓹 sar谋 bir d蓹st蓹,
v蓹 sonra yaln谋z birt蓹h蓹r kodlar t蓹krar ideyas谋 bu 100 d蓹f蓹
v蓹 ya bu 1000 d蓹f蓹 t蓹krar?
Harada 100 v蓹 ya 1000 yaln谋z bir tam, bel蓹 ki,
yaln谋z bir s谋ra 眉z 蓹ld蓹 ed蓹 bil蓹rsiniz 蓹v蓹zin蓹 y眉zl蓹rl蓹 v蓹 ya minl蓹rl蓹
蓹lav蓹 piksel.
And olsun ki, nec蓹 biz var Alman bayra臒谋 kompres bil蓹r.
V蓹
Frans谋z bayra臒谋 haqq谋nda indi n蓹?
B蓹zi sort v蓹 bir az ruhi h蓹yata olan bayraq
disk haqq谋nda daha 莽ox s谋x谋lm谋艧 bil蓹r?
German flag v蓹 ya Frans谋z bayraq, biz ki, yana艧ma, 蓹g蓹r?
Alman bayraq, var, 莽眉nki daha 眉f眉qi ixtisar.
V蓹 dizayn bir 莽ox qrafik fayl formatlar谋 h蓹qiq蓹t蓹n kimi scan x蓹tl蓹ri 莽al谋艧谋r
yatay.
Onlar i艧l蓹m蓹k bil蓹r 艧aquli, yaln谋z insanl谋q
q蓹rar il 蓹vv蓹l biz laz谋md谋r 眉mumiyy蓹tl蓹 艧eyi s谋ra hesab
s眉tun c蓹rg蓹 蓹v蓹zin蓹 s眉tun.
Bel蓹 ki, h蓹qiq蓹t蓹n olsayd谋 fayl baxmaq
Alman bayra臒谋 v蓹 bir Frans谋z 枚l莽眉s眉 bayraq, bel蓹 uzun q蓹tnam蓹 kimi
eyni, eyni eni v蓹 h眉nd眉rl眉y眉, bu
Burada b枚y眉k olacaq 莽眉nki 脰z眉n眉z 眉莽 d蓹f蓹 t蓹krar etm蓹k laz谋md谋r.
Siz mavi, t蓹krar daxil etm蓹k 枚z眉n眉z眉, a臒, q谋rm谋z谋, 枚z眉n眉z眉 t蓹krar
脰z眉n眉z眉 deyir蓹m.
Siz yaln谋z b眉t眉n getm蓹k bilm蓹z sa臒 yol.
V蓹 bir k蓹nara kimi, etm蓹k s谋x谋lma sil
Bu halda, h蓹r yerd蓹 bir video-- d枚rd 莽蓹r莽iv蓹sind蓹 siz
bir film oldu臒unu xat谋rlay谋ram bil蓹r v蓹 ya video 眉mumiyy蓹tl蓹
saniy蓹d蓹 29 v蓹 ya 30 kadr kimi.
Bu bir az flip kitab kimi harada yaln谋z image, 艧蓹kil, 艧蓹kil, 艧蓹kil g枚rm蓹k,
image yaln谋z super s眉r蓹tli bel蓹 ki, kimi g枚r眉n眉r Ekranda aktyorlar h蓹r蓹k蓹t edir.
Burada Bumble Bee var g眉l bir d蓹st蓹 眉st.
V蓹 bu c眉r ola bil蓹r, baxmayaraq ilk bax谋艧da g枚rm蓹k 莽蓹tin,
h蓹r蓹k蓹t t蓹k 艧ey Bu film ar谋 edir.
>> N蓹 saxlan谋lmas谋 haqq谋nda lal video s谋k谋艧t谋r谋lmam谋艧?
Bu video saxlamaq 眉莽眉n tullant谋lar谋n n枚v眉 var D枚rd t蓹xmin蓹n eyni images kimi
yaln谋z insofar ar谋 oldu臒u kimi f蓹rql蓹nir.
Siz 眉z atmaq 蓹n ki, informasiya
v蓹 yaln谋z xat谋rlay谋ram, m蓹s蓹l蓹n, ilk 莽蓹r莽iv蓹sind蓹 v蓹 son 莽蓹r莽iv蓹sind蓹,
Siz var 蓹g蓹r 蓹sas 莽蓹r莽iv蓹sind蓹 he莽 s枚z e艧itdim
v蓹 yaln谋z saxlamaq ar谋 orta.
V蓹 yoxdur , 莽蓹hray谋 b眉t眉n saxlamaq
mavi, v蓹 v蓹 ya艧谋l d蓹y蓹rl蓹r h蓹m莽inin.
Bel蓹 ki, bu yaln谋z ki, dem蓹k deyil s谋x谋lma h蓹r yerd蓹 var.
Bu tez-tez istifad蓹 bir texnika var bu g眉n veril蓹n v蓹 ya almaq.
>> Amma nec蓹 m蓹tn kompres edirsiniz?
Nec蓹 m蓹tn kompressor haqq谋nda getm蓹k yoxdur?
B蓹li, simvol h蓹r Ascii bir byte, s蓹kkiz bit edir.
V蓹 bu c眉r lal, do臒ru?
Y蓹qin ki, bir n枚v眉, 莽眉nki v蓹 E v蓹 m蓹n v蓹 O v蓹 U bir 莽ox
daha tez-tez W v蓹 ya Q ya Z kimi 莽ox, dil as谋l谋 olaraq hans谋
Siz 蓹lb蓹tt蓹 ki, yaz谋l谋 etdiyiniz.
V蓹 bel蓹 ki, niy蓹 biz istifad蓹 olunur h蓹r h蓹rf 眉莽眉n s蓹kkiz bit,
蓹n az谋, o c眉ml蓹d蓹n M蓹艧hur m蓹ktublar, sa臒?
N蓹 眉莽眉n az bit istifad蓹 super m蓹艧hur m蓹ktublar,
E kimi 艧eyl蓹r tapmaq ilk Fortune T蓹k蓹r il蓹,
v蓹 daha 莽ox bit istifad蓹 az m蓹艧hur m蓹ktublar?
Niy蓹?
Biz yaln谋z olacaq, 莽眉nki az tez-tez istifad蓹 edin.
>> B蓹li, bu var ki, h蓹yata 莽evirir Bunu etm蓹k 眉莽眉n edil蓹n c蓹hdl蓹r olmu艧dur.
V蓹 grade geri 蓹g蓹r m蓹kt蓹b v蓹 ya orta m蓹kt蓹b, Morse kodu.
Morse kodu n枚qt蓹l蓹r var v蓹 tire ola bil蓹r ki,
bir tel kimi boyunca 枚t眉r眉l蓹n s蓹sl蓹r v蓹 ya bir n枚v siqnallar谋.
Amma Morse kodu super t蓹miz.
Bu bir ikili sistem n枚v眉 var ki, n枚qt蓹 v蓹 ya tire var.
Amma, m蓹s蓹l蓹n, iki n枚qt蓹l蓹r g枚r眉rs眉n眉zs蓹.
Yoxsa operator geri d眉艧眉n眉yorsan谋z kim, beep, beep, beep kimi gedir
beep, bir az trigger vuru艧 ki, bir siqnal 枚t眉r眉r,
蓹g蓹r, al谋c谋, iki q蓹bul n枚qt蓹l蓹r, n蓹 mesaj alm谋艧?
Tamamil蓹 蓹sass谋z.
>> M蓹n?
M蓹n?
V蓹 ya n蓹 about-- ya m蓹n?
B蓹lk蓹 yaln谋z iki E sa臒 idi?
Bel蓹 ki, bu problem var Morse il蓹 decodability of
indeksi, vasit蓹si halda siz蓹 g枚nd蓹rm蓹kl蓹 艧蓹xs
h蓹qiq蓹t蓹n bel蓹 ki, s谋ralayabilirsiniz duraklamalar v蓹 ya m蓹ktublar谋 aras谋nda bo艧luqlar e艧itm蓹k,
yaln谋z kifay蓹t q蓹d蓹r deyil adet s谋f谋r v蓹 olanlar谋 bir ax谋n g枚nd蓹rm蓹k,
v蓹 ya n枚qt蓹 v蓹 tire, qeyri var, 莽眉nki.
E bir dot, bel蓹 ki, 蓹g蓹r iki n枚qt蓹l蓹r v蓹 ya iki n枚qt蓹l蓹r e艧itm蓹k,
b蓹lk蓹 iki E-nin v蓹 ya b蓹lk蓹 bir I. var
Bel蓹likl蓹, biz bir var bir sistem laz谋md谋r daha a臒谋ll谋 az.
Bel蓹 ki, bir adam ad谋na Huffman il bundan m蓹hz bu il蓹 g蓹ldi.
Bel蓹 ki, biz yaln谋z olacaq s眉r蓹tli bir n蓹z蓹r almaq
nec蓹 a臒aclar bu ilgili var.
Bu bir oldu臒unu d眉艧眉n蓹k g枚nd蓹rm蓹k ist蓹diyiniz axmaq mesaj,
yaln谋z A, B ibar蓹t C D's v蓹 E-nin, lakin ixtisar bir 莽ox burada var.
陌ngilis olmaq 眉莽眉n n蓹z蓹rd蓹 deyil.
Bu 艧ifrelenmi艧 deyil.
Bu, sad蓹c蓹 bir axmaq mesaj var t蓹krar 莽ox.
Siz h蓹qiq蓹t蓹n saymaq 蓹g蓹r Bel蓹 ki, b眉t眉n A, B, C, D's, v蓹 E-nin, burada
tezliyi.
M蓹ktublar谋 20% A, m蓹ktublar 45%
E-nin v蓹 dig蓹r 眉莽 tezlikl蓹rin.
Biz 蓹l orada say谋l谋r v蓹 yaln谋z riyaziyyat etdi.
>> Bel蓹 ki, 莽谋x谋r ki, Huffman, bir m眉dd蓹t 蓹vv蓹l,
Bilirsiniz ki, h蓹yata n蓹, m蓹n bina ba艧lamaq 蓹g蓹r
bir a臒ac v蓹 ya a臒ac me艧蓹, Siz, A艧a臒谋dak谋 kimi, m蓹n a艧a臒谋dak谋lar谋 ed蓹 bil蓹rsiniz.
M蓹n h蓹r bir node verm蓹k gedir蓹m M蓹n qay臒谋 m蓹ktublar谋
M蓹n saxlamaq 眉莽眉n gedir蓹m ki, node daxilind蓹
眉z蓹n n枚qt蓹si kimi tezlikl蓹rin d蓹y蓹ri, v蓹 ya siz d蓹 bir N istifad蓹 ed蓹 bil蓹r
lakin biz burada bir float istifad蓹 ed蓹c蓹yik.
V蓹 alqoritm ki, o ki, t蓹klif
bir node bu me艧蓹 almaq a臒ac, bel蓹 ki, super q谋sa a臒aclar谋,
v蓹 onlar谋 birl蓹艧dir蓹n ba艧lay谋n yeni qruplar, yeni valideynl蓹r, Siz.
V蓹 se莽erek bunu bir zamanda iki ki莽ik tezlikl蓹rin.
Bel蓹 ki, 10% v蓹 10% etdi.
M蓹n yeni node yaratmaq.
M蓹n yeni node 20% 莽a臒谋r谋r谋q.
>> Hans谋 iki qov艧aqlar谋n谋n m蓹n n枚vb蓹ti birl蓹艧dirm蓹k?
Bu bir az qeyri-m眉蓹yy蓹n var.
Bel蓹 ki, b蓹zi k眉nc hallarda var hesab, lakin olduqca 艧eyi saxlamaq 眉莽眉n,
M蓹n 20% se莽m蓹k gedir蓹m - 陌ndi u艧aqlar bilm蓹z.
M蓹n 20% se莽m蓹k gedir蓹m v蓹 15% v蓹 iki yeni k蓹narlar谋 c蓹lb edir.
V蓹 indi iki qov艧aqlar谋n谋n M蓹n m蓹ntiqi birl蓹艧dirm蓹k edirsiniz?
B眉t眉n u艧aqlar, b眉t眉n Yoksay n蓹v蓹l蓹ri, yaln谋z k枚kl蓹ri baxmaq
indi.
Hans谋 iki qov艧aqlar谋n谋n m蓹n birlikd蓹 ba臒lamaq edirsiniz?
Point iki 0.35.
Bel蓹 ki, m蓹n蓹 iki yeni k蓹narlar谋 c蓹lb ed蓹k.
V蓹 sonra m蓹n yaln谋z bir sol var.
Bel蓹 ki, burada bir a臒ac var.
V蓹 q蓹sd蓹n t蓹rtib edilmi艧dir c眉r olduqca baxmaq 眉莽眉n,
lakin k蓹narlar谋 oldu臒unu fark d蓹 s谋f谋r v蓹 bir etiketlendi.
Bel蓹 ki, sol k蓹narlar谋 b眉t眉n s谋f谋r var 枚zba艧谋na, lakin ard谋c谋l.
B眉t眉n h眉quqlar k蓹narlar谋 olanlard谋r.
>> V蓹 bel蓹 Hoffman, t蓹klif olunan n蓹 Bir B t蓹msil etm蓹k ist蓹yirsinizs蓹,
kimi say谋 66 t蓹msil daha 莽ox s蓹kkiz b眉t眉n bit bir Ascii,
n蓹, yaln谋z ma臒aza bilirik model s谋f谋r, s谋f谋r, s谋f谋r,
s谋f谋r ki, yol, 莽眉nki M蓹nim a臒acdan, c蓹nab Huffman nin a臒ac,
k枚k眉nd蓹n yarpaq.
Bir saxlamaq ist蓹yirsinizs蓹 E, 蓹ksin蓹, deyil
bir E. t蓹msil s蓹kkiz bit g枚nd蓹r 茝ksin蓹, bit n蓹 model g枚nd蓹rm蓹k?
Biri.
V蓹 bu bar蓹d蓹 g枚z蓹l n蓹 var ki, E 蓹n m蓹艧hur m蓹ktub,
v蓹 istifad蓹 etdiyiniz bunun 眉莽眉n 蓹n q谋sa kodu.
n枚vb蓹ti 蓹n m蓹艧hur m蓹ktub kimi g枚r眉n眉r
A. idi V蓹 ne莽蓹 bit o istifad蓹 t蓹klif etdi?
Zero, bir.
>> V蓹 h蓹yata 莽眉nki bu a臒ac kimi, indi
M蓹n蓹 var m眉蓹yy蓹n ed蓹k Morse kimi he莽 bir qeyri
kodu b眉t眉n 莽眉nki siz qay臒谋s谋na m蓹ktublar谋
bu k蓹narlar谋 sonunda var.
Bel蓹 ki, yaln谋z biri bir a臒ac t蓹tbiqi.
Bu is-- v蓹 m蓹n dal臒a laz谋md谋r Bu m蓹nim 蓹l nec蓹
C strukturu kimi bu h蓹yata bil蓹r.
Biz yaln谋z birl蓹艧dirm蓹k laz谋md谋r simvolu, bir char kimi,
v蓹 tezlik sol v蓹 sa臒.
Amma iki baxaq son n眉mun蓹l蓹ri will
sonra olduqca tan谋艧 problem viktorina s谋f谋r be艧 se莽in.
>> Bel蓹 ki, data strukturu var bir hash masa kimi tan谋n谋r.
V蓹 bir hash table c眉r deyil Bu buketler var ki, s蓹rin.
V蓹 d枚rd buketler var g眉man Burada yaln谋z d枚rd bo艧 f蓹zalar谋nda.
Burada burada kartlar g枚y蓹rt蓹, v蓹 klub, bel, klub, brilyant, klub,
brilyant, klub, brilyant, clubs-- bu t蓹sad眉fi deyil.
Hearts, hearts-- m蓹n deyil蓹m burada v蓹saitl蓹rin b眉t眉n bucketizing.
V蓹 bir hash table ehtiyaclar谋 Sizin giri艧 baxmaq,
v蓹 sonra m眉蓹yy蓹n qoyun Siz g枚rm蓹k n蓹 蓹sas谋nda yer.
Bu alqoritm var.
M蓹n bir super istifad蓹 sad蓹 vizual alqoritmi.
蓹n a臒谋r hiss蓹si idi 艧蓹kill蓹r idi n蓹 xat谋rlayaraq.
V蓹 sonra d枚rd 眉mumi 艧eyl蓹r var.
>> 陌ndi 莽谋xar谋c谋 borular, artan olan Burada q蓹sd蓹n dizayn 艧eydir.
Amma ba艧qa n蓹 ed蓹 bil蓹r?
Bel蓹 ki, h蓹qiq蓹t蓹n, burada biz bir k枚hn蓹 m蓹kt蓹b imtahan kitab d蓹st蓹.
Bir d蓹st蓹 Tutaq ki, t蓹l蓹b蓹l蓹r adlar谋 burada var.
Burada b枚y眉k bir hash masa var.
茝v蓹zind蓹 d枚rd buketler, M蓹n 26 dey蓹k var.
V蓹 biz 26 borc getm蓹k ist蓹m蓹di k蓹narda [olan 艧eyl蓹r? Annenberg?], Bel蓹 ki,
burada t蓹msil ki, be艧 deyil A Z. vasit蓹sil蓹 v蓹 蓹g蓹r m蓹n
, ad谋 A il蓹 ba艧lay谋r bir t蓹l蓹b蓹 g枚rm蓹k M蓹n orada onun viktorina qoymaq 眉莽眉n gedir蓹m.
Kims蓹 C ba艧lay谋r, orada, A-- h蓹qiq蓹t蓹n, bunu ist蓹m蓹di.
B burada gedir.
Bel蓹likl蓹, m蓹n var A v蓹 B v蓹 C. V蓹 陌ndi burada ba艧qa bir 艧agird var.
Amma bu hash table 蓹g蓹r bir s谋ra il蓹 h蓹yata ke莽iril蓹n,
I n枚v berbat al谋ram bu n枚qt蓹d蓹, sa臒?
I n枚v bu yerd蓹 qoymaq laz谋md谋r.
>> M蓹n bu h蓹ll ed蓹 bil蓹r bir yolu b眉t眉n var sa臒, A C m蓹艧臒ul, B m蓹艧臒ul, m蓹艧臒ul olur.
M蓹n Bel蓹 ki, D. onu qoymaq gedir蓹m ilk, m蓹n t蓹sad眉fi an谋nda eri艧im
t蓹l蓹b蓹l蓹r 眉莽眉n buketler h蓹r.
Amma indi bu c眉r ke莽ir ki, bir 艧ey x蓹tti daxil,
M蓹n kims蓹 眉莽眉n axtarmaq ist蓹yirsinizs蓹, 莽眉nki onun ad谋 il蓹 ba艧lay谋r, m蓹n burada yoxlay谋n.
Amma bu deyil I ar谋yorum t蓹l蓹b蓹,
I n枚v yoxlan谋lmas谋 ba艧lamaq 眉莽眉n buketler, m蓹n n蓹 莽眉nki
bir x蓹tti sort idi data strukturu sonda.
Yaln谋z baxmaq dey蓹r蓹k bir axmaq yol ilk m枚vcud a莽谋lmas谋 眉莽眉n,
v蓹, bel蓹 dan谋艧maq, bir B plan谋 kimi qoymaq v蓹 ya bu halda plan D, d蓹y蓹ri
蓹v蓹zin蓹 yeri.
Bu ki, varsa, yaln谋z bel蓹 26 yeri v蓹 he莽 bir t蓹l蓹b蓹 var
Ad谋 Q ya Z, ya bir 艧ey kimi il蓹 ki, 蓹n az谋 kosmik istifad蓹 edirik.
>> Amma biz art谋q g枚rd眉k burada a臒谋ll谋 h蓹ll蓹r, sa臒?
茝v蓹zin蓹 n蓹 ed蓹rdiniz Bir toqqu艧ma varsa?
Iki n蓹f蓹r varsa ad谋 A, n蓹 olard谋
asan v蓹 ya daha 莽ox olmu艧dur Yaln谋z intuitiv h蓹ll
D olmas谋 ehtimal edilir A qoyulmas谋?
Niy蓹 yaln谋z getm蓹k deyil k蓹narda [? Annenberg?],
malloc, ba艧qa node kimi, qoyun Burada v蓹 sonra burada bir t蓹l蓹b蓹 qoymaq.
M蓹n mahiyy蓹tc蓹 var ki, bir s谋ra bir n枚v,
v蓹 ya biz etdiyiniz kimi b蓹lk蓹 daha z蓹rif bir ba臒l谋 siyah谋s谋n谋 g枚rm蓹k 眉莽眉n ba艧lay谋r.
>> V蓹 bel蓹 bir hash table bir strukturu ki, yaln谋z bu kimi baxmaq bil蓹r
lakin daha a臒谋ll谋, bir 艧ey deyil蓹n ayr谋-ayr谋 chaining, qovu艧durma臒谋m谋z bir hash table
sad蓹c蓹 bir s谋ra h蓹r edir Onun elementl蓹ri bir s谋ra deyil,
bir ba臒l谋 siyah谋 枚z眉 edir.
Siz super s眉r蓹tli 莽谋x谋艧 almaq ki, oldu臒u 眉莽眉n d蓹y蓹r hash q蓹rar.
脟ox kartlar谋 misal il蓹 kimi, M蓹n super s眉r蓹tli q蓹rar q蓹bul edib.
Hearts brilyant burada gedir, burada gedir.
Burada eyni, A burada gedir, D B burada gedir, burada gedir.
Bel蓹 ki, super s眉r蓹tli g枚z-up, v蓹 蓹g蓹r Bir halda daxil ola
Siz var toqqu艧ma, iki eyni adl谋 insanlar, yax艧谋, sonra
Yaln谋z birlikd蓹 onlar谋 birl蓹艧dir蓹n ba艧lay谋n.
V蓹 b蓹lk蓹 onlara s谋ralan谋r saxlamaq 蓹lifba s谋ras谋 il蓹, b蓹lk蓹 deyil.
Amma 蓹n az谋 indi dinamizm var.
Bel蓹 ki, bir t蓹r蓹fd蓹n biz super s眉r蓹tli var daimi vaxt, v蓹 x蓹tti vaxt n枚v
bu ba臒l谋 siyah谋lar谋 蓹g蓹r c蓹lb bir az uzun almaq 眉莽眉n ba艧lamaq.
>> Bel蓹 ki, bir silly bu c眉r, bundan geeky zarafat il.
CS50 hack-a-Thon da, t蓹l蓹b蓹l蓹r yoxlamaq zaman,
bir TF v蓹 ya CA h蓹r il d眉艧眉n眉r onu qoymaq komik
Bu kimi bir ibr蓹t, burada yaln谋z ad谋 A il蓹 ba艧lay谋r 蓹g蓹r o dem蓹kdir ki,
Bu yol getm蓹k.
Ad谋n谋z谋 ba艧lay谋r B il蓹 艧eyl蓹rdir OK getm蓹k,
b蓹lk蓹 daha sonra d枚vr komik.
Amma ba艧qa bir var d蓹 bunu yol.
Geri g蓹lir.
>> Bel蓹 ki, bu qurulu艧 var.
Bu da son Bu g眉n strukturu,
olan trie deyil蓹n bir 艧ey var.
N蓹d蓹ns蓹 q谋sa T-R-I-E, al谋nmas谋 眉莽眉n, lakin trie deyirl蓹r.
Bel蓹 ki, bir trie bir maraql谋 bu ideyalar谋n bir 莽ox amalgam.
Biz 蓹vv蓹l g枚rd眉m bir a臒ac var.
Bu ikili axtar谋艧 a臒ac deyil.
Bu u艧aqlar谋n h蓹r hans谋 bir say谋 il蓹 bir a臒ac var lakin trie u艧aqlar谋n h蓹r
bir s谋ra edir.
脰l莽眉s眉 bir s谋ra, 26 v蓹 ya b蓹lk蓹 27 dem蓹k Siz hyphenated adlar谋 d蓹st蓹k ist蓹yirsinizs蓹
v蓹 ya insanlar谋n adlar谋 apostrophes.
>> V蓹 bu bir data strukturu.
V蓹 眉st baxsaq alt, kimi, 蓹g蓹r
, var top node, M baxmaq orada leftmost 艧ey i艧ar蓹 ed蓹r蓹k,
daha sonra A, X, W, E, L, L. Bu edir yaln谋z bir data strukturu ki, 枚zba艧谋na
insanlar谋n adlar谋 saxlan谋lmas谋 edir.
V蓹 Maxwell yaln谋z a艧a臒谋dak谋 saxlan谋l谋r array array serial谋n bir yol.
Bir trie haqq谋nda Amma g枚z蓹l n蓹 var ki, bir ba臒l谋 siyah谋 is蓹 h蓹tta
bir s谋ra, biz he莽 kazan谋lm谋艧 etdik 蓹n yax艧谋 x蓹tti vaxt v蓹 ya logarithmic vaxt axtar谋r
kims蓹.
Bir trie Bu data strukturu, 蓹g蓹r M蓹nim data structure bu bir ad谋 var
v蓹 m蓹n Maxwell ar谋yorum, M蓹n olduqca tez onu tapmaq 眉莽眉n gedir.
M蓹n yaln谋z M-A-X-W-E-L-L axtarmaq. 茝g蓹r Bu data strukturu, 蓹ksin蓹,
bir var, 蓹g蓹r N, bir milyon 蓹g蓹r Bu data strukturu milyon adlar谋,
Maxwell h蓹l蓹 olacaq discoverable yaln谋z M-A-X-W-E-L-L sonra
add谋mlar.
V蓹, David D-A-V-I-D add谋mlar.
Ba艧qa s枚zl蓹, tikinti bir data strukturu
var bu seriallar谋n b眉t眉n olan 枚zl蓹ri t蓹sad眉fi giri艧 d蓹st蓹k
M蓹n insanlar谋n axtar谋r ba艧laya bil蓹rsiniz ki, bir zaman m蓹bl蓹臒i istifad蓹 ed蓹r蓹k ad
Biz say谋na proporsional m蓹lumat strukturu 艧eyi,
kimi bir milyon m枚vcud adlar谋.
Bu tapmaq 眉莽眉n m蓹n蓹 laz谋m vaxt m蓹bl蓹臒i M-A-X-W-E-L-L Bu data strukturu deyil
proporsional deyil m蓹lumat strukturu 枚l莽眉s眉,
lakin ad谋 uzunlu臒u.
V蓹 real adlar谋 biz arad谋臒谋n谋z
he莽 uzun crazy olacaq.
B蓹lk蓹 kims蓹 10 xarakter da艧谋y谋r 20 xarakter ad谋.
Bu h眉ququ, 蓹lb蓹tt蓹 m蓹hdud var?
Yer 眉z眉nd蓹 bir insan var olan uzun m眉mk眉n ad谋 var,
lakin ad谋 sabit deyil d蓹y蓹ri uzunlu臒u, sa臒?
H蓹r hans谋 bir m蓹nada f蓹rqli deyil.
Bel蓹 ki, bu 艧蓹kild蓹, biz bir veri strukturu 蓹ld蓹
ki, daimi vaxt g枚z-up edir.
Bu add谋mlar bir s谋ra almaq yoxdur giri艧 uzunlu臒u as谋l谋 olaraq,
ad谋, lakin say谋 data strukturu.
Biz adlar谋 say谋 ikiqat Bel蓹 ki bir milyard iki g蓹l蓹n il,
tap谋nt谋 Maxwell etm蓹k niyy蓹tind蓹dir yeddi add谋mlar eyni say谋
onu tapmaq 眉莽眉n.
V蓹 bel蓹 ki, biz 蓹ld蓹 etdik g枚r眉n眉r zaman 莽al谋艧an bizim m眉q蓹dd蓹s grail.
>> Bel蓹 ki, tez elanlar bir ne莽蓹.
Quiz s谋f谋r g蓹lir.
Kurs sayt谋nda ki, daha 莽ox g眉n n枚vb蓹ti ne莽蓹 眉z蓹rind蓹.
Bazar ert蓹si nin bir bayram m蓹ruz蓹 burada Harvard bazar ert蓹si.
Bu, New Haven deyil bel蓹 ki, biz sinif alaraq edirik
bazar ert蓹si m眉hazir蓹 眉莽眉n New Haven 眉莽眉n.
H蓹r 艧ey film olur v蓹 h蓹mi艧蓹 oldu臒u kimi canl谋 ax谋n
lakin bu g眉n son qoy 30 ikinci clip il蓹
qondarma "Deep d眉艧眉nc蓹l蓹r" Daven Farnham t蓹r蓹find蓹n hans谋
艦蓹nb蓹 t蓹r蓹find蓹n ke莽蓹n il ilham Night Live "Deep d眉艧眉nc蓹l蓹r"
Jack Handy t蓹r蓹find蓹n hans谋 陌ndi m蓹nada etm蓹lidir.
>> FILM: 陌ndi "Deep Daven Farnham t蓹r蓹find蓹n d眉艧眉nc蓹l蓹r ".
Hash masa.
>> HOPARL脰R 1: Yax艧谋 ki, indi 眉莽眉n var.
Biz g蓹l蓹n h蓹ft蓹 g枚r蓹c蓹ksiniz.
>> DOUG: aksiyada g枚rm蓹k 眉莽眉n.
Bel蓹 ki, indi ki, bir n蓹z蓹r salaq.
Odur ki, biz 莽e艧idl蓹nm蓹mi艧 s谋ra var.
>> IAN: Doug, siz ir蓹lid蓹 v蓹 yenid蓹n getm蓹k bil蓹r yaln谋z bir ikinci bu edin.
B眉t眉n sa臒, kameralar, bel蓹 ki, yuvarlanan olunur f蓹aliyy蓹t Doug, haz谋r zaman, OK?
DOUG: B眉t眉n sa臒, bel蓹 n蓹 biz burada var 莽e艧idl蓹nm蓹mi艧 s谋ra edir.
M蓹n elementl蓹ri b眉t眉n r蓹ngli etdik 蓹slind蓹 oldu臒unu g枚st蓹rir q谋rm谋z谋,
莽e艧idl蓹nm蓹mi艧.
Bel蓹 ki, ilk 艧ey ki, geri Biz serial谋n sol yar谋m sort edir.
Sonra biz h眉ququ sort serial谋n yar谋s谋.
V蓹 ya-da, ya-da, ya-da, biz onlar谋 birlikd蓹 birl蓹艧m蓹si.
V蓹 biz tamamil蓹 s谋ralan谋r array var.
Bel蓹 ki, i艧l蓹ri sort daxil nec蓹.
>> IAN: Vay, Vay, Whoa, cut k蓹silmi艧, cut, k蓹sdi.
Doug, yaln谋z ya-da bilm蓹z, ya-da, ya-da, birl蓹艧m蓹si n枚v vasit蓹sil蓹 yol.
>> DOUG: M蓹n yaln谋z etdi.
Bu yax艧谋d谋r.
Biz getm蓹k iyi.
Yaln谋z yayma saxlamaq ed蓹k.
Bel蓹 ki, h蓹r halda,
>> IAN: Siz izah etm蓹k Bu daha tam daha.
Bu yaln谋z kifay蓹t deyil.
DOUG: Ian, biz deyil biri geri getm蓹k laz谋md谋r.
Bu yax艧谋d谋r.
Bel蓹 ki, h蓹r halda, biz merge-- il蓹 davam Ian, biz 莽蓹kili艧 ortas谋nda ist蓹yirik.
>> IAN: M蓹n bilir蓹m.
V蓹 biz yaln谋z ya-da bilm蓹z, ya-da, b眉t眉n prosesi vasit蓹sil蓹 ya-da.
Siz nec蓹 izah etm蓹k iki t蓹r蓹f birlikd蓹 birl蓹艧di almaq.
>> DOUG: Amma biz art谋q var izah nec蓹 iki sides--
>> IAN: Siz yaln谋z g枚st蓹ril蓹n etdik onlara birl蓹艧m蓹si array.
DOUG: Onlar prosesi bilirik.
Onlar g枚z蓹l ist蓹yirik.
Biz art谋q on d蓹f蓹 getdi etdik.
>> IAN: Siz yaln谋z sa臒 眉z蓹rind蓹 atland谋.
Biz bir geri olacaq, siz art谋q siz ya-da, ya-da bilm蓹z.
Geri bir b眉t眉n h眉ququ.
>> DOUG: M蓹n geri getm蓹k 眉莽眉n var slaydlar b眉t眉n vasit蓹sil蓹?
My God.
Bu alt谋nc谋 d蓹f蓹, Ian kimi.
Bu yax艧谋d谋r.
>> IAN: B眉t眉n h眉ququ.
Haz谋r edirsiniz?
Great.
F蓹aliyy蓹t.