1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:01,900 [MUSIC PLAYING] 3 00:00:01,900 --> 00:00:05,710 4 00:00:05,710 --> 00:00:09,150 >> DOUG LLOYD: 陌ndi siz Diziler haqq谋nda 莽ox bilm蓹k, 5 00:00:09,150 --> 00:00:11,610 v蓹 ba臒l谋 siyah谋lar谋 haqq谋nda bir 莽ox bilirik. 6 00:00:11,610 --> 00:00:13,650 V蓹 biz m眉zakir蓹 etdik lehte ve eksiklikleri, biz 7 00:00:13,650 --> 00:00:16,620 siyah谋lar谋 ba臒l谋 ki, m眉zakir蓹 b枚y眉k v蓹 ki莽ik 蓹ld蓹 ed蓹 bil蓹rsiniz, 8 00:00:16,620 --> 00:00:18,630 lakin onlar daha 枚l莽眉s眉 almaq. 9 00:00:18,630 --> 00:00:22,359 Diziler daha sad蓹 var istifad蓹, lakin onlar q蓹d蓹r m蓹hdudla艧d谋r谋c谋 ist蓹yirik 10 00:00:22,359 --> 00:00:24,900 biz 枚l莽眉s眉n眉 t蓹yin etm蓹k kimi 莽ox ba艧谋nda array 11 00:00:24,900 --> 00:00:26,910 sonra biz il蓹 vurulmu艧 edirik. 12 00:00:26,910 --> 00:00:30,470 >> Amma ki, biz olduqca 莽ox var var, Bizim m枚vzular b眉t眉n can谋 13 00:00:30,470 --> 00:00:33,040 ba臒l谋 siyah谋lar谋 v蓹 Diziler haqq谋nda. 14 00:00:33,040 --> 00:00:34,950 Yoxsa biz var? 15 00:00:34,950 --> 00:00:37,720 B蓹lk蓹 biz bir 艧ey ed蓹 bil蓹rsiniz daha yarad谋c谋. 16 00:00:37,720 --> 00:00:40,950 V蓹 verir ki, sort bir hash masa ideyas谋. 17 00:00:40,950 --> 00:00:46,680 >> Bel蓹 ki, bir hash masa biz c蓹hd olacaq bir ba臒l谋 siyah谋 il蓹 bir s谋ra birl蓹艧dirir. 18 00:00:46,680 --> 00:00:49,520 Biz 眉st眉nl眉kl蓹ri olacaq serial谋n, t蓹sad眉fi giri艧 kimi, 19 00:00:49,520 --> 00:00:53,510 yaln谋z array getm蓹k 眉莽眉n qadir olan element 4 v蓹 ya array element 8 20 00:00:53,510 --> 00:00:55,560 眉zr蓹 t蓹krarlamaq olmadan. 21 00:00:55,560 --> 00:00:57,260 Bu do臒ru, olduqca s眉r蓹tli var? 22 00:00:57,260 --> 00:01:00,714 >> Amma biz d蓹 m蓹lumatlar var ist蓹yir蓹m strukturu inki艧af v蓹 shrink ed蓹 bil蓹rsiniz. 23 00:01:00,714 --> 00:01:02,630 Biz deyil, ehtiyac yoxdur m蓹hdudla艧d谋r谋lacaq ist蓹yirik. 24 00:01:02,630 --> 00:01:04,588 V蓹 biz etm蓹k ist蓹yir蓹m 蓹lav蓹 v蓹 h蓹r 艧eyi aradan qald谋r谋lmas谋 眉莽眉n 25 00:01:04,588 --> 00:01:08,430 莽ox asanl谋qla, siz geri 蓹g蓹r, bir s谋ra il蓹 莽ox m眉r蓹kk蓹bdir. 26 00:01:08,430 --> 00:01:11,650 V蓹 biz bu z蓹ng ed蓹 bil蓹rsiniz yeni bir 艧ey bir hash masa. 27 00:01:11,650 --> 00:01:15,190 >> 茝g蓹r d眉zg眉n t蓹tbiq biz n枚v alaraq edirik 28 00:01:15,190 --> 00:01:18,150 h蓹m d蓹 m蓹lumatlar谋n 眉st眉nl眉kl蓹ri 茝g蓹r siz art谋q g枚rd眉m strukturlar谋, 29 00:01:18,150 --> 00:01:19,880 Diziler v蓹 ba臒l谋 siyah谋lar谋. 30 00:01:19,880 --> 00:01:23,070 Taxmaq ba艧laya bil蓹rsiniz 1 teta do臒ru edirl蓹r. 31 00:01:23,070 --> 00:01:26,207 Theta biz, h蓹qiq蓹t蓹n, m眉zakir蓹 deyil, lakin teta yaln谋z orta oldu臒u, 32 00:01:26,207 --> 00:01:27,540 n蓹 h蓹qiq蓹t蓹n ba艧 ver蓹c蓹k. 33 00:01:27,540 --> 00:01:29,680 Siz h蓹mi艧蓹 fikrind蓹 deyilik 蓹n pis halda ssenari var, 34 00:01:29,680 --> 00:01:32,555 v蓹 h蓹mi艧蓹 fikrind蓹 deyilik 茝n yax艧谋 ssenari, bel蓹 ki, n蓹 var 35 00:01:32,555 --> 00:01:33,900 orta ssenari? 36 00:01:33,900 --> 00:01:36,500 >> Yax艧谋 bir orta durub bir hash masa 37 00:01:36,500 --> 00:01:39,370 yax谋n daimi vaxt almaq 眉莽眉n ba艧laya bil蓹rsiniz. 38 00:01:39,370 --> 00:01:41,570 V蓹 silinm蓹si 蓹ld蓹 ed蓹 bil蓹rsiniz daimi zaman ba臒lay谋n. 39 00:01:41,570 --> 00:01:44,440 V蓹 Sistemi 蓹ld蓹 ed蓹 bil蓹rsiniz daimi zaman ba臒lay谋n. 40 00:01:44,440 --> 00:01:48,600 That bir m蓹lumat yoxdur strukturu h蓹l蓹 ki, bunu ed蓹 bil蓹rsiniz, 41 00:01:48,600 --> 00:01:51,180 v蓹 bu, art谋q s蓹sl蓹r olduqca b枚y眉k 艧ey kimi. 42 00:01:51,180 --> 00:01:57,010 Biz, h蓹qiq蓹t蓹n, yum艧ald谋lmas谋na etdik 枚z h蓹r m蓹nfi c蓹h蓹tl蓹ri. 43 00:01:57,010 --> 00:01:59,160 >> Bu performans谋 almaq 眉莽眉n , baxmayaraq ki biz t蓹kmill蓹艧dirm蓹k 44 00:01:59,160 --> 00:02:03,580 biz 蓹lav蓹 n蓹 yenid蓹n etm蓹k laz谋md谋r strukturu data. 45 00:02:03,580 --> 00:02:07,380 X眉susil蓹 biz ist蓹yirik data 枚z眉 biz蓹 46 00:02:07,380 --> 00:02:09,725 harada strukturunda getm蓹lidir. 47 00:02:09,725 --> 00:02:12,850 V蓹 biz o var g枚rmek 眉莽眉n laz谋md谋r, 蓹g蓹r strukturu, biz tapmaq laz谋md谋r, 48 00:02:12,850 --> 00:02:16,610 biz m蓹lumatlar谋n baxmaq ist蓹yir蓹m yenid蓹n v蓹 s蓹m蓹r蓹li ed蓹 bil蓹r, 49 00:02:16,610 --> 00:02:18,910 veri istifad蓹 ed蓹r蓹k, t蓹sad眉fi daxil. 50 00:02:18,910 --> 00:02:20,700 Just baxaraq data biz olmal谋d谋r 51 00:02:20,700 --> 00:02:25,890 m蓹hz biz oldu臒unuz bir fikir hash masa tapmaq 眉莽眉n gedir. 52 00:02:25,890 --> 00:02:28,770 >> Bir hash 陌ndi 陌艧in m蓹nfi t蓹r蓹fi odur masa h蓹qiq蓹t蓹n ist蓹yirik ki, 53 00:02:28,770 --> 00:02:31,770 sifari艧 v蓹 ya data 莽e艧idl蓹nm蓹si olduqca pis. 54 00:02:31,770 --> 00:02:34,970 V蓹 蓹slind蓹, siz ba艧lamaq 蓹g蓹r sifari艧 v蓹 ya sort 眉莽眉n onlara istifad蓹 etm蓹k 55 00:02:34,970 --> 00:02:37,990 data b眉t眉n itirm蓹k 眉st眉nl眉kl蓹ri 蓹vv蓹ll蓹r 56 00:02:37,990 --> 00:02:40,710 durub v蓹 silinm蓹si bax谋m谋ndan idi. 57 00:02:40,710 --> 00:02:44,060 vaxt yax谋n olur n teta, v蓹 biz 蓹sas蓹n var 58 00:02:44,060 --> 00:02:45,530 bir ba臒l谋 siyah谋s谋na daxil geril蓹di. 59 00:02:45,530 --> 00:02:48,850 V蓹 bel蓹 ki, biz yaln谋z hash istifad蓹 etm蓹k ist蓹diyiniz masalar biz qay臒谋 yoxdur, 蓹g蓹r 60 00:02:48,850 --> 00:02:51,490 data 莽e艧idl蓹nir olub. 61 00:02:51,490 --> 00:02:54,290 Kontekstind蓹 olan CS50 onlar谋 istifad蓹 ed蓹c蓹yik 62 00:02:54,290 --> 00:02:58,900 Siz y蓹qin ki, qay臒谋 yoxdur data 莽e艧idl蓹nir ki. 63 00:02:58,900 --> 00:03:03,170 >> Bel蓹 ki, bir hash table bir birl蓹艧m蓹sidir iki f蓹rqli 蓹d蓹d 64 00:03:03,170 --> 00:03:04,980 olan biz tan谋艧 edirik. 65 00:03:04,980 --> 00:03:07,930 ilk funksiyas谋 olan biz ad蓹t蓹n bir hash funksiyas谋 z蓹ng. 66 00:03:07,930 --> 00:03:11,760 V蓹 hash funksiyas谋 gedir , b蓹zi qeyri-m蓹nfi tam qay谋tmaq hans谋 67 00:03:11,760 --> 00:03:14,870 biz ad蓹t蓹n OK, bir hashcode z蓹ng? 68 00:03:14,870 --> 00:03:20,230 ikinci par莽a bir s谋ra edir tipli biz saxlan谋lmas谋 m蓹lumatlar谋n bil蓹n 69 00:03:20,230 --> 00:03:22,190 data strukturu yerl蓹艧dirm蓹k ist蓹yir蓹m. 70 00:03:22,190 --> 00:03:24,310 Biz off ke莽irm蓹k laz谋md谋r 陌ndi siyah谋s谋 element ba臒l谋d谋r 71 00:03:24,310 --> 00:03:27,810 v蓹 yaln谋z bir 蓹saslar谋 il蓹 ba艧lamaq onun 蓹traf谋nda ba艧 almaq 眉莽眉n masa hash, 72 00:03:27,810 --> 00:03:30,210 sonra biz b蓹lk蓹 z蓹rb蓹 olacaq fikrinizi bir az zaman 73 00:03:30,210 --> 00:03:32,920 birlikd蓹 Diziler v蓹 link siyah谋lar谋 birl蓹艧dirir. 74 00:03:32,920 --> 00:03:35,590 >> 蓹sas fikir olsa b蓹zi m蓹lumatlar谋 almaq deyil. 75 00:03:35,590 --> 00:03:37,860 Biz data vasit蓹sil蓹 run hash funksiyas谋. 76 00:03:37,860 --> 00:03:41,980 V蓹 bel蓹 data emal v蓹 OK, bir s谋ra spits? 77 00:03:41,980 --> 00:03:44,890 V蓹 sonra say谋 biz yaln谋z veri 78 00:03:44,890 --> 00:03:48,930 biz saxlamaq ist蓹yir蓹m ki, yeri array. 79 00:03:48,930 --> 00:03:53,990 Bel蓹 ki, m蓹s蓹l蓹n, biz b蓹lk蓹 var strings bu hash masa. 80 00:03:53,990 --> 00:03:57,350 Bu, bel蓹 ki, bu 10 elementl蓹r var biz onu 10 strings uy臒un bil蓹r. 81 00:03:57,350 --> 00:03:59,320 >> Biz John hash ist蓹yir蓹m deyirl蓹r. 82 00:03:59,320 --> 00:04:02,979 John Bel蓹 ki, data kimi biz 蓹lav蓹 etm蓹k ist蓹yir蓹m haradasa bu hash masa. 83 00:04:02,979 --> 00:04:03,770 Harada biz qoymaq bil蓹r蓹m? 84 00:04:03,770 --> 00:04:05,728 Yax艧谋 ad蓹t蓹n il蓹 array g眉n蓹 q蓹d蓹r biz y蓹qin ki, 85 00:04:05,728 --> 00:04:07,610 array yeri 0 onu qoymaq olard谋. 86 00:04:07,610 --> 00:04:09,960 Amma indi biz bu yeni hash funksiyas谋 var. 87 00:04:09,960 --> 00:04:13,180 >> V蓹 biz John run ki, bildirin Bu hash funksiyas谋 vasit蓹sil蓹 88 00:04:13,180 --> 00:04:15,417 v蓹 4 spits oldu. 89 00:04:15,417 --> 00:04:17,500 Biz oldu臒unuz yax艧谋 ki var John qoymaq ist蓹yir蓹m olacaq. 90 00:04:17,500 --> 00:04:22,050 Biz array yeri Y蓹hya qoymaq ist蓹yir蓹m 4, biz again-- John hash, 莽眉nki 91 00:04:22,050 --> 00:04:23,810 nin sonra biz dey蓹k axtar谋艧 v蓹 g枚rm蓹k ist蓹yirik 92 00:04:23,810 --> 00:04:26,960 John bu hash varsa biz n蓹 etm蓹k laz谋md谋r b眉t眉n Masa 93 00:04:26,960 --> 00:04:30,310 Eyni hash vasit蓹sil蓹 idar蓹 olunur funksiyas谋, say谋 4 莽谋xmaq 94 00:04:30,310 --> 00:04:33,929 v蓹 John tapa bil蓹c蓹kl蓹r d蓹rhal data strukturu. 95 00:04:33,929 --> 00:04:34,720 Bu olduqca yax艧谋. 96 00:04:34,720 --> 00:04:36,928 >> Biz indi bunu deyirl蓹r yen蓹 biz Paulun hash ist蓹yirik. 97 00:04:36,928 --> 00:04:39,446 Biz Paul 蓹lav蓹 etm蓹k ist蓹diyiniz Bu hash masa. 98 00:04:39,446 --> 00:04:42,070 Bu d蓹f蓹 biz run deyirl蓹r Hash funksiyas谋 vasit蓹sil蓹 Paul, 99 00:04:42,070 --> 00:04:44,600 yarad谋lan hashcode 6. 100 00:04:44,600 --> 00:04:47,340 Yax艧谋 indi biz Paul qoya bil蓹r array yeri 6. 101 00:04:47,340 --> 00:04:50,040 V蓹 biz olmad谋臒谋n谋 baxmaq laz谋md谋r Paul bu hash masa var, 102 00:04:50,040 --> 00:04:53,900 biz n蓹 etm蓹k laz谋md谋r b眉t眉n Paul run hash funksiyas谋 vasit蓹sil蓹 yenid蓹n 103 00:04:53,900 --> 00:04:55,830 v蓹 biz yen蓹 6 almaq olacaq. 104 00:04:55,830 --> 00:04:57,590 >> V蓹 sonra biz yaln谋z baxmaq array yeri 6. 105 00:04:57,590 --> 00:04:58,910 Paul varm谋? 106 00:04:58,910 --> 00:05:00,160 茝g蓹r bel蓹dirs蓹, o, hash masa var. 107 00:05:00,160 --> 00:05:01,875 Paul yoxdur? 108 00:05:01,875 --> 00:05:03,000 O, hash c蓹dv蓹ld蓹 deyil. 109 00:05:03,000 --> 00:05:05,720 Bu olduqca sad蓹. 110 00:05:05,720 --> 00:05:07,770 >> 陌ndi nec蓹 bir hash funksiyas谋 m眉蓹yy蓹n edirsiniz? 111 00:05:07,770 --> 00:05:11,460 Yax艧谋 h蓹qiq蓹t蓹n he莽 bir limit var m眉mk眉n hash funksiyalar谋n谋n say谋. 112 00:05:11,460 --> 00:05:14,350 茝slind蓹 bir s谋ra h蓹qiq蓹t蓹n var internet, h蓹qiq蓹t蓹n, yax艧谋 olanlar谋. 113 00:05:14,350 --> 00:05:17,560 Bir s谋ra h蓹qiq蓹t蓹n var internet, h蓹qiq蓹t蓹n, pis olanlar谋. 114 00:05:17,560 --> 00:05:21,080 O, h蓹m莽inin olduqca asand谋r pis bir yazmaq. 115 00:05:21,080 --> 00:05:23,760 >> Bel蓹 ki, n蓹 bir yax艧谋 t蓹艧kil edir hash funksiyas谋, sa臒? 116 00:05:23,760 --> 00:05:27,280 Yax艧谋 yax艧谋 hash funksiyas谋 olmal谋d谋r yaln谋z data hashed olunur istifad蓹, 117 00:05:27,280 --> 00:05:29,420 v蓹 m蓹lumatlar谋n b眉t眉n hashed olunur. 118 00:05:29,420 --> 00:05:32,500 Bel蓹likl蓹, biz anything-- istifad蓹 etm蓹k ist蓹mir蓹m biz bir 艧ey daxil deyil 119 00:05:32,500 --> 00:05:35,560 data ba艧qa ba艧qa. 120 00:05:35,560 --> 00:05:37,080 Biz data b眉t眉n istifad蓹 etm蓹k ist蓹yirik. 121 00:05:37,080 --> 00:05:39,830 Biz yaln谋z bir par莽a istifad蓹 etm蓹k ist蓹mir蓹m bu, biz bunu b眉t眉n istifad蓹 etm蓹k ist蓹yirik. 122 00:05:39,830 --> 00:05:41,710 A hash funksiyas谋 olmal谋d谋r d蓹 deterministic olun. 123 00:05:41,710 --> 00:05:42,550 Bunun m蓹nas谋 n蓹dir? 124 00:05:42,550 --> 00:05:46,200 Yax艧谋 o dem蓹kdir ki, h蓹r d蓹f蓹 biz m蓹lumatlar谋n eyni par莽a ke莽m蓹k 125 00:05:46,200 --> 00:05:50,040 hash funksiyas谋 daxil biz h蓹mi艧蓹 Eyni hashcode 莽谋xmaq. 126 00:05:50,040 --> 00:05:52,870 M蓹n daxil John ke莽m蓹k 蓹g蓹r hash funksiyas谋 M蓹n 4 莽谋xmaq. 127 00:05:52,870 --> 00:05:56,110 M蓹n bunu etm蓹k laz谋md谋r 10,000 d蓹f蓹 v蓹 m蓹n h蓹mi艧蓹 4 almaq laz谋md谋r. 128 00:05:56,110 --> 00:06:00,810 Bel蓹 ki, he莽 t蓹sad眉fi n枚mr蓹l蓹ri s蓹m蓹r蓹li Bizim hash c蓹lb edil蓹 bil蓹r tables-- 129 00:06:00,810 --> 00:06:02,750 Bizim hash funksiyalar谋. 130 00:06:02,750 --> 00:06:05,750 >> A hash funksiyas谋 da olmal谋d谋r uniformly m蓹lumat yaymaq. 131 00:06:05,750 --> 00:06:09,700 H蓹r zaman vasit蓹sil蓹 m蓹lumat 莽al谋艧t谋r谋yorsan谋z hash funksiyas谋, hashcode 0 almaq 132 00:06:09,700 --> 00:06:11,200 do臒ru, y蓹qin ki, o q蓹d蓹r d蓹 b枚y眉k deyil? 133 00:06:11,200 --> 00:06:14,600 Siz y蓹qin ki, b枚y眉k ist蓹yir蓹m hash kodlar谋 bir s谋ra. 134 00:06:14,600 --> 00:06:17,190 H蓹m莽inin 艧eyi yay谋lm谋艧d谋r bil蓹r masa 蓹rzind蓹 h蓹yata. 135 00:06:17,190 --> 00:06:23,210 V蓹 h蓹m莽inin, 蓹g蓹r h蓹qiq蓹t蓹n b枚y眉k olacaq John v蓹 Yonatan kimi ox艧ar m蓹lumatlar, 136 00:06:23,210 --> 00:06:26,320 b蓹lk蓹 莽蓹kin yay谋lm谋艧d谋r edildi hash c蓹dv蓹ld蓹 m眉xt蓹lif yerl蓹rd蓹. 137 00:06:26,320 --> 00:06:28,750 Ki, bir g枚z蓹l 眉st眉nl眉y眉 olacaq. 138 00:06:28,750 --> 00:06:31,250 >> Burada hash funksiyas谋 bir misal var. 139 00:06:31,250 --> 00:06:33,150 M蓹n 蓹vv蓹ll蓹r bu bir q蓹d蓹r yazd谋. 140 00:06:33,150 --> 00:06:35,047 Bu x眉susil蓹 deyil yax艧谋 hash funksiyas谋 141 00:06:35,047 --> 00:06:37,380 h蓹qiq蓹t蓹n, yoxdur s蓹b蓹bl蓹r蓹 g枚r蓹 陌ndi ged蓹n da艧谋y谋rlar. 142 00:06:37,380 --> 00:06:41,040 Amma burada n蓹 olub g枚r眉rs眉n眉z? 143 00:06:41,040 --> 00:06:44,420 Biz bir d蓹yi艧蓹n elan edirik kimi g枚r眉n眉r m蓹bl蓹臒i v蓹 0-a b蓹rab蓹r q蓹bulu 莽a臒谋r谋b. 144 00:06:44,420 --> 00:06:50,010 V蓹 sonra y蓹qin m蓹n bir 艧ey edir蓹m bel蓹 uzun strstr [j] b蓹rab蓹r deyil 145 00:06:50,010 --> 00:06:52,490 0 backslash 眉莽眉n. 146 00:06:52,490 --> 00:06:54,870 M蓹n orada n蓹 edir蓹m? 147 00:06:54,870 --> 00:06:57,440 >> Bu 蓹sas蓹n yaln谋z ba艧qa [h蓹yata ke莽irilm蓹si yolu? Strl?] 148 00:06:57,440 --> 00:06:59,773 Siz var zaman a艧kar simli sona g蓹lindi. 149 00:06:59,773 --> 00:07:02,480 Bel蓹 ki, M蓹n, h蓹qiq蓹t蓹n, yoxdur simli uzunlu臒u hesablamaq, 150 00:07:02,480 --> 00:07:05,640 M蓹n hit zaman m蓹n yaln谋z istifad蓹 edir蓹m backslash 0 xarakter bilir蓹m 151 00:07:05,640 --> 00:07:07,185 M蓹n simli sonunda 蓹ld蓹 etdiyiniz. 152 00:07:07,185 --> 00:07:09,560 V蓹 sonra m蓹n saxlamaq 眉莽眉n gedir蓹m ki, simli vasit蓹sil蓹 iterating, 153 00:07:09,560 --> 00:07:15,310 strstr [j] 蓹lav蓹 sonra yekunla艧d谋rmaq, v蓹 G眉n眉n sonunda m蓹bl蓹臒i mod geri olacaq 154 00:07:15,310 --> 00:07:16,200 HASH_MAX. 155 00:07:16,200 --> 00:07:18,700 >> 茝sas蓹n b眉t眉n bu hash funksiyas谋 蓹lav蓹 olunur edir 156 00:07:18,700 --> 00:07:23,450 ASCII d蓹y蓹rl蓹ri b眉t眉n M蓹nim string, sonra var 157 00:07:23,450 --> 00:07:26,390 b蓹zi hashcode qaytar谋lmas谋 HASH_MAX t蓹r蓹find蓹n modded. 158 00:07:26,390 --> 00:07:29,790 Bu y蓹qin ki, 枚l莽眉s眉 var M蓹nim serial谋n, sa臒? 159 00:07:29,790 --> 00:07:33,160 M蓹n hash 蓹ld蓹 etm蓹k ist蓹mir蓹m kodlar谋 m蓹nim array 枚l莽眉s眉 10 olduqda, 160 00:07:33,160 --> 00:07:35,712 M蓹n 蓹ld蓹 olmaq ist蓹mir蓹m h蓹yata hash kodlar谋 11, 12, 161 00:07:35,712 --> 00:07:38,690 13, m蓹n daxil 艧eyi qoymaq bilm蓹z serial谋n o locations, 162 00:07:38,690 --> 00:07:39,790 ki, qeyri-qanuni ola bil蓹r. 163 00:07:39,790 --> 00:07:42,130 M蓹n bir seqmentasiya g眉nah 蓹ziyy蓹t ediyorum. 164 00:07:42,130 --> 00:07:45,230 >> 陌ndi burada bir s眉r蓹tli k蓹nara edir. 165 00:07:45,230 --> 00:07:48,470 脺mumiyy蓹tl蓹 siz y蓹qin ki, fikrind蓹 deyilik 枚z hash funksiyalar谋 yazmaq ist蓹yir蓹m. 166 00:07:48,470 --> 00:07:50,997 Bu, h蓹qiq蓹t蓹n bir az bir s蓹n蓹t, bir elm. 167 00:07:50,997 --> 00:07:52,580 Onlar谋n gider bir 莽ox var. 168 00:07:52,580 --> 00:07:55,288 Dediyim kimi internet, tam h蓹qiq蓹t蓹n yax艧谋 hash funksiyalar谋, 169 00:07:55,288 --> 00:07:58,470 v蓹 internet istifad蓹 etm蓹lidir Bu, h蓹qiq蓹t蓹n, 莽眉nki hash funksiyalar谋 tapmaq 170 00:07:58,470 --> 00:08:03,230 yaln谋z c眉r g蓹r蓹ksiz vaxt itkisi 枚z yaratmaq. 171 00:08:03,230 --> 00:08:05,490 >> Siz sad蓹 olanlar谋 yaza bil蓹rsiniz m蓹qs蓹dl蓹ri test 眉莽眉n. 172 00:08:05,490 --> 00:08:08,323 Amma 蓹slind蓹 ged蓹n zaman m蓹lumat hashing v蓹 saxlan谋lmas谋 ba艧lamaq 173 00:08:08,323 --> 00:08:10,780 Siz bu hash masa y蓹qin ki, ist蓹yir蓹m olacaq 174 00:08:10,780 --> 00:08:14,580 istehsal edilmi艧dir b蓹zi funksiyadan istifad蓹 etm蓹k Sizin 眉莽眉n ki, internet m枚vcuddur. 175 00:08:14,580 --> 00:08:17,240 Yaln谋z 蓹min olun deyils蓹 Sizin m蓹nb蓹l蓹ri istinad. 176 00:08:17,240 --> 00:08:21,740 He莽 bir s蓹b蓹b 眉莽眉n var burada bir 艧ey plagiarize. 177 00:08:21,740 --> 00:08:25,370 >> informatika icma edir m眉tl蓹q d蓹y蓹rl蓹r artan v蓹 h蓹qiq蓹t蓹n 178 00:08:25,370 --> 00:08:28,796 a莽谋q m蓹nb蓹 v蓹 bu, h蓹qiq蓹t蓹n vacibdir Sizin m蓹nb蓹l蓹ri istinad ki, insanlar 179 00:08:28,796 --> 00:08:30,670 眉莽眉n attribution 蓹ld蓹 ed蓹 bil蓹rsiniz onlar i艧 180 00:08:30,670 --> 00:08:32,312 c蓹miyy蓹tin xeyrin蓹 edirik. 181 00:08:32,312 --> 00:08:34,020 Bel蓹 ki, h蓹mi艧蓹 sure-- ola v蓹 yaln谋z hash 眉莽眉n 182 00:08:34,020 --> 00:08:37,270 funksiyalar谋, lakin 眉mumiyy蓹tl蓹 zaman bir k蓹narda m蓹nb蓹d蓹n kodu istifad蓹, 183 00:08:37,270 --> 00:08:38,299 h蓹mi艧蓹 m蓹nb蓹 istinad. 184 00:08:38,299 --> 00:08:43,500 Etdi 艧蓹xs蓹 kredit verm蓹k i艧 b蓹zi bel蓹 yoxdur. 185 00:08:43,500 --> 00:08:46,720 >> OK, bel蓹 ki, bu yenid蓹n ed蓹k ikinci hash masa. 186 00:08:46,720 --> 00:08:48,780 Biz sol yerdir biz daxil sonra 187 00:08:48,780 --> 00:08:53,300 Bu hash masa John v蓹 Paul. 188 00:08:53,300 --> 00:08:55,180 Burada bir problem g枚r眉rs眉n眉zm眉? 189 00:08:55,180 --> 00:08:58,410 Siz iki g枚r蓹 bil蓹rsiniz. 190 00:08:58,410 --> 00:09:02,240 Amma x眉susil蓹, siz Bu m眉mk眉n problem g枚rm蓹k? 191 00:09:02,240 --> 00:09:06,770 >> M蓹n Ringo hash v蓹 蓹g蓹r sonra emal 莽谋x谋r ki, 192 00:09:06,770 --> 00:09:14,000 hash funksiyas谋 vasit蓹sil蓹 data Ringo d蓹 hashcode 6 yarad谋lan. 193 00:09:14,000 --> 00:09:16,810 M蓹n art谋q data var hashcode-- array yeri 6. 194 00:09:16,810 --> 00:09:22,000 Bel蓹 ki, y蓹qin ki, bir az olacaq 陌ndi m蓹nim 眉莽眉n bir problem, sa臒? 195 00:09:22,000 --> 00:09:23,060 >> Biz toqqu艧ma 莽a臒谋r谋r谋q. 196 00:09:23,060 --> 00:09:26,460 V蓹 toqqu艧ma iki ba艧 verir m蓹lumatlar谋n 蓹d蓹d eyni hash vasit蓹sil蓹 run 197 00:09:26,460 --> 00:09:29,200 funksiyas谋 eyni hashcode verir. 198 00:09:29,200 --> 00:09:32,850 Ehtimal biz h蓹l蓹 d蓹 almaq ist蓹yir蓹m hash masa m蓹lumatlar谋n 蓹d蓹d, 199 00:09:32,850 --> 00:09:36,330 蓹ks halda biz Ringo 莽al谋艧an olmaz 枚zba艧谋na hash funksiyas谋 vasit蓹sil蓹. 200 00:09:36,330 --> 00:09:40,870 Biz ehtimalla almaq ist蓹yir蓹m Ki array daxil Ringo. 201 00:09:40,870 --> 00:09:46,070 >> Biz baxmayaraq bunu nec蓹, o, 蓹g蓹r v蓹 Paul, h蓹m d蓹 g蓹lir hashcode 6? 202 00:09:46,070 --> 00:09:49,520 Biz Paul yazmaq ist蓹mir蓹m, biz Paul orada olmaq ist蓹yir蓹m. 203 00:09:49,520 --> 00:09:52,790 Bel蓹likl蓹, biz almaq 眉莽眉n bir yol tapmaq laz谋md谋r hash masa elementl蓹ri ki 204 00:09:52,790 --> 00:09:56,550 h蓹l蓹 bizim s眉r蓹tli qoruyur durub v蓹 g枚z at谋n谋z up. 205 00:09:56,550 --> 00:10:01,350 V蓹 onunla m蓹艧臒ul bir yol var probing x蓹tti deyil蓹n bir 艧ey yoxdur. 206 00:10:01,350 --> 00:10:04,170 >> Bir varsa, bu metodu istifad蓹 ed蓹r蓹k toqqu艧ma, yax艧谋, biz n蓹 etm蓹liy蓹m? 207 00:10:04,170 --> 00:10:08,580 Yax艧谋 array yeri onu qoymaq bilm蓹z 6, v蓹 ya h蓹r hans谋 hashcode istehsal edilmi艧dir, 208 00:10:08,580 --> 00:10:10,820 nin hashcode plus 1 onu qoymaq bildirin. 209 00:10:10,820 --> 00:10:13,670 V蓹 tam ed蓹k, 蓹g蓹r hashcode plus 2 onu qoydu. 210 00:10:13,670 --> 00:10:17,420 Bu varl谋臒谋n fayda o 蓹g蓹r tam biz o hesab edir蓹m oldu臒u, 211 00:10:17,420 --> 00:10:20,850 v蓹 biz axtar谋艧 ba艧lamaq 眉莽眉n, b蓹lk蓹 biz 莽ox uzaq getm蓹k yoxdur. 212 00:10:20,850 --> 00:10:23,900 B蓹lk蓹 biz axtar谋艧 yoxdur hash masa b眉t眉n n elementl蓹ri. 213 00:10:23,900 --> 00:10:25,790 B蓹lk蓹 biz axtar谋艧 Onlar谋n bir ne莽蓹. 214 00:10:25,790 --> 00:10:30,680 >> V蓹 bel蓹 ki, biz h蓹l蓹 do臒ru meyl edirik orta i艧i 1 yax谋n vs gedir 215 00:10:30,680 --> 00:10:34,280 n yax谋n, bel蓹 ki, b蓹lk蓹 ki, i艧l蓹m蓹k laz谋md谋r. 216 00:10:34,280 --> 00:10:38,010 Bel蓹 ki, nec蓹 bu g枚r蓹k 蓹slind蓹 i艧 bil蓹r. 217 00:10:38,010 --> 00:10:41,460 V蓹 b蓹lk蓹 biz a艧kar ed蓹 bil蓹rsiniz 蓹g蓹r in g枚r蓹k Burada ba艧 ver蓹 bil蓹r problem. 218 00:10:41,460 --> 00:10:42,540 >> Biz Bart hash deyirl蓹r. 219 00:10:42,540 --> 00:10:45,581 Bel蓹 ki, indi biz yeni bir s谋ra 莽al谋艧t谋rmak olacaq hash funksiyas谋 vasit蓹sil蓹 strings, 220 00:10:45,581 --> 00:10:48,460 v蓹 biz hash vasit蓹sil蓹 Bart谋n run funksiyas谋, biz hashcode 6 almaq. 221 00:10:48,460 --> 00:10:52,100 Biz bir n蓹z蓹r, biz 6 g枚rm蓹k bo艧, bel蓹 ki, biz orada Bart bil蓹r. 222 00:10:52,100 --> 00:10:55,410 >> 陌ndi biz Lisa v蓹 hash d蓹 hashcode 6 yarad谋r. 223 00:10:55,410 --> 00:10:58,330 Yax艧谋 indi biz bu istifad蓹 etdiyiniz ki, x蓹tti, biz 6-da ba艧layacaq metodu yoxlama臒a 224 00:10:58,330 --> 00:10:59,330 biz 6 dolu oldu臒unu g枚r眉r眉k. 225 00:10:59,330 --> 00:11:00,990 Biz 6 Lisa qoymaq bilm蓹z. 226 00:11:00,990 --> 00:11:02,090 Bel蓹likl蓹, biz getm蓹k yoxdur? 227 00:11:02,090 --> 00:11:03,280 7 ged蓹k. 228 00:11:03,280 --> 00:11:04,610 7-nin bo艧, bel蓹 i艧l蓹yir. 229 00:11:04,610 --> 00:11:06,510 Bel蓹 ki, orada Lisa qoymaq bildirin. 230 00:11:06,510 --> 00:11:10,200 >> 陌ndi biz Homer hash v蓹 7 almaq. 231 00:11:10,200 --> 00:11:13,380 OK, biz bilirik 7-nin tam ki, 陌ndi, bel蓹 ki, biz orada Homer qoymaq bilm蓹z. 232 00:11:13,380 --> 00:11:14,850 Bel蓹 ki, 8 ged蓹k. 233 00:11:14,850 --> 00:11:15,664 8 bil蓹r? 234 00:11:15,664 --> 00:11:18,330 B蓹li, v蓹 7 8 yax谋n, bel蓹 ki, 蓹g蓹r Biz ist蓹yirik axtar谋艧 ba艧lamaq 眉莽眉n 235 00:11:18,330 --> 00:11:20,020 莽ox uzaq getm蓹k 眉莽眉n var niyy蓹tind蓹 deyil. 236 00:11:20,020 --> 00:11:22,860 V蓹 bel蓹 ki, 8 Homer qoymaq bildirin. 237 00:11:22,860 --> 00:11:25,151 >> 陌ndi biz hash Maggie v蓹 3 qaytar谋r 艧眉k眉r 238 00:11:25,151 --> 00:11:26,650 biz yaln谋z orada Maggie qoymaq ist蓹yirik. 239 00:11:26,650 --> 00:11:29,070 Biz he莽 n蓹 yoxdur sort ki yoxlama臒a. 240 00:11:29,070 --> 00:11:32,000 陌ndi biz Marge hash v蓹 Marge d蓹 6 qaytar谋r. 241 00:11:32,000 --> 00:11:39,560 >> Yax艧谋 6, 8 dolu, 7 tam, tam 9, b眉t眉n sa臒 9 bo艧, Allaha 艧眉k眉r. 242 00:11:39,560 --> 00:11:41,600 M蓹n 9 Marge bil蓹r. 243 00:11:41,600 --> 00:11:45,280 Onsuz da biz ba艧lan臒谋c etdiyiniz g枚r蓹 bil蓹rsiniz biz ist蓹yirik indi bu problem 244 00:11:45,280 --> 00:11:48,780 c眉r 艧eyi uzan谋r ba艧lay谋r uzaq onlar谋n hash kodlar谋. 245 00:11:48,780 --> 00:11:52,960 V蓹 1 ki teta ki, orta daimi vaxt olan halda, 246 00:11:52,960 --> 00:11:56,560 bir az more-- almaq 眉莽眉n ba艧lay谋r bir az daha meyli ba艧layaraq 247 00:11:56,560 --> 00:11:58,050 n teta do臒ru. 248 00:11:58,050 --> 00:12:01,270 Biz ki, itirm蓹k 眉莽眉n ba艧lan臒谋c edirik hash masalar 眉st眉nl眉y眉. 249 00:12:01,270 --> 00:12:03,902 >> Biz yaln谋z g枚rd眉m bu problem klasterl蓹艧m蓹 deyil蓹n bir 艧ey var. 250 00:12:03,902 --> 00:12:06,360 V蓹 h蓹qiq蓹t蓹n pis n蓹 var klasterl蓹艧m蓹 ki, sizin bir d蓹f蓹 indi 251 00:12:06,360 --> 00:12:09,606 yan iki elementl蓹ri il蓹 var bu, daha 莽ox edir yan, 252 00:12:09,606 --> 00:12:11,480 Siz ikiqat 艧ans, siz olacaq 253 00:12:11,480 --> 00:12:13,516 ba艧qa toqqu艧ma var ki 莽oxluq il蓹, 254 00:12:13,516 --> 00:12:14,890 v蓹 cluster biri artacaq. 255 00:12:14,890 --> 00:12:19,640 V蓹 artan v蓹 artan saxlamaq laz谋md谋r bir toqqu艧ma olan sizin ehtimal谋. 256 00:12:19,640 --> 00:12:24,470 V蓹 n蓹tic蓹d蓹 bu kimi pis kimi b眉t眉n m蓹lumatlar谋n 莽e艧idl蓹nm蓹si deyil. 257 00:12:24,470 --> 00:12:27,590 >> dig蓹r problem olsa biz h蓹l蓹 v蓹 bu g眉n蓹 q蓹d蓹r bu n枚qt蓹y蓹 q蓹d蓹r, 258 00:12:27,590 --> 00:12:30,336 biz yaln谋z n枚v oldum bir hash table n蓹 anlama, 259 00:12:30,336 --> 00:12:31,960 biz h蓹l蓹 yaln谋z 10 strings 眉莽眉n otaq var. 260 00:12:31,960 --> 00:12:37,030 Biz hash davam etm蓹k ist蓹yirsinizs蓹, Springfield v蓹t蓹nda艧lar谋, 261 00:12:37,030 --> 00:12:38,790 biz yaln谋z orada onlardan 10 蓹ld蓹 ed蓹 bil蓹rsiniz. 262 00:12:38,790 --> 00:12:42,619 V蓹 biz c蓹hd v蓹 bir 11-ci v蓹 ya 12 蓹lav蓹 biz onlar谋 qoymaq 眉莽眉n bir yer yoxdur. 263 00:12:42,619 --> 00:12:45,660 Biz yaln谋z 蓹traf谋nda iplik bil蓹r dair蓹l蓹r, bo艧 spot tapmaq 眉莽眉n 莽al谋艧谋r谋q 264 00:12:45,660 --> 00:12:49,000 v蓹 biz b蓹lk蓹 tak谋l谋yorum sonsuz loop. 265 00:12:49,000 --> 00:12:51,810 >> Bel蓹 ki, fikir verir bu c眉r bir 艧ey chaining 莽a臒谋r谋b. 266 00:12:51,810 --> 00:12:55,790 V蓹 bu g蓹tirm蓹k olacaq harada geri 艧蓹kil ba臒l谋 siyah谋lar谋. 267 00:12:55,790 --> 00:13:01,300 N蓹 蓹v蓹zin蓹 yaln谋z saxlan谋lmas谋 array data 枚z眉, 268 00:13:01,300 --> 00:13:04,471 serial谋n h蓹r element bil蓹r 莽ox 蓹d蓹d m蓹lumatlar谋n ke莽ir蓹c蓹k? 269 00:13:04,471 --> 00:13:05,970 Yax艧谋 ki, sa臒 m蓹nada etmir? 270 00:13:05,970 --> 00:13:09,280 Biz ki, bir s谋ra yaln谋z bilirik bir s谋ra h蓹r bir element hold-- 271 00:13:09,280 --> 00:13:12,930 yaln谋z bir par莽a a莽a bil蓹r ki, data n枚v眉 m蓹lumatlar谋n. 272 00:13:12,930 --> 00:13:16,750 >> Amma n蓹 蓹g蓹r data type bir ba臒l谋 siyah谋 sa臒, var? 273 00:13:16,750 --> 00:13:19,830 Bel蓹 ki, n蓹 蓹g蓹r h蓹r serial谋n element idi 274 00:13:19,830 --> 00:13:22,790 bir ba臒l谋 siyah谋 r蓹hb蓹ri bir g枚st蓹rici? 275 00:13:22,790 --> 00:13:24,680 V蓹 sonra biz qurmaq bil蓹r bu ba臒l谋 siyah谋lar谋 276 00:13:24,680 --> 00:13:27,120 v蓹 枚zba艧谋na onlar谋n inki艧af ba臒l谋 siyah谋lar谋 imkan verir, 莽眉nki 277 00:13:27,120 --> 00:13:32,090 Biz蓹 inki艧af v蓹 daha 莽ox shrink bir s谋ra edir 莽evik 莽ox. 278 00:13:32,090 --> 00:13:34,210 Bel蓹 ki, n蓹 biz indi istifad蓹 蓹g蓹r, biz do臒ru, bu leverage? 279 00:13:34,210 --> 00:13:37,760 Biz bu z蓹ncirl蓹r inki艧af ba艧lamaq bu array yerl蓹rd蓹 h蓹yata. 280 00:13:37,760 --> 00:13:40,740 >> 陌ndi biz sonsuz uy臒un data m蓹bl蓹臒i, v蓹 ya sonsuz deyil, 281 00:13:40,740 --> 00:13:44,170 bir ixtiyari m蓹bl蓹臒i data, bizim hash masa 282 00:13:44,170 --> 00:13:47,760 He莽 daxil 莽al谋艧an olmadan Toqqu艧man谋n problem. 283 00:13:47,760 --> 00:13:50,740 Biz d蓹 aradan sonra bu etm蓹kl蓹 klasterl蓹艧m蓹. 284 00:13:50,740 --> 00:13:54,380 V蓹 biz biz daxil zaman bilirik ki, bir ba臒l谋 siyah谋s谋na daxil, siz geri 蓹g蓹r 285 00:13:54,380 --> 00:13:57,779 story ba臒l谋 siyah谋lar谋 bizim video ba臒l谋 siyah谋lar谋 v蓹 ikiqat ba臒l谋 siyah谋lar谋, 286 00:13:57,779 --> 00:13:59,070 bu, daimi vaxt 蓹m蓹liyyat var. 287 00:13:59,070 --> 00:14:00,710 Biz yaln谋z 枚n 蓹lav蓹 edirik. 288 00:14:00,710 --> 00:14:04,400 >> V蓹 baxmaq q蓹d蓹r, biz bilirik ki, bir ba臒l谋 siyah谋s谋nda baxmaq 289 00:14:04,400 --> 00:14:05,785 sa臒, bir problem ola bil蓹r? 290 00:14:05,785 --> 00:14:07,910 Biz vasit蓹sil蓹 axtar谋艧 蓹vv蓹ld蓹n sona. 291 00:14:07,910 --> 00:14:10,460 He莽 bir t蓹sad眉fi var bir ba臒l谋 siyah谋 giri艧. 292 00:14:10,460 --> 00:14:15,610 Amma 蓹g蓹r 蓹v蓹zin蓹 bir olan ba臒l谋 bir axtar谋艧 n Ey olard谋 siyah谋s谋 293 00:14:15,610 --> 00:14:19,590 biz indi 10 ba臒l谋 siyah谋lar谋 var, v蓹 ya 1000 ba臒l谋 siyah谋lar谋, 294 00:14:19,590 --> 00:14:24,120 indi 10 b枚l眉n眉r n O var, v蓹 ya n O 1000 b枚l眉n眉r. 295 00:14:24,120 --> 00:14:26,940 >> V蓹 biz s枚hb蓹t is蓹 n蓹z蓹ri m眉r蓹kk蓹bliyi haqq谋nda 296 00:14:26,940 --> 00:14:30,061 biz real, sabitl蓹ri ard谋 bunlar h蓹qiq蓹t蓹n m蓹s蓹l蓹 d眉nya, 297 00:14:30,061 --> 00:14:30,560 sa臒? 298 00:14:30,560 --> 00:14:33,080 Biz, h蓹qiq蓹t蓹n, g枚r蓹c蓹ksiniz bu olur ki, 299 00:14:33,080 --> 00:14:36,610 daha s眉r蓹tli 10 d蓹f蓹 莽al谋艧t谋rmak 眉莽眉n, v蓹 ya 1000 d蓹f蓹 daha s眉r蓹tli, 300 00:14:36,610 --> 00:14:41,570 biz uzun bir paylayaraq, 莽眉nki 1000 ki莽ik z蓹ncirl蓹r aras谋nda z蓹ncir. 301 00:14:41,570 --> 00:14:45,090 V蓹 bel蓹 ki, biz h蓹r zaman axtarmaq 眉莽眉n biz o z蓹ncirl蓹r biri il蓹 302 00:14:45,090 --> 00:14:50,290 biz qay臒谋 yoxdur 999 z蓹ncirl蓹r ignore haqq谋nda, v蓹 yaln谋z bir axtar谋艧. 303 00:14:50,290 --> 00:14:53,220 >> Hans谋 orta edir 1000 d蓹f蓹 q谋sa ola bil蓹r. 304 00:14:53,220 --> 00:14:56,460 V蓹 bel蓹 ki, biz h蓹l蓹 sort var Bu orta halda do臒ru baxma 305 00:14:56,460 --> 00:15:01,610 daimi vaxt olan, lakin yaln谋z biz yararlanarak, 莽眉nki 306 00:15:01,610 --> 00:15:03,730 b蓹zi b枚y眉k daimi amil b枚l眉nm蓹si. 307 00:15:03,730 --> 00:15:05,804 Bu nec蓹 ola bil蓹r Baxaq h蓹qiq蓹t蓹n baxmayaraq baxmaq. 308 00:15:05,804 --> 00:15:08,720 Bel蓹 ki, bu biz idi hash table idi bir hash masa elan 蓹vv蓹l 309 00:15:08,720 --> 00:15:10,270 10 strings saxlan谋lmas谋 qadir idi. 310 00:15:10,270 --> 00:15:11,728 Biz art谋q bunu etm蓹k fikrind蓹 deyilik. 311 00:15:11,728 --> 00:15:13,880 Biz art谋q bilirik ki, metodu m蓹hdudiyy蓹tl蓹r. 312 00:15:13,880 --> 00:15:20,170 陌ndi bizim hash table olacaq 10 qov艧aqlar谋n谋n, g枚st蓹ricil蓹r bir s谋ra 313 00:15:20,170 --> 00:15:22,120 ba臒l谋 siyah谋lar谋 r蓹hb蓹rl蓹rin蓹. 314 00:15:22,120 --> 00:15:23,830 >> V蓹 indi bu null. 315 00:15:23,830 --> 00:15:26,170 Bu 10 g枚st蓹ricil蓹r h蓹r bir null edir. 316 00:15:26,170 --> 00:15:29,870 He莽 bir 艧ey bizim var var 陌ndi masa hash. 317 00:15:29,870 --> 00:15:32,690 >> 陌ndi b蓹zi qoymaq ba艧lamaq ed蓹k Bu hash masa 艧eyl蓹r. 318 00:15:32,690 --> 00:15:35,440 V蓹 bu 眉sul nec蓹 ed蓹k Biz蓹 bir az fayda gedir. 319 00:15:35,440 --> 00:15:36,760 陌ndi Joey hash ed蓹k. 320 00:15:36,760 --> 00:15:40,210 Biz simli Joey vasit蓹sil蓹 davam ed蓹c蓹k laz谋md谋r bir hash funksiyas谋 v蓹 biz 6 qay谋tmaq. 321 00:15:40,210 --> 00:15:41,200 Yax艧谋 indi n蓹 etm蓹liy蓹m? 322 00:15:41,200 --> 00:15:44,090 >> Yax艧谋 indi ba臒l谋 siyah谋lar谋 il蓹 i艧, biz seriallar谋n il蓹 i艧 deyilik. 323 00:15:44,090 --> 00:15:45,881 V蓹 biz 莽al谋艧谋r谋q zaman ba臒l谋 siyah谋lar谋 il蓹 biz 324 00:15:45,881 --> 00:15:49,790 biz dinamik ba艧lamaq laz谋md谋r bilirik space v蓹 tikinti z蓹ncirl蓹r b枚l眉艧d眉r眉lm蓹si. 325 00:15:49,790 --> 00:15:54,020 Ki, sort o 蓹sas var how-- var bir ba臒l谋 siyah谋 bina elementl蓹ri. 326 00:15:54,020 --> 00:15:57,670 Bel蓹 ki, dinamik ed蓹k Joey 眉莽眉n yerin ayr谋lmas谋, 327 00:15:57,670 --> 00:16:00,390 V蓹 sonra z蓹ncir ona 蓹lav蓹 ed蓹k. 328 00:16:00,390 --> 00:16:03,170 >> Bel蓹 ki, indi biz etdik n蓹 baxmaq. 329 00:16:03,170 --> 00:16:06,440 Biz Joey hash zaman hashcode 6 var. 330 00:16:06,440 --> 00:16:11,790 Array yeri 6 陌ndi pointer bir ba臒l谋 siyah谋 ba艧谋 g枚st蓹rir, 331 00:16:11,790 --> 00:16:14,900 v蓹 indi yaln谋z var bir ba臒l谋 siyah谋 element. 332 00:16:14,900 --> 00:16:18,350 V蓹 ki, node ba臒l谋 siyah谋 Joey edir. 333 00:16:18,350 --> 00:16:22,300 >> Biz Joey baxmaq laz谋md谋r, bel蓹 ki, sonra, biz yaln谋z yenid蓹n Joey hash, 334 00:16:22,300 --> 00:16:26,300 biz bizimdir bizim 莽眉nki yenid蓹n 6 almaq hash funksiyas谋 deterministic edir. 335 00:16:26,300 --> 00:16:30,400 V蓹 sonra biz ba艧-da ba艧layacaq ba臒l谋 siyah谋 i艧ar蓹 336 00:16:30,400 --> 00:16:33,360 array yeri il蓹 6 v蓹 biz t蓹krarlamaq bil蓹r 337 00:16:33,360 --> 00:16:35,650 Joey tapmaq 眉莽眉n 莽al谋艧谋r谋q ki, rast. 338 00:16:35,650 --> 00:16:37,780 V蓹 biz qurmaq bizim s蓹m蓹r蓹li masa hash, 339 00:16:37,780 --> 00:16:41,790 v蓹 hash funksiyas谋 s蓹m蓹r蓹li yax艧谋 m蓹lumat yaymaq, 340 00:16:41,790 --> 00:16:45,770 orta hesabla o h蓹r ba臒l谋 h蓹r array yerd蓹 siyah谋lar谋 341 00:16:45,770 --> 00:16:50,110 蓹g蓹r 枚l莽眉s眉 1/10 olacaq biz yaln谋z bir b枚y眉k kimi idi 342 00:16:50,110 --> 00:16:51,650 bu h蓹r 艧eyi il蓹 ba臒l谋 siyah谋s谋. 343 00:16:51,650 --> 00:16:55,670 >> Biz b枚y眉k ba臒l谋 oldu臒unu yaymaq 10 ba臒l谋 siyah谋lar谋 aras谋nda siyah谋s谋 344 00:16:55,670 --> 00:16:57,760 H蓹r bir siyah谋 1/10 枚l莽眉s眉 olacaq. 345 00:16:57,760 --> 00:17:01,432 V蓹 bel蓹likl蓹 10 d蓹f蓹 daha s眉r蓹tli vasit蓹sil蓹 axtar谋艧. 346 00:17:01,432 --> 00:17:02,390 Bel蓹 ki, bir daha bunu ed蓹k. 347 00:17:02,390 --> 00:17:04,290 陌ndi Ross hash ed蓹k. 348 00:17:04,290 --> 00:17:07,540 >> V蓹 biz bunu zaman Ross, dey蓹k biz geri almaq hash kodu 2. 349 00:17:07,540 --> 00:17:10,630 Yax艧谋 indi biz dinamik bir ayr谋lmas谋 yeni node, biz ki, node Ross qoymaq 350 00:17:10,630 --> 00:17:14,900 v蓹 biz array yer indi dem蓹k 2 null i艧ar蓹 蓹v蓹zin蓹, 351 00:17:14,900 --> 00:17:18,579 bir ba臒l谋 r蓹hb蓹ri g枚st蓹rir yegan蓹 node siyah谋s谋 Ross edir. 352 00:17:18,579 --> 00:17:22,660 V蓹 biz, biz bu d蓹f蓹 daha ed蓹 bil蓹rsiniz Rachel hash v蓹 hashcode 4 蓹ld蓹 ed蓹 bil蓹rsiniz. 353 00:17:22,660 --> 00:17:25,490 Rachel qoymaq, yeni node malloc node v蓹 array yeri dem蓹k 354 00:17:25,490 --> 00:17:27,839 4 indi ba艧 i艧ar蓹 Onun bir ba臒l谋 siyah谋 355 00:17:27,839 --> 00:17:31,420 yaln谋z element Rachel olmaq olur. 356 00:17:31,420 --> 00:17:33,470 >> OK lakin n蓹 olur biz bir toqqu艧ma var? 357 00:17:33,470 --> 00:17:38,560 Biz toqqu艧ma idar蓹 nec蓹 g枚rm蓹k ed蓹k ayr谋-ayr谋 chaining metodundan istifad蓹. 358 00:17:38,560 --> 00:17:39,800 Nin Phoebe hash ed蓹k. 359 00:17:39,800 --> 00:17:41,094 Biz hashcode 6 almaq. 360 00:17:41,094 --> 00:17:44,010 茝vv蓹lki n眉mun蓹d蓹 biz yaln谋z idi serialda strings saxlan谋lmas谋. 361 00:17:44,010 --> 00:17:45,980 Bu bir problem idi. 362 00:17:45,980 --> 00:17:48,444 >> Biz d枚ym蓹k ist蓹mir蓹m Joey, v蓹 biz art谋q var 363 00:17:48,444 --> 00:17:51,110 b蓹zi klasterl蓹艧m蓹 蓹ld蓹 ed蓹 bil蓹rsiniz ki, g枚rd眉k probleml蓹rini c蓹hd v蓹 add谋m 364 00:17:51,110 --> 00:17:52,202 vasit蓹sil蓹 v蓹 sonda. 365 00:17:52,202 --> 00:17:54,660 Amma n蓹 蓹g蓹r biz yaln谋z n枚v bu h眉quqa eyni 艧蓹kild蓹 m眉alic蓹? 366 00:17:54,660 --> 00:17:57,440 Bu, sad蓹c蓹 bir element 蓹lav蓹 kimi bir ba臒l谋 siyah谋 r蓹hb蓹ri. 367 00:17:57,440 --> 00:18:00,220 Phoebe 眉莽眉n yaln谋z malloc yer ed蓹k. 368 00:18:00,220 --> 00:18:04,764 >> Biz Phoebe n枚vb蓹ti pointer xal dem蓹k laz谋md谋r ba臒l谋 siyah谋 k枚hn蓹 r蓹hb蓹ri, 369 00:18:04,764 --> 00:18:07,180 v蓹 sonra 6 yaln谋z i艧ar蓹 ba臒l谋 siyah谋 yeni r蓹hb蓹ri. 370 00:18:07,180 --> 00:18:10,150 陌ndi biz Phoebe d蓹yi艧dirdik, baxmaq. 371 00:18:10,150 --> 00:18:14,210 Biz indi iki bil蓹rsiniz hashcode 6 elementl蓹ri, 372 00:18:14,210 --> 00:18:17,170 v蓹 h蓹r hans谋 bir problem yoxdur. 373 00:18:17,170 --> 00:18:20,147 >> Olduqca 莽ox b眉t眉n var z蓹ncirl蓹m蓹 var. 374 00:18:20,147 --> 00:18:21,980 V蓹 chaining m眉tl蓹q deyil metodu 375 00:18:21,980 --> 00:18:27,390 蓹g蓹r 眉莽眉n 蓹n effektiv olacaq Bir hash masa m蓹lumatlar谋n saxlan谋lmas谋 olunur. 376 00:18:27,390 --> 00:18:30,890 Amma bu birl蓹艧m蓹si Diziler v蓹 ba臒l谋 siyah谋lar谋 377 00:18:30,890 --> 00:18:36,080 birlikd蓹 h蓹qiq蓹t蓹n bir hash masa yaratmaq 眉莽眉n dramatik sizin qabiliyy蓹tini art谋r谋r 378 00:18:36,080 --> 00:18:40,550 m蓹lumatlar谋n b枚y眉k h蓹cmd蓹 saxlamaq, v蓹 莽ox tez v蓹 s蓹m蓹r蓹li axtar谋艧 379 00:18:40,550 --> 00:18:41,630 ki, data vasit蓹sil蓹. 380 00:18:41,630 --> 00:18:44,150 >> Bir daha h蓹l蓹 var Orada data structure 381 00:18:44,150 --> 00:18:48,700 ki, h蓹tta bir az ola bil蓹r, t蓹min bax谋m谋ndan daha yax艧谋 382 00:18:48,700 --> 00:18:51,920 ki, bizim durub, silinm蓹si, v蓹 yuxar谋 baxmaq d蓹f蓹 daha s眉r蓹tli edir. 383 00:18:51,920 --> 00:18:55,630 V蓹 biz 莽al谋艧谋r bir video g枚r蓹c蓹ksiniz. 384 00:18:55,630 --> 00:18:58,930 M蓹n Doug Lloyd deyil蓹m, bu CS50 edir. 385 00:18:58,930 --> 00:19:00,214