1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:11,137 [Musika jotzen] 3 00:00:11,137 --> 00:00:12,220 DAVID J. MALAN: Ondo da. 4 00:00:12,220 --> 00:00:13,950 Hau CS50 da. 5 00:00:13,950 --> 00:00:18,560 Hau da, astean bost jarraitu zuen, eta guk zenbait albiste ona eta albiste txarra batzuk. 6 00:00:18,560 --> 00:00:21,140 Beraz, albiste ona da CS50 Ostiral honetan abian. 7 00:00:21,140 --> 00:00:24,430 Gurekin bat egin nahi baduzu, ohiko URL hemen joatea. 8 00:00:24,430 --> 00:00:28,670 Berri hobea, hitzaldia ez datorren astelehenean 13an. 9 00:00:28,670 --> 00:00:31,970 Zertxobait gutxiago Berri hobea, galdetegi zero hurrengo asteazkenean da. 10 00:00:31,970 --> 00:00:33,840 Ondorengo datuak ere izan daiteke URL hau hemen aurki. 11 00:00:33,840 --> 00:00:36,340 Eta bikote hurrengo egunetan zehar ditugun hutsuneak egingo betez 12 00:00:36,340 --> 00:00:39,234 gelak dagokionez dugun gordeak izango dituzte. 13 00:00:39,234 --> 00:00:41,400 Albiste hobe da han egingo duten Jakina-zabal berrikuspen bat izan 14 00:00:41,400 --> 00:00:43,570 Saio honetan datozen Arratsaldean, astelehena. 15 00:00:43,570 --> 00:00:46,270 Stay ikastaroa egin dute adi kokapena eta xehetasunak ezagutzeko. 16 00:00:46,270 --> 00:00:49,290 Sailak, bat badago ere Oporretan, ere bilduko baita. 17 00:00:49,290 --> 00:00:50,490 18 00:00:50,490 --> 00:00:52,940 Berri Best, hitzaldia datorren ostiralean. 19 00:00:52,940 --> 00:00:56,220 Beraz, hau tradizio dugu bat da , dute curriculumaren arabera. 20 00:00:56,220 --> 00:00:58,100 Besterik ez da harrigarria izango. 21 00:00:58,100 --> 00:01:02,510 Bezalako gauzak ikusiko duzu Etengabeko denbora datuen egitura 22 00:01:02,510 --> 00:01:04,730 eta hash taulak eta zuhaitz eta saiatzen da. 23 00:01:04,730 --> 00:01:07,150 Eta egingo urtebetetzea arazoei buruz hitz egiten dugu. 24 00:01:07,150 --> 00:01:09,440 Stuff sorta osoa zain dago datorren ostiralean. 25 00:01:09,440 --> 00:01:11,212 26 00:01:11,212 --> 00:01:12,200 Ados. 27 00:01:12,200 --> 00:01:13,190 Dena dela. 28 00:01:13,190 --> 00:01:17,080 >> Beraz, gogora ekarri ditudan izan gara zer da irudi hau bideratua 29 00:01:17,080 --> 00:01:18,980 gure ordenagailuaren memoria barruan. 30 00:01:18,980 --> 00:01:22,875 Beraz, memoria edo RAM non programak da existitzen horiek exekutatzen ari zaren bitartean. 31 00:01:22,875 --> 00:01:25,215 Duzu bat bi klik eginez gero ikonoa programa batzuk exekutatu 32 00:01:25,215 --> 00:01:27,520 edo egin klik bikoitza icon fitxategia batzuk irekitzen dira, 33 00:01:27,520 --> 00:01:30,430 nik zure gogorrean kargatzen gidatzeko edo egoera ona drive 34 00:01:30,430 --> 00:01:34,190 RAM, Random Access Memory, non sartu bizi da boterea doa off arte, 35 00:01:34,190 --> 00:01:36,700 Eramangarriaren tapa ixten, edo programatik irten zaitezke. 36 00:01:36,700 --> 00:01:38,960 >> Orain memoria hori, batzuen ziurrenik behar duzu 37 00:01:38,960 --> 00:01:41,950 Egun hauetan 1 gigako, 2 gigabyte, edo are gehiago, askoz gehiago, 38 00:01:41,950 --> 00:01:44,420 oro har ezarritako programa jakin batean 39 00:01:44,420 --> 00:01:47,170 angeluzuzen moduko honetan Eredu kontzeptuala 40 00:01:47,170 --> 00:01:50,860 Horren bidez, pila ditugu behealdean eta beste gauza mordo bat goialdean. 41 00:01:50,860 --> 00:01:53,140 Oso goian gauza Nik argazki hau ikusten dugu 42 00:01:53,140 --> 00:01:55,670 aurretik, baina inoiz ez buruz hitz egin zuen testu segmentu deiturikoak da. 43 00:01:55,670 --> 00:01:58,419 Testu segmentu fancy modu bat besterik ez da zeroen eta bai esaten duen 44 00:01:58,419 --> 00:02:01,150 Zure benetako konpilatutako programa konposatzen. 45 00:02:01,150 --> 00:02:03,910 >> Beraz, bi klik eginez Microsoft Word, zure Mac edo PC, 46 00:02:03,910 --> 00:02:08,030 edo noiz dot exekutatzen duzun barra Mario batean Linux zure terminal leihoa ordenagailu, 47 00:02:08,030 --> 00:02:12,460 osatzen duten zeroen eta bai Word edo Mario aldi baterako gordetzen dira 48 00:02:12,460 --> 00:02:16,610 Zure ordenagailuaren deiturikoak ere RAM programa jakin baten testu segmentu. 49 00:02:16,610 --> 00:02:19,080 Doan Jarraian hasieratu eta datuak uninitialized. 50 00:02:19,080 --> 00:02:22,655 Hau aldagai global bezala stuff da, Nik ez dugula erabiltzen askok, 51 00:02:22,655 --> 00:02:24,910 baina behin ditugu aldagai global izan 52 00:02:24,910 --> 00:02:28,819 edo estatikoki definitzen kateak gogor kodetuta dago bezala "hello" hitzak 53 00:02:28,819 --> 00:02:31,860 Ez diren hartu diren erabiltzaileak eta horrela, zure programan sartu zatekeen. 54 00:02:31,860 --> 00:02:34,230 >> Orain, behealdean behera dugu pila deiturikoak dute. 55 00:02:34,230 --> 00:02:37,665 Eta pila, beraz, orain arte, izan gara zer helburu mota erabiliz? 56 00:02:37,665 --> 00:02:39,706 57 00:02:39,706 --> 00:02:40,997 Zer da pila dira erabiltzera? 58 00:02:40,997 --> 00:02:41,160 Bai? 59 00:02:41,160 --> 00:02:42,070 >> IKUSLEEN: funtzioak. 60 00:02:42,070 --> 00:02:43,320 >> DAVID J. MALAN: funtzio For? 61 00:02:43,320 --> 00:02:44,980 Zer zentzu funtzioak egiten direnean? 62 00:02:44,980 --> 00:02:48,660 >> IKUSLEEN: funtzio bat deitzen duzu, argudio pila gainean kopiatzen. 63 00:02:48,660 --> 00:02:49,660 >> DAVID J. MALAN: Zehazki. 64 00:02:49,660 --> 00:02:52,650 Funtzio bat deitzen duzu, bere argudio pila gainean kopiatzen. 65 00:02:52,650 --> 00:02:56,330 Beraz, X edozein edo Y-ren edo A-ren edo B-ren funtzio bat sartu duzula pasatzen ari 66 00:02:56,330 --> 00:02:58,680 aldi baterako jartzen diren pila deiturikoak, 67 00:02:58,680 --> 00:03:02,000 besterik Annenberg bat bezala jantokia erretiluak, halaber, gauzak eta 68 00:03:02,000 --> 00:03:03,190 aldagai lokalak bezala. 69 00:03:03,190 --> 00:03:06,290 Bada zure foo funtzioa edo zure swap funtzioa dute aldagai lokalak, 70 00:03:06,290 --> 00:03:08,602 temp bezala, bi horiek azkenean, pilan. 71 00:03:08,602 --> 00:03:11,560 Orain, ez dugu hitz gehiegi gauza askorik horiek, baina, ingurune-aldagai horiek 72 00:03:11,560 --> 00:03:15,690 behealdean, berriz, duela ikusi dugu Teklatuaren egun batean egiten dut futzing zen 73 00:03:15,690 --> 00:03:20,050 eta gauzak sartzean hasi nintzen argv 100 edo argv 1.000 bezala, 74 00:03:20,050 --> 00:03:22,320 besterik elementuen ahaztu dut zenbakien du baina horrek 75 00:03:22,320 --> 00:03:24,330 ez ziren ustezko me beharreko sar. 76 00:03:24,330 --> 00:03:26,581 Batzuk ikusten hasi ginen, pantailan funky sinboloak. 77 00:03:26,581 --> 00:03:28,330 Horiek ziren llamado inguruneko aldagaiak 78 00:03:28,330 --> 00:03:32,390 ezarpen global bezala nire programa edo nire ordenagailuan, ez dagoen 79 00:03:32,390 --> 00:03:37,090 berrienak zerikusirik bug duten aztertu ditugu, 80 00:03:37,090 --> 00:03:39,670 Shellshock, hori izan da ordenagailuak batzuk nahiko plaguing. 81 00:03:39,670 --> 00:03:42,960 >> Orain, azkenik, gaur egungo gertutik azken finean zaitugu zeure gainean izan. 82 00:03:42,960 --> 00:03:44,864 Hau zatia memoria bat da. 83 00:03:44,864 --> 00:03:47,030 Eta, batez ere, hori guztia memoria gauza bera da. 84 00:03:47,030 --> 00:03:48,040 Hardware bera da. 85 00:03:48,040 --> 00:03:49,956 Besterik ez gara ordenatzeko klusterrak desberdinak tratatzeko 86 00:03:49,956 --> 00:03:51,460 ren helburu ezberdinetarako byte. 87 00:03:51,460 --> 00:03:56,540 Arazoak izaten ari da, baita ere bertan izango da aldagaiak eta memoria zuk eskatu duten 88 00:03:56,540 --> 00:03:58,810 sistema eragilearen aldi baterako gordetzen da. 89 00:03:58,810 --> 00:04:01,890 >> Baina ez da arazo bat mota Hemen, irudi gisa dakar. 90 00:04:01,890 --> 00:04:05,261 Ordena ditugu bi buruz itsasontziei talka. 91 00:04:05,261 --> 00:04:08,010 Gero eta gehiago erabiltzen duzun bezala delako gaur egun ikusten dugun pilaren, eta gisa 92 00:04:08,010 --> 00:04:11,800 aurrerantzean, gero eta gehiago erabiltzen duzun bezala zeure, ziur aski gauza txarrak gerta liteke. 93 00:04:11,800 --> 00:04:15,054 Eta hori ere bultzatu ahal izango dugu nahita edo nahi gabe. 94 00:04:15,054 --> 00:04:16,970 Beraz cliffhanger azken denbora programa hau izan zen, 95 00:04:16,970 --> 00:04:20,570 eta ez dute balioko funtzionalak edozein helburua beste frogatu baino 96 00:04:20,570 --> 00:04:24,750 nola ahala tipo txarra benetan hartu ahal bugs abantaila norbaiten programan 97 00:04:24,750 --> 00:04:28,460 eta hartu baino gehiago, programa bat edo are informatika-sistema osoa edo zerbitzari. 98 00:04:28,460 --> 00:04:31,660 Beraz, begiratu besterik ez labur-labur, zuk behealdean nagusia nabarituko 99 00:04:31,660 --> 00:04:34,510 Komando lerro hartzen argumentuak, argv bakoitzeko. 100 00:04:34,510 --> 00:04:38,480 Eta f funtzioa dei bat du, funtsean izeneko izenik gabeko funtzio bat 101 00:04:38,480 --> 00:04:40,250 f, eta argv ari da pasatzen [1]. 102 00:04:40,250 --> 00:04:43,960 >> Beraz, edozein izanda ere hitza erabiltzaile at motak Programa honen izenaren ondoren gonbitan, 103 00:04:43,960 --> 00:04:49,310 eta gero arbitrarioa funtzio hori sortu top, f, kate bat hartzen du, AKA char *, 104 00:04:49,310 --> 00:04:51,720 Nik hasia dugu eztabaidatu bezala, eta "bar." deiak besterik ez da 105 00:04:51,720 --> 00:04:53,310 Baina ez dugu ezer deitu daiteke. 106 00:04:53,310 --> 00:04:57,470 Eta gero deklaratzen da, barruan f, karaktere array baten 107 00:04:57,470 --> 00:04:59,930 12 karaktere esaterako bc izenekoa. 108 00:04:59,930 --> 00:05:03,580 >> Orain, istorioa kontatu nuen Duela momentu bat, non memoria 109 00:05:03,580 --> 00:05:06,720 c da, edo horiek 12 karakteretan amaituko da? 110 00:05:06,720 --> 00:05:07,570 Just argia izan. 111 00:05:07,570 --> 00:05:08,070 Bai? 112 00:05:08,070 --> 00:05:08,590 >> IKUSLEEN: pilan. 113 00:05:08,590 --> 00:05:09,420 >> DAVID J. MALAN: pilan. 114 00:05:09,420 --> 00:05:10,720 Beraz, c tokiko aldagai bat da. 115 00:05:10,720 --> 00:05:14,079 Dugu 12 chars edo 12 byte eske ari. 116 00:05:14,079 --> 00:05:16,120 Horiek, azkenean joan dira pila deiturikoak. 117 00:05:16,120 --> 00:05:18,530 Orain, azkenik, beste funtzio hori da hori nahiko baliagarria da benetan, 118 00:05:18,530 --> 00:05:20,571 baina ez benetan erabiltzen dugun geure burua, strncopy. 119 00:05:20,571 --> 00:05:21,550 120 00:05:21,550 --> 00:05:25,200 Katea kopia esan nahi du, baina gutunak, n karaktere bakarra n. 121 00:05:25,200 --> 00:05:31,990 Beraz, n pertsonaiak izango bar kopiatu c sartu. 122 00:05:31,990 --> 00:05:32,980 Eta zenbat? 123 00:05:32,980 --> 00:05:34,110 Bar luzera. 124 00:05:34,110 --> 00:05:36,330 Beraz, beste era batera esanda, hori lerro bat, strncopy, 125 00:05:36,330 --> 00:05:39,500 hau kopiatu joan eraginkortasunez bar in c. 126 00:05:39,500 --> 00:05:42,340 >> Orain, besterik gabe, mota horretako aurreratzen istorio honen morala, 127 00:05:42,340 --> 00:05:44,750 zer da problematikoa potentzialki hemen? 128 00:05:44,750 --> 00:05:49,710 Luzera ikusten ari garen arren bar eta pasatuz strncopy sartu, 129 00:05:49,710 --> 00:05:53,145 zer da zure gut diozu da oraindik ere programa honi buruz hautsita? 130 00:05:53,145 --> 00:05:54,410 131 00:05:54,410 --> 00:05:55,220 Bai? 132 00:05:55,220 --> 00:05:57,491 >> IKUSLEEN: ez dira null karaktere gela. 133 00:05:57,491 --> 00:05:59,990 DAVID J. MALAN: ez dira null karaktere gela. 134 00:05:59,990 --> 00:06:02,073 Potentzialki, ez bezala iraganeko praktika ez dugu, nahiz eta 135 00:06:02,073 --> 00:06:04,810 hainbeste plus 1 gisa egokitzeko null pertsonaia hori. 136 00:06:04,810 --> 00:06:06,649 Hala ere, hori baino okerragoa da. 137 00:06:06,649 --> 00:06:07,940 Zer gehiago ari gara egin ezean? 138 00:06:07,940 --> 00:06:08,432 Bai? 139 00:06:08,432 --> 00:06:09,307 >> IKUSLEEN: [INAUDIBLE] 140 00:06:09,307 --> 00:06:15,440 141 00:06:15,440 --> 00:06:16,440 DAVID J. MALAN: Perfect. 142 00:06:16,440 --> 00:06:18,490 Nik gogor kodetuta dugu 12 nahiko arbitrarioki. 143 00:06:18,490 --> 00:06:19,497 144 00:06:19,497 --> 00:06:21,330 Hori ez da horrenbeste Arazoa, baina, hain zuzen, 145 00:06:21,330 --> 00:06:25,630 ez gara ari egiaztatzen duen bar luzera 12 baino txikiagoa da; 146 00:06:25,630 --> 00:06:28,530 eta kasu horretan izan da joan jartzea memorian sartu seguru 147 00:06:28,530 --> 00:06:30,260 c deitzen duten esleitu dugu. 148 00:06:30,260 --> 00:06:32,960 Izan ere, bada bar bezalakoa da 20 karaktereko luzera, 149 00:06:32,960 --> 00:06:39,010 funtzio honetan agertzen kopiatzea nahi Bar c sartu eta, horrela, 20 karaktere 150 00:06:39,010 --> 00:06:41,310 gutxienez 8 byte hartzen behar ez dela izango. 151 00:06:41,310 --> 00:06:42,690 Hori inplikazioa da hemen. 152 00:06:42,690 --> 00:06:44,347 >> Labur, programa hondatutako beraz. 153 00:06:44,347 --> 00:06:45,180 Ez da big aurre. 154 00:06:45,180 --> 00:06:46,360 Agian segmentaziuo hutsegitea bat lortuko duzu. 155 00:06:46,360 --> 00:06:47,651 Guztiak izan genuen programetan bugs. 156 00:06:47,651 --> 00:06:50,196 Baliteke Denok bugs dute oraintxe programetan. 157 00:06:50,196 --> 00:06:51,320 Baina zer inplikazioa? 158 00:06:51,320 --> 00:06:54,390 Beno, hemen handitutako-en bertsio bat nire ordenagailuaren memoria irudi hori. 159 00:06:54,390 --> 00:06:56,230 Hau nire pila behealdean dago. 160 00:06:56,230 --> 00:06:59,644 Eta hain zuzen ere, oso behean dago zer da guraso errutina pila deitzen, fancy modu 161 00:06:59,644 --> 00:07:00,560 ren esanez hori da nagusia. 162 00:07:00,560 --> 00:07:03,772 Beraz duenak funtzioa deitzen f buruz hitz egiten ari gara. 163 00:07:03,772 --> 00:07:05,230 Beraz, hau pila behealdean dago. 164 00:07:05,230 --> 00:07:06,640 Return helbidea zerbait berria da. 165 00:07:06,640 --> 00:07:08,810 Beti egon da, beti irudi hori izan da. 166 00:07:08,810 --> 00:07:10,440 Inoiz ez besterik ez dugu arreta deitzen du. 167 00:07:10,440 --> 00:07:15,290 Bihurtzen delako C da funtzio bat beste deiak, 168 00:07:15,290 --> 00:07:18,780 duten argudioak ez bakarrik egin Funtzio get pila gainean bultzatu, 169 00:07:18,780 --> 00:07:22,470 Ez bakarrik ez Funtzio horrek tokiko aldagai get pila gainean bultzatu, 170 00:07:22,470 --> 00:07:26,820 bueltan helbide bat zerbait izeneko halaber pila gainean jarri denean. 171 00:07:26,820 --> 00:07:33,330 Hain zuzen ere, nagusia deiak foo bada, nagusiaren memoria-helbide propioa, idi zerbait, 172 00:07:33,330 --> 00:07:38,240 eraginkortasunez lortzen pila gainean jarri exekutatzea, beraz, f egiten da 173 00:07:38,240 --> 00:07:43,630 non atzera joateko testuan daki agindua gauzatzeko jarraitzeko segmentuan. 174 00:07:43,630 --> 00:07:47,760 >> Beraz, hemen gaude, bada, kontzeptualki, nagusian, orduan f lortzen izeneko. 175 00:07:47,760 --> 00:07:50,200 Nola f daki nor eskuko kontrola itzuli nahi? 176 00:07:50,200 --> 00:07:52,020 Beno, txiki honetan Gorriz breadcrumb hemen, 177 00:07:52,020 --> 00:07:54,978 itzulera helbidea deritzo, ez besterik egiaztapen, zer bueltan helbide hori? 178 00:07:54,978 --> 00:07:57,039 Oh, dezagun salto me nagusiak hemen. 179 00:07:57,039 --> 00:07:59,080 Eta hori apur bat oversimplification bat, 180 00:07:59,080 --> 00:08:00,750 zeroen eta bai delako nagusiak dira teknikoki 181 00:08:00,750 --> 00:08:01,967 Hemen teknologiako segmentuan up. 182 00:08:01,967 --> 00:08:03,800 Baina hori da ideia. f besterik ez du, zer jakin nahi 183 00:08:03,800 --> 00:08:06,680 nora kontrola, azken finean, atzera doa. 184 00:08:06,680 --> 00:08:09,790 >> Baina modu ordenagailuen aspalditik ezarritako gauzak 185 00:08:09,790 --> 00:08:12,320 aldagai lokalak bezala eta Argumentu hau bezalakoa da. 186 00:08:12,320 --> 00:08:17,180 Beraz, argazki honen goiko aldean dauden urdin pila f markoa ez den guztia 187 00:08:17,180 --> 00:08:19,630 memoria duten f zehazki da erabiliz. 188 00:08:19,630 --> 00:08:22,990 Beraz, horren arabera, nabarituko bar irudi honetan. 189 00:08:22,990 --> 00:08:23,980 Bar bere argumentua izan zen. 190 00:08:23,980 --> 00:08:27,240 Eta aldarrikatu dugu argumentuak duten funtzio get pila gainean bultzatu. 191 00:08:27,240 --> 00:08:29,910 Eta c, noski, gainera, irudi honetan. 192 00:08:29,910 --> 00:08:33,520 >> Eta besterik notational helburuetarako, goiko ezkerreko izkinan at nabarituko 193 00:08:33,520 --> 00:08:37,020 da zer c tarte 0 izango litzateke eta gero apur eskubidea behera 194 00:08:37,020 --> 00:08:38,220 c bracket 11 da. 195 00:08:38,220 --> 00:08:41,240 Beraz, beste era batera esanda, ezin duzu imajinatu ez dagoela byte sare bat da 196 00:08:41,240 --> 00:08:44,380 Han, lehenengo dagoen huraxe goiko ezkerreko, beheko horietatik 197 00:08:44,380 --> 00:08:48,360 12 byte horiek azken da. 198 00:08:48,360 --> 00:08:49,930 >> Baina orain saiatu azkar aurreratzeko. 199 00:08:49,930 --> 00:08:55,580 Zer da buruz pasatzen badugu gertatuko katea barra bat hori da c baino luzeagoa? 200 00:08:55,580 --> 00:08:59,130 Eta ez gara datozen egiaztatzen hain zuzen ere 12 baino luzeagoa da. 201 00:08:59,130 --> 00:09:03,146 Zein zati irudi hau da, joan den get gainidatzi byte 0, 1, 2, 3, 202 00:09:03,146 --> 00:09:07,890 dot dot dot, 11, eta, ondoren, txarra, 12, 13 19 bidez? 203 00:09:07,890 --> 00:09:11,820 Zer gertatuko da joan, infer ordena batetik bada 204 00:09:11,820 --> 00:09:14,790 c duen tarte 0 gainean eta c bracket 11 moduko behera 205 00:09:14,790 --> 00:09:15,812 eskubidea? 206 00:09:15,812 --> 00:09:16,796 Bai? 207 00:09:16,796 --> 00:09:19,260 >> IKUSLEEN: Ba, joan da char * barraren gainidazteko. 208 00:09:19,260 --> 00:09:22,260 >> DAVID J. MALAN: Bai, itxura Char * bar gainidatzi joan zaren. 209 00:09:22,260 --> 00:09:26,245 Eta okerrago, benetan luze bat bidali nahi izanez gero katea, agian are gainidatzi zer? 210 00:09:26,245 --> 00:09:27,460 211 00:09:27,460 --> 00:09:28,570 The erantzunak emateko. 212 00:09:28,570 --> 00:09:31,380 Zein, berriro ere, besterik ez da bat bezala breadcrumb programan bertan kontatzeko 213 00:09:31,380 --> 00:09:34,060 itzuli denean f joateko Ari deitu egiten da. 214 00:09:34,060 --> 00:09:37,140 >> Beraz, zer guys txarra normalean egin dagoen programa bat aurkitzen badute 215 00:09:37,140 --> 00:09:41,290 Bitxia ala ez ari dira ustiatzeko, modu bat, buggy 216 00:09:41,290 --> 00:09:43,550 berak har dezake bug duen abantaila, 217 00:09:43,550 --> 00:09:45,720 oro har, ez dute lortu Eskubide hori lehen aldiz. 218 00:09:45,720 --> 00:09:48,590 Hasten dira, besterik gabe, bidaliz adibidez, zure barruan ausazko kateak, 219 00:09:48,590 --> 00:09:50,260 teklatua ala ez, edo Egia dute seguruenik 220 00:09:50,260 --> 00:09:52,740 programa txiki bat idatzi besterik ez Kateak automatikoki sortuko, 221 00:09:52,740 --> 00:09:55,430 eta zure programa banging arabera Sarrerek desberdinak asko jartzen ari da 222 00:09:55,430 --> 00:09:56,340 luzerak desberdinetan. 223 00:09:56,340 --> 00:09:58,990 >> Bezain laster, zure programa bat kraskatzen gisa, duten gauza harrigarri bat. 224 00:09:58,990 --> 00:10:01,020 Esan nahi duelako edo aurkitu ditu 225 00:10:01,020 --> 00:10:02,660 zer da, seguruenik, hain zuzen ere akats bat. 226 00:10:02,660 --> 00:10:05,830 Eta gero, gehiago clever eskuratu ahal izango dute eta gehiago hertsiki bideratua hasteko 227 00:10:05,830 --> 00:10:07,420 bug hori nola ustiatu ahal izateko. 228 00:10:07,420 --> 00:10:11,480 Hain zuzen ere, zer zuen agian egin da bidali, kasurik onenean ere, kaixo. 229 00:10:11,480 --> 00:10:12,210 Big aurre ez. 230 00:10:12,210 --> 00:10:14,750 Kate hori behar bezain laburra da. 231 00:10:14,750 --> 00:10:18,100 Baina zer zuen bidaltzen badu, eta hura orokortu egingo dugun bezala, 232 00:10:18,100 --> 00:10:20,890 eraso zero beraz, kode eta bai hori egin gauzak 233 00:10:20,890 --> 00:10:25,150 rm-rf bezala, dena kendu disko gogorra edo spam bidali 234 00:10:25,150 --> 00:10:27,000 edo nolabait eraso makina? 235 00:10:27,000 --> 00:10:29,570 >> Beraz, horietako bakoitzean bada hizki bat adierazten du, 236 00:10:29,570 --> 00:10:32,380 kontzeptualki, eraso, eraso, eraso, eraso, txarra kodea batzuk 237 00:10:32,380 --> 00:10:36,410 beste norbaitek idatzi du, baina pertsona hori smart nahikoa bada 238 00:10:36,410 --> 00:10:40,790 ez bakarrik arte guztien artean, horiek rm-RFS, baina baita 239 00:10:40,790 --> 00:10:46,100 bere azken byte gutxi izan dagokion zenbakia izan 240 00:10:46,100 --> 00:10:50,540 helbidea idatzi, bere edo bere eraso propioak kodea 241 00:10:50,540 --> 00:10:53,820 besterik ez zuen hori gainditu beti ere gonbitan arabera, 242 00:10:53,820 --> 00:10:58,760 eraginkortasunez dezakezu ordenagailua engainatu f exekutatzean egina dagoenean ohartu sartu, 243 00:10:58,760 --> 00:11:02,400 oh, salto me denbora da Bueltan gorria helbidea itzuli. 244 00:11:02,400 --> 00:11:06,070 Baina berak nolabait duelako bueltan helbide hori gainjarria 245 00:11:06,070 --> 00:11:09,602 haien kopurua propioa, eta smart ari dira nahikoa 246 00:11:09,602 --> 00:11:11,560 konfiguratuta izan duten , erreferentzia zenbakia ahala 247 00:11:11,560 --> 00:11:13,740 super top ikusten ezkerreko izkinan han, 248 00:11:13,740 --> 00:11:18,020 Benetako ordenagailuaren helbidea da bere erasoa kodea batzuen memoria, 249 00:11:18,020 --> 00:11:21,740 tipo txarra ordenagailua engainatu bere kabuz kodea exekutatzean sartu. 250 00:11:21,740 --> 00:11:23,700 >> Eta kode hori, berriro ere, ezer izan daiteke. 251 00:11:23,700 --> 00:11:26,120 Honez deritze- shell kodea, besterik ez da 252 00:11:26,120 --> 00:11:29,030 ez dela esateko modu bat oro har, zerbait gisa rm-rf bezain erraza. 253 00:11:29,030 --> 00:11:32,340 Benetan da Bash antzeko zerbait, edo benetako programa bat ematen zion 254 00:11:32,340 --> 00:11:37,230 edo exekutatu bere programazioko kontrol Beste ezer nahi dutela. 255 00:11:37,230 --> 00:11:40,210 Beraz, azken finean, honek guztiak Izan ere, simple eratortzen 256 00:11:40,210 --> 00:11:44,490 inplikatutako bug hori ez egiaztatzea Zure array mugak. 257 00:11:44,490 --> 00:11:47,250 Eta bide delako ordenagailuak lana hauxe litzateke: 258 00:11:47,250 --> 00:11:49,430 tik pila erabili eraginkortasunez, kontzeptualki, 259 00:11:49,430 --> 00:11:54,830 behetik gora, baina, ondoren, elementu bultza pila gainean hazten top down, 260 00:11:54,830 --> 00:11:56,624 hau oso problematikoa. 261 00:11:56,624 --> 00:11:58,290 Beno, honen inguruan lan egiteko modu daude. 262 00:11:58,290 --> 00:12:00,800 Eta Egia, badira hizkuntzak zein batera honen inguruan lan egiteko. 263 00:12:00,800 --> 00:12:03,100 Java immunologikoa da, esate baterako, gai jakin horri. 264 00:12:03,100 --> 00:12:04,110 Ez dute erakusleak eman duzulako. 265 00:12:04,110 --> 00:12:05,943 Ez dute ematen dizute memoria zuzeneko helbideak. 266 00:12:05,943 --> 00:12:08,560 Beraz, eskumen hori dugula ekin ezer ukitzeko oroimenez 267 00:12:08,560 --> 00:12:11,580 nahi ateratzen dugu, admittedly, arrisku handia. 268 00:12:11,580 --> 00:12:12,430 >> Beraz, begi bat mantendu. 269 00:12:12,430 --> 00:12:14,596 Bada, Egia, hilabeteetan , edo urte etorri nahi anytime 270 00:12:14,596 --> 00:12:17,740 irakurri duzu ustiapen batzuei buruzko programa bat edo zerbitzari bat, 271 00:12:17,740 --> 00:12:22,370 Inoiz ikusi duzu zerbait iradokizun bat bada buffer gainezkatzea erasoa bezala, 272 00:12:22,370 --> 00:12:25,390 edo pilaren gainezkatzea mota bat da Eraso, espiritua antzekoak, 273 00:12:25,390 --> 00:12:28,770 askoz inspiratzen web hamarkadan izendatzeko, ezagutzen baduzu, 274 00:12:28,770 --> 00:12:33,170 hori guztia, besterik gabe, buruz hitz egiten pertsonaia batzuk tamaina gainezka 275 00:12:33,170 --> 00:12:36,200 array edo array batzuk gehiago, oro har. 276 00:12:36,200 --> 00:12:38,822 Edozein galdera, eta gero, hau? 277 00:12:38,822 --> 00:12:39,780 Ez saiatu etxean. 278 00:12:39,780 --> 00:12:41,620 279 00:12:41,620 --> 00:12:42,300 >> Guztiak eskubidea. 280 00:12:42,300 --> 00:12:47,270 Beraz, malloc beraz, orain arte gure berri izan Lagun horretan memoria esleitu ahal izango dugu 281 00:12:47,270 --> 00:12:50,540 ez dugu zertan jakin batean aurrera, beraz, ez dugu nahi dugun 282 00:12:50,540 --> 00:12:52,920 sartu kodea gogorrean gure 12 bezalako programa zenbakiak. 283 00:12:52,920 --> 00:12:55,550 Erabiltzaileari esaten digu behin zenbat Datu berak nahi duen sarrerari, 284 00:12:55,550 --> 00:12:58,000 askoz memoria malloc dezakegu. 285 00:12:58,000 --> 00:13:01,484 >> Beraz, malloc bihurtzen da, izateko neurritan izan dugu berau erabiliz, 286 00:13:01,484 --> 00:13:03,900 esplizituki azken aldiz, eta, ondoren, you guys erabili dute 287 00:13:03,900 --> 00:13:08,160 unknowingly GetString egiteko zenbait aste, malloc memoria guztiak 288 00:13:08,160 --> 00:13:09,820 zeure deiturikoak dator. 289 00:13:09,820 --> 00:13:13,852 Eta horregatik GetString, esate baterako, memoria dinamikoki esleitu ahal 290 00:13:13,852 --> 00:13:16,060 zertan ari zaren jakin gabe aldez aurretik idazten joan, 291 00:13:16,060 --> 00:13:21,520 atzera entregatu erakuslea memoria horretan, eta memoria hori zurea da, oraindik ere mantendu, 292 00:13:21,520 --> 00:13:24,080 are itzultzen GetString ondoren. 293 00:13:24,080 --> 00:13:27,450 Zeren abisuaren finean hori pila etengabe ari da gora eta behera joan, 294 00:13:27,450 --> 00:13:27,950 gora eta behera. 295 00:13:27,950 --> 00:13:30,230 Eta doa bezain laster behera, edozein memoria esan nahi 296 00:13:30,230 --> 00:13:33,030 erabili funtzio hau egin beharko lukete ez da beste norbaitek erabil. 297 00:13:33,030 --> 00:13:34,570 Zabor balioak da orain. 298 00:13:34,570 --> 00:13:36,120 >> Baina arazoak izaten ari da hemen. 299 00:13:36,120 --> 00:13:39,360 Eta zer polita buruz malloc dela malloc memoria bideratzen denean hemen, 300 00:13:39,360 --> 00:13:42,070 Ez da eragin, egiteko Zati handiena, pila arabera. 301 00:13:42,070 --> 00:13:46,000 Eta beraz edozein funtzio sartu ahal izan dela malloc'd memoria, 302 00:13:46,000 --> 00:13:49,120 are GetString bezalako funtzio bat, bertan itzuliko da ondoren ere. 303 00:13:49,120 --> 00:13:51,700 >> Orain, malloc of converse doakoa da. 304 00:13:51,700 --> 00:13:53,900 Eta hain zuzen ere, arau duzu zietenean hasi beharko 305 00:13:53,900 --> 00:13:58,950 dagoen edozein, edozein, malloc erabili duzun edozein unetan doan erabili behar duzu zeure burua, azkenean, 306 00:13:58,950 --> 00:14:00,280 erakuslea berean. 307 00:14:00,280 --> 00:14:03,289 Denbora horretan guztian dute idazten dugu sido buggy, buggy kodea, arrazoi askorengatik. 308 00:14:03,289 --> 00:14:05,580 Baina horietako bat izan da CS50 liburutegia erabiliz, eta horrek 309 00:14:05,580 --> 00:14:09,010 berak nahita da buggy, memoria filtrazioak da. 310 00:14:09,010 --> 00:14:11,410 GetString izeneko duzun Edonoiz iragan asteetan zehar 311 00:14:11,410 --> 00:14:13,870 eragilearen galdetzen ari gara sistema, Linux, memoria da. 312 00:14:13,870 --> 00:14:15,780 Eta inoiz ez duzu behin harekiko zor. 313 00:14:15,780 --> 00:14:17,730 Eta hau ez da, in landu, gauza ona da. 314 00:14:17,730 --> 00:14:20,330 >> Eta Valgrind, bat pset 4 sartu diren tresnak, 315 00:14:20,330 --> 00:14:22,900 guztia laguntzen buruz orain horrelako bugs aurkitu. 316 00:14:22,900 --> 00:14:27,060 Baina zorionez Pset 4 ez duzu behar CS50 liburutegia edo GetString erabili. 317 00:14:27,060 --> 00:14:31,220 Beraz, memoria lotutako edozein bugs dira azken finean, zeure izango. 318 00:14:31,220 --> 00:14:34,060 >> Beraz, malloc baino gehiago da Horretarako komenigarria. 319 00:14:34,060 --> 00:14:37,420 Benetan orain konponduko dugu arazoak funtsean ezberdinak, 320 00:14:37,420 --> 00:14:41,640 eta funtsean, arazoak konpontzeko gehiago eraginkortasunez astean zero promesa arabera. 321 00:14:41,640 --> 00:14:44,720 Horrela, orain arte hau sexiest da datu-egitura izan dugu. 322 00:14:44,720 --> 00:14:47,804 Eta datu-egitura by esan nahi dut kontzeptualizatzeko memoria modu bat 323 00:14:47,804 --> 00:14:50,720 hori besterik esaten haratago doa modu batean, hau int bat da, hau char bat da. 324 00:14:50,720 --> 00:14:52,930 Kluster gauzei batera hasi ahal izango dugu. 325 00:14:52,930 --> 00:14:54,460 >> Beraz, array bat dirudi. 326 00:14:54,460 --> 00:14:57,270 Eta zer izan zen inguru batean gakoa array da zuk ematen dion 327 00:14:57,270 --> 00:14:59,724 back-to-back zatiak memoria, eta bakoitzak bere 328 00:14:59,724 --> 00:15:02,765 da mota bereko izango da, int, int, int, int edo char, char, char, 329 00:15:02,765 --> 00:15:03,330 char. 330 00:15:03,330 --> 00:15:04,496 Baina bada downsides batzuk bat da. 331 00:15:04,496 --> 00:15:06,570 Hau adibidez, tamaina sei array bat. 332 00:15:06,570 --> 00:15:10,650 Demagun sei array hau bete zenbakiak eta ondoren, edozein dela arrazoiengatik, 333 00:15:10,650 --> 00:15:13,187 Zure erabiltzaile eman nahi du you zazpigarren zenbaki bat. 334 00:15:13,187 --> 00:15:14,020 Non jarri duzu? 335 00:15:14,020 --> 00:15:15,490 336 00:15:15,490 --> 00:15:18,990 >> Zein da konponbidea baldin baduzu pila array bat sortu, 337 00:15:18,990 --> 00:15:22,030 esate baterako, besterik gabe, aste batera bi idazkera duten sartu dugu, 338 00:15:22,030 --> 00:15:23,730 Zenbaki baten barruan kortxete? 339 00:15:23,730 --> 00:15:25,160 340 00:15:25,160 --> 00:15:27,260 Beno, nik zu sei hauetan dagoena zenbakiak. 341 00:15:27,260 --> 00:15:28,530 Zein da zure sena izango litzateke? 342 00:15:28,530 --> 00:15:29,973 Non litzateke jarri nahi al duzu? 343 00:15:29,973 --> 00:15:30,860 >> IKUSLEEN: [INAUDIBLE] 344 00:15:30,860 --> 00:15:31,315 >> DAVID J. MALAN: Barkatu? 345 00:15:31,315 --> 00:15:32,380 >> IKUSLEEN: Jarri da bukaeran. 346 00:15:32,380 --> 00:15:33,796 >> DAVID J. MALAN: Jarri da bukaeran. 347 00:15:33,796 --> 00:15:35,880 Beraz, besterik gabe, eskubidea baino gehiago, kutxa honen kanpo. 348 00:15:35,880 --> 00:15:38,710 Zein polita izango litzateke, baina bihurtzen da eta ezin duzu hori egin. 349 00:15:38,710 --> 00:15:41,350 Nik ez baduzu eskatu duelako zatia memoria honen, 350 00:15:41,350 --> 00:15:44,490 kointzidentzia hori idatzia izan zitekeela hau da, beste aldagai batzuk erabiltzen ari 351 00:15:44,490 --> 00:15:45,030 guztiz. 352 00:15:45,030 --> 00:15:49,210 Think atzera aste bat edo, beraz, noiz ezarri dugu Zamyla eta Davin eta Gabe-izenak out 353 00:15:49,210 --> 00:15:49,930 memorian. 354 00:15:49,930 --> 00:15:51,638 Literalki ziren back to back back. 355 00:15:51,638 --> 00:15:53,550 Beraz, ezin dugu zertan edozein ren fidatu 356 00:15:53,550 --> 00:15:55,800 hemen baino gehiago da erabili me eskuragarri. 357 00:15:55,800 --> 00:15:56,990 >> Beraz, zer gehiago egin dezakezu? 358 00:15:56,990 --> 00:16:00,282 Beno, behin konturatu zazpi tamaina array bat behar, 359 00:16:00,282 --> 00:16:02,490 Besterik ezin duzu sortu bat zazpi tamaina array, ondoren, erabili 360 00:16:02,490 --> 00:16:05,950 loop edo, berriz, begizta bat, kopiatu berria array, 361 00:16:05,950 --> 00:16:09,680 eta, ondoren, nolabait, besterik kentzeko array honetan edo, besterik gabe gelditu erabiliz. 362 00:16:09,680 --> 00:16:12,130 Baina hori ez da bereziki eraginkorra. 363 00:16:12,130 --> 00:16:15,340 Azken batean, matrizeak ez utzi dinamikoki tamainaz duzu. 364 00:16:15,340 --> 00:16:17,900 >> Beraz, alde batetik, you get ausazko sarbidea, hau da, harrigarria. 365 00:16:17,900 --> 00:16:20,108 Da, aukera ematen duelako gauza egin gurekin zatitzea eta konkistatzeko bezala, 366 00:16:20,108 --> 00:16:23,100 bilaketa bitarra, denak ere dugu aipatu pantaila hemen. 367 00:16:23,100 --> 00:16:24,950 Baina eskuz margotzen duzu izkina batean. 368 00:16:24,950 --> 00:16:27,810 Sakatu bezain laster Zure array amaieran, 369 00:16:27,810 --> 00:16:29,980 oso bat egin behar duzu Eragiketa garestiak 370 00:16:29,980 --> 00:16:33,910 edo kode sorta oso bat idatzi Arazo horrekin orain aurre. 371 00:16:33,910 --> 00:16:36,680 >> Beraz, zer ordez bada izan genuen zerrenda bat izeneko zerbait, 372 00:16:36,680 --> 00:16:38,820 edo lotuta zerrenda bereziki? 373 00:16:38,820 --> 00:16:41,930 Zer lortu beharrean, bada laukizuzenak itzuli nahirik, 374 00:16:41,930 --> 00:16:45,730 gutxi uzten duten laukizuzenak ditugu wiggle gela pixka haien artean ere? 375 00:16:45,730 --> 00:16:49,670 Eta nintzen marrazten nahiz Nik hau Irudi edo argazki hau egokitutako 376 00:16:49,670 --> 00:16:54,696 testuak batetik hona itzuli izan back oso ordenatua nahirik, egia esan, 377 00:16:54,696 --> 00:16:56,820 laukizuzenak horietako bat crear memorian izan daiteke. 378 00:16:56,820 --> 00:16:58,028 Horietako bat sortu hemen izan daiteke. 379 00:16:58,028 --> 00:17:00,420 Horietako bat sortu hemen izan daiteke, hemen, eta abarren gainean. 380 00:17:00,420 --> 00:17:02,910 >> Baina genuen zer bada, kasu honetan, geziak 381 00:17:02,910 --> 00:17:05,650 nolabait lotzeko horiek laukizuzenak elkarrekin? 382 00:17:05,650 --> 00:17:08,170 Izan ere, tekniko bat ikusi dugu, gezi bat Enkarnazio. 383 00:17:08,170 --> 00:17:09,839 384 00:17:09,839 --> 00:17:13,710 Zer erabili dugu azken urtean egun hori, kanpaia azpian, 385 00:17:13,710 --> 00:17:15,210 gezi baten ordezkaria da? 386 00:17:15,210 --> 00:17:16,290 387 00:17:16,290 --> 00:17:17,349 Erakuslea da, ezta? 388 00:17:17,349 --> 00:17:19,780 >> Beraz, zer bada ordez besterik zenbakiak gordetzeko, 389 00:17:19,780 --> 00:17:23,130 atsegin 9, 17, 22, 26, 34, zer bada ez gordetzen dugu 390 00:17:23,130 --> 00:17:27,079 Zenbaki bat bakarra baina erakuslea esaterako, zenbaki bakoitzaren ondoan? 391 00:17:27,079 --> 00:17:30,690 Beraz, askoz ere atsegin duzu haria litzateke oihal sorta osoa bidez orratz, 392 00:17:30,690 --> 00:17:32,950 nolabait tying gauzak elkarrekin, era berean, ahal 393 00:17:32,950 --> 00:17:35,550 erakusleak, hala egiten dugu geziak incarnated hemen, 394 00:17:35,550 --> 00:17:38,550 motatako ehuntzen elkarrekin banakako laukizuzenotan 395 00:17:38,550 --> 00:17:41,780 erakuslea eraginkorrean erabiliz Zenbaki bakoitzaren ondoan 396 00:17:41,780 --> 00:17:46,065 hurrengo zenbaki batzuk seinalatzen du, puntu hau, aldi berean, hurrengo zenbaki batzuk? 397 00:17:46,065 --> 00:17:47,940 Beraz, beste era batera esanda, zer Benetan nahi badugu 398 00:17:47,940 --> 00:17:49,820 honen antzeko zerbait ezartzeko? 399 00:17:49,820 --> 00:17:53,610 Beno, zoritxarrez, laukizuzenotan, Gutxienez 9 duena, 17, 22, 400 00:17:53,610 --> 00:17:57,040 eta abar, horiek ez dira jada Zenbaki bakar karratu polita. 401 00:17:57,040 --> 00:17:59,960 Beheko, laukizuzen 9 azpitik, esate baterako, 402 00:17:59,960 --> 00:18:04,330 adierazten du zer egin beharko lukete erakuslea, 32 bit izan. 403 00:18:04,330 --> 00:18:09,460 Orain, ez naiz oraindik datu-mota edozein jakitun C int bat, ez bakarrik ematen dizu 404 00:18:09,460 --> 00:18:11,630 baina erakuslea guztira. 405 00:18:11,630 --> 00:18:15,020 >> Beraz, zein da konponbidea nahi badugu Gure honi erantzuna asmatu? 406 00:18:15,020 --> 00:18:15,760 Bai? 407 00:18:15,760 --> 00:18:16,640 >> IKUSLEEN: [INAUDIBLE] 408 00:18:16,640 --> 00:18:17,360 >> DAVID J. MALAN: Zer da hori? 409 00:18:17,360 --> 00:18:17,880 >> IKUSLEEN: egitura berria. 410 00:18:17,880 --> 00:18:19,590 >> DAVID J. MALAN: Bai, eta horregatik hain ez dute egitura berri bat sortu dugu, 411 00:18:19,590 --> 00:18:20,920 edo C, egitura bat ere? 412 00:18:20,920 --> 00:18:25,990 Ikusi dugu structs aurretik, laburki bada, non landu ikaslea egitura bat dugu 413 00:18:25,990 --> 00:18:27,780 hau bezalako, nor izen bat eta etxe bat izan. 414 00:18:27,780 --> 00:18:31,980 Pset 3 breakout osoa bat erabili duzu structs-- GRect eta GOvals mordo 415 00:18:31,980 --> 00:18:34,810 Stanford Horretarako sortutako Informazio kluster elkarrekin. 416 00:18:34,810 --> 00:18:38,580 Beraz, zer ideia hori bera hartzen badugu keywords "typedef" eta "egiturari," 417 00:18:38,580 --> 00:18:42,890 eta, ondoren, ikaslea baterakoak gauza batzuk, eta eboluzionatzen honek jarraian sartu: 418 00:18:42,890 --> 00:18:46,210 typedef struct nodo eta nodo da besterik informatika orokorrean 419 00:18:46,210 --> 00:18:49,980 datu-egitura batean zerbait epe, datu-egitura batean edukiontzi bat. 420 00:18:49,980 --> 00:18:53,900 Nodo bat aldarrikatzen dut hori behar du int n bat, erabat sinplea da, 421 00:18:53,900 --> 00:18:58,810 eta, ondoren, apur bat gehiago cryptically, Bigarren lerro honetan, egitura nodo * hurrengo. 422 00:18:58,810 --> 00:19:01,300 Baina gutxiago termino teknikoetan, zer bigarren lerroa dela 423 00:19:01,300 --> 00:19:02,980 kizkur giltza barruan kodearen? 424 00:19:02,980 --> 00:19:03,737 Bai? 425 00:19:03,737 --> 00:19:04,851 >> IKUSLEEN: [INAUDIBLE] 426 00:19:04,851 --> 00:19:06,600 DAVID J. MALAN: A nodo beste erakuslea. 427 00:19:06,600 --> 00:19:09,910 Beraz, admittedly, sintaxia apur bat críptica. 428 00:19:09,910 --> 00:19:13,250 Baina hitzez hitz irakurri nahi izanez gero, hurrengo aldagai baten izena da. 429 00:19:13,250 --> 00:19:14,410 Zein da bere datu-mota? 430 00:19:14,410 --> 00:19:18,206 Luze pixka bat denbora hau da, baina mota egitura nodo da *. 431 00:19:18,206 --> 00:19:22,960 Ikusi dugu zerbait izar Edonoiz, hori esan nahi du datu-mota horretan erakuslea da. 432 00:19:22,960 --> 00:19:26,810 Beraz, hurrengo itxuraz bat egitura nodo bat erakuslea. 433 00:19:26,810 --> 00:19:28,310 >> Orain, zer egitura nodo bat da? 434 00:19:28,310 --> 00:19:31,044 Beno, nabarituko horiek ikusten duzu goiko eskuineko hitz bera. 435 00:19:31,044 --> 00:19:33,960 Eta hain zuzen ere, hitza ere ikusiko duzu "Node" behera hemen beheko ezkerreko. 436 00:19:33,960 --> 00:19:35,640 Eta hori da, benetan onerako besterik ez. 437 00:19:35,640 --> 00:19:39,930 Ohartu gure ikaslea definizioa dela Han hitza "ikaslea" behin bakarrik da. 438 00:19:39,930 --> 00:19:42,510 Eta hori da, ikasle bat delako kezka ez zen auto-erreferentziazko. 439 00:19:42,510 --> 00:19:45,340 Ez da ikasle baten barruan nothing duten beste ikasle seinalatu behar du, 440 00:19:45,340 --> 00:19:45,610 persay. 441 00:19:45,610 --> 00:19:47,630 Sort hori izango litzateke mundu errealean bitxi. 442 00:19:47,630 --> 00:19:50,880 >> Baina bat lotune batekin lotuta zerrenda, nodo bat nahi egiten dugu 443 00:19:50,880 --> 00:19:53,970 antzeko objektu bat erreferentziala izan nahi du. 444 00:19:53,970 --> 00:19:57,900 Eta beraz, nabarituko aldaketa hemen ez da besterik zer kizkur giltza barruan. 445 00:19:57,900 --> 00:20:00,800 Baina hitza "node" gehitu dugu goialdean baita 446 00:20:00,800 --> 00:20:02,930 gehituz beheraino lieu "ikasle". 447 00:20:02,930 --> 00:20:06,000 Eta hau xehetasun tekniko bat baino ez da beraz, berriro ere, zure datu-egitura 448 00:20:06,000 --> 00:20:11,380 auto-erreferentziazko izan daiteke, bat, beraz, node esaterako, beste nodo seinalatu. 449 00:20:11,380 --> 00:20:13,840 >> Beraz, zer da hau, azken finean, Gurekin esan nahi joan? 450 00:20:13,840 --> 00:20:17,560 Beno, bat, gauzak honen barruan gure nodoaren edukia da. 451 00:20:17,560 --> 00:20:19,360 Gauza hau hemen, Goiko eskuineko, besterik ez da, beraz, 452 00:20:19,360 --> 00:20:20,860 hori, berriz, geure burua aipatzeko. 453 00:20:20,860 --> 00:20:23,401 Eta gero outermost gauzak, node epe berri bat da, nahiz eta, 454 00:20:23,401 --> 00:20:25,500 agian, ez da oraindik ikaslea eta zer berdina 455 00:20:25,500 --> 00:20:27,520 SPL kanpaia azpian zegoen. 456 00:20:27,520 --> 00:20:31,095 >> Beraz nahi dugu, gaur egun, bada, hasteko lotuta zerrenda hau gauzatzeko, 457 00:20:31,095 --> 00:20:33,220 nola liteke itzuli gara Honen antzeko zerbait kodea? 458 00:20:33,220 --> 00:20:35,350 Beno, ea besterik gabe bat programa baten adibidea 459 00:20:35,350 --> 00:20:36,840 benetan lotuta zerrenda bat erabiltzen du. 460 00:20:36,840 --> 00:20:40,870 Artean, gaur egungo banaketa kodea Zerrenda Zero izeneko programa bat da. 461 00:20:40,870 --> 00:20:44,980 Eta hau exekutatu bada super bat sortu dut GUI simple, saguaren, 462 00:20:44,980 --> 00:20:46,460 baina benetan besterik ez printf. 463 00:20:46,460 --> 00:20:50,930 Eta orain ez dut menu bat gutxi eman neure burua options-- ezabatu, Txertatu, bilatu, 464 00:20:50,930 --> 00:20:51,750 eta Traverse. 465 00:20:51,750 --> 00:20:52,630 Eta Irten. 466 00:20:52,630 --> 00:20:55,970 Hauek dira bat-eragiketak besterik ez ohikoa Datuen egitura link zerrenda bat bezala ezagutzen. 467 00:20:55,970 --> 00:20:58,409 >> Orain, ezabatu da joan zerrendako zenbaki bat ezabatzeko. 468 00:20:58,409 --> 00:21:00,200 Txertatu Honez gehitzeko joan zerrendako zenbaki bat. 469 00:21:00,200 --> 00:21:02,181 Search dago begiratzen joan Zerrendako zenbakia da. 470 00:21:02,181 --> 00:21:04,930 Eta traverse fancy modu bat besterik ez da esaten, zerrendan zehar oinez, 471 00:21:04,930 --> 00:21:06,245 inprimatu, baina hori da. 472 00:21:06,245 --> 00:21:07,720 Ez aldatu inolaz ere. 473 00:21:07,720 --> 00:21:08,570 >> Hargatik saiatu honekin. 474 00:21:08,570 --> 00:21:10,160 Dezagun aurrera eta idatzi 2. 475 00:21:10,160 --> 00:21:12,710 Eta gero noa joan zenbakia sartu, esaten 9. 476 00:21:12,710 --> 00:21:13,620 Sartu. 477 00:21:13,620 --> 00:21:17,480 Eta orain nire programa besterik ez da programatutako esan, zerrenda da gaur egun 9. 478 00:21:17,480 --> 00:21:20,190 Orain, aurrera joan ahal naiz eta ez Txertatu berriro, utzi 479 00:21:20,190 --> 00:21:23,680 aurrera eta mapan handiago eta idatzi 17. 480 00:21:23,680 --> 00:21:25,770 Orain nire zerrenda 9 da, eta gero 17. 481 00:21:25,770 --> 00:21:27,750 Txertatu berriro egin dut bada, egin dezagun bat. 482 00:21:27,750 --> 00:21:32,400 Horren ordez 22koa, irudi bakoitzeko dugu dira hemen begira, aurrera salto me utzi 483 00:21:32,400 --> 00:21:34,630 eta sartu 26 hurrengo. 484 00:21:34,630 --> 00:21:36,230 Beraz, ez dut 26 idatzi behar du. 485 00:21:36,230 --> 00:21:37,755 Zerrenda da, espero nuen bezala. 486 00:21:37,755 --> 00:21:40,630 Baina orain, besterik gabe, kode hori gero ikusi da malgua izango da, let me now 487 00:21:40,630 --> 00:21:43,520 mota 22, gutxienez kontzeptualki, Oraindik badugu 488 00:21:43,520 --> 00:21:46,520 Hau mantentzea ordenatuta, eta hori da hain zuzen ere, taldeari beste gol izateko oraintxe joan, 489 00:21:46,520 --> 00:21:48,690 beharko joan 17 eta 26 artean. 490 00:21:48,690 --> 00:21:50,270 Beraz Sartu sakatu dut. 491 00:21:50,270 --> 00:21:51,380 Izan ere, lan egiten du. 492 00:21:51,380 --> 00:21:54,950 Eta, beraz, gaur egun utzi txertatu zidan azkena, argazkia, 34 per. 493 00:21:54,950 --> 00:21:55,450 >> Guztiak eskubidea. 494 00:21:55,450 --> 00:21:58,980 Beraz, oraingoz, utzi hau xedatu me Ezabatu eta Traverse eta bilatu egin, 495 00:21:58,980 --> 00:21:59,760 Izan ere, lan egiteko. 496 00:21:59,760 --> 00:22:04,180 Izan ere, ez dut exekutatu bada Search, dezagun bilatu 22 zenbakia da, Sartu. 497 00:22:04,180 --> 00:22:05,010 22 aurkitu ditu. 498 00:22:05,010 --> 00:22:07,580 Beraz, horixe da hau programa zerrenda Zero ez. 499 00:22:07,580 --> 00:22:10,230 >> Baina zer da benetan gertatzen hori inplementatzen hau? 500 00:22:10,230 --> 00:22:14,530 Beno, lehenik eta behin agian daukat, eta hain zuzen ere, Izan dut, fitxategi list0.h izenekoa. 501 00:22:14,530 --> 00:22:16,540 502 00:22:16,540 --> 00:22:20,690 Eta nonbait ez da hau line, typedef, egitura nodo, 503 00:22:20,690 --> 00:22:24,850 gero nire giltza kizkur daukat, int n, eta orduan struct-- zer zen definizioa? 504 00:22:24,850 --> 00:22:26,530 505 00:22:26,530 --> 00:22:28,545 Egitura nodo hurrengo. 506 00:22:28,545 --> 00:22:29,920 507 00:22:29,920 --> 00:22:31,045 Beraz, izar behar dugu. 508 00:22:31,045 --> 00:22:33,420 Orain teknikoki lortzeko sartu ginen hemen marrazketa ohitura. 509 00:22:33,420 --> 00:22:35,670 Testu-liburuak ikusi ahal izango duzu, eta online erreferentzia egiten han. 510 00:22:35,670 --> 00:22:36,660 It funtzionalki baliokidea. 511 00:22:36,660 --> 00:22:37,980 Hain zuzen ere, apur bat gehiago tipikoa da. 512 00:22:37,980 --> 00:22:40,563 Baina zer koherentea izango naiz Azken aldiz egin dugu eta hori egin. 513 00:22:40,563 --> 00:22:42,350 Eta gero, azkenik, naiz hau egin dut. 514 00:22:42,350 --> 00:22:45,550 >> Beraz Goiburu-fitxategi batean nonbait, list0.h saioa 515 00:22:45,550 --> 00:22:49,200 gaur struct definizio hau da, eta, agian, beste gauza batzuk. 516 00:22:49,200 --> 00:22:52,580 Bitartean list0c ere ez dago zenbait gauza bat izango da. 517 00:22:52,580 --> 00:22:54,740 Baina goaz besterik hasiko da, eta ez hau amaitzeko. 518 00:22:54,740 --> 00:22:59,690 List0.h artxibo bat nahi dut nire C fitxategia sartzeko. 519 00:22:59,690 --> 00:23:03,910 Eta gero, uneren batean nago int dute, nagusia, baliorik gabe utzi egingo da. 520 00:23:03,910 --> 00:23:06,530 Eta gero noa joan eduki batzuk egiteke dago hemen. 521 00:23:06,530 --> 00:23:10,620 Dut ere bat izan da joan prototipoa, void, bilatu, int bezala, 522 00:23:10,620 --> 00:23:13,610 n, eta horren helburua bizitza da bilatu elementu bat da. 523 00:23:13,610 --> 00:23:18,310 Eta gero behera hemen ere aldarrikatzen dut Gaur egungo kodea, void, bilatu, int, n, 524 00:23:18,310 --> 00:23:21,020 puntu eta koma ez, baina giltza kizkur irekia. 525 00:23:21,020 --> 00:23:25,049 Eta orain, nolabait bilatu nahi dut Zerrenda horretako elementu bat da. 526 00:23:25,049 --> 00:23:27,340 Baina ez dugu nahikoa pantailan informazio oraindik. 527 00:23:27,340 --> 00:23:29,800 Ez, egia esan, ez daukat zerrenda bera irudikatzen. 528 00:23:29,800 --> 00:23:33,070 Beraz, modu batean martxan jarri ahal izan dugu lotutako programa batean zerrenda bat 529 00:23:33,070 --> 00:23:37,520 mota da zerbait egin nahi dut bezala aitortzen lotuta sortu hemen zerrenda. 530 00:23:37,520 --> 00:23:40,520 Lana errazteko, noa egiteko hau global, are dugu, oro har, nahiz eta 531 00:23:40,520 --> 00:23:41,645 behar ez egin hau gehiegi. 532 00:23:41,645 --> 00:23:43,260 Baina adibide hau errazteko izango da. 533 00:23:43,260 --> 00:23:45,890 Beraz, aldarrikatu nahi dut lotuta zerrenda hemen. 534 00:23:45,890 --> 00:23:47,010 Orain, nola liteke hori? 535 00:23:47,010 --> 00:23:48,810 536 00:23:48,810 --> 00:23:50,750 >> Hona hemen zerrenda lotuta baten irudia da. 537 00:23:50,750 --> 00:23:53,030 Eta ez dut benetan Oraingoz, nola jakin 538 00:23:53,030 --> 00:23:56,710 To ordezkari buruz joan noa bakar batera hainbeste gauza 539 00:23:56,710 --> 00:23:58,040 memorian aldagai. 540 00:23:58,040 --> 00:23:59,160 Baina uste atzera une bat. 541 00:23:59,160 --> 00:24:00,830 Denbora horretan guztian izan dugu kateak, eta bertan dugu, ondoren 542 00:24:00,830 --> 00:24:02,913 agerian array izateko pertsonaiak, bertan dugu, ondoren 543 00:24:02,913 --> 00:24:05,740 agerian nahiko luke erakuslea Lehen karaktere arte 544 00:24:05,740 --> 00:24:08,890 karaktere array bat hori nulua amaitu. 545 00:24:08,890 --> 00:24:13,530 Beraz, logika hori, eta honekin argazkia zure pentsamenduak seeding mota, 546 00:24:13,530 --> 00:24:17,964 zer dugu benetan ere idatzi behar gure kodea lotutako zerrenda bat irudikatzeko? 547 00:24:17,964 --> 00:24:21,130 Zenbat informazio hori egin behar dugu C kodea harrapatzeko, esango zenuke? 548 00:24:21,130 --> 00:24:22,654 549 00:24:22,654 --> 00:24:23,154 Bai? 550 00:24:23,154 --> 00:24:24,738 >> IKUSLEEN: nodoaren erakuslea behar dugu. 551 00:24:24,738 --> 00:24:26,237 DAVID J. MALAN: nodo bat erakuslea. 552 00:24:26,237 --> 00:24:29,320 Zehazki, zein nodo litzateke zure senak izan erakuslea mantendu nahi? 553 00:24:29,320 --> 00:24:30,026 >> IKUSLEEN: lehenengo nodoa. 554 00:24:30,026 --> 00:24:31,942 >> DAVID J. MALAN: Bai, Seguru asko lehena. 555 00:24:31,942 --> 00:24:34,030 Eta nabarituko, lehena node beste forma bat da. 556 00:24:34,030 --> 00:24:37,690 Bakarrik egitura, tamaina erdia da, hain zuzen ere, erakuslea bakarra delako. 557 00:24:37,690 --> 00:24:44,650 Beraz, zer, hain zuzen ere egin dezakezu deklaratzeko lotutako zerrenda bat Nodo mota izan *. 558 00:24:44,650 --> 00:24:47,780 Eta dezagun deitu besterik ez da lehenengo eta abiarazi null. 559 00:24:47,780 --> 00:24:49,910 Beraz, null, berriz, datozen Irudian hemen sartu. 560 00:24:49,910 --> 00:24:53,620 Ez bakarrik null berezi bat bezalakoa gisa erabiltzen da bueltan GetString bezalako gauzak balioa 561 00:24:53,620 --> 00:24:57,770 eta malloc, nulua da, halaber, zero erakuslea, erakuslea eza, 562 00:24:57,770 --> 00:24:58,430 izango bada. 563 00:24:58,430 --> 00:25:00,309 Besterik gabe esan nahi du ezer ez da oraindik hemen. 564 00:25:00,309 --> 00:25:02,100 Orain lehen, nik ezin izan dut Ezer deitu. 565 00:25:02,100 --> 00:25:04,200 "Zerrenda" I deitu izan zitekeela edo edozein gauza batzuen kopurua. 566 00:25:04,200 --> 00:25:06,960 Baina deitzen naiz "lehen", beraz, lerro gora irudi honekin. 567 00:25:06,960 --> 00:25:10,280 Beraz, besterik gabe, kate bat bezalakoa izan daiteke bere lehenengo byte helbidea dituzten, 568 00:25:10,280 --> 00:25:11,280 beraz, lotuta zerrenda can. 569 00:25:11,280 --> 00:25:13,480 Eta beste datu batzuk ikusiko ditugu egiturak ordezkatuta egon 570 00:25:13,480 --> 00:25:16,700 erakuslea bakar batekin, 32-bit gezi bat, seinalatuz 571 00:25:16,700 --> 00:25:18,740 egituran oso lehen nodo at. 572 00:25:18,740 --> 00:25:20,340 >> Baina orain dezagun aurrea arazo bat. 573 00:25:20,340 --> 00:25:23,230 Bakarra naiz gogoratuz gero nire programa helbidean 574 00:25:23,230 --> 00:25:27,220 lehen nodoa, lehena datu egitura honetan Laukizuzena, 575 00:25:27,220 --> 00:25:31,760 zer hobeto buruzko kasua izan gaurko nire zerrenda gainerako ezartzeko? 576 00:25:31,760 --> 00:25:35,820 Zer da hori gertatzen gakoa xehetasun bat hau benetan funtzionatzen bermatzeko? 577 00:25:35,820 --> 00:25:39,250 Eta arabera "benetan funtzionatzen" I esan nahi, askoz kate bat bezala, 578 00:25:39,250 --> 00:25:42,180 lets go lehen pertsonaia gurekin Davin-ren bigarren izenean, 579 00:25:42,180 --> 00:25:44,755 hirugarrenean to, to the laugarren, eta amaieran oso, 580 00:25:44,755 --> 00:25:47,880 nola jakin Oraindik amaieran gara, ez dugu itxura hau lotuta zerrenda? 581 00:25:47,880 --> 00:25:50,035 582 00:25:50,035 --> 00:25:50,660 Noiz nulua da. 583 00:25:50,660 --> 00:25:53,640 Eta sort hau irudikatzen dut Ingeniari elektriko indar bat bezala, 584 00:25:53,640 --> 00:25:56,420 dituen oinarri gutxirekin sinboloa da, era askotako. 585 00:25:56,420 --> 00:25:58,246 Baina hori besterik esan nahi kasu honetan nulua. 586 00:25:58,246 --> 00:26:00,370 Edozein zenbaki marraztu dezakezu formulak, baina egile honen 587 00:26:00,370 --> 00:26:02,800 Gertatu sinbolo hau erabili ahal izateko. 588 00:26:02,800 --> 00:26:06,260 >> Beraz, luzea dugu stringing ari gisa nodo horiek guztiak elkarrekin, 589 00:26:06,260 --> 00:26:08,600 bakarrik gogoratzeko non lehenengoa da, beraz, luzea 590 00:26:08,600 --> 00:26:11,760 Ikur berezi bat jarri dugu at zerrendako azken nodo, 591 00:26:11,760 --> 00:26:15,130 eta nulua erabiliko dugu, hori delako zer dugu gurekin eskuragarri, 592 00:26:15,130 --> 00:26:16,480 zerrenda hau osatu da. 593 00:26:16,480 --> 00:26:20,190 Eta besterik ez bada ere emango dizu erakuslea lehenengo elementua, duzu, programatzailea, 594 00:26:20,190 --> 00:26:22,486 zalantzarik gabe, gainerako sar daitezke. 595 00:26:22,486 --> 00:26:24,360 Baina dezagun utzi zure adimenak pixka bat ibiltzea, 596 00:26:24,360 --> 00:26:26,140 Oraindik ez dute dagoeneko Nahiko wandered-- zer da 597 00:26:26,140 --> 00:26:28,723 exekutatzen denbora izango da Zerrenda honetan ezer aurkitzea? 598 00:26:28,723 --> 00:26:30,450 599 00:26:30,450 --> 00:26:33,470 Malditos da, big n O da, eta hori ez da txarra, zuzentasuna. 600 00:26:33,470 --> 00:26:34,800 Baina lineala da. 601 00:26:34,800 --> 00:26:37,980 Amore eman dugu zer Ezaugarri gehiago mugituz Matrizeen 602 00:26:37,980 --> 00:26:43,130 dinamikoki Argazki hau lortze ehundutako elkarrekin edo nodoak lotuta? 603 00:26:43,130 --> 00:26:44,970 604 00:26:44,970 --> 00:26:46,687 Amore eman dugu ausazko sarbidea. 605 00:26:46,687 --> 00:26:48,770 Array bat da, polita delako matematikoki guztia 606 00:26:48,770 --> 00:26:50,340 da atzera itzuli Itzuli behar. 607 00:26:50,340 --> 00:26:52,370 Nahiz eta argazki hau, nahiz itxura polita, eta are 608 00:26:52,370 --> 00:26:55,830 badirudi, nahiz eta nodo horiek bezala nicely bananduta gain, errealitatean 609 00:26:55,830 --> 00:26:56,830 edozein lekutan izan dira. 610 00:26:56,830 --> 00:27:01,590 OX1, Ox50, ox123, Ox99, horiek nodes edonon izan daiteke. 611 00:27:01,590 --> 00:27:05,960 Malloc du memoria esleitu delako arazoak izaten ari da, baina edonon, zeure. 612 00:27:05,960 --> 00:27:09,080 Ez dute zertan Badakizu, hori da itzuli itzuli itzuli izango da. 613 00:27:09,080 --> 00:27:12,460 Eta, beraz, errealitatearen argazki hau ez nahiko polit hau izango. 614 00:27:12,460 --> 00:27:16,140 >> Beraz, pixka bat hartu du lan funtzioa hau ezartzeko. 615 00:27:16,140 --> 00:27:17,880 Hargatik ezartzeko bilaketa orain. 616 00:27:17,880 --> 00:27:20,250 Eta ikusiko dugu bat mota clever hau egiteko modu. 617 00:27:20,250 --> 00:27:24,660 Beraz, naiz bilaketa funtzio bat bada eta Ez dut jakin, aldagai bat, osokoa n 618 00:27:24,660 --> 00:27:28,490 begiratu, jakin behar dut barruan bilatzen sintaxia berria 619 00:27:28,490 --> 00:27:32,400 egitura hori of to, n aurkituko adierazi. 620 00:27:32,400 --> 00:27:33,210 Beraz, egin dezagun hau. 621 00:27:33,210 --> 00:27:36,030 >> Beraz, lehen ez naiz joango aurrera eta deklaratzeko nodo *. 622 00:27:36,030 --> 00:27:39,400 Eta deitu dut joan erakuslea, besterik ez konbentzio. 623 00:27:39,400 --> 00:27:41,710 Eta ez dut abiarazi lehen joan. 624 00:27:41,710 --> 00:27:43,770 Eta orain hau egin ahal izango dut modu zenbaki bat ere. 625 00:27:43,770 --> 00:27:45,436 Baina nago planteamendu komun bat hartzen joan nintzen. 626 00:27:45,436 --> 00:27:50,180 Erakuslea ez da berdina bitartean baliogabea eta baliozko sintaxia da. 627 00:27:50,180 --> 00:27:54,550 Eta horrek esan nahi du, besterik gabe, honako hau egin, beraz, betiere ezer ez ari zaren seinalatuz. 628 00:27:54,550 --> 00:27:55,800 Zer egin nahi dut? 629 00:27:55,800 --> 00:28:01,939 >> Bada erakuslea dot n, utzi zatoz me back horretara, berdin berdin, zer? 630 00:28:01,939 --> 00:28:03,105 Zer balio nabil for? 631 00:28:03,105 --> 00:28:04,920 632 00:28:04,920 --> 00:28:06,590 Gainditu zen benetako n The. 633 00:28:06,590 --> 00:28:09,020 Hortaz, hona hemen ezaugarri bat C eta hizkuntza askotan. 634 00:28:09,020 --> 00:28:13,705 Nahiz izeneko egitura nodo arren du balioa n bat, guztiz zilegia 635 00:28:13,705 --> 00:28:17,530 tokiko argudio bat ere badute edo n izeneko aldagai. 636 00:28:17,530 --> 00:28:20,085 Zeren, nahiz eta dugu, batera giza begiak, bereiz daitezke 637 00:28:20,085 --> 00:28:22,087 n hau da ziur aski n hau ezberdinetan. 638 00:28:22,087 --> 00:28:23,420 Sintaxia ezberdina delako. 639 00:28:23,420 --> 00:28:26,211 Lortu duzu dot eta erakuslea, hau, berriz, besteak beste, gauza ez du. 640 00:28:26,211 --> 00:28:27,290 Beraz, hau ondo dago. 641 00:28:27,290 --> 00:28:29,120 Hori da OK horiek gauza bera deitzeko. 642 00:28:29,120 --> 00:28:32,380 >> Ez dut hau aurkituko duzu, naiz zerbait egin nahi du 643 00:28:32,380 --> 00:28:35,000 bezala iragarriko aurkitu dugun n. 644 00:28:35,000 --> 00:28:37,930 Eta gisa utziko dugu iruzkin edo pseudocode kodea. 645 00:28:37,930 --> 00:28:40,190 Bestela, eta hemen zati interesgarri, zer 646 00:28:40,190 --> 00:28:47,320 egin uneko nodoaren bada egin nahi dut ez da n horri buruz zaintzen dut dauzkaten? 647 00:28:47,320 --> 00:28:50,700 Zelan honako hau lortzen dut? 648 00:28:50,700 --> 00:28:53,710 Gero, nire hatz at Une PTR da, eta hori da, 649 00:28:53,710 --> 00:28:55,920 edozein dela seinalatuz hasiera batean apuntatzen da, 650 00:28:55,920 --> 00:28:59,290 nola mugitu nire hatz dut kodea hurrengo nodo nahi? 651 00:28:59,290 --> 00:29:01,915 Beno, zer da breadcrumb gara Kasu honetan, jarraitu egingo? 652 00:29:01,915 --> 00:29:03,464 653 00:29:03,464 --> 00:29:04,380 IKUSLEEN: [INAUDIBLE]. 654 00:29:04,380 --> 00:29:05,630 DAVID J. MALAN: Bai, eta, beraz, hurrengo. 655 00:29:05,630 --> 00:29:06,640 656 00:29:06,640 --> 00:29:09,824 Beraz, joan I itzuli bada, nire Hemen kodea, hain zuzen ere, naiz 657 00:29:09,824 --> 00:29:12,990 Aurretik joan eta esan erakuslea, joan eta bertan aldi baterako aldagai bat da, ez da 658 00:29:12,990 --> 00:29:15,320 Izen bitxi bat, ptr, baina Besterik temp-- bezala 659 00:29:15,320 --> 00:29:19,234 Erakuslea ezarri noa edozein dela erakuslea is-- berdina 660 00:29:19,234 --> 00:29:22,150 eta, berriro ere, hau da bat izango da joan une dot baten ondoan dagoen buggy txiki. 661 00:29:22,150 --> 00:29:23,551 662 00:29:23,551 --> 00:29:26,550 Beste era batera esanda, nik hartu dut nire hatz hori nodo honetan seinalatu 663 00:29:26,550 --> 00:29:31,247 eta hemen naiz esan du, badakizu zer, hartu hurrengo eremu begirada bat 664 00:29:31,247 --> 00:29:33,330 eta mugitu hatza edozein dela at da seinalatuz. 665 00:29:33,330 --> 00:29:35,163 Eta hori da joan errepikatu, errepikatu, errepikatu. 666 00:29:35,163 --> 00:29:37,630 Baina nire hatz egiten du gelditzeko ezer egiten? 667 00:29:37,630 --> 00:29:40,095 Ahalik eta azkarren zer kodea Jaurtiketa ildotik? 668 00:29:40,095 --> 00:29:40,970 IKUSLEEN: [INAUDIBLE] 669 00:29:40,970 --> 00:29:43,060 DAVID J. MALAN: bada puntu bitartean erakuslea ez da berdina null. 670 00:29:43,060 --> 00:29:44,900 Uneren nire hatz-en null at egon apuntatzen joan 671 00:29:44,900 --> 00:29:47,070 eta naiz konturatzen joan nintzen duen zerrenda honen amaieran da. 672 00:29:47,070 --> 00:29:48,910 Orain, hau da, pixka bat sinpletasunagatik zuri gezurra. 673 00:29:48,910 --> 00:29:51,580 Bihurtzen da, nahiz eta besterik ikasi idazkera dot hau 674 00:29:51,580 --> 00:29:55,220 egituren, erakuslea ez da egitura bat. 675 00:29:55,220 --> 00:29:56,580 ptr da zer? 676 00:29:56,580 --> 00:29:58,350 Just gehiago nitpicky izan. 677 00:29:58,350 --> 00:29:59,720 678 00:29:59,720 --> 00:30:01,360 Nodo bat erakuslea da. 679 00:30:01,360 --> 00:30:03,120 Ez da nodo bat bera. 680 00:30:03,120 --> 00:30:06,650 Izarra ez da hemen izan nuen bada, erakuslea absolutely-- nodo bat da. 681 00:30:06,650 --> 00:30:08,650 Honek aste bat bezalakoa da aldagai baten aitorpena, 682 00:30:08,650 --> 00:30:10,120 nahiz eta hitza "node" berria da. 683 00:30:10,120 --> 00:30:13,860 >> Baina bat aurkeztu dugu bezain laster izarra, Orain bat, nodo bat erakuslea. 684 00:30:13,860 --> 00:30:17,960 Eta zoritxarrez, ezin duzu erabili dot erakuslea for idazkera. 685 00:30:17,960 --> 00:30:21,070 Gezi erabili behar duzu idazkera, eta horrek, harrigarria, 686 00:30:21,070 --> 00:30:23,470 lehen aldiz pieza edozein da sintaxiaren itxura intuitiboa. 687 00:30:23,470 --> 00:30:25,245 Hau literalki gezi baten itxura. 688 00:30:25,245 --> 00:30:26,370 Eta, beraz, hori gauza ona da. 689 00:30:26,370 --> 00:30:28,995 Eta hemen behera, hitzez hitz gezi baten itxura. 690 00:30:28,995 --> 00:30:31,870 Beraz, uste dut hori la-- ez ez dut pentsatzen ari naiz hemen baino gehiago-konpromisoa dut 691 00:30:31,870 --> 00:30:34,120 uste duten azken pieza berria ari gara ikusten sintaxia joan. 692 00:30:34,120 --> 00:30:36,500 Eta zorionez, hain zuzen ere, apur bat intuitiboagoa. 693 00:30:36,500 --> 00:30:40,090 >> Orain, zuk dutenentzako modu zaharra nahiago izatea, 694 00:30:40,090 --> 00:30:42,550 oraindik dot idazkera erabili ahal izango duzu. 695 00:30:42,550 --> 00:30:45,380 Baina per Astelehena en bezala elkarrizketa, lehen genuen 696 00:30:45,380 --> 00:30:50,530 Hara joan behar, horretara joan helbidera, eta, ondoren, eremuan sartzeko. 697 00:30:50,530 --> 00:30:51,897 Beraz, hau zuzena da, gainera. 698 00:30:51,897 --> 00:30:53,730 Eta Egia, hau da, little more pedantic. 699 00:30:53,730 --> 00:30:56,530 Zu literalki esaten, dereference erakuslea eta Hara joan. 700 00:30:56,530 --> 00:30:59,320 Ondoren, har n, eremuaren n izenekoa. 701 00:30:59,320 --> 00:31:01,370 Baina, Egia, inork ez du nahi idatzi edo irakurri hau. 702 00:31:01,370 --> 00:31:03,620 Eta, beraz, mundu asmatu gezi idazkera, zein 703 00:31:03,620 --> 00:31:06,980 baliokidea, berdin-berdina da, besterik azukre sintaktikoa da. 704 00:31:06,980 --> 00:31:10,570 Beraz, hau esaten modu fancy bat itxura hobea, edo itxura sinpleagoa. 705 00:31:10,570 --> 00:31:12,296 >> Beraz, gaur egun, naiz beste gauza bat egin behar. 706 00:31:12,296 --> 00:31:15,420 Esan "break" behin dut I noa Aurkitu da, beraz, ez dut mantendu da bila. 707 00:31:15,420 --> 00:31:17,620 Baina honen funtsa da bilaketa-funtzio baten. 708 00:31:17,620 --> 00:31:21,710 Baina errazagoa da, parte amaieran, eta ez kodea ibiltzeko. 709 00:31:21,710 --> 00:31:25,570 Hau da, hain zuzen ere ezartzeko formal bila, gaur egungo banaketa kodea. 710 00:31:25,570 --> 00:31:30,530 Esan txertatze hori ez da ausartzen naiz bereziki fun to ibiltzeko 711 00:31:30,530 --> 00:31:33,180 ikusmen, ezta ezabatu da, nahiz Egunaren amaieran, nahiz 712 00:31:33,180 --> 00:31:35,460 behera irakiten nahiko dute heuristics simple. 713 00:31:35,460 --> 00:31:36,330 >> Beraz, egin dezagun hau. 714 00:31:36,330 --> 00:31:39,250 Umore me hemen egingo baduzu, egin nuen estresa pilotak mordo bat ekarri. 715 00:31:39,250 --> 00:31:40,620 Zenbaki-sorta bat ekarri dut. 716 00:31:40,620 --> 00:31:46,562 Eta ezin boluntario gutxiren buruan lortuko dugu 9, 17, 20, 22, 29, eta 34 ordezkari izateko? 717 00:31:46,562 --> 00:31:48,270 Beraz, funtsean, denek nor da hemen gaur egun. 718 00:31:48,270 --> 00:31:50,170 719 00:31:50,170 --> 00:31:52,760 Hori izan zen, bat, bi, hiru, lau, bost, sei pertsona. 720 00:31:52,760 --> 00:31:55,740 Eta Eskatuko dut eta joan egingo ikusteko moduan, atzealdean inork bere eskuetan altxatzen. 721 00:31:55,740 --> 00:32:01,910 Ados, bat, bi, hiru, lau, five-- utzi kargatu me balance-- sei. 722 00:32:01,910 --> 00:32:03,051 Ados, zatoz sei up. 723 00:32:03,051 --> 00:32:04,050 Beste pertsona bat behar dugu. 724 00:32:04,050 --> 00:32:05,460 Extra estresa pilotak ekarri dugu. 725 00:32:05,460 --> 00:32:08,200 Eta ahal izango banu, zeren Oraingoz, lerro bat besterik ez 726 00:32:08,200 --> 00:32:10,490 buruäc besterik Argazki hau hemen bezala. 727 00:32:10,490 --> 00:32:15,200 728 00:32:15,200 --> 00:32:15,959 >> Guztiak eskubidea. 729 00:32:15,959 --> 00:32:17,125 Ikus dezagun, zer da zure izena? 730 00:32:17,125 --> 00:32:17,550 >> IKUSLEEN: Andrew. 731 00:32:17,550 --> 00:32:18,800 >> DAVID J. MALAN: Andrew, kopurua 9 zara. 732 00:32:18,800 --> 00:32:19,540 Niza zu ezagutzeaz. 733 00:32:19,540 --> 00:32:20,400 Hemen duzu joan. 734 00:32:20,400 --> 00:32:21,593 735 00:32:21,593 --> 00:32:22,176 IKUSLEEN: Jen. 736 00:32:22,176 --> 00:32:22,662 DAVID J. MALAN: Jen. 737 00:32:22,662 --> 00:32:23,162 David. 738 00:32:23,162 --> 00:32:23,765 Zenbakia 17. 739 00:32:23,765 --> 00:32:24,950 740 00:32:24,950 --> 00:32:25,450 Bai? 741 00:32:25,450 --> 00:32:26,400 >> IKUSLEEN: naiz Julia. 742 00:32:26,400 --> 00:32:26,980 >> DAVID J. MALAN: Julia, David. 743 00:32:26,980 --> 00:32:27,545 Zenbakia 20. 744 00:32:27,545 --> 00:32:28,507 745 00:32:28,507 --> 00:32:29,340 IKUSLEEN: Christian. 746 00:32:29,340 --> 00:32:30,715 DAVID J. MALAN: Christian, David. 747 00:32:30,715 --> 00:32:31,541 Zenbakia 22. 748 00:32:31,541 --> 00:32:32,040 Eta? 749 00:32:32,040 --> 00:32:32,649 >> IKUSLEEN: JP. 750 00:32:32,649 --> 00:32:33,440 DAVID J. MALAN: JP. 751 00:32:33,440 --> 00:32:34,880 Zenbakia 29. 752 00:32:34,880 --> 00:32:37,080 Anima zaitez eta lortu in-- Uh oh. 753 00:32:37,080 --> 00:32:38,486 754 00:32:38,486 --> 00:32:38,985 Uh oh. 755 00:32:38,985 --> 00:32:39,650 756 00:32:39,650 --> 00:32:40,150 Egonean. 757 00:32:40,150 --> 00:32:41,360 758 00:32:41,360 --> 00:32:42,390 20. 759 00:32:42,390 --> 00:32:43,682 Norbaitek dute markatzaile bat? 760 00:32:43,682 --> 00:32:44,890 IKUSLEEN: Nik Edukien. 761 00:32:44,890 --> 00:32:45,660 DAVID J. MALAN: Edukien bat lortu duzu? 762 00:32:45,660 --> 00:32:46,159 Ados. 763 00:32:46,159 --> 00:32:47,577 764 00:32:47,577 --> 00:32:49,160 Eta ez da inor izan paper bat? 765 00:32:49,160 --> 00:32:51,562 766 00:32:51,562 --> 00:32:52,270 Save hitzaldia. 767 00:32:52,270 --> 00:32:53,810 768 00:32:53,810 --> 00:32:55,362 Goazen. 769 00:32:55,362 --> 00:32:56,320 IKUSLEEN: Lortu dugu berau. 770 00:32:56,320 --> 00:32:57,600 DAVID J. MALAN: Lortu dugu? 771 00:32:57,600 --> 00:32:58,577 Ondo da, eskerrik asko. 772 00:32:58,577 --> 00:33:01,380 773 00:33:01,380 --> 00:33:02,520 Hemen gara. 774 00:33:02,520 --> 00:33:03,582 Hau izan zen duzu? 775 00:33:03,582 --> 00:33:04,540 Egun gorde besterik ez duzu. 776 00:33:04,540 --> 00:33:05,670 777 00:33:05,670 --> 00:33:07,220 Beraz, 29. 778 00:33:07,220 --> 00:33:10,510 779 00:33:10,510 --> 00:33:11,110 Guztiak eskubidea. 780 00:33:11,110 --> 00:33:13,360 781 00:33:13,360 --> 00:33:14,890 Gaizki idatzitako dut 29, baina OK. 782 00:33:14,890 --> 00:33:15,720 Anima zaitez. 783 00:33:15,720 --> 00:33:18,114 Ondo da, emango dizut zure pen atzera une batez. 784 00:33:18,114 --> 00:33:19,280 Beraz, Folks horiek baliorik. 785 00:33:19,280 --> 00:33:20,330 Dezagun bat bestea. 786 00:33:20,330 --> 00:33:23,750 Gabe, ez jolastu nahi duzun Lehenengo elementua hemen? 787 00:33:23,750 --> 00:33:25,705 Seinalatuko duzu beharko dugu Folks horiek fina at. 788 00:33:25,705 --> 00:33:26,930 789 00:33:26,930 --> 00:33:31,030 Beraz, 9, 17, 20, 22, ordenatu 29, eta gero 34. 790 00:33:31,030 --> 00:33:32,160 791 00:33:32,160 --> 00:33:33,325 Ba norbaitek galtzen dugu? 792 00:33:33,325 --> 00:33:33,950 34 bat dudalako. 793 00:33:33,950 --> 00:33:36,730 Non OK did--, nahi duenak 34 izateko? 794 00:33:36,730 --> 00:33:37,605 OK, goazen gora, 34. 795 00:33:37,605 --> 00:33:39,280 796 00:33:39,280 --> 00:33:41,220 Ondo da, hau izango da baita buruko pilota merezi. 797 00:33:41,220 --> 00:33:41,550 Zein da zure izena? 798 00:33:41,550 --> 00:33:42,040 >> IKUSLEEN: Peter. 799 00:33:42,040 --> 00:33:43,456 >> DAVID J. MALAN: Peter, goazen gora. 800 00:33:43,456 --> 00:33:46,810 Ondo da, beraz, hemen bat nodo sorta osoa. 801 00:33:46,810 --> 00:33:49,060 You guys bakoitzak adierazten laukizuzenak horietako bat. 802 00:33:49,060 --> 00:33:51,930 Eta Gabe, apur bat bakoitiak man out, lehen adierazten du. 803 00:33:51,930 --> 00:33:54,850 Beraz, bere erakuslea da, pixka bat txikiagoa Besteek baino pantailan. 804 00:33:54,850 --> 00:33:58,120 Eta, kasu honetan, zure bakoitza utzi eskuetan dago, bai seinalatu behera egingo, 805 00:33:58,120 --> 00:34:01,085 horrela null ordezkari gisa, beraz, besterik erakuslea ezean, 806 00:34:01,085 --> 00:34:03,210 edo nik apuntatzen joan duzu ondoan nodo batean. 807 00:34:03,210 --> 00:34:05,440 >> Beraz, oraintxe apaintzen baduzu Irudian bezala zuek 808 00:34:05,440 --> 00:34:07,585 hemen, aurrera eta puntu elkarrengandik, Gabe with at 809 00:34:07,585 --> 00:34:11,030 seinalatuz bereziki kopurua 9 zerrenda adierazteko. 810 00:34:11,030 --> 00:34:14,050 Ados, eta zenbaki 34, ezkerraz behar besterik solairuan seinalatuz. 811 00:34:14,050 --> 00:34:15,750 >> Ados, beraz, hau lotutako zerrenda da. 812 00:34:15,750 --> 00:34:17,580 Beraz, hau dena delako eszenatokia. 813 00:34:17,580 --> 00:34:20,210 Eta, hain zuzen, hau da ordezkari arazo klase baten 814 00:34:20,210 --> 00:34:21,929 baliteke kode batekin konpontzen saiatzen zara. 815 00:34:21,929 --> 00:34:25,020 Azken finean Txertatu nahi duzu elementu berri bat zerrendan sartu. 816 00:34:25,020 --> 00:34:27,494 Kasu honetan, goaz saiatu 55 zenbakia adierazi beharko. 817 00:34:27,494 --> 00:34:28,500 818 00:34:28,500 --> 00:34:30,860 Baina ez da joan Kasu ezberdinak kontuan hartu behar dira. 819 00:34:30,860 --> 00:34:34,409 Eta, hain zuzen, hau da bat izango da of the big-irudi takeaways hemen, da, 820 00:34:34,409 --> 00:34:35,659 Zein dira kasu desberdinetan. 821 00:34:35,659 --> 00:34:39,120 Zein dira baldintza bada, edo desberdinak zure programa izan dezake adarrak? 822 00:34:39,120 --> 00:34:42,024 >> Beno, saiatzen ari zaren kopurua txertatze, gaur egun ezagutzen dugun 55 izan behar du, 823 00:34:42,024 --> 00:34:44,650 baina ez baduzu jakin Aldez aurretik, I daresay 824 00:34:44,650 --> 00:34:47,840 Gutxienez hiru maiteminduko egoera posible. 825 00:34:47,840 --> 00:34:49,717 Non liteke elementu berri bat izango ote da? 826 00:34:49,717 --> 00:34:51,050 IKUSLEEN: Eta amaieran edo erdian. 827 00:34:51,050 --> 00:34:54,150 DAVID J. MALAN: amaieran, in erdian, edo hasieran. 828 00:34:54,150 --> 00:34:56,650 Beraz aldarrikatzen dut, ez dago gutxienez hiru arazo konpondu behar dugu. 829 00:34:56,650 --> 00:34:58,691 Dezagun zein da agian dudarik gabe, errazena 830 00:34:58,691 --> 00:35:01,090 bat, elementu berriak hasieran dagokio. 831 00:35:01,090 --> 00:35:04,040 Beraz, ez dut kodea izatea nahiko joan bezalako bilatzeko, idatzi besterik ez dut. 832 00:35:04,040 --> 00:35:07,670 Eta ez dut ptr dute, joan eta bertan Hemen adierazten dut nire hatz batera, 833 00:35:07,670 --> 00:35:08,370 ohikoa den bezala. 834 00:35:08,370 --> 00:35:12,430 >> Eta gogoratu, zer balio zuten abiarazi ptr dugu? 835 00:35:12,430 --> 00:35:15,300 Beraz, hasiera batean NULL hasieratu dugu. 836 00:35:15,300 --> 00:35:16,410 837 00:35:16,410 --> 00:35:19,770 Baina orduan zer egin dugu behin gure bilaketa-funtzioa barruan zeuden? 838 00:35:19,770 --> 00:35:20,940 839 00:35:20,940 --> 00:35:24,870 Berdintasunarekin ezarri dugu lehenik, Horrek ez du esan nahi lan hau egiteko. 840 00:35:24,870 --> 00:35:25,890 841 00:35:25,890 --> 00:35:30,570 Ptr berbera jasotzeko ezarri badut lehen, zer behar dut nire eskua benetan izan seinalatuz? 842 00:35:30,570 --> 00:35:31,070 Eskuin. 843 00:35:31,070 --> 00:35:33,290 Beraz, Gabe eta biok joan balioak berdinak izan hemen, 844 00:35:33,290 --> 00:35:34,760 bi puntu behar dugu kopurua 9. 845 00:35:34,760 --> 00:35:36,420 >> Beraz, hau da gure istorioa hasieran izan zen. 846 00:35:36,420 --> 00:35:38,700 Eta orain, hori besterik ez da erraza, sintaxia berria da, nahiz eta. 847 00:35:38,700 --> 00:35:40,580 Kontzeptualki honek bilaketa lineala besterik ez da. 848 00:35:40,580 --> 00:35:42,750 Is 55 berdinak 9ra? 849 00:35:42,750 --> 00:35:45,559 Edo, hobeto esanda, demagun 9 baino gutxiago. 850 00:35:45,559 --> 00:35:47,600 Saiatzen ari naiz delako irudikatu non 55 jarri behar da. 851 00:35:47,600 --> 00:35:51,270 9 baino gutxiago, 17 baino gutxiago, gutxiago 20 baino gehiago, 22 baino gutxiago, 29 baino gutxiago, 852 00:35:51,270 --> 00:35:52,510 34 baino gutxiago, ez. 853 00:35:52,510 --> 00:35:55,080 Beraz, orain ari garen kasuan Gutxienez hiru bat. 854 00:35:55,080 --> 00:35:59,910 >> 55 baino gehiago txertatzeko hemen nahi badut, zer kodea behar-lerroak exekutatu ahal izateko? 855 00:35:59,910 --> 00:36:01,890 Nola irudi hau ez gizakiak aldatu behar? 856 00:36:01,890 --> 00:36:03,181 Zer egin behar dut nire ezkerreko eskua? 857 00:36:03,181 --> 00:36:04,530 858 00:36:04,530 --> 00:36:07,360 Hau nulua izan behar du, hasiera batean, Ni zerrendako amaieran dudalako. 859 00:36:07,360 --> 00:36:09,318 Eta zer gertatu beharko hemen Peter-ekin, ordea? 860 00:36:09,318 --> 00:36:10,520 861 00:36:10,520 --> 00:36:12,430 He da, jakina, me seinalatu. 862 00:36:12,430 --> 00:36:15,580 Beraz aldarrikatzen dut, gutxienez bi lerro ez dago lagin gaurtik código Kode- 863 00:36:15,580 --> 00:36:18,570 hori abian jartzera joan gehituz 55 buztana eszenatokia. 864 00:36:18,570 --> 00:36:20,950 Eta norbaitek hop ezin izan dut up eta besterik adierazten 55? 865 00:36:20,950 --> 00:36:22,200 Ondo da, zu 55 berria. 866 00:36:22,200 --> 00:36:23,580 867 00:36:23,580 --> 00:36:27,054 >> Beraz, orain zer hurrengoan bada eszenatoki batera dator, 868 00:36:27,054 --> 00:36:29,720 eta bertan sartu nahi dugun hasita edo zerrenda honen buru? 869 00:36:29,720 --> 00:36:31,100 Eta zein da zure izena, 55 zenbakia? 870 00:36:31,100 --> 00:36:31,420 >> IKUSLEEN: Jack. 871 00:36:31,420 --> 00:36:32,295 >> DAVID J. MALAN: Jack? 872 00:36:32,295 --> 00:36:33,585 Ados, politak zu ezagutzeaz. 873 00:36:33,585 --> 00:36:34,210 Ongi etorri itsasontzian. 874 00:36:34,210 --> 00:36:36,640 Beraz, orain goaz txertatzeko, esan, 5 zenbakia. 875 00:36:36,640 --> 00:36:39,840 Hona hemen bigarren kasua Hiru sortu ginen aurretik. 876 00:36:39,840 --> 00:36:43,050 Beraz, 5 hasieran jabea bada, ikus dezagun nola duela jakin dugu. 877 00:36:43,050 --> 00:36:46,310 Nire ptr hasieratu I kopurua 9 berriro erakuslea. 878 00:36:46,310 --> 00:36:49,140 Eta, konturatu nintzen oh, 5 eta 9 baino gutxiago. 879 00:36:49,140 --> 00:36:50,880 Beraz, argazki hau guretzat konpondu. 880 00:36:50,880 --> 00:36:54,820 Noren eskuetan, Gabe-ren edo Daviden -edo zer da zenbakia 9 izena? 881 00:36:54,820 --> 00:36:55,740 >> IKUSLEEN: Jen. 882 00:36:55,740 --> 00:36:58,406 >> DAVID J. MALAN: Jen en hands-- gure esku eta horrek aldatu behar? 883 00:36:58,406 --> 00:36:58,905 884 00:36:58,905 --> 00:37:00,970 Ados, beraz Gabe zer now at puntuak? 885 00:37:00,970 --> 00:37:01,640 Me at. 886 00:37:01,640 --> 00:37:02,750 Nodo berria naiz. 887 00:37:02,750 --> 00:37:04,870 Beraz, besterik gabe, mugimendu-mota egingo dut Hemen da ikusmen ikusteko. 888 00:37:04,870 --> 00:37:06,435 Eta bitartean zer egiten duten seinalatu dut? 889 00:37:06,435 --> 00:37:07,910 890 00:37:07,910 --> 00:37:09,020 Oraindik non apuntatzen naiz. 891 00:37:09,020 --> 00:37:10,000 Beraz, hori da. 892 00:37:10,000 --> 00:37:13,717 Benetan Beraz, besterik gabe, kodea konponketak lerro bat gai jakin honetan, badirudi litzateke. 893 00:37:13,717 --> 00:37:14,800 Ondo da, beraz, hori ona da. 894 00:37:14,800 --> 00:37:17,580 Eta norbaitek 5 biltegia izan? 895 00:37:17,580 --> 00:37:18,080 Goazen sortu. 896 00:37:18,080 --> 00:37:20,270 897 00:37:20,270 --> 00:37:21,320 Hurrengoan jasoko duzu dugu. 898 00:37:21,320 --> 00:37:24,280 >> Ondo da, beraz, orain eta Bat alde batera utzita, izenak bezala 899 00:37:24,280 --> 00:37:28,510 Ez dut esplizitua eskuineko aipamena eginez orain, pred erakuslea, aurrekoak erakuslea 900 00:37:28,510 --> 00:37:31,260 eta erakuslea berria, hori da besterik izenak eman 901 00:37:31,260 --> 00:37:35,280 lagin erakusle izateko, kodea edo nire esku, hori da mota inguruan seinalatuz. 902 00:37:35,280 --> 00:37:36,060 Zein da zure izena? 903 00:37:36,060 --> 00:37:36,700 >> IKUSLEEN: Christine. 904 00:37:36,700 --> 00:37:37,100 >> DAVID J. MALAN: Christine. 905 00:37:37,100 --> 00:37:38,090 Ongi etorri itsasontzian. 906 00:37:38,090 --> 00:37:42,180 Ondo da, beraz, kontuan hartu dezagun orain Agertoki zertxobait gehiago gogaikarriak bat, 907 00:37:42,180 --> 00:37:46,350 Horren bidez sartu nahi dut 26 hau sartu antzeko zerbait. 908 00:37:46,350 --> 00:37:47,090 20? 909 00:37:47,090 --> 00:37:47,590 Zer? 910 00:37:47,590 --> 00:37:50,510 Hauek are-- gauza ona pen hau dugu. 911 00:37:50,510 --> 00:37:51,955 Ondo da, 20. 912 00:37:51,955 --> 00:37:53,640 913 00:37:53,640 --> 00:37:57,570 Norbaitek beste pieza bat lortuko balute paper prest, besterik ez eskuineko guztiak kasu horretan ere. 914 00:37:57,570 --> 00:37:58,370 Oh, interesgarria. 915 00:37:58,370 --> 00:37:59,760 916 00:37:59,760 --> 00:38:02,390 Beno hau adibidea da hitzaldia akatsen bat. 917 00:38:02,390 --> 00:38:03,894 Ados, beraz, zer da zure izena berriro? 918 00:38:03,894 --> 00:38:04,560 IKUSLEEN: Julia. 919 00:38:04,560 --> 00:38:07,559 DAVID J. MALAN: Julia, ezin duzu pop out eta asmoa sekula ez zinen? 920 00:38:07,559 --> 00:38:09,040 Ados, hau ez da inoiz gertatu. 921 00:38:09,040 --> 00:38:09,680 Eskerrik asko. 922 00:38:09,680 --> 00:38:12,180 Beraz, demagun txertatu nahi dugun Julia lotuta zerrenda honetan sartu. 923 00:38:12,180 --> 00:38:13,780 20 zenbakia da. 924 00:38:13,780 --> 00:38:15,530 Eta, jakina, zuen da to the at dagozkio joan 925 00:38:15,530 --> 00:38:17,521 begin-- ez dute ezer at seinalatu oraindik. 926 00:38:17,521 --> 00:38:20,020 Beraz, eskua mota egin ahal izango behera null edo zabor balio batzuk. 927 00:38:20,020 --> 00:38:21,210 Dezagun esango istorio azkar. 928 00:38:21,210 --> 00:38:22,980 Zenbakia 5 oraingoan dut seinalatuz. 929 00:38:22,980 --> 00:38:23,880 Ondoren, egiaztatu dut 9. 930 00:38:23,880 --> 00:38:25,130 Gero check I 17. 931 00:38:25,130 --> 00:38:26,247 Gero check I 22. 932 00:38:26,247 --> 00:38:27,650 933 00:38:27,650 --> 00:38:32,485 Eta, konturatzen naiz ooh, Julia 22era aurretik joan behar du. 934 00:38:32,485 --> 00:38:33,580 935 00:38:33,580 --> 00:38:34,660 Beraz, zer behar du gertatuko? 936 00:38:34,660 --> 00:38:35,786 937 00:38:35,786 --> 00:38:36,910 Noren eskuetan aldatu behar? 938 00:38:36,910 --> 00:38:38,360 Juliaren, nirea,-edo Zein da zure izena berriro? 939 00:38:38,360 --> 00:38:39,230 >> IKUSLEEN: Christian. 940 00:38:39,230 --> 00:38:40,060 >> DAVID J. MALAN: Christian edo? 941 00:38:40,060 --> 00:38:40,560 >> IKUSLEEN: Andy. 942 00:38:40,560 --> 00:38:40,905 >> DAVID J. MALAN: Andy. 943 00:38:40,905 --> 00:38:41,654 Christian edo Andy? 944 00:38:41,654 --> 00:38:44,280 945 00:38:44,280 --> 00:38:45,690 Andy at seinalatu behar du? 946 00:38:45,690 --> 00:38:46,780 947 00:38:46,780 --> 00:38:47,341 Julia. 948 00:38:47,341 --> 00:38:47,840 Guztiak eskubidea. 949 00:38:47,840 --> 00:38:48,960 Beraz, Andy, ez to Julia at seinalatu nahi duzu? 950 00:38:48,960 --> 00:38:50,120 Baina minutu bat itxaron. 951 00:38:50,120 --> 00:38:53,260 Beraz, orain arte Istorioa, Alde moduko naiz 952 00:38:53,260 --> 00:38:56,800 karga, zentzuan direla erakuslea gauza hori da 953 00:38:56,800 --> 00:38:57,850 zerrendan zehar mugitzen. 954 00:38:57,850 --> 00:39:00,800 Baliteke Andy izen bat daukagu, baina ez dago aldagai Andy deitzen da. 955 00:39:00,800 --> 00:39:04,320 Beste aldagai bakarra da dugun lehenengoa, nor Gabe irudikatzen. 956 00:39:04,320 --> 00:39:07,690 >> Beraz, hau da, benetan, zergatik beraz, arte ez dugu behar den honetan. 957 00:39:07,690 --> 00:39:10,846 Baina orain pantailan ez da aipatu berriro pred erakuslea. 958 00:39:10,846 --> 00:39:11,970 Hargatik gehiago esplizitua izan dit. 959 00:39:11,970 --> 00:39:14,820 Hau da erakuslea da, bada, hobea izan nuen get apur bat gehiago adimentsua 960 00:39:14,820 --> 00:39:15,950 Nire iterazio buruz. 961 00:39:15,950 --> 00:39:19,580 Ez baduzu axola hemen bidez nire joan berriro, seinalatuz hemen, hemen seinalatuz. 962 00:39:19,580 --> 00:39:22,500 Baina utzi dute me pred erakuslea, aurrekoak erakuslea, hori da 963 00:39:22,500 --> 00:39:24,740 motatako seinalatuz elementu at nengoen. 964 00:39:24,740 --> 00:39:27,330 Beraz, hemen joan nintzen, orain Nire ezkerreko eguneratzeak. 965 00:39:27,330 --> 00:39:29,370 Noiz joan naiz nire ezkerreko eskua eguneratzeak. 966 00:39:29,370 --> 00:39:33,090 Eta orain izan dut erakuslea, ez bakarrik duten Julia ondoren doa elementua, 967 00:39:33,090 --> 00:39:36,300 Oraindik erakuslea izan dut Andy, elementua aurretik. 968 00:39:36,300 --> 00:39:39,430 Beraz, sartzeko aukera izango duzu, funtsean, breadcrumbs, izango bada, 969 00:39:39,430 --> 00:39:41,500 baldintza erakusle guztiei. 970 00:39:41,500 --> 00:39:43,710 >> Beraz dut seinalatuz bada Andy eta ere naiz seinalatuz 971 00:39:43,710 --> 00:39:47,105 Christian, zeinen eskuetan at orain beste leku batean adierazi behar dira? 972 00:39:47,105 --> 00:39:48,770 973 00:39:48,770 --> 00:39:51,960 Beraz Andy orain Julia at seinalatu dezake. 974 00:39:51,960 --> 00:39:54,460 Julia orain Christian at seinalatu dezake. 975 00:39:54,460 --> 00:39:56,950 Kopiatu ahal izango zuen delako nire eskuin eskuko erakuslea. 976 00:39:56,950 --> 00:40:00,044 Eta hori modu eraginkorrean jartzen leku hau hemen sartu. 977 00:40:00,044 --> 00:40:02,460 Beraz, azken finean, nahiz eta hau, nahiz nolako gurekin hartzearen betiko 978 00:40:02,460 --> 00:40:04,510 benetan eguneratu bat lotutako zerrenda, konturatzen 979 00:40:04,510 --> 00:40:06,580 eragiketak direla nahiko sinpleak dira. 980 00:40:06,580 --> 00:40:10,030 Da bat, bi, hiru Kode lerro azken finean. 981 00:40:10,030 --> 00:40:12,780 Baina horiek inguruan bilduta zentzuzkoa kode lerro 982 00:40:12,780 --> 00:40:16,350 logika pixka bat da eraginkortasunez galderari, non garen galdetzen? 983 00:40:16,350 --> 00:40:18,970 Gara hasieran, erdian, edo bukaera? 984 00:40:18,970 --> 00:40:21,890 >> Orain, ez dira, zalantzarik gabe, beste batzuk eragiketak agian ezarriko ditugu. 985 00:40:21,890 --> 00:40:24,880 Eta argazki hauek hemen besterik irudikatzeko zer gizakiak egin besterik ez dugu. 986 00:40:24,880 --> 00:40:26,080 Zer kentzea buruz? 987 00:40:26,080 --> 00:40:30,650 Nahi badut, adibidez, zenbakia kendu 34 edo 55, 988 00:40:30,650 --> 00:40:34,680 Baliteke kodea mota bera behar dut, baina ez dut urrats bat edo bi behar du. 989 00:40:34,680 --> 00:40:36,110 Zer berri delako? 990 00:40:36,110 --> 00:40:40,460 Kendu dut norbaitek badu bukaeran, zenbaki bezala 55 eta, ondoren, 34, 991 00:40:40,460 --> 00:40:42,995 zer ere ez da egin dudan bezala, aldaketa egin du? 992 00:40:42,995 --> 00:40:44,870 Ez evict-- daukat Zein da zure izena berriro? 993 00:40:44,870 --> 00:40:45,380 >> IKUSLEEN: Jack. 994 00:40:45,380 --> 00:40:46,255 >> DAVID J. MALAN: Jack. 995 00:40:46,255 --> 00:40:49,770 Izan evict-- free Jack bakarra dut, beraz, literalki deitu doan Jack, edo, gutxienez, 996 00:40:49,770 --> 00:40:53,530 erakuslea han ere, baina orain, zer behar den Peter batera aldatzeko? 997 00:40:53,530 --> 00:40:55,510 Eskuan hobeto hasteko behera seinalatuz. 998 00:40:55,510 --> 00:40:59,300 Free deitu nuen bezain laster delako Jack, bada Pedro oraindik Jack seinalatuz 999 00:40:59,300 --> 00:41:02,530 eta, beraz zeharkatu mantentzen dut zerrenda eta sarbide erakuslea honetan, 1000 00:41:02,530 --> 00:41:05,650 hori da gure lagun zaharra segmentazio errua agian benetan jaurtitzeko ere. 1001 00:41:05,650 --> 00:41:07,860 Eman dugu delako memoria Jack itzuli. 1002 00:41:07,860 --> 00:41:10,760 >> Bertan geratuko dezakezu baldarki une bat besterik ez da. 1003 00:41:10,760 --> 00:41:13,410 Pare bat besterik ez dugulako final eragiketak kontuan hartu behar dira. 1004 00:41:13,410 --> 00:41:15,600 Zerrenda-burua kentzen, edo beginning-- du eta hau, 1005 00:41:15,600 --> 00:41:16,349 apur bat gogaikarriak. 1006 00:41:16,349 --> 00:41:19,640 Duten jakin nahi dugulako Gabe da, mota bereziak programa honetan. 1007 00:41:19,640 --> 00:41:21,440 Hain zuzen ere, bere erakuslea egin du. 1008 00:41:21,440 --> 00:41:24,860 Ez du bakarrik ari azpimarratu, ia gainontzeko hemen bezala. 1009 00:41:24,860 --> 00:41:28,112 >> Beraz, zerrenda-burua da, kendu, zeinen eskuetan orain aldatu behar? 1010 00:41:28,112 --> 00:41:29,070 Zein da zure izena berriro? 1011 00:41:29,070 --> 00:41:29,450 >> IKUSLEEN: Christine. 1012 00:41:29,450 --> 00:41:31,408 >> DAVID J. MALAN: awful naiz izenak, itxuraz. 1013 00:41:31,408 --> 00:41:34,011 Beraz, Christine eta Gabe, zeinen eskuetan aldatu behar 1014 00:41:34,011 --> 00:41:36,510 denean Christine kentzeko saiatzen gara, zenbakia 5, irudi batetik? 1015 00:41:36,510 --> 00:41:37,550 1016 00:41:37,550 --> 00:41:38,820 Ados, beraz, egin dezagun Gabe utzi. 1017 00:41:38,820 --> 00:41:40,950 Gabe da seinalatu, ustez, kopurua 9. 1018 00:41:40,950 --> 00:41:42,230 1019 00:41:42,230 --> 00:41:44,642 Baina zer gertatzen da hurrengo gertatu beharko? 1020 00:41:44,642 --> 00:41:46,600 IKUSLEEN: Christine beharko lukete nulua izan [INAUDIBLE]. 1021 00:41:46,600 --> 00:41:50,244 DAVID J. MALAN: Ados, ziurrenik behar dugu make-- "null" entzun nuen nonbait. 1022 00:41:50,244 --> 00:41:51,410 IKUSLEEN: Null eta free bere. 1023 00:41:51,410 --> 00:41:51,855 DAVID J. MALAN: nulua, zer? 1024 00:41:51,855 --> 00:41:53,074 IKUSLEEN: Null eta free bere. 1025 00:41:53,074 --> 00:41:54,490 DAVID J. MALAN: Null eta free bere. 1026 00:41:54,490 --> 00:41:55,422 Beraz, hau oso erraza da. 1027 00:41:55,422 --> 00:41:58,380 Eta ezin hobea da zarela orain ordenatu han zutik, ez barruan. 1028 00:41:58,380 --> 00:42:00,430 Nik duzulako zerrendatik decoupled. 1029 00:42:00,430 --> 00:42:02,820 Eraginkortasunez dituzun dira zerrendatik umezurtz. 1030 00:42:02,820 --> 00:42:07,770 Eta beraz genuen hobeto deitu doan hemendik Christine memoria hori atzera emateko. 1031 00:42:07,770 --> 00:42:10,240 Bestela aldi bakoitzean dugu Nodo bat ezabatzeko zerrendatik 1032 00:42:10,240 --> 00:42:14,230 dugu zerrendan egiteko liteke laburragoa da, baina ez benetan jaitsiz 1033 00:42:14,230 --> 00:42:15,096 memorian tamaina. 1034 00:42:15,096 --> 00:42:17,720 Eta horrela gehituz jarraituko badugu eta gehituz, gauzak gehituz zerrendan, 1035 00:42:17,720 --> 00:42:19,280 Nire ordenagailuan motelagoa lortu liteke eta motelagoa eta motelagoa, 1036 00:42:19,280 --> 00:42:21,740 daudelarik I exekutatzen ari delako memorian, ez naiz, nahiz eta, egia esan, 1037 00:42:21,740 --> 00:42:25,580 Christine en byte erabiliz oroimenaren jada. 1038 00:42:25,580 --> 00:42:28,500 >> Beraz, azkenean, ez dira beste agertokiak, noski kentzea 1039 00:42:28,500 --> 00:42:30,640 erdiko, kentzea amaieran, ikusi dugun bezala. 1040 00:42:30,640 --> 00:42:32,348 Baina interesgarria Erronka orain 1041 00:42:32,348 --> 00:42:34,770 joan zehazki kontuan hartu behar izaten du denbora exekutatzen ari dela. 1042 00:42:34,770 --> 00:42:36,640 Beraz, ez bakarrik mantendu dezakezu zure paper zatiak,, bada Gabe, 1043 00:42:36,640 --> 00:42:38,640 ez zela axola ematea guztiontzat estresa baloi bat. 1044 00:42:38,640 --> 00:42:42,100 Eskerrik asko, beraz, gure lotutako zerrenda askoz Hemen boluntarioen, ahal izango banu. 1045 00:42:42,100 --> 00:42:45,320 >> [Txaloak] 1046 00:42:45,320 --> 00:42:46,700 >> DAVID J. MALAN: Ondo da. 1047 00:42:46,700 --> 00:42:51,110 Beraz analitikoa pare bat galdera, ondoren, ahal izango banu. 1048 00:42:51,110 --> 00:42:59,670 Izendapen hori ikusi dugu lehenago, O big eta omega, goiko mugetatik 1049 00:42:59,670 --> 00:43:02,520 eta on mugetatik txikiagoa algoritmo batzuen denbora exekutatzen. 1050 00:43:02,520 --> 00:43:04,950 Beraz, kontuan hartu dezagun, besterik gabe, galdera pare bat. 1051 00:43:04,950 --> 00:43:07,090 >> Bat, eta, esan dugun aurretik, zer da korrika 1052 00:43:07,090 --> 00:43:10,647 Bilaketa bat egiteko garaia O big dagokionez zerrendan? 1053 00:43:10,647 --> 00:43:13,480 Zer da entzierroa buruzko goi-muga lotuta zerrenda bat bilatzen denbora 1054 00:43:13,480 --> 00:43:16,340 inplementatu gure boluntarioek bezala hemen? 1055 00:43:16,340 --> 00:43:17,820 Big n O, lineala da. 1056 00:43:17,820 --> 00:43:20,630 Kasurik okerrenean ere delako, elementua, 55 bezala, 1057 00:43:20,630 --> 00:43:23,830 dugu agian izan non bila liteke Jack izan zen, amaieran modu guztiak. 1058 00:43:23,830 --> 00:43:28,250 Eta zoritxarrez, array bat bezala ezin dugu lortu fancy oraingoan. 1059 00:43:28,250 --> 00:43:31,820 Gure gizakien guztiak izan ziren arren elementu txiki, 5 eta ordenatuta, 1060 00:43:31,820 --> 00:43:35,900 handiagoak elementu erabakitzen ditu modu guztiak, 55, hori gauza ona izan ohi da. 1061 00:43:35,900 --> 00:43:38,815 Baina zer hipotesi egiten duen Jada ez baimendu egiten digu? 1062 00:43:38,815 --> 00:43:39,775 1063 00:43:39,775 --> 00:43:40,650 IKUSLEEN: [INAUDIBLE] 1064 00:43:40,650 --> 00:43:40,920 DAVID J. MALAN: Esan berriro? 1065 00:43:40,920 --> 00:43:41,800 IKUSLEEN: Random sarbidea. 1066 00:43:41,800 --> 00:43:43,049 DAVID J. MALAN: Random sarbidea. 1067 00:43:43,049 --> 00:43:46,330 Eta, aldi berean, horrek esan ahal dugu inolako jada ahul zero, intuizioa erabili, 1068 00:43:46,330 --> 00:43:49,365 eta bitarra erabiliz obviousness bilatu eta zatitzea eta konkistatzeko. 1069 00:43:49,365 --> 00:43:51,240 Nahiz dugulako gizakiak, jakina, ezin izan 1070 00:43:51,240 --> 00:43:54,610 ikusi Andy edo kristau zirela gutxi gorabehera zerrendan erdian, 1071 00:43:54,610 --> 00:43:57,670 bakarrik ezagutzen gisa dugun ordenagailu zerrendan skimming arabera 1072 00:43:57,670 --> 00:43:59,029 du hasiera-hasieratik. 1073 00:43:59,029 --> 00:44:00,570 Beraz, eman dugu ausazko sarbidea duten. 1074 00:44:00,570 --> 00:44:04,380 >> N O hain handia da orain goiko gure bilaketa-denbora lotuak. 1075 00:44:04,380 --> 00:44:07,920 Zer gure bilaketaren omega buruz? 1076 00:44:07,920 --> 00:44:11,535 Zer da beheko bila doazen Zerrenda honetan zenbaki batengatik? 1077 00:44:11,535 --> 00:44:12,410 IKUSLEEN: [INAUDIBLE] 1078 00:44:12,410 --> 00:44:13,040 DAVID J. MALAN: Esan berriro? 1079 00:44:13,040 --> 00:44:13,420 IKUSLEEN: Bat. 1080 00:44:13,420 --> 00:44:13,800 DAVID J. MALAN: Bat. 1081 00:44:13,800 --> 00:44:14,760 Beraz, denbora etengabe. 1082 00:44:14,760 --> 00:44:17,020 Kasurik onenean ere, Christine da hain zuzen ere, zerrendaren hasieran. 1083 00:44:17,020 --> 00:44:19,020 Eta guk nahi zenbakia 5, beraz, bere aurkitu dugu. 1084 00:44:19,020 --> 00:44:19,787 Beraz, big aurre ez. 1085 00:44:19,787 --> 00:44:22,370 Baina berak lortu behar du egon kasu honetan, zerrendaren hasieran. 1086 00:44:22,370 --> 00:44:23,745 Zerbait buruz nolakoak ezabatu? 1087 00:44:23,745 --> 00:44:24,717 1088 00:44:24,717 --> 00:44:26,300 Zer elementu bat ezabatu nahi bada? 1089 00:44:26,300 --> 00:44:29,200 Zer da goi-muga eta beheko muga bat lotuta zerbait ezabatzen an 1090 00:44:29,200 --> 00:44:29,699 listado? 1091 00:44:29,699 --> 00:44:35,195 1092 00:44:35,195 --> 00:44:36,070 IKUSLEEN: [INAUDIBLE] 1093 00:44:36,070 --> 00:44:36,420 DAVID J. MALAN: Esan berriro? 1094 00:44:36,420 --> 00:44:37,067 IKUSLEEN: n. 1095 00:44:37,067 --> 00:44:38,900 DAVID J. MALAN: n dago hain zuzen ere, goiko muga da. 1096 00:44:38,900 --> 00:44:41,700 Kasurik okerrenean ere saiatu dugulako Jack ezabatzeko, egin genuen bezala besterik ez. 1097 00:44:41,700 --> 00:44:43,050 Amaieran modu guztiak zuen. 1098 00:44:43,050 --> 00:44:45,419 Garamatza betiko, edo n urratsak haren bila. 1099 00:44:45,419 --> 00:44:46,460 Beraz, goi-muga bat. 1100 00:44:46,460 --> 00:44:47,430 Hori da lineala, ziur. 1101 00:44:47,430 --> 00:44:50,970 Eta kasu horretan, onena denbora exekutatzen, edo txikiagoa onena kasu mugetatik 1102 00:44:50,970 --> 00:44:51,975 Etengabeko denbora izango litzateke. 1103 00:44:51,975 --> 00:44:54,600 Agian ezabatu saiatu dugulako Christine, eta lortu besterik ez dugu zortea 1104 00:44:54,600 --> 00:44:55,558 da hasieran zuen. 1105 00:44:55,558 --> 00:44:56,350 Orain minutu bat itxaron. 1106 00:44:56,350 --> 00:44:59,370 Gabe ere izan zen hasiera-hasieratik, eta Gabe eguneratzeko ere izan dugu. 1107 00:44:59,370 --> 00:45:01,150 Beraz, ez zen beste urrats bat besterik ez da. 1108 00:45:01,150 --> 00:45:04,210 Beraz, hain zuzen ere, etengabeko Denbora, kasu onenean, 1109 00:45:04,210 --> 00:45:06,345 elementu txikiena kentzeko? 1110 00:45:06,345 --> 00:45:07,360 1111 00:45:07,360 --> 00:45:10,960 It da, bi izan arren, agian, hiru, edo are 100 kode lerro, 1112 00:45:10,960 --> 00:45:14,000 kopuru berdina bada lerroak, ez begizta batzuetan, 1113 00:45:14,000 --> 00:45:16,577 eta tamainaren desberdina Zerrendaren, erabat. 1114 00:45:16,577 --> 00:45:18,660 Elementu ezabatzen zerrendaren hasiera-hasieratik, 1115 00:45:18,660 --> 00:45:21,940 to aurre egin behar dugu, nahiz eta Gabe, etengabeko denbora dago oraindik. 1116 00:45:21,940 --> 00:45:24,220 >> Beraz, hau dirudienez Urrats masiboa atzeraka. 1117 00:45:24,220 --> 00:45:27,000 Eta zer hondakin denbora , bada, aste bat eta astean 1118 00:45:27,000 --> 00:45:30,250 zero bakarra izan genuen pseudocode kodea baina benetako kodea 1119 00:45:30,250 --> 00:45:35,780 log zerbait ezartzeko base n, edo saioa, hobeto esanda, n, 2 oinarria, 1120 00:45:35,780 --> 00:45:37,150 bere denborak dagokionez. 1121 00:45:37,150 --> 00:45:40,710 Beraz, zergatik demontre egiten hasten ziren nahi dugu lotuta zerrenda antzeko zerbait erabiliz? 1122 00:45:40,710 --> 00:45:41,517 Bai. 1123 00:45:41,517 --> 00:45:44,022 >> IKUSLEEN: Beraz gehi dezakezu array elementuak. 1124 00:45:44,022 --> 00:45:46,230 DAVID J. MALAN: Beraz, ahal duzun array elementuak gehitzeko. 1125 00:45:46,230 --> 00:45:47,550 Eta hau ere gaikako da. 1126 00:45:47,550 --> 00:45:49,740 Eta ikusten jarraituko dugu hau, Oreka horrek, askoz 1127 00:45:49,740 --> 00:45:51,573 bezala ikusi dugu bat merge sort merkataritza-off. 1128 00:45:51,573 --> 00:45:54,606 Benetan izan dugu arindu bilatu edo sailkatzeko, baizik eta, 1129 00:45:54,606 --> 00:45:57,480 espazio pixka bat gehiago gastatzen badugu eta memoria bat zati gehigarri bat dute 1130 00:45:57,480 --> 00:45:58,760 edo merge sort array bat. 1131 00:45:58,760 --> 00:46:01,270 Baina gehiago gastatzen dugu espazioa, baina, denbora aurreztuko dugu. 1132 00:46:01,270 --> 00:46:04,820 Kasu honetan, ez gara denbora etsi baina ez gara 1133 00:46:04,820 --> 00:46:08,170 malgutasuna irabazten, dinamismoa izango bada, 1134 00:46:08,170 --> 00:46:10,280 hau da, dudarik gabe, Ezaugarri positiboa. 1135 00:46:10,280 --> 00:46:11,520 >> Ari jokaleku bat gastatu dugu. 1136 00:46:11,520 --> 00:46:13,710 Zein zentzu bat dago lotuta Zerrenda garestiagoa 1137 00:46:13,710 --> 00:46:15,700 array bat baino espazio aldetik? 1138 00:46:15,700 --> 00:46:18,379 1139 00:46:18,379 --> 00:46:19,920 Non dago beste tarte bat datozen? 1140 00:46:19,920 --> 00:46:20,460 Bai? 1141 00:46:20,460 --> 00:46:21,800 >> IKUSLEEN: [INAUDIBLE] erakuslea. 1142 00:46:21,800 --> 00:46:23,310 >> DAVID J. MALAN: Bai, dugu Era berean, erakuslea. 1143 00:46:23,310 --> 00:46:25,560 Beraz, hau da minorly gogaikarriak horretan jada ez nago 1144 00:46:25,560 --> 00:46:27,780 Int bat gordetzeko I int bat adierazteko. 1145 00:46:27,780 --> 00:46:30,990 Int bat eta bat gordetzeko, naiz erakuslea ere, hau da, 32 bit. 1146 00:46:30,990 --> 00:46:33,470 Beraz, naiz literalki bikoiztu dut hartzen duten espazioaren zenbatekoa. 1147 00:46:33,470 --> 00:46:36,040 Beraz, merkataritza-off bat da, baina int kasuan izan da. 1148 00:46:36,040 --> 00:46:39,580 Demagun ez zaudela int gordetzeko, baina suposatzen laukizuzenak horietako bakoitzean 1149 00:46:39,580 --> 00:46:43,290 edo gizakiak horietako bakoitzean zuten ordezkari hitz batean, ingelesezko hitz bat dagoela 1150 00:46:43,290 --> 00:46:46,430 bost pertsonaiak, 10 izan liteke pertsonaiak, eta beharbada, gehiago. 1151 00:46:46,430 --> 00:46:49,940 Ondoren, bit 32 besterik gehiago gehituz Aurre handi bat gutxiago izan daiteke. 1152 00:46:49,940 --> 00:46:52,160 >> Ikasle bakoitzari Zer bada manifestazio batean 1153 00:46:52,160 --> 00:46:55,107 literalki ziren ikaslea structs duten Izenak eta etxe eta agian 1154 00:46:55,107 --> 00:46:57,065 Telefono zenbaki eta Twitter maneiatzen eta antzekoak. 1155 00:46:57,065 --> 00:46:59,564 Beraz, guztiak eremuen hasi ginen beste egunean buruz hitz egiten, 1156 00:46:59,564 --> 00:47:02,410 askoz aurre handi bat gutxiago bezala gure nodoak lortu interesgarriagoa 1157 00:47:02,410 --> 00:47:05,972 eta, gastatzen big to eh, gehigarri bat erakuslea besterik horiek elkarrekin lotzeko. 1158 00:47:05,972 --> 00:47:07,180 Baina, hain zuzen ere, merkataritza-off bat da. 1159 00:47:07,180 --> 00:47:09,560 Eta hain zuzen ere, kodea konplexuagoak, ikusiko duzu gisa 1160 00:47:09,560 --> 00:47:11,770 Ikusten bidez skimming arabera Adibide jakin horretan. 1161 00:47:11,770 --> 00:47:14,302 Baina zer ez balitz Hemen batzuk santua Grial. 1162 00:47:14,302 --> 00:47:17,010 Zer bada, ez dugu urrats bat atzeraka baina urrats bat masiboa aurrera 1163 00:47:17,010 --> 00:47:19,180 eta datuak bat ezartzeko egitura zein bidez dugu 1164 00:47:19,180 --> 00:47:22,870 Jack edo antzeko elementu aurkitu ahal Christine edo beste edozein elementu 1165 00:47:22,870 --> 00:47:25,870 Egia denbora etengabe array honetan? 1166 00:47:25,870 --> 00:47:26,920 Bilaketa konstante da. 1167 00:47:26,920 --> 00:47:28,320 Ezabatu da konstante. 1168 00:47:28,320 --> 00:47:29,570 Txertatu konstante da. 1169 00:47:29,570 --> 00:47:32,260 Eragiketa horiek guztiak izaten dira. 1170 00:47:32,260 --> 00:47:33,750 Hori da gure Grial santua izango litzateke. 1171 00:47:33,750 --> 00:47:36,690 Eta hori da, non gauden jaso egingo hurrengoan. 1172 00:47:36,690 --> 00:47:38,600 Ikusi duzu ondoren. 1173 00:47:38,600 --> 00:47:39,371