1 00:00:00,000 --> 00:00:11,860 2 00:00:11,860 --> 00:00:13,120 >> SPIKA 1: zote haki, hivyo sisi ni nyuma. 3 00:00:13,120 --> 00:00:14,480 Karibu CS50. 4 00:00:14,480 --> 00:00:16,510 Hii ni mwisho wa wiki saba. 5 00:00:16,510 --> 00:00:20,200 Hivyo kukumbuka kuwa wakati wa mwisho, sisi ilianza kuangalia kidogo kisasa zaidi 6 00:00:20,200 --> 00:00:21,100 data miundo. 7 00:00:21,100 --> 00:00:25,110 Tangu hadi sasa, wote tulikuwa kweli ovyo yetu ilikuwa hii safu. 8 00:00:25,110 --> 00:00:29,340 >> Lakini kabla ya sisi kuondokana na safu kama si yote ya kuvutia, ambayo kwa kweli ni 9 00:00:29,340 --> 00:00:33,570 kweli ni, ni nini baadhi ya pluses ya data hii rahisi 10 00:00:33,570 --> 00:00:34,560 muundo wa hivi sasa? 11 00:00:34,560 --> 00:00:36,110 Nini ni nzuri? 12 00:00:36,110 --> 00:00:39,450 Hadi sasa kama tumeona? 13 00:00:39,450 --> 00:00:42,540 Je, unayo? 14 00:00:42,540 --> 00:00:44,028 Chochote. 15 00:00:44,028 --> 00:00:45,020 >> MWANAFUNZI: [inaudible]. 16 00:00:45,020 --> 00:00:45,395 >> SPIKA 1: Ni nini hiyo? 17 00:00:45,395 --> 00:00:46,410 >> MWANAFUNZI: [inaudible]. 18 00:00:46,410 --> 00:00:47,000 >> SPIKA 1: zisizohamishika kawaida. 19 00:00:47,000 --> 00:00:51,260 OK, hivyo kwa nini ni kawaida fasta nzuri ingawa? 20 00:00:51,260 --> 00:00:53,180 >> MWANAFUNZI: [inaudible]. 21 00:00:53,180 --> 00:00:56,240 >> SPIKA 1: OK, hivyo ni ufanisi katika maana ya kwamba unaweza kutenga 22 00:00:56,240 --> 00:01:00,070 fasta kiasi cha nafasi, ambayo hopefully hasa ni kama vile 23 00:01:00,070 --> 00:01:01,180 nafasi kama unataka. 24 00:01:01,180 --> 00:01:02,720 Hivyo kwamba inaweza kuwa ni pamoja na kabisa. 25 00:01:02,720 --> 00:01:06,530 >> Nini upande mwingine juu ya safu? 26 00:01:06,530 --> 00:01:07,610 Yeah? 27 00:01:07,610 --> 00:01:08,750 >> MWANAFUNZI: [inaudible]. 28 00:01:08,750 --> 00:01:09,550 >> SPIKA 1: zote - sorry? 29 00:01:09,550 --> 00:01:11,270 >> MWANAFUNZI: [inaudible]. 30 00:01:11,270 --> 00:01:13,620 >> SPIKA 1: masanduku wote katika kumbukumbu au karibu na kila mmoja. 31 00:01:13,620 --> 00:01:15,220 Na kwamba ni manufaa - kwa nini? 32 00:01:15,220 --> 00:01:15,970 Hiyo ni kweli kabisa. 33 00:01:15,970 --> 00:01:18,611 Lakini jinsi gani tunaweza kutumia kwamba kweli? 34 00:01:18,611 --> 00:01:21,500 >> MWANAFUNZI: [inaudible]. 35 00:01:21,500 --> 00:01:24,490 >> SPIKA 1: Hasa, tunaweza kuweka wimbo wa ambapo kila kitu ni tu kwa kujua 36 00:01:24,490 --> 00:01:28,560 moja ya anwani, yaani anuani ya kwanza Byte ya kwamba chunk ya kumbukumbu. 37 00:01:28,560 --> 00:01:30,420 Au katika kesi ya kamba, anwani ya kwanza 38 00:01:30,420 --> 00:01:31,460 Char katika kamba hiyo. 39 00:01:31,460 --> 00:01:33,330 Na kutoka huko, tunaweza kupata mwisho wa kamba. 40 00:01:33,330 --> 00:01:35,710 Tunaweza kupata kipengele cha pili, ya tatu kipengele, na kadhalika. 41 00:01:35,710 --> 00:01:38,740 >> Na hivyo njia ya kuelezea dhana kwamba kipengele ni kwamba arrays kutupatia 42 00:01:38,740 --> 00:01:40,020 random kupata. 43 00:01:40,020 --> 00:01:44,330 Tu kwa kutumia mabano mraba nukuu na simu, unaweza kuruka kwa 44 00:01:44,330 --> 00:01:48,070 kipengele maalum katika safu katika muda wa mara kwa mara, kubwa O 45 00:01:48,070 --> 00:01:49,810 mmoja, hivyo kusema. 46 00:01:49,810 --> 00:01:51,080 >> Lakini kuna kuwa baadhi downsides. 47 00:01:51,080 --> 00:01:53,110 Nini safu si kufanya sana kwa urahisi? 48 00:01:53,110 --> 00:01:55,810 49 00:01:55,810 --> 00:01:57,170 Nini ni si nzuri wakati? 50 00:01:57,170 --> 00:01:58,810 >> MWANAFUNZI: [inaudible]. 51 00:01:58,810 --> 00:01:59,860 >> SPIKA 1: Ni nini hiyo? 52 00:01:59,860 --> 00:02:00,530 >> MWANAFUNZI: [inaudible]. 53 00:02:00,530 --> 00:02:01,460 >> SPIKA 1: Kupanua katika kawaida. 54 00:02:01,460 --> 00:02:04,800 Hivyo downsides wa safu ni just kinyume cha kile 55 00:02:04,800 --> 00:02:05,540 upsides ni. 56 00:02:05,540 --> 00:02:07,610 Hivyo moja ya downsides ni kwamba ni kawaida fasta. 57 00:02:07,610 --> 00:02:09,400 Hivyo unaweza si kweli kukua yake. 58 00:02:09,400 --> 00:02:13,510 Unaweza reallocate chunk kubwa ya kumbukumbu, na kisha kuondoka mambo ya zamani 59 00:02:13,510 --> 00:02:14,460 katika safu mpya. 60 00:02:14,460 --> 00:02:18,060 Na kisha bure safu ya zamani, kwa mfano, kwa kutumia malloc au sawa 61 00:02:18,060 --> 00:02:21,180 kazi kuitwa realloc, ambayo reallocates kumbukumbu. 62 00:02:21,180 --> 00:02:25,490 >> Realloc, kama kando, anajaribu kutoa kumbukumbu hiyo ni karibu na safu 63 00:02:25,490 --> 00:02:26,610 kwamba wewe tayari. 64 00:02:26,610 --> 00:02:28,740 Lakini inaweza hoja mambo karibu kabisa. 65 00:02:28,740 --> 00:02:30,710 Lakini katika muda mfupi, hiyo ni ghali, haki? 66 00:02:30,710 --> 00:02:33,440 Kwa sababu kama una chunk ya kumbukumbu ya kawaida hii, lakini kweli unataka moja 67 00:02:33,440 --> 00:02:36,710 ya kawaida hii, na unataka kuhifadhi mambo ya awali, una 68 00:02:36,710 --> 00:02:40,510 takribani linear wakati kuiga mchakato kwamba mahitaji ya kutokea kutoka 69 00:02:40,510 --> 00:02:41,900 umri wa safu mpya. 70 00:02:41,900 --> 00:02:44,630 Na ukweli ni kuuliza uendeshaji mfumo tena na tena na 71 00:02:44,630 --> 00:02:48,340 tena kwa chunks kubwa ya kumbukumbu unaweza kuanza kwa gharama ya baadhi ya muda pia. 72 00:02:48,340 --> 00:02:52,250 Hivyo ni baraka na laana katika kujificha, ukweli kwamba haya arrays 73 00:02:52,250 --> 00:02:53,860 ni ya ukubwa wa kudumu. 74 00:02:53,860 --> 00:02:56,790 Lakini kama sisi kuanzisha badala kitu kama hii, ambayo sisi kuitwa wanaohusishwa 75 00:02:56,790 --> 00:03:00,580 orodha, sisi kupata upsides chache na downsides chache hapa pia. 76 00:03:00,580 --> 00:03:05,780 >> Hivyo orodha wanaohusishwa ni tu data muundo alifanya juu ya structs C katika hii 77 00:03:05,780 --> 00:03:09,850 kesi, ambapo struct, kukumbuka, ni tu chombo kwa moja au zaidi maalum 78 00:03:09,850 --> 00:03:11,100 aina ya vigezo. 79 00:03:11,100 --> 00:03:16,110 Katika kesi hiyo, je, aina ya data kuonekana kuwa ndani ya struct kwamba 80 00:03:16,110 --> 00:03:17,600 Mara ya mwisho sisi kuitwa nodi? 81 00:03:17,600 --> 00:03:19,380 Kila moja ya hizi ni mistatili nodi. 82 00:03:19,380 --> 00:03:22,660 Na kila moja ya mistatili ndogo ndani yake ni aina ya data. 83 00:03:22,660 --> 00:03:25,300 Ni aina gani gani sisi kusema walikuwa Jumatatu? 84 00:03:25,300 --> 00:03:26,478 Yeah? 85 00:03:26,478 --> 00:03:27,870 >> MWANAFUNZI: [inaudible]. 86 00:03:27,870 --> 00:03:30,721 >> SPIKA 1: kutofautiana na pointer, au hasa zaidi, int, kwa n, 87 00:03:30,721 --> 00:03:32,180 na pointer chini. 88 00:03:32,180 --> 00:03:35,360 Wote wa wale kutokea kwa kuwa 32 bits, saa angalau kwenye kompyuta kama hii CS50 89 00:03:35,360 --> 00:03:37,980 Appliance, na hivyo ni inayotolewa kwa usawa katika kawaida. 90 00:03:37,980 --> 00:03:42,260 >> Hivyo kile ni kutumia pointer ingawa kwa inaonekana? 91 00:03:42,260 --> 00:03:47,690 Kwa nini kuongeza hii mshale sasa wakati arrays walikuwa hivyo nzuri na safi na rahisi? 92 00:03:47,690 --> 00:03:50,460 Kile ni pointer kufanya kwa ajili ya sisi katika kila aina ya nodes haya? 93 00:03:50,460 --> 00:03:52,160 >> MWANAFUNZI: [inaudible]. 94 00:03:52,160 --> 00:03:52,465 >> SPIKA 1: Hasa. 95 00:03:52,465 --> 00:03:54,120 Ni nawaambia ambapo moja ijayo. 96 00:03:54,120 --> 00:03:57,350 Hivyo mimi aina ya kutumia mfano wa kutumia thread ya aina ya 97 00:03:57,350 --> 00:03:59,180 thread nodes haya pamoja. 98 00:03:59,180 --> 00:04:01,760 Na kwamba ni nini hasa sisi ni kufanya na kuyatumia kwa sababu kila moja ya haya 99 00:04:01,760 --> 00:04:06,360 chunks ya kumbukumbu au anaweza kuwa na contiguous, nyuma kwa nyuma kwa nyuma 100 00:04:06,360 --> 00:04:09,500 ndani ya RAM, kwa sababu kila wakati kuwaita malloc akisema, nipe kutosha 101 00:04:09,500 --> 00:04:12,510 ka kwa nodi mpya, nguvu kuwa hapa au inaweza kuwa hapa. 102 00:04:12,510 --> 00:04:13,120 Inaweza kuwa ni hapa. 103 00:04:13,120 --> 00:04:13,730 Inaweza kuwa ni hapa. 104 00:04:13,730 --> 00:04:14,640 Wewe tu sijui. 105 00:04:14,640 --> 00:04:17,880 >> Lakini kwa kutumia kuyatumia katika anwani ya wale nodes, unaweza kuyashona 106 00:04:17,880 --> 00:04:22,370 pamoja katika njia kwamba inaonekana kuibua kama orodha hata kama mambo haya ni ya 107 00:04:22,370 --> 00:04:26,770 wote kuenea nje katika moja au mbili yako au yako gigabytes minne ya RAM 108 00:04:26,770 --> 00:04:28,760 ndani ya kompyuta yako mwenyewe. 109 00:04:28,760 --> 00:04:33,230 >> Hivyo upande wa chini, basi, ya orodha wanaohusishwa ni nini? 110 00:04:33,230 --> 00:04:34,670 Nini bei tuko inaonekana kulipa? 111 00:04:34,670 --> 00:04:36,010 >> MWANAFUNZI: [inaudible]. 112 00:04:36,010 --> 00:04:36,920 >> SPIKA 1: Zaidi nafasi, haki? 113 00:04:36,920 --> 00:04:39,340 Tumekuwa, katika kesi hii, mara mbili ya kiasi wa nafasi kwa sababu tumeenda 114 00:04:39,340 --> 00:04:43,500 kutoka 32 bits kwa kila node, kwa kila int, hivyo sasa bits 64 kwa sababu tuna 115 00:04:43,500 --> 00:04:45,050 kuweka karibu pointer pia. 116 00:04:45,050 --> 00:04:48,860 Kupata ufanisi zaidi kama struct yako ni kubwa kuliko jambo hili rahisi. 117 00:04:48,860 --> 00:04:52,020 Kama wewe kweli kuwa mwanafunzi wa ndani ambayo ni ya wanandoa wa masharti kwa 118 00:04:52,020 --> 00:04:55,430 jina na nyumba, labda idadi ID, labda baadhi ya maeneo mengine kabisa. 119 00:04:55,430 --> 00:04:59,000 >> Hivyo kama una kubwa ya kutosha struct, basi labda gharama ya pointer ni 120 00:04:59,000 --> 00:05:00,010 si kama mpango kubwa. 121 00:05:00,010 --> 00:05:03,570 Hii ni kidogo ya kona katika kesi kwamba sisi ni kuhifadhi primitive vile rahisi 122 00:05:03,570 --> 00:05:04,760 ndani ya orodha wanaohusishwa. 123 00:05:04,760 --> 00:05:05,790 Lakini uhakika ni sawa. 124 00:05:05,790 --> 00:05:08,230 Wewe ni dhahiri kutumia zaidi kumbukumbu, lakini wewe ni kupata 125 00:05:08,230 --> 00:05:08,990 kubadilika. 126 00:05:08,990 --> 00:05:12,280 Kwa sababu sasa kama nataka kuongeza kipengele katika mwanzo wa orodha hii, 127 00:05:12,280 --> 00:05:14,340 Nina kutenga nodi mpya. 128 00:05:14,340 --> 00:05:17,180 Na mimi tu update wale mishale na kwa namna fulani tu kusonga 129 00:05:17,180 --> 00:05:17,980 baadhi ya kuyatumia kote. 130 00:05:17,980 --> 00:05:20,580 >> Kama nataka kuingiza kitu katika katikati ya orodha, mimi hawana 131 00:05:20,580 --> 00:05:24,410 kushinikiza kila mtu kando kama tulivyofanya katika kipindi cha wiki na kujitolea wetu ambao 132 00:05:24,410 --> 00:05:25,700 kuwakilishwa safu. 133 00:05:25,700 --> 00:05:29,470 Naweza tu kutenga nodi mpya na basi tu kumweka mishale katika 134 00:05:29,470 --> 00:05:32,290 tofauti maelekezo kwa sababu haina kubaki katika halisi 135 00:05:32,290 --> 00:05:35,670 kumbukumbu mstari wa kweli kama nimekuwa inayotolewa hapa kwenye screen. 136 00:05:35,670 --> 00:05:38,400 >> Na kisha mwisho, kama unataka kuingiza kitu mwisho wa orodha, ni 137 00:05:38,400 --> 00:05:39,210 hata rahisi. 138 00:05:39,210 --> 00:05:43,320 Hii ni aina ya nukuu holela, lakini pointer 34 wa, kuchukua nadhani. 139 00:05:43,320 --> 00:05:46,710 Nini thamani ya pointer wake wengi uwezekano inayotolewa aina ya kama miaka 140 00:05:46,710 --> 00:05:47,700 shule antenna huko? 141 00:05:47,700 --> 00:05:48,920 >> MWANAFUNZI: [inaudible]. 142 00:05:48,920 --> 00:05:49,900 >> SPIKA 1: Ni pengine null. 143 00:05:49,900 --> 00:05:52,710 Na kwa kweli kwamba ni moja ya mwandishi uwakilishi wa null. 144 00:05:52,710 --> 00:05:56,310 Na ni kwa sababu wewe kabisa null haja ya kujua ambapo mwisho wa wanaohusishwa 145 00:05:56,310 --> 00:06:00,050 orodha ni, usije kushika zifuatazo na kufuatia na kufuatia mishale hizi 146 00:06:00,050 --> 00:06:01,170 kwa baadhi ya thamani ya takataka. 147 00:06:01,170 --> 00:06:06,230 Hivyo itakuwa null yanamaanisha kwamba hakuna zaidi nodes na haki ya idadi ya 34, 148 00:06:06,230 --> 00:06:07,200 katika kesi hii. 149 00:06:07,200 --> 00:06:10,270 >> Hivyo sisi kupendekeza kwamba tunaweza kutekeleza hii nodi katika kanuni. 150 00:06:10,270 --> 00:06:12,130 Na tumeona aina hii ya syntax kabla. 151 00:06:12,130 --> 00:06:15,090 Typedef tu amefafanua aina mpya kwa ajili ya nasi, inatupa kisawe kama 152 00:06:15,090 --> 00:06:17,100 kamba ilikuwa kwa ajili ya * Char. 153 00:06:17,100 --> 00:06:21,030 Katika kesi hiyo, ni kwenda kutupa shorthand nukuu ili struct nodi 154 00:06:21,030 --> 00:06:24,010 unaweza badala tu kuandikwa kama nodi, ambayo ni safi sana. 155 00:06:24,010 --> 00:06:25,360 Ni mengi chini verbose. 156 00:06:25,360 --> 00:06:30,080 >> Ndani ya nodi ni inaonekana int kuitwa n, na kisha nodi struct * 157 00:06:30,080 --> 00:06:34,670 ambayo ina maana hasa nini sisi alitaka mishale ya maana, pointer mwingine 158 00:06:34,670 --> 00:06:36,940 nodi ya aina exact data. 159 00:06:36,940 --> 00:06:40,300 Na napendekeza kwamba tunaweza kutekeleza tafuta kazi kama hii, ambayo kwa 160 00:06:40,300 --> 00:06:41,890 mtazamo wa kwanza inaweza kuonekana tata kidogo. 161 00:06:41,890 --> 00:06:43,330 Lakini hebu angalia katika mantiki yake. 162 00:06:43,330 --> 00:06:45,480 >> Nivuke kwa appliance hapa. 163 00:06:45,480 --> 00:06:48,460 Napenda kufungua faili inayoitwa orodha ya sifuri nukta h. 164 00:06:48,460 --> 00:06:53,950 Na kwamba tu ina maana sisi tu kuona wakati iliyopita kwa ajili ya data hii 165 00:06:53,950 --> 00:06:55,390 aina kuitwa nodi. 166 00:06:55,390 --> 00:06:57,350 Hivyo tumekuwa kuweka kwamba katika faili dot h. 167 00:06:57,350 --> 00:07:01,430 >> Na kama kando, hata ingawa hii mpango kwamba wewe ni juu ya kuona ni 168 00:07:01,430 --> 00:07:05,410 si tata kwamba wote, ni kweli mkataba wakati wa kuandika mpango wa 169 00:07:05,410 --> 00:07:10,270 kuweka mambo kama aina ya data, kuvuta constants wakati mwingine, ndani ya yako 170 00:07:10,270 --> 00:07:13,210 header faili na si lazima katika yako C faili, hakika wakati wako 171 00:07:13,210 --> 00:07:17,370 mipango ya kupata kubwa na kubwa, hivyo kwamba unajua ambapo wote kuangalia kwa 172 00:07:17,370 --> 00:07:20,840 nyaraka katika baadhi ya kesi, au kwa misingi kama hii, 173 00:07:20,840 --> 00:07:22,360 ufafanuzi wa aina fulani. 174 00:07:22,360 --> 00:07:25,680 >> Kama mimi sasa kufungua orodha ya sifuri nukta c, taarifa mambo machache. 175 00:07:25,680 --> 00:07:29,090 Ni pamoja na header files wachache, wengi ambayo tumekuwa kuona mbele. 176 00:07:29,090 --> 00:07:31,980 Ni pamoja na kichwa yake mwenyewe faili. 177 00:07:31,980 --> 00:07:35,200 >> Na kama kando, kwa nini hiyo ni mara mbili quotes hapa, kinyume na angle 178 00:07:35,200 --> 00:07:38,340 mabano kwenye mstari kwamba Nimekuwa yalionyesha huko? 179 00:07:38,340 --> 00:07:39,180 >> MWANAFUNZI: [inaudible]. 180 00:07:39,180 --> 00:07:40,460 >> SPIKA 1: Yeah hivyo ni faili za mitaa. 181 00:07:40,460 --> 00:07:44,300 Hivyo kama ni faili za mitaa yako mwenyewe hapa kwenye mstari wa 15, kwa mfano, unaweza kutumia 182 00:07:44,300 --> 00:07:46,570 quotes mbili badala ya mabano angled. 183 00:07:46,570 --> 00:07:48,270 >> Sasa hii ni aina ya kuvutia. 184 00:07:48,270 --> 00:07:51,830 Taarifa kwamba nimepata alitangaza kimataifa kutofautiana katika mpango huu juu ya mstari wa 18 185 00:07:51,830 --> 00:07:55,910 iitwayo ya kwanza, wazo kuwa hii ni kwenda kuwa pointer kwanza 186 00:07:55,910 --> 00:07:59,190 nodi katika orodha yangu wanaohusishwa, na nimekuwa initialized ni null, kwa sababu nimekuwa 187 00:07:59,190 --> 00:08:02,310 si zilizotengwa yoyote halisi nodes bado tu. 188 00:08:02,310 --> 00:08:07,570 >> Hivyo hii inawakilisha, pictorially, nini sisi aliona wakati iliyopita katika picha kama 189 00:08:07,570 --> 00:08:10,090 kwamba pointer juu mbali mkono wa kushoto upande. 190 00:08:10,090 --> 00:08:12,260 Hivyo sasa hivi, kwamba pointer hana mshale. 191 00:08:12,260 --> 00:08:14,590 Badala yake ni null. 192 00:08:14,590 --> 00:08:17,880 Lakini inawakilisha nini itakuwa anuani ya halisi ya kwanza 193 00:08:17,880 --> 00:08:19,480 nodi katika orodha hii. 194 00:08:19,480 --> 00:08:22,120 Hivyo nimekuwa kutekelezwa ni wa kimataifa kwa sababu, kama utaona, yote hii 195 00:08:22,120 --> 00:08:25,310 haina mpango katika maisha ni kutekeleza orodha wanaohusishwa kwa ajili yangu. 196 00:08:25,310 --> 00:08:27,050 >> Sasa mimi nimepata prototypes chache hapa. 197 00:08:27,050 --> 00:08:31,190 Mimi aliamua kutekeleza makala kama kufutwa, kuingizwa, kutafuta, na 198 00:08:31,190 --> 00:08:31,740 traversal - 199 00:08:31,740 --> 00:08:35,210 mwisho kuwa tu kutembea katika orodha, uchapishaji nje mambo yake. 200 00:08:35,210 --> 00:08:36,750 Na sasa hapa ni kawaida yangu kuu. 201 00:08:36,750 --> 00:08:39,890 Na sisi si kutumia muda sana juu ya hizi tangu hii ni aina ya, hopefully 202 00:08:39,890 --> 00:08:41,780 zamani kofia kwa sasa. 203 00:08:41,780 --> 00:08:45,370 >> Mimi nina kwenda kufanya yafuatayo, wakati mtumiaji inashirikiana. 204 00:08:45,370 --> 00:08:47,300 Hivyo moja, mimi nina kwenda magazeti nje orodha hii. 205 00:08:47,300 --> 00:08:49,420 Na nimekuwa formatted kama cleanly kama mimi naweza. 206 00:08:49,420 --> 00:08:52,240 Kama mtumiaji aina katika moja, ina maana kwamba wanataka kufuta kitu. 207 00:08:52,240 --> 00:08:54,560 Kama mtumiaji aina mbili, kwamba maana ya wanataka kuingiza kitu. 208 00:08:54,560 --> 00:08:55,930 Na kadhalika. 209 00:08:55,930 --> 00:08:58,270 Mimi nina kwenda kisha kuchochea kisha kwa ajili ya amri. 210 00:08:58,270 --> 00:08:59,300 Na kisha mimi naenda kutumia GetInt. 211 00:08:59,300 --> 00:09:02,790 >> Hivyo hii ni kweli rahisi menuing interface ambapo wewe tu kuwa na aina 212 00:09:02,790 --> 00:09:05,270 ramani ya simu kwa moja ya wale amri. 213 00:09:05,270 --> 00:09:08,730 Na sasa nina nzuri safi kubadili Kauli hiyo ni kwenda kubadili juu 214 00:09:08,730 --> 00:09:10,090 chochote mtumiaji typed in 215 00:09:10,090 --> 00:09:12,180 Na kama wao typed moja, mimi itabidi kuwaita kufuta na kuvunja. 216 00:09:12,180 --> 00:09:14,380 Kama wao typed mbili, mimi itabidi kuwaita kuingiza na kuvunja. 217 00:09:14,380 --> 00:09:16,490 >> Na sasa taarifa nimekuwa kuweka kila ya haya juu ya mstari huo. 218 00:09:16,490 --> 00:09:18,360 Hii ni uamuzi Stylistic. 219 00:09:18,360 --> 00:09:20,210 Kawaida tumeona kitu kama hii. 220 00:09:20,210 --> 00:09:23,260 Lakini mimi tu aliamua, kusema ukweli, mpango wangu inaonekana zaidi someka kwa sababu 221 00:09:23,260 --> 00:09:25,980 ilikuwa ni nne tu kesi tu orodha ni kama hii. 222 00:09:25,980 --> 00:09:28,360 Kabisa halali matumizi ya mtindo. 223 00:09:28,360 --> 00:09:31,480 Na mimi naenda kufanya hii ya muda mrefu kama mtumiaji hana typed sifuri, ambayo mimi 224 00:09:31,480 --> 00:09:33,910 aliamua itakuwa na maana wanataka kujiondoa. 225 00:09:33,910 --> 00:09:36,630 >> Hivyo sasa taarifa ya nini mimi nina kwenda kufanya hapa. 226 00:09:36,630 --> 00:09:38,650 Mimi nina kwenda huru orodha inaonekana. 227 00:09:38,650 --> 00:09:40,230 Lakini zaidi juu ya kwamba katika muda tu. 228 00:09:40,230 --> 00:09:41,640 Hebu kwanza kuendesha mpango huu. 229 00:09:41,640 --> 00:09:45,250 Hivyo basi mimi kufanya terminal kubwa dirisha, dot kufyeka orodha 0. 230 00:09:45,250 --> 00:09:49,510 Mimi nina kwenda mbele na kuingiza na kuandika mbili, idadi kama 50, na sasa 231 00:09:49,510 --> 00:09:51,590 utaona orodha sasa ni 50. 232 00:09:51,590 --> 00:09:53,380 Na maandishi yangu tu scrolled juu kidogo. 233 00:09:53,380 --> 00:09:55,940 Hivyo sasa taarifa orodha ina simu 50. 234 00:09:55,940 --> 00:09:58,220 >> Hebu kufanya mwingine Insert kwa kuchukua mbili. 235 00:09:58,220 --> 00:10:01,630 Hebu aina katika idadi kama mmoja. 236 00:10:01,630 --> 00:10:03,940 Orodha ya sasa ni moja, ikifuatiwa na 50. 237 00:10:03,940 --> 00:10:06,020 Hivyo hii ni tu uwakilishi textual ya orodha. 238 00:10:06,020 --> 00:10:10,550 Na hebu kuingiza moja zaidi ya simu kama namba 42, ambayo ni hopefully 239 00:10:10,550 --> 00:10:14,620 kwenda kuishia katikati, kwa sababu programu hii katika aina fulani ni 240 00:10:14,620 --> 00:10:16,320 mambo kama kuwekeza yao. 241 00:10:16,320 --> 00:10:17,220 Hivyo kuna sisi kuwa nayo. 242 00:10:17,220 --> 00:10:20,730 Super rahisi mpango kwamba angeweza kabisa wametumia safu, lakini mimi 243 00:10:20,730 --> 00:10:23,280 kutokea kwa kutumia orodha wanaohusishwa hivyo tu naweza dynamically 244 00:10:23,280 --> 00:10:24,610 kukua na kuogopa hilo. 245 00:10:24,610 --> 00:10:28,470 >> Hivyo hebu tuangalie kwa ajili ya utafutaji, kama mimi kukimbia amri tatu, nataka kutafuta 246 00:10:28,470 --> 00:10:31,040 kwa kusema, simu 43. 247 00:10:31,040 --> 00:10:34,190 Na hakuna kitu ilikuwa inaonekana kupatikana, kwa sababu mimi got nyuma hakuna majibu. 248 00:10:34,190 --> 00:10:35,010 Basi hebu kufanya hii tena. 249 00:10:35,010 --> 00:10:35,690 Kutafuta. 250 00:10:35,690 --> 00:10:39,520 Hebu tafuta kwa ajili ya 50, au tuseme kutafuta kwa ajili ya 42, ambayo ina nice 251 00:10:39,520 --> 00:10:40,850 kidogo hila maana. 252 00:10:40,850 --> 00:10:42,610 Na nimeona maana ya maisha huko. 253 00:10:42,610 --> 00:10:44,990 Namba 42, kama hamjui kumbukumbu, Google yake. 254 00:10:44,990 --> 00:10:45,350 Wote haki. 255 00:10:45,350 --> 00:10:47,130 Hivyo kile ina mpango huu kufanyika kwa ajili yangu? 256 00:10:47,130 --> 00:10:50,660 Ni tu kuruhusiwa mimi kuingiza hivyo mbali na kutafuta kwa ajili ya mambo. 257 00:10:50,660 --> 00:10:53,650 >> Hebu haraka mbele, basi, kwa kwamba kazi ya sisi akapiga saa 258 00:10:53,650 --> 00:10:55,360 Jumatatu kama kichocheo. 259 00:10:55,360 --> 00:10:59,620 Hivyo kazi hii, mimi kudai, utafutaji kwa ajili ya kipengele katika orodha ya kwanza na 260 00:10:59,620 --> 00:11:03,830 moja, na kusababisha mtumiaji na basi wito GetInt kupata int halisi 261 00:11:03,830 --> 00:11:05,060 kwamba unataka kutafuta. 262 00:11:05,060 --> 00:11:06,460 >> Basi taarifa hii. 263 00:11:06,460 --> 00:11:10,690 Mimi nina kwenda kujenga variable muda katika mstari 188 kuitwa pointer - 264 00:11:10,690 --> 00:11:11,270 PTR - 265 00:11:11,270 --> 00:11:12,440 ingeweza kuitwa ni kitu chochote. 266 00:11:12,440 --> 00:11:16,140 Na ni pointer nodi kwa sababu nalisema nodi * huko. 267 00:11:16,140 --> 00:11:19,900 Na mimi nina initializing kuwa ni sawa na kwanza ili mimi na ufanisi wangu 268 00:11:19,900 --> 00:11:22,860 kidole, hivyo kusema, juu sana kwanza kipengele cha orodha. 269 00:11:22,860 --> 00:11:27,460 Hivyo kama mkono wangu wa kulia hapa ni PTR mimi nina akionyesha kitu kimoja kwamba kwanza 270 00:11:27,460 --> 00:11:28,670 ananyoosha katika. 271 00:11:28,670 --> 00:11:31,430 >> Hivyo sasa nyuma katika kanuni, kile kinachotokea ijayo - 272 00:11:31,430 --> 00:11:35,070 hii ni dhana ya kawaida wakati iterating juu ya muundo kama 273 00:11:35,070 --> 00:11:35,970 wanaohusishwa orodha. 274 00:11:35,970 --> 00:11:40,410 Mimi nina kwenda kufanya yafuatayo wakati pointer si sawa na null Hivyo wakati 275 00:11:40,410 --> 00:11:47,530 kidole yangu si akionyesha null baadhi thamani, kama pointer mshale n sawa n. 276 00:11:47,530 --> 00:11:52,290 Tutaweza taarifa ya kwanza kwamba n ni nini mtumiaji typed katika GetInts kwa kuwaita hapa. 277 00:11:52,290 --> 00:11:54,280 >> Na pointer mshale n maana yake nini? 278 00:11:54,280 --> 00:11:59,020 Vizuri kama sisi kwenda nyuma ya picha hapa, kama nina kidole akionyesha 279 00:11:59,020 --> 00:12:02,960 kwamba nodi kwanza zenye tisa, mshale kimsingi ina maana kwamba kwenda 280 00:12:02,960 --> 00:12:08,860 nodi na kunyakua thamani katika eneo n, katika kesi hii, shamba data kuitwa n. 281 00:12:08,860 --> 00:12:14,120 >> Kama kando - na tuliona hii michache ya wiki iliyopita wakati mtu aliuliza - 282 00:12:14,120 --> 00:12:18,840 syntax hii ni mpya, lakini haina kutupatia nguvu kwamba sisi 283 00:12:18,840 --> 00:12:20,040 hakuwa tayari. 284 00:12:20,040 --> 00:12:25,325 Nini ilikuwa hii maneno sawa na kutumia nukta nukuu na nyota wanandoa 285 00:12:25,325 --> 00:12:29,490 ya wiki iliyopita wakati sisi peeled nyuma safu hii mapema kidogo? 286 00:12:29,490 --> 00:12:31,780 >> MWANAFUNZI: [inaudible]. 287 00:12:31,780 --> 00:12:38,880 >> SPIKA 1: Hasa, ilikuwa ni nyota, na basi ni nyota dot n, na 288 00:12:38,880 --> 00:12:41,930 mabano hapa, ambayo inaonekana, kusema ukweli, nadhani mengi 289 00:12:41,930 --> 00:12:43,320 zaidi fumbo kusoma. 290 00:12:43,320 --> 00:12:46,270 Lakini nyota pointer, kama siku zote, njia kwenda huko. 291 00:12:46,270 --> 00:12:49,090 Na mara moja uko huko, kile data shamba unataka kupata? 292 00:12:49,090 --> 00:12:52,730 Vizuri kutumia nukuu dot kupata structs shamba data, na mimi 293 00:12:52,730 --> 00:12:54,140 hasa wanataka n. 294 00:12:54,140 --> 00:12:56,240 >> Kusema ukweli, napenda wanasema hii ni vigumu kusoma. 295 00:12:56,240 --> 00:12:58,080 Ni vigumu kukumbuka ambapo wala mabano kwenda, 296 00:12:58,080 --> 00:12:59,030 nyota na wote ya kwamba. 297 00:12:59,030 --> 00:13:02,150 Hivyo dunia iliyopitishwa baadhi ya kisintaksia sukari, hivyo kusema. 298 00:13:02,150 --> 00:13:04,740 Njia tu sexy ya kusema, hii ni sawa, na 299 00:13:04,740 --> 00:13:05,970 labda zaidi Intuitive. 300 00:13:05,970 --> 00:13:09,600 Kama pointer ni kweli pointer, mshale nukuu njia kwenda huko na kupata 301 00:13:09,600 --> 00:13:11,890 shamba katika kesi hii inaitwa n. 302 00:13:11,890 --> 00:13:13,660 >> Hivyo kama mimi kupata hiyo, taarifa ya nini mimi kufanya. 303 00:13:13,660 --> 00:13:17,430 Mimi tu magazeti nje, nimeona asilimia i, plugging katika thamani kwa int kwamba. 304 00:13:17,430 --> 00:13:20,730 Mimi wito kulala kwa moja ya pili tu ya aina mambo ya pause kwenye screen 305 00:13:20,730 --> 00:13:22,900 kutoa user pili wa kunyonya kile tu kilichotokea. 306 00:13:22,900 --> 00:13:24,290 Na kisha mimi kuvunja. 307 00:13:24,290 --> 00:13:26,330 Vinginevyo, nini mimi? 308 00:13:26,330 --> 00:13:30,960 Mimi update pointer sawa pointer mshale ijayo. 309 00:13:30,960 --> 00:13:35,840 >> Hivyo tu kuwa wazi, hii ina maana kwenda huko, kutumia yangu zamani shule nukuu. 310 00:13:35,840 --> 00:13:39,580 Hivyo hii ina maana tu ya kwenda chochote wewe ni akionyesha, ambayo kwa sana 311 00:13:39,580 --> 00:13:43,660 kesi ya kwanza ni mimi nina akionyesha struct na tisa katika hilo. 312 00:13:43,660 --> 00:13:44,510 Hivyo nimekuwa amekwenda huko. 313 00:13:44,510 --> 00:13:47,880 Na kisha nukuu dot maana yake, kupata thamani saa ijayo. 314 00:13:47,880 --> 00:13:50,470 >> Lakini thamani, hata kama ni inayotolewa kama nyembamba, ni idadi tu. 315 00:13:50,470 --> 00:13:51,720 Ni anuani nambari. 316 00:13:51,720 --> 00:13:55,670 Hivyo hii line moja ya kanuni, kama imeandikwa kama hii, zaidi fumbo 317 00:13:55,670 --> 00:14:00,190 njia, au kama hii, kidogo zaidi njia angavu, tu ina maana hoja mkono wangu 318 00:14:00,190 --> 00:14:03,460 na nodi ya kwanza kwa moja ijayo, na kisha moja ijayo, na kisha 319 00:14:03,460 --> 00:14:05,320 ijayo mmoja, na kadhalika. 320 00:14:05,320 --> 00:14:09,920 >> Hivyo sisi si kukaa juu ya nyingine utekelezaji wa kuingiza na kufuta 321 00:14:09,920 --> 00:14:14,030 na traversal, wawili wa kwanza wa ambayo ni haki ya kushiriki. 322 00:14:14,030 --> 00:14:17,010 Na nadhani ni rahisi kabisa ya kupata waliopotea wakati wa kufanya hivyo kwa maneno. 323 00:14:17,010 --> 00:14:19,890 Lakini nini tunaweza kufanya hapa ni kujaribu kuamua jinsi 324 00:14:19,890 --> 00:14:21,640 bora kufanya hivyo kuibua. 325 00:14:21,640 --> 00:14:24,800 Kwa sababu napenda kupendekeza kwamba kama sisi wanataka kuingiza mambo ya ndani ya hii 326 00:14:24,800 --> 00:14:26,680 zilizopo orodha, ambayo ina mambo tano - 327 00:14:26,680 --> 00:14:29,530 9, 17, 22, 26, na 33 - 328 00:14:29,530 --> 00:14:33,300 kama mimi walikuwa kwenda kutekeleza hili katika kanuni, mimi haja ya kufikiria jinsi ya kwenda 329 00:14:33,300 --> 00:14:34,160 juu ya kufanya hii. 330 00:14:34,160 --> 00:14:37,720 >> Na napenda kupendekeza kuchukua hatua mtoto ambapo, katika kesi hii I mean, ni nini 331 00:14:37,720 --> 00:14:41,090 matukio inawezekana kwamba sisi anaweza kukutana kwa ujumla? 332 00:14:41,090 --> 00:14:44,120 Wakati utekelezaji Insert kwa wanaohusishwa orodha, hii hutokea tu kuwa 333 00:14:44,120 --> 00:14:46,090 maalum mfano wa ukubwa tano. 334 00:14:46,090 --> 00:14:50,420 Vizuri kama unataka kuingiza idadi, kama kusema namba moja, na 335 00:14:50,420 --> 00:14:53,380 kudumisha yamepangwa ili, ambapo wazi haina namba moja wanahitaji 336 00:14:53,380 --> 00:14:55,686 kwenda katika mfano huu maalum? 337 00:14:55,686 --> 00:14:56,840 Kama mwanzoni. 338 00:14:56,840 --> 00:15:00,030 >> Lakini nini kuvutia kuna ni kwamba kama unataka kuingiza moja katika hili 339 00:15:00,030 --> 00:15:04,100 orodha, nini pointer maalum mahitaji ya kuwa updated inaonekana? 340 00:15:04,100 --> 00:15:04,610 Kwanza. 341 00:15:04,610 --> 00:15:07,830 Hivyo napenda kusema, hii ni kesi ya kwanza kwamba sisi kutaka kufikiria, 342 00:15:07,830 --> 00:15:11,140 mazingira ya kuwashirikisha kuingiza katika mwanzo wa orodha. 343 00:15:11,140 --> 00:15:15,400 >> Hebu konoa labda kama rahisi au hata rahisi kesi, kiasi kuzungumza. 344 00:15:15,400 --> 00:15:18,110 Tuseme nataka kuingiza namba 35 ili Iliyopangwa. 345 00:15:18,110 --> 00:15:20,600 Ni wazi ni mali ya zaidi ya hapo. 346 00:15:20,600 --> 00:15:25,320 Hivyo kile pointer wazi ni kwenda kuwa updated katika hali hiyo? 347 00:15:25,320 --> 00:15:30,060 Pointer 34 ya kuwa si null lakini anwani ya struct 348 00:15:30,060 --> 00:15:31,800 zenye namba 35. 349 00:15:31,800 --> 00:15:32,750 Hivyo kwamba ni kesi mbili. 350 00:15:32,750 --> 00:15:36,190 Hivyo tayari, mimi nina aina ya quantizing kiasi gani kazi mimi kufanya hapa. 351 00:15:36,190 --> 00:15:39,880 >> Na hatimaye, wazi katikati kesi ni kweli kweli, katikati, kama nataka 352 00:15:39,880 --> 00:15:45,870 kuingiza kitu kama kusema 23, kwamba huenda kati ya 23 na 26, lakini 353 00:15:45,870 --> 00:15:48,680 sasa mambo kupata zaidi kidogo kushiriki kwa sababu gani 354 00:15:48,680 --> 00:15:52,800 kuyatumia haja ya kuwa iliyopita? 355 00:15:52,800 --> 00:15:56,680 Hivyo ni wazi 22 inahitaji kubadilishwa kwa sababu hawezi uhakika na 26 tena. 356 00:15:56,680 --> 00:16:00,320 Yeye mahitaji kwa uhakika na node mpya ambayo Mimi itabidi kutenga kwa kumwita 357 00:16:00,320 --> 00:16:01,770 malloc au baadhi ya sawa. 358 00:16:01,770 --> 00:16:05,990 >> Lakini basi mimi pia haja ya kuwa nodi mpya, 23 katika kesi hii, kuwa na pointer yake 359 00:16:05,990 --> 00:16:07,870 akionyesha nani? 360 00:16:07,870 --> 00:16:08,560 26. 361 00:16:08,560 --> 00:16:10,380 Na kuna kwenda kuwa utaratibu wa shughuli hapa. 362 00:16:10,380 --> 00:16:13,410 Kwa sababu kama mimi kufanya hivyo kwa ujinga, na mimi kwa mfano kuanza mwanzoni mwa 363 00:16:13,410 --> 00:16:16,040 orodha, na lengo langu ni kuingiza 23. 364 00:16:16,040 --> 00:16:18,610 Na mimi kuangalia, je, ni mali ya hapa karibu tisa? 365 00:16:18,610 --> 00:16:18,950 No 366 00:16:18,950 --> 00:16:20,670 Je, ni mali ya hapa, karibu na 17? 367 00:16:20,670 --> 00:16:20,940 No 368 00:16:20,940 --> 00:16:22,530 Je, ni mali hapa karibu na 22? 369 00:16:22,530 --> 00:16:23,300 Ndiyo. 370 00:16:23,300 --> 00:16:26,400 >> Sasa kama mimi nina wajinga hapa, na si kufikiri hili kwa njia ya, mimi ili 371 00:16:26,400 --> 00:16:28,320 kutenga nodi wangu mpya kwa 23. 372 00:16:28,320 --> 00:16:32,080 Nipate update pointer kutoka nodi kuitwa 22, akizungumzia 373 00:16:32,080 --> 00:16:33,080 ni kwenye nodi mpya. 374 00:16:33,080 --> 00:16:36,140 Na kisha nini nina update pointer nodi mpya ya kuwa? 375 00:16:36,140 --> 00:16:38,120 >> MWANAFUNZI: [inaudible]. 376 00:16:38,120 --> 00:16:38,385 >> SPIKA 1: Hasa. 377 00:16:38,385 --> 00:16:39,710 Akionyesha 26. 378 00:16:39,710 --> 00:16:45,590 Lakini Dammit kama sikuwa tayari update Pointer 22 wa uhakika katika guy hii, na 379 00:16:45,590 --> 00:16:48,260 sasa mimi na yatima, wengine ya orodha, hivyo kusema. 380 00:16:48,260 --> 00:16:52,140 Hivyo utaratibu wa shughuli hapa ni kwenda kuwa muhimu. 381 00:16:52,140 --> 00:16:55,100 >> Kufanya hii inaweza mimi kuiba, kusema, watu sita. 382 00:16:55,100 --> 00:16:57,650 Na hebu angalia kama hatuwezi kufanya hii kuibua badala ya kanuni ya-busara. 383 00:16:57,650 --> 00:16:59,330 Na tuna baadhi ya dhiki lovely mipira kwa leo. 384 00:16:59,330 --> 00:17:02,510 OK, vipi kuhusu moja, mbili, katika nyuma - tarehe ya mwisho huko. 385 00:17:02,510 --> 00:17:04,530 tatu, nne, wote wewe guys juu ya mwisho. 386 00:17:04,530 --> 00:17:05,579 Na tano, sita. 387 00:17:05,579 --> 00:17:05,839 Uhakika. 388 00:17:05,839 --> 00:17:06,450 Tano na sita. 389 00:17:06,450 --> 00:17:08,390 Yote ya haki na tutaweza kuja kwa nyie wakati ujao. 390 00:17:08,390 --> 00:17:09,640 Haki wote, kuja juu juu. 391 00:17:09,640 --> 00:17:12,010 392 00:17:12,010 --> 00:17:14,819 >> Haki zote, tangu uko hapa juu ya kwanza, ungependa kuwa mmoja awkwardly 393 00:17:14,819 --> 00:17:16,119 katika kioo Google hapa? 394 00:17:16,119 --> 00:17:19,075 Haki ya wote, hivyo, OK, kioo, kurekodi video. 395 00:17:19,075 --> 00:17:22,720 396 00:17:22,720 --> 00:17:24,589 OK, wewe ni vizuri kwenda. 397 00:17:24,589 --> 00:17:27,950 >> Haki wote, hivyo kama wewe guys unaweza kuja juu hapa, mimi tayari mapema 398 00:17:27,950 --> 00:17:30,110 baadhi ya namba. 399 00:17:30,110 --> 00:17:31,240 Haki wote, kuja juu zaidi ya hapa. 400 00:17:31,240 --> 00:17:33,440 Na kwa nini wewe kwenda kidogo zaidi kwamba njia. 401 00:17:33,440 --> 00:17:35,520 Na hebu angalia, nini jina lako, na kioo Google? 402 00:17:35,520 --> 00:17:35,910 >> MWANAFUNZI: Ben. 403 00:17:35,910 --> 00:17:36,230 >> SPIKA 1: Ben? 404 00:17:36,230 --> 00:17:38,380 OK, Ben, utakuwa wa kwanza, literally. 405 00:17:38,380 --> 00:17:40,580 Hivyo sisi ni kwenda kukutumia hadi mwisho wa hatua. 406 00:17:40,580 --> 00:17:41,670 Haki ya wote, na jina lako? 407 00:17:41,670 --> 00:17:41,990 >> MWANAFUNZI: Jason. 408 00:17:41,990 --> 00:17:44,530 >> SPIKA 1: Yasoni, OK utasikia kuwa idadi tisa. 409 00:17:44,530 --> 00:17:46,700 Hivyo kama unataka kufuata Ben njia hiyo. 410 00:17:46,700 --> 00:17:47,010 >> MWANAFUNZI: Jill. 411 00:17:47,010 --> 00:17:49,630 >> SPIKA 1: Jill, wewe ni kwenda kuwa 17, ambayo kama ningependa jambo hili zaidi 412 00:17:49,630 --> 00:17:51,260 akili, mimi ingekuwa ilianza saa nyingine ya mwisho. 413 00:17:51,260 --> 00:17:52,370 Kwenda njia hiyo. 414 00:17:52,370 --> 00:17:53,030 22. 415 00:17:53,030 --> 00:17:53,670 Na wewe ni? 416 00:17:53,670 --> 00:17:53,980 >> MWANAFUNZI: Maria. 417 00:17:53,980 --> 00:17:56,130 >> SPIKA 1: Maria, wewe utakuwa na 22. 418 00:17:56,130 --> 00:17:58,420 Na jina lako ni nani? 419 00:17:58,420 --> 00:17:58,810 >> MWANAFUNZI: Chris. 420 00:17:58,810 --> 00:18:00,100 >> SPIKA 1: Chris, wewe utakuwa na 26. 421 00:18:00,100 --> 00:18:00,740 Na kisha mwishowe. 422 00:18:00,740 --> 00:18:01,400 >> MWANAFUNZI: Diana. 423 00:18:01,400 --> 00:18:02,670 >> SPIKA 1: Diana, wewe utakuwa na 34. 424 00:18:02,670 --> 00:18:03,920 Hivyo kuja juu zaidi ya hapa. 425 00:18:03,920 --> 00:18:06,360 >> Haki ya wote, hivyo kukamilisha sorted kuamuru tayari. 426 00:18:06,360 --> 00:18:09,600 Na hebu kwenda mbele na kufanya hii ili tuweze kweli - 427 00:18:09,600 --> 00:18:11,720 Ben wewe ni aina tu ya kuangalia nje katika mahali pa huko. 428 00:18:11,720 --> 00:18:15,670 OK, hivyo hebu kwenda mbele na depict hii kutumia silaha, kiasi kama mimi nilikuwa, hasa, 429 00:18:15,670 --> 00:18:16,250 nini kinaendelea. 430 00:18:16,250 --> 00:18:19,540 Hivyo kwenda mbele na kutoa nafsi zenu mguu au mbili kati yenu. 431 00:18:19,540 --> 00:18:22,900 Na kwenda mbele na uhakika na mmoja mkono kwa anaye wewe lazima akionyesha 432 00:18:22,900 --> 00:18:23,470 msingi huu. 433 00:18:23,470 --> 00:18:25,890 Na kama wewe ni null tu kumweka moja kwa moja chini ya sakafu. 434 00:18:25,890 --> 00:18:27,690 OK, hivyo nzuri. 435 00:18:27,690 --> 00:18:32,290 >> Basi sasa tuna orodha wanaohusishwa, na napenda kupendekeza kwamba mimi itabidi kucheza nafasi ya 436 00:18:32,290 --> 00:18:35,110 PTR, hivyo mimi si bother kubeba hii kote. 437 00:18:35,110 --> 00:18:37,830 Na kisha - mtu kijinga mkataba - unaweza kuita hii kitu chochote unataka - 438 00:18:37,830 --> 00:18:39,800 mtangulizi pointer, pred pointer - 439 00:18:39,800 --> 00:18:43,930 ni tu jina la utani sisi alitoa katika sampuli zetu kanuni na mkono wangu wa kushoto. 440 00:18:43,930 --> 00:18:47,240 upande mwingine kwamba kwenda na kuweka wimbo wa nani ni nani katika 441 00:18:47,240 --> 00:18:48,400 kufuatia matukio. 442 00:18:48,400 --> 00:18:52,390 >> Hivyo tuseme, kwanza, nataka konoa kwamba mfano wa kwanza wa kuingiza, kusema 443 00:18:52,390 --> 00:18:54,330 20, katika orodha. 444 00:18:54,330 --> 00:18:57,160 Hivyo nina kwenda haja ya mtu uliopo namba 20 kwa ajili yetu. 445 00:18:57,160 --> 00:18:58,950 Hivyo mimi haja ya mtu malloc kutoka kwa watazamaji. 446 00:18:58,950 --> 00:18:59,380 Kuja juu juu. 447 00:18:59,380 --> 00:19:00,340 Nini jina lako? 448 00:19:00,340 --> 00:19:01,300 >> MWANAFUNZI: Brian. 449 00:19:01,300 --> 00:19:05,270 >> SPIKA 1: Brian, haki ya wote, hivyo atakuwa nodi zenye 20. 450 00:19:05,270 --> 00:19:06,810 Haki wote, kuja juu zaidi ya hapa. 451 00:19:06,810 --> 00:19:10,025 Na ni wazi, ambapo haina Brian ni mali? 452 00:19:10,025 --> 00:19:12,190 Hivyo, katikati ya - kweli, kusubiri dakika. 453 00:19:12,190 --> 00:19:13,420 Sisi ni kufanya hii nje ya utaratibu. 454 00:19:13,420 --> 00:19:17,170 Sisi ni kufanya hii vigumu sana kuliko mahitaji kwa kuwa saa ya kwanza. 455 00:19:17,170 --> 00:19:21,210 OK, tunakwenda bure Brian na realloc Brian kama tano. 456 00:19:21,210 --> 00:19:23,680 >> OK, hivyo sasa tunataka kuingiza Brian kama tano. 457 00:19:23,680 --> 00:19:25,960 Hivyo kuja juu juu hapa karibu na Ben kwa muda tu. 458 00:19:25,960 --> 00:19:28,250 Na unaweza kuwaambia labda ambapo hadithi hii ni kwenda. 459 00:19:28,250 --> 00:19:30,500 Lakini hebu kufikiri kwa makini kuhusu utaratibu wa shughuli. 460 00:19:30,500 --> 00:19:32,880 Na ni just hii Visual hiyo ni kwenda kujipanga 461 00:19:32,880 --> 00:19:34,080 na kwamba kanuni ya sampuli. 462 00:19:34,080 --> 00:19:40,120 Hivyo hapa mimi PTR akizungumzia awali si wakati Ben, per se, lakini katika kila 463 00:19:40,120 --> 00:19:43,245 thamani yeye ina, ambayo katika kesi hii ni - nini jina lako tena? 464 00:19:43,245 --> 00:19:43,670 >> MWANAFUNZI: Jason. 465 00:19:43,670 --> 00:19:47,350 >> SPIKA 1: Jason, hivyo wote Ben na mimi ni akionyesha Jason katika wakati huu. 466 00:19:47,350 --> 00:19:49,700 Hivyo sasa mimi na kuamua, ambapo gani Brian ni mali? 467 00:19:49,700 --> 00:19:53,500 Hivyo kitu pekee mimi kupata sasa hivi ni yake n data bidhaa. 468 00:19:53,500 --> 00:19:58,280 Hivyo nina kwenda kuangalia, ni Brian chini ya Jason? 469 00:19:58,280 --> 00:19:59,770 Jibu ni kweli. 470 00:19:59,770 --> 00:20:03,680 >> Basi nini sasa mahitaji ya kutokea, katika mpangilio sahihi? 471 00:20:03,680 --> 00:20:07,120 Mimi haja ya update kuyatumia jinsi wengi kwa jumla katika hadithi hii? 472 00:20:07,120 --> 00:20:10,720 Ambapo mkono wangu bado ni akionyesha Yasoni, na mkono wako - kama unataka 473 00:20:10,720 --> 00:20:12,930 kuweka mkono wako kama, aina ya, mimi sijui, alama ya swali. 474 00:20:12,930 --> 00:20:14,070 OK, nzuri. 475 00:20:14,070 --> 00:20:15,670 >> Haki ya wote, hivyo kuwa wagombea wachache. 476 00:20:15,670 --> 00:20:20,500 Ama Ben au mimi au Brian au Jason au kila mtu mwingine, ambayo 477 00:20:20,500 --> 00:20:21,370 kuyatumia haja ya mabadiliko? 478 00:20:21,370 --> 00:20:23,260 Wangapi katika jumla? 479 00:20:23,260 --> 00:20:24,080 >> OK, hivyo mbili. 480 00:20:24,080 --> 00:20:27,090 Pointer yangu kweli haina jambo tena kwa sababu mimi nina tu ya muda mfupi. 481 00:20:27,090 --> 00:20:31,370 Hivyo ni haya guys mbili, labda, wote Ben na Brian. 482 00:20:31,370 --> 00:20:34,410 Hivyo basi mimi kupendekeza kwamba sisi update Ben, tangu yeye kwanza. 483 00:20:34,410 --> 00:20:36,350 kipengele kwanza ya orodha hii sasa ni kwenda kuwa Brian. 484 00:20:36,350 --> 00:20:38,070 Hivyo Ben mchemko ifikapo Brian. 485 00:20:38,070 --> 00:20:39,320 OK, sasa nini? 486 00:20:39,320 --> 00:20:41,950 487 00:20:41,950 --> 00:20:43,460 >> Ambaye anapata alisema saa nani? 488 00:20:43,460 --> 00:20:44,710 >> MWANAFUNZI: [inaudible]. 489 00:20:44,710 --> 00:20:46,180 >> SPIKA 1: OK hivyo Brian ana kwa uhakika katika Jason. 490 00:20:46,180 --> 00:20:48,360 Lakini mimi waliopotea track ya pointer kwamba? 491 00:20:48,360 --> 00:20:49,980 Sijui ambapo Jason ni? 492 00:20:49,980 --> 00:20:50,790 >> MWANAFUNZI: [inaudible]. 493 00:20:50,790 --> 00:20:52,620 >> SPIKA 1: mimi kufanya, tangu mimi nina pointer ya muda mfupi. 494 00:20:52,620 --> 00:20:55,110 Na labda, mimi si iliyopita kwa kumweka kwenye nodi mpya. 495 00:20:55,110 --> 00:20:58,300 Hivyo tunaweza tu na Brian hatua saa yeyote nina akionyesha. 496 00:20:58,300 --> 00:20:59,000 Na sisi ni kosa. 497 00:20:59,000 --> 00:21:01,890 Hivyo kesi moja, kuingizwa katika mwanzo wa orodha. 498 00:21:01,890 --> 00:21:02,950 Kulikuwa hatua mbili muhimu. 499 00:21:02,950 --> 00:21:06,750 Moja, tuna update Ben, na kisha sisi pia kuwa na update Brian. 500 00:21:06,750 --> 00:21:09,230 Na kisha mimi hawana bother traipsing njia ya mapumziko ya 501 00:21:09,230 --> 00:21:12,680 orodha, kwa sababu sisi tayari kupatikana yake mahali, kwa sababu yeye ni mali ya 502 00:21:12,680 --> 00:21:14,080 kushoto wa kipengele kwanza. 503 00:21:14,080 --> 00:21:15,400 >> Haki ya wote, hivyo pretty moja kwa moja. 504 00:21:15,400 --> 00:21:18,110 Kwa kweli, anahisi kama tuko karibu kufanya hii ngumu sana. 505 00:21:18,110 --> 00:21:20,240 Basi hebu sasa konoa mwisho ya orodha, na kuona ambapo 506 00:21:20,240 --> 00:21:21,380 utata kuanza. 507 00:21:21,380 --> 00:21:24,560 Hivyo kama sasa, mimi alloc kutoka kwa watazamaji. 508 00:21:24,560 --> 00:21:25,540 Mtu yeyote unataka kucheza 55? 509 00:21:25,540 --> 00:21:26,700 Haki zote, niliona mkono wako wa kwanza. 510 00:21:26,700 --> 00:21:29,620 Kuja juu juu. 511 00:21:29,620 --> 00:21:30,030 Yeah. 512 00:21:30,030 --> 00:21:31,177 Nini jina lako? 513 00:21:31,177 --> 00:21:32,310 >> MWANAFUNZI: [inaudible]. 514 00:21:32,310 --> 00:21:33,240 >> SPIKA 1: Habata. 515 00:21:33,240 --> 00:21:33,890 OK, kuja juu juu. 516 00:21:33,890 --> 00:21:35,730 Wewe utakuwa na simu 55. 517 00:21:35,730 --> 00:21:37,820 Hivyo, bila shaka, ni mali mwisho wa orodha. 518 00:21:37,820 --> 00:21:41,850 Basi hebu Replay simulation na mimi kuwa PTR kwa muda tu. 519 00:21:41,850 --> 00:21:44,050 Hivyo nina uhakika kwanza kwenda katika chochote Ben ni akionyesha. 520 00:21:44,050 --> 00:21:45,900 Tuko wote akizungumzia sasa saa Brian. 521 00:21:45,900 --> 00:21:48,420 Hivyo 55 ni si chini ya watano. 522 00:21:48,420 --> 00:21:52,510 Hivyo nina kwenda kwa update mwenyewe kwa akizungumzia pointer Brian ijayo, ambao 523 00:21:52,510 --> 00:21:54,450 sasa ni mwendo wa Jason. 524 00:21:54,450 --> 00:21:57,310 55 ni si chini ya tisa, hivyo Mimi nina kwenda update PTR. 525 00:21:57,310 --> 00:21:58,890 Mimi nina kwenda update PTR. 526 00:21:58,890 --> 00:22:02,290 Mimi nina kwenda update PTR Mimi kwenda update PTR. 527 00:22:02,290 --> 00:22:05,060 Na mimi naenda - hmm, nini jina yako tena? 528 00:22:05,060 --> 00:22:05,560 >> MWANAFUNZI: Diana. 529 00:22:05,560 --> 00:22:09,190 >> SPIKA 1: Diana ni akizungumzia, bila shaka, saa null kwa mkono wake wa kushoto. 530 00:22:09,190 --> 00:22:13,030 Hivyo ambapo gani Habata kweli ni wazi? 531 00:22:13,030 --> 00:22:15,050 Kwa upande wa kushoto, hapa. 532 00:22:15,050 --> 00:22:19,460 Hivyo ni jinsi gani mimi kujua kuweka wake Hapa Nadhani nimepata Star up. 533 00:22:19,460 --> 00:22:22,420 Kwa sababu ni nini PTR sanaa huu katika muda? 534 00:22:22,420 --> 00:22:23,240 Null. 535 00:22:23,240 --> 00:22:25,580 Hivyo hata kama, kuibua, tunaweza wazi kuona yote haya 536 00:22:25,580 --> 00:22:26,610 guys hapa juu ya hatua. 537 00:22:26,610 --> 00:22:29,680 Nimekuwa si naendelea wimbo wa uliopita mtu katika orodha. 538 00:22:29,680 --> 00:22:33,210 Sina kidole kuonyesha nje, katika kesi hii, idadi nodi 34. 539 00:22:33,210 --> 00:22:34,760 >> Basi hebu kweli kuanza hii zaidi. 540 00:22:34,760 --> 00:22:37,560 Hivyo sasa mimi kwa kweli kufanya haja pili mitaa kutofautiana. 541 00:22:37,560 --> 00:22:40,980 Na hii ni nini utaona katika halisi sampuli C kanuni, ambapo kama mimi kwenda, 542 00:22:40,980 --> 00:22:45,860 wakati mimi update mkono wangu wa kulia kwa uhakika Jason, na hivyo kuacha Brian nyuma, mimi 543 00:22:45,860 --> 00:22:51,440 bora kuanza kutumia mkono wangu wa kushoto kwa update ambapo nilikuwa, ili kama mimi kwenda 544 00:22:51,440 --> 00:22:52,700 kupitia orodha hii - 545 00:22:52,700 --> 00:22:55,040 zaidi kuliko mimi nia awkwardly sasa hapa kuibua - 546 00:22:55,040 --> 00:22:56,740 Mimi nina kwenda kupata mwisho wa orodha. 547 00:22:56,740 --> 00:23:00,020 >> Mkono hii bado ni null, ambayo ni pretty haina maana, zaidi ya kuonyesha 548 00:23:00,020 --> 00:23:02,980 Mimi nina wazi mwisho wa orodha, lakini sasa angalau nina hii 549 00:23:02,980 --> 00:23:08,270 mtangulizi pointer akizungumzia hapa, hivyo sasa nini mikono na nini kuyatumia haja 550 00:23:08,270 --> 00:23:10,150 kuwa updated? 551 00:23:10,150 --> 00:23:13,214 Ambaye mkono unataka reconfigure kwanza? 552 00:23:13,214 --> 00:23:15,190 >> MWANAFUNZI: [inaudible]. 553 00:23:15,190 --> 00:23:16,220 >> SPIKA 1: OK, hivyo Diana. 554 00:23:16,220 --> 00:23:21,110 Ambapo unataka uhakika Diana kushoto pointer saa? 555 00:23:21,110 --> 00:23:23,620 Saa 55, labda, ili kwamba tumekuwa kuingizwa huko. 556 00:23:23,620 --> 00:23:25,560 Na ambapo wanapaswa 55 pointer kwenda? 557 00:23:25,560 --> 00:23:27,000 Chini, anayewakilisha null. 558 00:23:27,000 --> 00:23:28,890 Na mikono yangu, katika hatua hii, wala jambo kwa sababu walikuwa tu 559 00:23:28,890 --> 00:23:30,070 muda vigezo. 560 00:23:30,070 --> 00:23:31,030 Hivyo sasa sisi ni kosa. 561 00:23:31,030 --> 00:23:34,650 >> Hivyo utata ziada hapo - na siyo kwamba ni vigumu kutekeleza, 562 00:23:34,650 --> 00:23:38,660 lakini tunahitaji kutofautiana sekondari ya kufanya uhakika kwamba kabla mimi hoja haki yangu 563 00:23:38,660 --> 00:23:42,140 mkono, mimi update thamani ya kushoto yangu mkono, pred pointer katika kesi hii, hivyo 564 00:23:42,140 --> 00:23:45,860 kwamba nina pointer trailing kuweka wimbo wa wapi nilipo. 565 00:23:45,860 --> 00:23:49,360 Sasa kama kando, kama wewe ni kufikiri hii kupitia, hii anahisi kama ni 566 00:23:49,360 --> 00:23:51,490 kidogo annoying kuwa na kuweka wimbo wa mkono huo wa kushoto. 567 00:23:51,490 --> 00:23:54,015 >> Gani ufumbuzi mwingine wa tatizo hili wamekuwa? 568 00:23:54,015 --> 00:23:56,500 Kama got wa kuunda upya data muundo tunazungumzia 569 00:23:56,500 --> 00:23:59,630 kupitia hivi sasa? 570 00:23:59,630 --> 00:24:02,690 Kama aina hii tu ya anahisi kidogo annoying kuwa, kama, mbili kuyatumia 571 00:24:02,690 --> 00:24:08,430 kwenda kupitia orodha, nani mwingine anaweza kuwa, katika ulimwengu halisi, iimarishwe 572 00:24:08,430 --> 00:24:10,160 habari kwamba tunahitaji? 573 00:24:10,160 --> 00:24:11,360 Yeah? 574 00:24:11,360 --> 00:24:12,610 >> MWANAFUNZI: [inaudible]. 575 00:24:12,610 --> 00:24:15,160 576 00:24:15,160 --> 00:24:16,150 >> SPIKA 1: Hasa. 577 00:24:16,150 --> 00:24:19,130 Haki hivyo kuna kweli ya kuvutia kijidudu ya wazo. 578 00:24:19,130 --> 00:24:22,470 Na hili wazo la pointer uliopita, akionyesha kipengele uliopita. 579 00:24:22,470 --> 00:24:25,580 Nini kama mimi tu ilivyo kwamba ndani ya orodha yenyewe? 580 00:24:25,580 --> 00:24:27,810 Na ni kwenda kuwa ngumu kwa taswira huu bila ya karatasi kila 581 00:24:27,810 --> 00:24:28,830 kuanguka kwa sakafu. 582 00:24:28,830 --> 00:24:31,860 Lakini tuseme kwamba hawa guys kutumika wote ya mikono yao ya kuwa uliopita 583 00:24:31,860 --> 00:24:35,950 pointer, na pointer ijayo, na hivyo kutekeleza kile Tutamwita doubly 584 00:24:35,950 --> 00:24:36,830 wanaohusishwa orodha. 585 00:24:36,830 --> 00:24:41,090 Hiyo naomba aina ya rewind, kwa urahisi zaidi bila mimi, 586 00:24:41,090 --> 00:24:43,800 programu, baada ya kuweka kufuatilia manually - 587 00:24:43,800 --> 00:24:44,980 kweli manually - 588 00:24:44,980 --> 00:24:47,280 ya ambapo mimi alikuwa hapo awali katika orodha. 589 00:24:47,280 --> 00:24:48,110 Hivyo sisi si kufanya hivyo. 590 00:24:48,110 --> 00:24:50,950 Tutaweza kushika ni rahisi kwa sababu hiyo ni yatakuja kwa bei, mara mbili kama 591 00:24:50,950 --> 00:24:53,450 mengi nafasi kwa ajili ya kuyatumia, kama unataka moja ya pili. 592 00:24:53,450 --> 00:24:55,760 Lakini hiyo ni kweli ya kawaida data muundo inajulikana kama 593 00:24:55,760 --> 00:24:57,410 doubly wanaohusishwa orodha. 594 00:24:57,410 --> 00:25:01,310 >> Hebu kufanya mfano wa mwisho hapa na kuweka haya guys nje ya taabu yao. 595 00:25:01,310 --> 00:25:03,270 Hivyo malloc 20. 596 00:25:03,270 --> 00:25:05,320 Kuja juu juu kutoka aisle huko. 597 00:25:05,320 --> 00:25:06,280 Haki zote, nini jina lako? 598 00:25:06,280 --> 00:25:07,440 >> MWANAFUNZI: [inaudible]. 599 00:25:07,440 --> 00:25:07,855 >> SPIKA 1: Samahani? 600 00:25:07,855 --> 00:25:08,480 >> MWANAFUNZI: [inaudible]. 601 00:25:08,480 --> 00:25:09,410 >> SPIKA 1: Demeron? 602 00:25:09,410 --> 00:25:10,230 OK kuja juu juu. 603 00:25:10,230 --> 00:25:11,910 Mtakuwa 20. 604 00:25:11,910 --> 00:25:14,720 Wewe ni wazi ni kwenda ni kati ya 17 na 22. 605 00:25:14,720 --> 00:25:16,150 Hivyo basi mimi kujifunza somo yangu. 606 00:25:16,150 --> 00:25:18,150 Mimi naenda kuanza pointer akionyesha Brian. 607 00:25:18,150 --> 00:25:21,190 Na mimi nina kwenda kuwa na mkono wangu wa kushoto tu update kwa Brian kama mimi hoja ya 608 00:25:21,190 --> 00:25:23,600 Jason, kuangalia anafanya 20 chini ya tisa? 609 00:25:23,600 --> 00:25:24,060 No 610 00:25:24,060 --> 00:25:25,430 Ni 20 chini ya 17? 611 00:25:25,430 --> 00:25:25,880 No 612 00:25:25,880 --> 00:25:27,450 Ni 20 chini ya 22? 613 00:25:27,450 --> 00:25:28,440 Ndiyo. 614 00:25:28,440 --> 00:25:34,070 Hivyo kile kuyatumia au mikono haja ya kubadili ambapo wao ni akizungumzia sasa? 615 00:25:34,070 --> 00:25:37,070 >> Hivyo tunaweza kufanya 17 akionyesha 20. 616 00:25:37,070 --> 00:25:37,860 Hivyo kwamba ni faini. 617 00:25:37,860 --> 00:25:40,080 Wapi tunataka uhakika pointer yako sasa? 618 00:25:40,080 --> 00:25:41,330 Saa 22. 619 00:25:41,330 --> 00:25:45,410 Na tunajua ambapo 22 ni, tena shukrani pointer yangu ya muda mfupi. 620 00:25:45,410 --> 00:25:46,760 Hivyo sisi ni OK huko. 621 00:25:46,760 --> 00:25:49,440 Hivyo kwa sababu ya hii ya kuhifadhi muda Nimekuwa naendelea wimbo wa ambapo kila mtu ni. 622 00:25:49,440 --> 00:25:55,055 Na sasa unaweza kwenda katika kuibua ambapo wewe ni mali, na sasa tunahitaji 1, 2, 3, 623 00:25:55,055 --> 00:25:58,410 4, 5, 6, 7, 8, 9 dhiki mipira, na pande zote ya applause kwa 624 00:25:58,410 --> 00:25:59,770 haya guys, kama tunaweza. 625 00:25:59,770 --> 00:26:00,410 Nicely kufanyika. 626 00:26:00,410 --> 00:26:05,320 >> [Makofi] 627 00:26:05,320 --> 00:26:06,330 >> SPIKA 1: zote haki. 628 00:26:06,330 --> 00:26:09,860 Na unaweza kuweka vipande ya karatasi kama mementos. 629 00:26:09,860 --> 00:26:15,930 >> Haki ya wote, hivyo, imani yangu ni mengi rahisi kutembea kwa njia ya kwamba pamoja na 630 00:26:15,930 --> 00:26:17,680 binadamu zaidi ni pamoja na kanuni halisi. 631 00:26:17,680 --> 00:26:22,690 Lakini nini utapata katika muda tu sasa, ni kwamba huo - oh, asante. 632 00:26:22,690 --> 00:26:23,630 Asante - 633 00:26:23,630 --> 00:26:29,360 ni kwamba utapata kwamba data huo muundo, orodha wanaohusishwa, unaweza kweli 634 00:26:29,360 --> 00:26:33,200 kutumika kama kuzuia ujenzi na hata zaidi kisasa data miundo. 635 00:26:33,200 --> 00:26:37,620 >> Na kutambua pia mandhari hapa ni kwamba tumekuwa kabisa ilianzisha zaidi 636 00:26:37,620 --> 00:26:40,060 utata katika utekelezaji ya algorithm hii. 637 00:26:40,060 --> 00:26:43,940 Kuingizwa, na kama sisi akaenda kwa njia hiyo, kufuta na kutafuta, ni kidogo 638 00:26:43,940 --> 00:26:46,660 ngumu zaidi kuliko alikuwa pamoja na safu. 639 00:26:46,660 --> 00:26:48,040 Lakini sisi kupata baadhi ya mabadiliko. 640 00:26:48,040 --> 00:26:50,180 Sisi kupata adaptive data muundo. 641 00:26:50,180 --> 00:26:54,010 >> Lakini tena, sisi kulipa bei ya kuwa na baadhi ya ziada utata, katika 642 00:26:54,010 --> 00:26:54,910 kutekeleza hilo. 643 00:26:54,910 --> 00:26:56,750 Na sisi ni kupewa upatikanaji random. 644 00:26:56,750 --> 00:27:00,450 Na kwa kuwa waaminifu, kuna si baadhi nice safi slide naweza kukupa kwamba 645 00:27:00,450 --> 00:27:03,120 anasema hapa ni kwa nini orodha wanaohusishwa ni bora kuliko safu. 646 00:27:03,120 --> 00:27:04,100 Na kuondoka saa hiyo. 647 00:27:04,100 --> 00:27:07,520 Kwa sababu mandhari reoccurring sasa, hata zaidi ya hivyo katika wiki ijayo, ni 648 00:27:07,520 --> 00:27:10,200 kwamba kuna si lazima jibu sahihi. 649 00:27:10,200 --> 00:27:13,830 >> Hii ni kwa nini tuna mhimili tofauti ya kubuni kwa seti tatizo. 650 00:27:13,830 --> 00:27:17,700 Itakuwa sana mazingira nyeti kama unataka kutumia data hii 651 00:27:17,700 --> 00:27:21,750 muundo au kwamba mmoja, na itakuwa itategemea kile mambo na wewe katika suala 652 00:27:21,750 --> 00:27:24,620 wa rasilimali na utata. 653 00:27:24,620 --> 00:27:28,830 >> Lakini basi mimi kupendekeza kwamba data bora muundo, grail takatifu, itakuwa 654 00:27:28,830 --> 00:27:32,200 kitu ambacho ni mara kwa mara wakati, bila kujali jinsi mambo mengi ni 655 00:27:32,200 --> 00:27:36,940 ndani yake, si ingekuwa ajabu ikiwa data muundo akarudi majibu katika 656 00:27:36,940 --> 00:27:37,920 mara kwa mara wakati. 657 00:27:37,920 --> 00:27:38,330 Ndiyo. 658 00:27:38,330 --> 00:27:40,110 Hii neno ni katika kamusi yako kubwa. 659 00:27:40,110 --> 00:27:41,550 Au hakuna, hii si neno. 660 00:27:41,550 --> 00:27:43,270 Au tatizo lolote vile huko. 661 00:27:43,270 --> 00:27:46,360 Naam hebu angalia kama hatuwezi angalau kuchukua hatua kuelekea hiyo. 662 00:27:46,360 --> 00:27:50,190 >> Basi mimi kupendekeza mpya data muundo kwamba inaweza kutumika kwa ajili ya mambo mbalimbali, 663 00:27:50,190 --> 00:27:52,260 katika kesi hii inaitwa meza hash. 664 00:27:52,260 --> 00:27:55,590 Na hivyo sisi ni kweli nyuma ya glancing katika safu, katika kesi hii, na 665 00:27:55,590 --> 00:28:00,550 kiasi fulani kiholela, nimekuwa inayotolewa hii hash meza kama safu na aina ya 666 00:28:00,550 --> 00:28:02,810 mbili-dimensional safu - 667 00:28:02,810 --> 00:28:05,410 au tuseme ni taswira ya hapa kama mbili dimensional safu - lakini hii ni 668 00:28:05,410 --> 00:28:10,770 safu ya ukubwa 26, vile kwamba kama sisi piga meza safu, meza bracket 669 00:28:10,770 --> 00:28:12,440 sifuri ni Mstatili kwa juu. 670 00:28:12,440 --> 00:28:15,090 Meza bracket 25 ni mstatili chini. 671 00:28:15,090 --> 00:28:18,620 Na hii ni jinsi mimi ili kuteka data muundo ambayo mimi unataka kuhifadhi 672 00:28:18,620 --> 00:28:19,790 watu majina. 673 00:28:19,790 --> 00:28:24,370 >> Hivyo kwa mfano, na mimi si kuteka nzima kitu hapa juu ya uendeshaji, kama mimi 674 00:28:24,370 --> 00:28:29,160 alikuwa na safu hii, ambayo mimi sasa kwenda piga meza hash, na hii ni tena 675 00:28:29,160 --> 00:28:31,360 eneo sifuri. 676 00:28:31,360 --> 00:28:34,840 Hii hapa ni mahali mmoja, na kadhalika. 677 00:28:34,840 --> 00:28:37,880 Mimi kudai kwamba mimi nataka kutumia data hii muundo, kwa ajili ya majadiliano, 678 00:28:37,880 --> 00:28:42,600 kuhifadhi majina ya watu, Alice na Bob na Charlie na majina mengine kama hayo. 679 00:28:42,600 --> 00:28:46,110 Hivyo kufikiri ya hii sasa kama mwanzo ya, kusema, kamusi 680 00:28:46,110 --> 00:28:47,520 kwa kura ya maneno. 681 00:28:47,520 --> 00:28:49,435 Wao kutokea kwa kuwa majina katika mfano wetu hapa. 682 00:28:49,435 --> 00:28:52,560 Na hii yote ni pia germane, pengine, kwa kutekeleza kusahihisha Spell, kama sisi 683 00:28:52,560 --> 00:28:54,400 ili kwa tatizo kuweka sita. 684 00:28:54,400 --> 00:28:59,300 >> Hivyo kama tuna safu ya kawaida ya jumla 26 hivyo kwamba hii ni mahali 25 685 00:28:59,300 --> 00:29:03,390 chini, na mimi kudai kwamba Alice ni neno la kwanza katika kamusi ya 686 00:29:03,390 --> 00:29:07,260 majina ya kwamba mimi nataka kuingiza ndani ya RAM, ndani ya muundo huu data, ambapo ni 687 00:29:07,260 --> 00:29:12,480 silika kuwaambia kwamba Alice jina lazima kwenda katika safu hii? 688 00:29:12,480 --> 00:29:13,510 >> Tuna njia 26. 689 00:29:13,510 --> 00:29:14,990 Ambapo tunataka kuweka wake? 690 00:29:14,990 --> 00:29:16,200 Tunataka yake katika mabano sifuri, haki? 691 00:29:16,200 --> 00:29:18,280 kwa Alice, hebu wito kwamba sifuri. 692 00:29:18,280 --> 00:29:20,110 Na B itakuwa moja, na C itakuwa mbili. 693 00:29:20,110 --> 00:29:22,600 Hivyo sisi ni kwenda kuandika Jina Alice hapa juu. 694 00:29:22,600 --> 00:29:24,890 Kama sisi kisha kuingiza Bob, wake jina kwenda hapa. 695 00:29:24,890 --> 00:29:27,280 Charlie kwenda hapa. 696 00:29:27,280 --> 00:29:30,500 Na kadhalika chini kupitia muundo huu data. 697 00:29:30,500 --> 00:29:32,090 >> Hii ni ajabu data muundo. 698 00:29:32,090 --> 00:29:32,730 Kwa nini? 699 00:29:32,730 --> 00:29:37,460 Vizuri ni nini wakati mbio ya kuingiza jina binadamu ndani ya hii 700 00:29:37,460 --> 00:29:39,850 data muundo hivi sasa? 701 00:29:39,850 --> 00:29:43,702 Kutokana na kwamba meza hii ni kutekelezwa, kweli, kama safu. 702 00:29:43,702 --> 00:29:44,940 Naam ni mara kwa mara wakati. 703 00:29:44,940 --> 00:29:45,800 Ni utaratibu wa moja. 704 00:29:45,800 --> 00:29:46,360 Kwa nini? 705 00:29:46,360 --> 00:29:48,630 >> Vizuri jinsi gani unaweza kuamua ambapo Alice ni mali? 706 00:29:48,630 --> 00:29:51,000 Ukiangalia ambayo barua ya jina lake? 707 00:29:51,000 --> 00:29:51,490 kwanza. 708 00:29:51,490 --> 00:29:54,350 Na unaweza kupata huko, kama ni kamba, na kuangalia tu kamba 709 00:29:54,350 --> 00:29:55,200 bracket sifuri. 710 00:29:55,200 --> 00:29:57,110 Hivyo tabia 0 wa kamba. 711 00:29:57,110 --> 00:29:57,610 Hiyo ni rahisi. 712 00:29:57,610 --> 00:30:00,350 Sisi gani kwamba katika crypto zoezi wiki iliyopita. 713 00:30:00,350 --> 00:30:05,310 Na kisha mara moja, unajua kwamba Alice mbili ni mji mkuu, tunaweza Ondoa 714 00:30:05,310 --> 00:30:08,160 mbali ya 65 au mji mkuu yenyewe, ambayo inatupa sifuri. 715 00:30:08,160 --> 00:30:10,940 Hivyo sisi sasa tunajua kuwa ni mali ya Alice katika eneo sifuri. 716 00:30:10,940 --> 00:30:14,240 >> Na kupewa pointer data hii muundo, wa aina fulani, jinsi muda gani 717 00:30:14,240 --> 00:30:18,840 ni kuchukua yangu ya kupata eneo sifuri katika safu? 718 00:30:18,840 --> 00:30:22,080 Hatua moja tu, haki Ni mara kwa mara wakati sababu ya kupata random sisi 719 00:30:22,080 --> 00:30:23,780 mapendekezo ilikuwa kipengele wa safu. 720 00:30:23,780 --> 00:30:28,570 Hivyo katika muda mfupi, kuhesabia nje nini index jina la Alice ni, ambayo ni, katika 721 00:30:28,570 --> 00:30:32,610 kesi hii, ni, au hebu tu kutatua kwamba kwa sifuri, ambapo ni moja B na C ni 722 00:30:32,610 --> 00:30:34,900 mbili, kuhesabia kwamba nje ni mara kwa mara wakati. 723 00:30:34,900 --> 00:30:38,510 Mimi tu na kuangalia barua yake ya kwanza, kuhesabia ambapo sifuri ni 724 00:30:38,510 --> 00:30:40,460 safu pia ni mara kwa mara wakati. 725 00:30:40,460 --> 00:30:42,140 Basi kitaalam kwamba kama hatua mbili sasa. 726 00:30:42,140 --> 00:30:43,330 Lakini hiyo bado mara kwa mara. 727 00:30:43,330 --> 00:30:46,880 Hivyo tunatoa wito kwamba O kubwa ya moja, hivyo tumekuwa Alice kuingizwa katika meza hii katika 728 00:30:46,880 --> 00:30:48,440 mara kwa mara wakati. 729 00:30:48,440 --> 00:30:50,960 >> Lakini kwa kweli, mimi nina kuwa naive hapa, sawa? 730 00:30:50,960 --> 00:30:53,240 Nini kama kuna Haruni katika darasa? 731 00:30:53,240 --> 00:30:53,990 Au Alicia? 732 00:30:53,990 --> 00:30:57,230 Au majina mengine ya kuanzia na A. wapi sisi kwenda kuweka 733 00:30:57,230 --> 00:31:00,800 kwamba mtu, haki? 734 00:31:00,800 --> 00:31:03,420 I mean, hivi sasa kuna tatu tu watu juu ya meza, hivyo labda sisi 735 00:31:03,420 --> 00:31:07,490 wanapaswa kuweka Haruni katika eneo sifuri moja mbili tatu. 736 00:31:07,490 --> 00:31:09,480 >> Haki, mimi naweza kuweka hapa. 737 00:31:09,480 --> 00:31:13,350 Lakini basi, kama sisi kujaribu kuingiza Daudi katika orodha hii, ambapo gani Daudi kwenda? 738 00:31:13,350 --> 00:31:15,170 Sasa mfumo wetu kuanza kuvunja chini, sawa? 739 00:31:15,170 --> 00:31:19,210 Kwa sababu sasa Daudi kuishia hapa kama Haruni ni kweli hapa. 740 00:31:19,210 --> 00:31:23,060 Na hivyo sasa hii dhana nzima ya kuwa na safi data muundo kwamba inatupa 741 00:31:23,060 --> 00:31:28,010 mara kwa mara wakati insertions ni tena mara kwa mara wakati, kwa sababu mimi 742 00:31:28,010 --> 00:31:31,240 kuangalia, oh, damnit, mtu tayari ni katika eneo Alice. 743 00:31:31,240 --> 00:31:35,320 >> Hebu kuchunguza wengine wa data hii muundo, kuangalia kwa doa kuweka 744 00:31:35,320 --> 00:31:37,130 mtu kama jina la Haruni. 745 00:31:37,130 --> 00:31:39,390 Na hivyo kuwa pia ni kuanzia kuchukua muda linear. 746 00:31:39,390 --> 00:31:42,710 Aidha, kama wewe sasa unataka kupata Haruni katika muundo huu data, na wewe 747 00:31:42,710 --> 00:31:45,430 kuangalia, na jina la Haruni si hapa. 748 00:31:45,430 --> 00:31:47,960 Kimsingi, ungekuwa tu kusema Haruni si katika muundo wa data. 749 00:31:47,960 --> 00:31:51,530 Lakini kama wewe kufanya kuanza kufanya chumba kwa ajili ya Haruni ambapo kuna lazima wamekuwa D 750 00:31:51,530 --> 00:31:55,600 au E, wewe, kesi mbaya, na kuangalia nzima data muundo, katika 751 00:31:55,600 --> 00:31:59,480 kesi ambayo ni warithi katika kitu linear katika ukubwa wa meza. 752 00:31:59,480 --> 00:32:00,920 >> Hivyo haki ya wote, mimi itabidi kurekebisha hii. 753 00:32:00,920 --> 00:32:04,200 Tatizo hapa ni kwamba nilikuwa 26 vipengele katika safu hii. 754 00:32:04,200 --> 00:32:05,000 Hebu mabadiliko hayo. 755 00:32:05,000 --> 00:32:06,010 Whoops. 756 00:32:06,010 --> 00:32:10,600 Hebu mabadiliko hayo ili badala ya kuwa kawaida 26 kwa jumla, taarifa ya chini 757 00:32:10,600 --> 00:32:12,720 index ni kwenda na mabadiliko kwa n bala 1. 758 00:32:12,720 --> 00:32:16,610 Kama 26 ni wazi ndogo mno kwa 'binadamu majina, kwa sababu kuna maelfu ya 759 00:32:16,610 --> 00:32:20,830 majina ya dunia, hebu tu kufanya katika 100 au 1,000 au 10,000. 760 00:32:20,830 --> 00:32:22,960 Hebu tu kutenga mengi zaidi nafasi. 761 00:32:22,960 --> 00:32:27,230 >> Vizuri kwamba siyo lazima kupungua uwezekano kwamba hatutakuwa na mbili 762 00:32:27,230 --> 00:32:31,510 watu wenye majina kuanzia na, na hivyo, walikuwa kwenda kujaribu kuweka 763 00:32:31,510 --> 00:32:33,120 majina katika sifuri eneo bado. 764 00:32:33,120 --> 00:32:36,850 Wao bado uko kwenda yanapogongana, ambayo ina maana bado tunahitaji ufumbuzi wa kuweka 765 00:32:36,850 --> 00:32:41,020 Alice na Haruni na Alicia na nyingine majina kuanzia na mahali pengine. 766 00:32:41,020 --> 00:32:43,460 Lakini ni kiasi gani cha tatizo ni hii? 767 00:32:43,460 --> 00:32:46,870 Nini uwezekano kwamba wewe kuwa na migongano katika data 768 00:32:46,870 --> 00:32:48,240 muundo kama hii? 769 00:32:48,240 --> 00:32:52,570 >> Vizuri, basi mimi - tutaweza kurudi kwa swali hapa. 770 00:32:52,570 --> 00:32:55,530 Na kuangalia jinsi gani tupate kutatua hilo kwanza. 771 00:32:55,530 --> 00:32:58,480 Hebu vuta hadi pendekezo hili hapa. 772 00:32:58,480 --> 00:33:02,020 Nini sisi tu ilivyoelezwa ni algorithm, heuristic kuitwa linear 773 00:33:02,020 --> 00:33:05,030 uchunguzi ambapo, kama walijaribu kuingiza kitu hapa katika data hii 774 00:33:05,030 --> 00:33:08,920 muundo, ambayo inaitwa meza hash, na kuna chumba hakuna huko, 775 00:33:08,920 --> 00:33:12,000 kweli kuchunguza muundo wa data kuangalia, ni hii inapatikana? 776 00:33:12,000 --> 00:33:13,430 Je, hii ni Available hii inapatikana? 777 00:33:13,430 --> 00:33:13,980 Ni hii inapatikana? 778 00:33:13,980 --> 00:33:17,550 Na wakati hatimaye ni, wewe kuingiza jina kwamba awali lengo 779 00:33:17,550 --> 00:33:19,370 mahali pengine katika eneo hilo. 780 00:33:19,370 --> 00:33:23,360 Lakini katika hali mbaya zaidi, doa tu ili kuwa chini kabisa ya data 781 00:33:23,360 --> 00:33:25,090 muundo, mwisho wa safu. 782 00:33:25,090 --> 00:33:30,130 >> Hivyo linear uchunguzi, katika hali mbaya zaidi, warithi katika algorithm linear ambapo 783 00:33:30,130 --> 00:33:34,500 Haruni, kama yeye hufanyika kuwa na kuingizwa mwisho katika muundo huu data, apate 784 00:33:34,500 --> 00:33:39,540 collide na eneo hili kwanza, lakini kisha mwisho kwa bahati mbaya mwishoni sana. 785 00:33:39,540 --> 00:33:43,940 Hivyo hii si mara kwa mara wakati takatifu grail kwa ajili yetu. 786 00:33:43,940 --> 00:33:47,650 Mbinu hii ya mambo ya ndani ya kuingiza muundo wa data kuitwa hash 787 00:33:47,650 --> 00:33:52,050 meza haionekani kuwa mara kwa mara wakati angalau si katika kesi ujumla. 788 00:33:52,050 --> 00:33:54,000 Ni wanaweza kukabidhi katika kitu linear. 789 00:33:54,000 --> 00:33:56,970 >> Basi nini kama sisi kutatua migongano kiasi fulani tofauti? 790 00:33:56,970 --> 00:34:00,740 Hivyo hapa ni ya kisasa zaidi mbinu nini bado 791 00:34:00,740 --> 00:34:02,800 kuitwa meza hash. 792 00:34:02,800 --> 00:34:05,890 Na kwa hash, kama kando, nini I mean ni index kwamba 793 00:34:05,890 --> 00:34:07,070 Mimi inajulikana mapema. 794 00:34:07,070 --> 00:34:09,810 Kwa kitu hash unaweza kuwa mawazo ya kama kitenzi. 795 00:34:09,810 --> 00:34:13,690 >> Hivyo kama wewe Alice hash ni jina, kazi hash, hivyo kusema, 796 00:34:13,690 --> 00:34:14,710 wanapaswa kurudi idadi. 797 00:34:14,710 --> 00:34:18,199 Katika kesi hii ni sifuri kama yeye ni katika eneo sifuri, moja ikiwa yeye ni saa 798 00:34:18,199 --> 00:34:20,000 eneo moja, na kadhalika. 799 00:34:20,000 --> 00:34:24,360 Hivyo kazi yangu hash hivi sasa imekuwa super rahisi, tu kuangalia 800 00:34:24,360 --> 00:34:26,159 barua ya kwanza kwa jina la mtu. 801 00:34:26,159 --> 00:34:29,090 Lakini kazi hash inachukua kama pembejeo baadhi ya kipande cha data, 802 00:34:29,090 --> 00:34:30,210 kamba, int, chochote. 803 00:34:30,210 --> 00:34:32,239 Na ni mtemi nje kwa kawaida idadi. 804 00:34:32,239 --> 00:34:35,739 Na kwamba idadi hiyo ni wapi kwamba data kipengele ni katika muundo wa data 805 00:34:35,739 --> 00:34:37,800 inajulikana hapa kama meza hash. 806 00:34:37,800 --> 00:34:41,400 >> Hivyo tu intuitively, hii ni tofauti kidogo mazingira. 807 00:34:41,400 --> 00:34:44,170 Hii kweli ni akimaanisha mfano kuwashirikisha siku za kuzaliwa, ambapo 808 00:34:44,170 --> 00:34:46,850 huenda kuna wengi kama Siku 31 katika mwezi. 809 00:34:46,850 --> 00:34:52,239 Lakini ni nini mtu huyu kuamua kufanya katika tukio la mgongano? 810 00:34:52,239 --> 00:34:55,304 Muktadha sasa kuwa, si mgongano wa majina, lakini mgongano wa siku za kuzaliwa, 811 00:34:55,304 --> 00:35:00,760 kama watu wawili na kuzaliwa sawa juu ya Oktoba 2, kwa mfano. 812 00:35:00,760 --> 00:35:02,120 >> MWANAFUNZI: [inaudible]. 813 00:35:02,120 --> 00:35:05,010 >> SPIKA 1: Yeah, hivyo hapa tuna leveraging ya orodha wanaohusishwa. 814 00:35:05,010 --> 00:35:07,830 Hivyo inaonekana tofauti kidogo kuliko sisi akauchomoa mapema. 815 00:35:07,830 --> 00:35:10,790 Lakini sisi kuonekana kuwa na safu upande wa kushoto. 816 00:35:10,790 --> 00:35:13,230 Hiyo ni moja index, kwa maana hakuna Hasa sababu. 817 00:35:13,230 --> 00:35:14,630 Lakini bado ni safu. 818 00:35:14,630 --> 00:35:16,160 Ni safu ya kuyatumia. 819 00:35:16,160 --> 00:35:20,670 Na kila moja ya mambo hayo, kila mmoja haya duru au milalo - kufyeka 820 00:35:20,670 --> 00:35:23,970 anayewakilisha null - kila moja ya haya kuyatumia ni inaonekana akizungumzia 821 00:35:23,970 --> 00:35:25,730 nini data muundo? 822 00:35:25,730 --> 00:35:26,890 orodha wanaohusishwa. 823 00:35:26,890 --> 00:35:30,530 >> Hivyo basi, tuna uwezo wa ngumu kificho katika mpango wetu 824 00:35:30,530 --> 00:35:32,010 ukubwa wa meza. 825 00:35:32,010 --> 00:35:35,360 Katika kesi hiyo, tunajua kuna kamwe zaidi ya siku 31 kwa mwezi. 826 00:35:35,360 --> 00:35:38,480 Hivyo ngumu coding thamani kama 31 ni kuridhisha katika mazingira. 827 00:35:38,480 --> 00:35:42,700 Katika mazingira ya majina, ngumu coding 26 si ya maana ni watu 828 00:35:42,700 --> 00:35:46,340 majina tu kuanza na, kwa mfano, alfabeti kuwashirikisha kupitia Z. 829 00:35:46,340 --> 00:35:50,180 >> Tunaweza cram wote ndani ya data kwamba muundo wa muda mrefu kama, wakati sisi kupata 830 00:35:50,180 --> 00:35:55,330 mgongano, hatuwezi kuweka majina hapa, sisi badala kufikiri ya seli hizi 831 00:35:55,330 --> 00:36:00,270 si kama masharti wenyewe, lakini kama kuyatumia kwa, kwa mfano, Alice. 832 00:36:00,270 --> 00:36:03,660 Na kisha Alice unaweza kuwa mwingine pointer kwa jina la mtu mwingine kwa kuanzia na 833 00:36:03,660 --> 00:36:06,150 A. Na Bob kweli inakwenda zaidi ya hapa. 834 00:36:06,150 --> 00:36:10,850 >> Na kama kuna mwingine jina kuanzia na B, yeye mwisho juu zaidi ya hapa. 835 00:36:10,850 --> 00:36:15,070 Na hivyo kila mmoja wa mambo ya hii meza mbili, kama sisi iliyoundwa hii 836 00:36:15,070 --> 00:36:17,350 zaidi kidogo cleverly - 837 00:36:17,350 --> 00:36:18,125 kuja juu - 838 00:36:18,125 --> 00:36:22,950 kama sisi iliyoundwa hii zaidi kidogo cleverly, sasa inakuwa data adaptive 839 00:36:22,950 --> 00:36:27,720 muundo, ambapo hakuna kikomo kwa bidii juu ya jinsi mambo mengi unaweza kuingiza 840 00:36:27,720 --> 00:36:30,700 ndani yake kwa sababu kama una mgongano, hiyo faini. 841 00:36:30,700 --> 00:36:34,690 Tu kwenda mbele na append kwa yale tuliona kidogo iliyopita alikuwa 842 00:36:34,690 --> 00:36:38,290 inayojulikana kama orodha wanaohusishwa. 843 00:36:38,290 --> 00:36:39,690 >> Naam hebu pause kwa muda tu. 844 00:36:39,690 --> 00:36:42,570 Je, ni uwezekano wa mgongano katika nafasi ya kwanza? 845 00:36:42,570 --> 00:36:45,480 Haki, labda mimi nina zaidi ya kufikiri, labda Nina zaidi ya uhandisi na tatizo hili, 846 00:36:45,480 --> 00:36:46,370 kwa sababu unajua nini? 847 00:36:46,370 --> 00:36:49,070 Ndiyo, naweza kuja na holela mifano mbali juu ya kichwa yangu kama 848 00:36:49,070 --> 00:36:52,870 Allison na Haruni, lakini katika hali halisi, aliyopewa usambazaji sare ya 849 00:36:52,870 --> 00:36:56,990 pembejeo, kwamba ni baadhi ya insertions random katika muundo wa data, kile kwa kweli ni 850 00:36:56,990 --> 00:36:58,580 uwezekano wa mgongano? 851 00:36:58,580 --> 00:37:01,670 Vizuri zamu nje, ni kweli super juu. 852 00:37:01,670 --> 00:37:03,850 Hebu kujumlisha hii Tatizo ni kama hii. 853 00:37:03,850 --> 00:37:08,890 >> Hivyo katika chumba ya n CS50 wanafunzi, nini uwezekano kwamba angalau 854 00:37:08,890 --> 00:37:11,010 wanafunzi wawili katika chumba kuwa kuzaliwa sawa? 855 00:37:11,010 --> 00:37:13,346 Hivyo kuna nini. Hund wachache - 856 00:37:13,346 --> 00:37:16,790 200, 300 watu hapa na kadhaa mia watu nyumbani leo. 857 00:37:16,790 --> 00:37:20,670 Hivyo kama alitaka tujiulize nini uwezekano wa watu wawili 858 00:37:20,670 --> 00:37:23,930 katika chumba kuwa siku ya kuzaliwa huo, tunaweza takwimu hii nje. 859 00:37:23,930 --> 00:37:26,250 Na mimi kudai kweli kuna mambo mawili watu na kuzaliwa sawa. 860 00:37:26,250 --> 00:37:29,560 >> Kwa mfano, haina mtu yeyote kuwa na siku ya kuzaliwa leo? 861 00:37:29,560 --> 00:37:31,340 Jana? 862 00:37:31,340 --> 00:37:32,590 Kesho? 863 00:37:32,590 --> 00:37:35,980 Haki wote, hivyo ni anahisi kama mimi nina kwenda kwa kuwa kufanya hivyo 363 au hivyo zaidi 864 00:37:35,980 --> 00:37:39,500 mara kwa kweli kufikiri kama sisi kufanya kuwa na mgongano. 865 00:37:39,500 --> 00:37:42,350 Au sisi inaweza tu kufanya hivyo kihisabati badala ya tediously 866 00:37:42,350 --> 00:37:43,200 kufanya hivyo. 867 00:37:43,200 --> 00:37:44,500 Na kupendekeza yafuatayo. 868 00:37:44,500 --> 00:37:48,740 >> Hivyo napendekeza kwamba tunaweza kubuni uwezekano wa watu wawili 869 00:37:48,740 --> 00:37:55,320 huo siku ya kuzaliwa kama uwezekano wa 1 bala uwezekano wa mtu kuwa na 870 00:37:55,320 --> 00:37:56,290 kuzaliwa sawa. 871 00:37:56,290 --> 00:37:59,960 Hivyo kupata hii, na hii ni dhana njia ya kuandika hii, kwa 872 00:37:59,960 --> 00:38:03,090 mtu wa kwanza katika chumba, yeye au yeye unaweza kuwa na mtu yeyote wa inawezekana 873 00:38:03,090 --> 00:38:07,370 kuzaliwa kuchukua siku 365 kwa mwaka, pamoja na msamaha kwa watu wenye 874 00:38:07,370 --> 00:38:08,760 Februari 29 siku ya kuzaliwa. 875 00:38:08,760 --> 00:38:13,470 >> Hivyo mtu wa kwanza katika chumba hiki ni bure kuwa na idadi yoyote ya siku za kuzaliwa 876 00:38:13,470 --> 00:38:18,280 nje ya uwezekano 365 ili tutaweza kufanya hivyo 365 kugawanywa na 365, 877 00:38:18,280 --> 00:38:18,990 ambayo ni moja. 878 00:38:18,990 --> 00:38:22,700 mtu wa pili katika chumba, kama lengo ni kuepuka mgongano, unaweza tu 879 00:38:22,700 --> 00:38:26,460 kuwa na wake au kuzaliwa kwake juu ya jinsi ya nyingi tofauti inawezekana siku? 880 00:38:26,460 --> 00:38:27,610 364. 881 00:38:27,610 --> 00:38:31,430 Hivyo awamu ya pili katika msemo huu ni kimsingi kufanya kwamba math kwa ajili yetu 882 00:38:31,430 --> 00:38:33,460 kwa kutoa off moja inawezekana siku. 883 00:38:33,460 --> 00:38:36,390 Na kisha siku ya pili, siku ya pili, siku ya pili chini ya idadi ya jumla 884 00:38:36,390 --> 00:38:38,100 ya watu katika chumba. 885 00:38:38,100 --> 00:38:41,290 >> Na kama sisi kisha kufikiria, nini basi ni uwezekano si ya kila mtu kuwa 886 00:38:41,290 --> 00:38:45,265 kipekee siku za kuzaliwa, lakini tena 1 bala kwamba, nini sisi kupata ni usemi 887 00:38:45,265 --> 00:38:47,810 ambayo inaweza sana fancifully kuangalia kama hii. 888 00:38:47,810 --> 00:38:50,330 Lakini ni zaidi ya kuvutia kuangalia kuibua. 889 00:38:50,330 --> 00:38:55,120 Hii ni chati ambapo kwenye mhimili x-ni idadi ya watu katika chumba, 890 00:38:55,120 --> 00:38:56,180 idadi ya siku za kuzaliwa. 891 00:38:56,180 --> 00:38:59,840 Kwenye mhimili y-uwezekano wa mgongano, watu wawili 892 00:38:59,840 --> 00:39:01,230 baada ya kuzaliwa sawa. 893 00:39:01,230 --> 00:39:05,020 >> Na takeaway kutoka Curve hii ni kwamba haraka kama wewe kupata kama 40 894 00:39:05,020 --> 00:39:11,110 wanafunzi, uko uwezekano hadi saa 90% combinatorically wa mbili 895 00:39:11,110 --> 00:39:13,550 watu au zaidi baada ya kuzaliwa sawa. 896 00:39:13,550 --> 00:39:18,600 Na mara moja kupata kama watu 58 ni karibu asilimia 100% ya nafasi mbili 897 00:39:18,600 --> 00:39:21,310 watu katika chumba ni kwenda na kuzaliwa sawa, hata kama kuna 898 00:39:21,310 --> 00:39:26,650 365 au 366 ndoo inawezekana, na 58 tu ya watu katika chumba hicho. 899 00:39:26,650 --> 00:39:29,900 Tu kitakwimu uko uwezekano wa kupata migongano, ambayo katika muda mfupi 900 00:39:29,900 --> 00:39:31,810 kilichomsukuma mjadala huu. 901 00:39:31,810 --> 00:39:35,890 Kwamba hata kama sisi kupata dhana hapa, na kuanza kuwa na minyororo ya haya, bado tuko 902 00:39:35,890 --> 00:39:36,950 kwenda na migongano. 903 00:39:36,950 --> 00:39:42,710 >> Hivyo kwamba anaomba swali, ni nini gharama ya kufanya insertions na kufuta maneno 904 00:39:42,710 --> 00:39:44,850 katika muundo wa data kama hii? 905 00:39:44,850 --> 00:39:46,630 Vizuri basi mimi kupendekeza - 906 00:39:46,630 --> 00:39:51,570 na napenda kwenda nyuma ya screen juu ya hapa - kama sisi n vipengele katika 907 00:39:51,570 --> 00:39:56,330 orodha, hivyo kama sisi ni kujaribu kuingiza n vipengele, na tuna 908 00:39:56,330 --> 00:39:58,050 wangapi taarifa ndoo? 909 00:39:58,050 --> 00:40:03,450 Hebu sema 31 ndoo taarifa katika kesi ya siku za kuzaliwa. 910 00:40:03,450 --> 00:40:09,240 Nini upeo wa urefu wa moja ya haya minyororo uwezekano? 911 00:40:09,240 --> 00:40:12,670 >> Kama tena kuna 31 inawezekana kuzaliwa katika mwezi huo. 912 00:40:12,670 --> 00:40:14,580 Na tuko tu clumping kila mtu - 913 00:40:14,580 --> 00:40:15,580 kweli kwamba ni mfano wa kijinga. 914 00:40:15,580 --> 00:40:16,960 Hebu kufanya 26 badala yake. 915 00:40:16,960 --> 00:40:20,890 Hivyo kama kweli kuwa watu ambao majina kuanza na kupitia Z, na hivyo kutoa 916 00:40:20,890 --> 00:40:22,780 sisi 26 uwezekano. 917 00:40:22,780 --> 00:40:25,920 Na sisi ni kutumia mfumo wa data kama mmoja sisi tu kuona, ambapo tuna 918 00:40:25,920 --> 00:40:30,210 safu ya kuyatumia, ambayo kila mmoja pointi kwa orodha wanaohusishwa ambapo 919 00:40:30,210 --> 00:40:32,360 orodha ya kwanza ni ya kila mtu na Alice jina. 920 00:40:32,360 --> 00:40:35,770 orodha ya pili ni kila na jina kwa kuanzia na, kuanzia 921 00:40:35,770 --> 00:40:36,980 na B, na kadhalika. 922 00:40:36,980 --> 00:40:41,020 >> Nini urefu uwezekano wa kila moja ya wale orodha kama sisi kudhani safi nzuri 923 00:40:41,020 --> 00:40:45,410 usambazaji wa majina kupitia Z hela mfumo mzima data? 924 00:40:45,410 --> 00:40:50,210 Kuna n watu katika muundo data kugawanywa na 26, kama uko nicely 925 00:40:50,210 --> 00:40:52,110 kuenea nje zaidi ya yote data muundo. 926 00:40:52,110 --> 00:40:54,970 Hivyo urefu wa kila moja ya haya minyororo ni n kugawanywa na 26. 927 00:40:54,970 --> 00:40:57,380 Lakini katika nukuu kubwa O, ni nini? 928 00:40:57,380 --> 00:41:00,100 929 00:41:00,100 --> 00:41:02,440 Nini ni kwamba kweli? 930 00:41:02,440 --> 00:41:04,150 Hivyo ni kweli tu n, haki? 931 00:41:04,150 --> 00:41:06,620 Kwa sababu tumekuwa alisema katika siku za nyuma, kwamba ugh kugawanya na 26. 932 00:41:06,620 --> 00:41:08,710 Ndiyo, katika hali halisi ni kasi zaidi. 933 00:41:08,710 --> 00:41:12,720 Lakini katika nadharia, siyo kimsingi yote kwa kasi zaidi. 934 00:41:12,720 --> 00:41:16,040 >> Hivyo hatuna wanaonekana kuwa kiasi kwamba wote karibu na hii grail takatifu. 935 00:41:16,040 --> 00:41:17,750 Kwa kweli, hii ni linear wakati. 936 00:41:17,750 --> 00:41:20,790 Heck, katika hatua hii, kwa nini sio sisi tu kutumia moja kubwa wanaohusishwa orodha? 937 00:41:20,790 --> 00:41:23,510 Mbona sisi tu kutumia moja kubwa safu ya kuhifadhi majina ya 938 00:41:23,510 --> 00:41:25,010 kila mtu katika chumba? 939 00:41:25,010 --> 00:41:28,280 Vizuri, bado kuna kitu kulazimisha juu ya meza hash? 940 00:41:28,280 --> 00:41:30,810 Je, bado kuna kitu kulazimisha kuhusu muundo data 941 00:41:30,810 --> 00:41:33,940 kwamba inaonekana kama hii? 942 00:41:33,940 --> 00:41:35,182 Hii. 943 00:41:35,182 --> 00:41:37,050 >> MWANAFUNZI: [inaudible]. 944 00:41:37,050 --> 00:41:39,840 >> SPIKA 1: Haki, na tena kama ni tu linear wakati algorithm, na 945 00:41:39,840 --> 00:41:42,780 linear wakati data muundo, kwa nini si mimi tu kuhifadhi jina la kila mtu katika kubwa 946 00:41:42,780 --> 00:41:44,210 safu, au katika orodha kubwa wanaohusishwa? 947 00:41:44,210 --> 00:41:47,010 Na kuacha kufanya hivyo CS vigumu sana kuliko mahitaji kwa kuwa? 948 00:41:47,010 --> 00:41:49,600 949 00:41:49,600 --> 00:41:53,190 Je, ni kulazimisha kuhusu hili, hata ingawa mimi kukwangua nje? 950 00:41:53,190 --> 00:41:54,930 >> MWANAFUNZI: [inaudible]. 951 00:41:54,930 --> 00:41:57,040 >> SPIKA 1: insertions siyo? 952 00:41:57,040 --> 00:41:58,140 Ghali tena. 953 00:41:58,140 --> 00:42:03,390 Hivyo insertions uwezekano bado nilikuwa kuwa mara kwa mara wakati, hata kama wako data 954 00:42:03,390 --> 00:42:07,910 muundo inaonekana kama hii, safu ya kuyatumia, ambayo kila mmoja ananyoosha katika 955 00:42:07,910 --> 00:42:09,550 uwezekano wa orodha wanaohusishwa. 956 00:42:09,550 --> 00:42:15,220 Jinsi gani unaweza kufikia mara kwa mara wakati kuingizwa ya majina? 957 00:42:15,220 --> 00:42:16,280 Fimbo yake mbele, haki? 958 00:42:16,280 --> 00:42:19,290 >> Kama sisi sadaka lengo kubuni kutoka mapema, ambapo sisi alitaka kuweka 959 00:42:19,290 --> 00:42:22,650 jina la kila mtu, kwa mfano, namna, au wote wa idadi ya juu ya hatua sorted, 960 00:42:22,650 --> 00:42:25,020 tuseme kwamba tuna zisizochambuliwa wanaohusishwa orodha. 961 00:42:25,020 --> 00:42:29,960 Ni tu yanatugharimu hatua moja au mbili, kama katika kesi ya Ben na Brian 962 00:42:29,960 --> 00:42:32,750 mapema, kuingiza kipengele katika mwanzo wa orodha. 963 00:42:32,750 --> 00:42:36,090 Hivyo kama sisi hawajali kuhusu kuchagua kila ya majina kuanzia na au wote 964 00:42:36,090 --> 00:42:39,660 majina kuanzia na B, tunaweza bado kufikia mara kwa mara wakati kuingizwa. 965 00:42:39,660 --> 00:42:43,900 Sasa kuangalia juu Alice au Bob au jina lolote zaidi kwa ujumla bado ni nini? 966 00:42:43,900 --> 00:42:48,100 Ni kubwa O ya n kugawanywa na 26, katika bora kesi ambapo kila mtu ni enhetligt 967 00:42:48,100 --> 00:42:51,190 kusambazwa, ambapo kuna kama wengi wa kama kuna Z, ambayo pengine ni 968 00:42:51,190 --> 00:42:52,220 unrealistic. 969 00:42:52,220 --> 00:42:53,880 Lakini hiyo bado linear. 970 00:42:53,880 --> 00:42:57,120 >> Lakini hapa, sisi kuja nyuma kwa uhakika ya nukuu asymptotic kuwa 971 00:42:57,120 --> 00:42:58,600 kinadharia kweli. 972 00:42:58,600 --> 00:43:02,960 Lakini katika ulimwengu wa kweli, kama mimi kudai kwamba mpango wangu anaweza kufanya kitu 26 mara 973 00:43:02,960 --> 00:43:06,210 kasi zaidi kuliko yako, ambaye mpango ni wewe kwenda wanapendelea kutumia? 974 00:43:06,210 --> 00:43:09,660 Wako au yangu, ambayo ni 26 mara kwa kasi? 975 00:43:09,660 --> 00:43:14,320 Realistically, mtu ambaye ni 26 mara kwa kasi, hata kama kinadharia 976 00:43:14,320 --> 00:43:18,790 algorithms wetu kukimbia katika huo asymptotic mbio wakati. 977 00:43:18,790 --> 00:43:20,940 >> Basi mimi kupendekeza mbalimbali ufumbuzi kabisa. 978 00:43:20,940 --> 00:43:24,380 Na kama hii haina pigo akili yako, tuko nje ya miundo ya data. 979 00:43:24,380 --> 00:43:27,420 Hivyo hii ni trie - 980 00:43:27,420 --> 00:43:28,520 aina ya jina kijinga. 981 00:43:28,520 --> 00:43:32,880 Inakuja kutoka retrievals, na neno ni yameandikwa trie, t-r-i-e, kwa sababu ya 982 00:43:32,880 --> 00:43:34,450 Bila shaka retrieval inaonekana kama trie. 983 00:43:34,450 --> 00:43:36,580 Lakini hiyo ni historia trie ya neno. 984 00:43:36,580 --> 00:43:40,980 >> Hivyo trie ni kweli baadhi ya aina ya mti, na pia ni kucheza kwenye neno hilo. 985 00:43:40,980 --> 00:43:46,330 Na hata kama huwezi kabisa kuona na taswira hii, trie ni 986 00:43:46,330 --> 00:43:50,790 mti muundo, kama mti familia na moja babu saa ya juu na kura 987 00:43:50,790 --> 00:43:54,530 wajukuu na vitukuu kama majani juu ya chini. 988 00:43:54,530 --> 00:43:58,100 Lakini kila nodi katika trie ni safu. 989 00:43:58,100 --> 00:44:00,680 Na ni katika safu - na hebu oversimplify kwa sasa - ni 990 00:44:00,680 --> 00:44:04,600 safu, katika kesi hii, ya ukubwa wa 26, ambapo kila node tena ni safu ya ukubwa 991 00:44:04,600 --> 00:44:09,000 26, ambapo kipengele 0 kwa kuwa safu inawakilisha, na ya mwisho 992 00:44:09,000 --> 00:44:11,810 kipengele katika kila vile safu inawakilisha Z. 993 00:44:11,810 --> 00:44:15,520 >> Hivyo napendekeza, basi, kwamba hiki data muundo, unaojulikana kama trie, unaweza kuwa 994 00:44:15,520 --> 00:44:17,600 kutumika pia kuhifadhi maneno. 995 00:44:17,600 --> 00:44:21,740 Tuliona wakati iliyopita jinsi gani tunaweza kuhifadhi maneno, au katika majina ya kesi hii, na sisi 996 00:44:21,740 --> 00:44:25,440 aliona mapema jinsi tunaweza kuhifadhi namba, lakini kama sisi kuzingatia majina au masharti 997 00:44:25,440 --> 00:44:27,460 hapa, taarifa nini kuvutia. 998 00:44:27,460 --> 00:44:32,210 Mimi kudai kwamba Maxwell jina ni ndani ya muundo huu data. 999 00:44:32,210 --> 00:44:33,730 Ambapo unaona Maxwell? 1000 00:44:33,730 --> 00:44:35,140 >> MWANAFUNZI: [inaudible]. 1001 00:44:35,140 --> 00:44:36,240 >> SPIKA 1: Upande wa kushoto. 1002 00:44:36,240 --> 00:44:39,910 Basi nini kuvutia na data hii muundo ni badala ya kuhifadhi 1003 00:44:39,910 --> 00:44:46,200 kamba ya M-A-X-W-E-L-L backslash sifuri, kila contiguously, nini badala kufanya 1004 00:44:46,200 --> 00:44:46,890 ni kufuatia. 1005 00:44:46,890 --> 00:44:50,510 Kama hii ni trie kama muundo data, kila aina ya nodi ambaye ni tena safu, 1006 00:44:50,510 --> 00:44:54,650 na unataka kuhifadhi Maxwell, wewe kwanza index na hivyo mzizi wa nodi, hivyo 1007 00:44:54,650 --> 00:44:57,810 kusema, nodi juu kabisa, katika eneo M, haki, hivyo 1008 00:44:57,810 --> 00:44:59,160 takribani katika katikati. 1009 00:44:59,160 --> 00:45:03,740 Na kisha kutoka huko, wewe kufuata pointer nodes mtoto, hivyo kusema. 1010 00:45:03,740 --> 00:45:06,150 Hivyo kwa mantiki familia mti, wewe kufuata ni kushuka. 1011 00:45:06,150 --> 00:45:09,030 Na kwamba kusababisha wewe nodi mwingine upande wa kushoto huko, ambayo ni 1012 00:45:09,030 --> 00:45:10,540 mwingine tu safu. 1013 00:45:10,540 --> 00:45:14,710 >> Na kisha kama unataka kuhifadhi Maxwell, unakuta pointer kwamba inawakilisha 1014 00:45:14,710 --> 00:45:16,430 , Ambayo ni hii moja hapa. 1015 00:45:16,430 --> 00:45:17,840 Basi wewe kwenda nodi ijayo. 1016 00:45:17,840 --> 00:45:20,100 Na ilani - hii ni kwa nini picha ya kudanganya kidogo - 1017 00:45:20,100 --> 00:45:21,990 nodi hii kuangalia super vidogo. 1018 00:45:21,990 --> 00:45:26,050 Lakini haki ya hii ni Y na Z. Ni tu mwandishi ina truncated 1019 00:45:26,050 --> 00:45:27,630 picha hivyo kwamba kweli kuona mambo. 1020 00:45:27,630 --> 00:45:30,400 Vinginevyo hii picha itakuwa hugely kote. 1021 00:45:30,400 --> 00:45:36,180 Hivyo sasa index katika eneo X, kisha W, Kisha E, basi L, kisha L. Kisha nini 1022 00:45:36,180 --> 00:45:37,380 hii udadisi? 1023 00:45:37,380 --> 00:45:41,250 >> Naam, kama sisi ni kutumia aina hii ya mpya kuchukua juu ya jinsi ya kuhifadhi kamba katika 1024 00:45:41,250 --> 00:45:44,500 data muundo, bado wanahitaji kimsingi kuangalia mbali katika data 1025 00:45:44,500 --> 00:45:47,250 muundo kwamba neno kuishia hapa. 1026 00:45:47,250 --> 00:45:50,830 Kwa maneno mengine, kila mmoja wa nodi hiyo namna fulani ana kukumbuka kwamba sisi 1027 00:45:50,830 --> 00:45:53,500 kweli ikifuatiwa yote ya kuyatumia haya na ni kuacha kidogo 1028 00:45:53,500 --> 00:45:58,370 mkate chembe chini ya hii hapa muundo zinaonyesha M-A-X-W-E-L-L ni 1029 00:45:58,370 --> 00:46:00,230 Hakika katika muundo huu data. 1030 00:46:00,230 --> 00:46:02,040 >> Hivyo tupate kufanya kazi hii kama ifuatavyo. 1031 00:46:02,040 --> 00:46:06,810 Kila wa nodi katika picha ya sisi tu msumeno ina moja, safu ya ukubwa 27. 1032 00:46:06,810 --> 00:46:10,550 Na ni sasa 27, kwa sababu katika p kuweka sita, tutaweza kweli kukupa apostrophe, 1033 00:46:10,550 --> 00:46:13,590 ili tuweze kuwa na majina kama O'Reilly na wengine na apostrophes. 1034 00:46:13,590 --> 00:46:14,820 Lakini huo wazo. 1035 00:46:14,820 --> 00:46:17,710 Kila moja ya mambo hayo katika safu pointi struct 1036 00:46:17,710 --> 00:46:19,320 nodi, hivyo tu nodi. 1037 00:46:19,320 --> 00:46:21,430 Hivyo hii ni kukumbusha ya orodha yetu ya wanaohusishwa. 1038 00:46:21,430 --> 00:46:24,550 >> Na kisha nina Boolean, ambayo mimi itabidi kuwaita neno, ambayo ni kwenda tu kuwa 1039 00:46:24,550 --> 00:46:29,120 kweli kama neno mwisho katika hii nodi katika mti. 1040 00:46:29,120 --> 00:46:32,870 Ni kwa ufanisi inawakilisha kidogo pembetatu tuliona wakati iliyopita. 1041 00:46:32,870 --> 00:46:37,190 Hivyo kama neno mwisho katika kwamba nodi katika mti, kwamba shamba neno itakuwa kweli, 1042 00:46:37,190 --> 00:46:41,990 ambayo ni conceptually kuangalia mbali, au sisi ni kuchora hii pembetatu, ndiyo kuna 1043 00:46:41,990 --> 00:46:44,080 ni neno hapa. 1044 00:46:44,080 --> 00:46:45,120 >> Hivyo hii ni trie. 1045 00:46:45,120 --> 00:46:48,540 Na sasa swali ni, nini ni yake mbio wakati? 1046 00:46:48,540 --> 00:46:49,930 Je, ni kubwa O ya n? 1047 00:46:49,930 --> 00:46:51,410 Je, ni kitu kingine? 1048 00:46:51,410 --> 00:46:57,330 Naam, kama una n majina katika data hii muundo, Maxwell kuwa moja tu ya 1049 00:46:57,330 --> 00:47:02,330 yao, ni nini wakati mbio ya kuingiza au kutafuta Maxwell? 1050 00:47:02,330 --> 00:47:06,230 1051 00:47:06,230 --> 00:47:09,050 Nini wakati mbio wa kuingiza Maxwell? 1052 00:47:09,050 --> 00:47:11,740 Kama kuna n majina mengine tayari katika meza? 1053 00:47:11,740 --> 00:47:12,507 Yeah? 1054 00:47:12,507 --> 00:47:15,429 >> MWANAFUNZI: [inaudible]. 1055 00:47:15,429 --> 00:47:17,550 >> SPIKA 1: Yeah, ni urefu ya jina, haki? 1056 00:47:17,550 --> 00:47:24,420 Hivyo M--x-w-e-l-l hivyo anahisi kama hii algorithm ni kubwa O ya saba. 1057 00:47:24,420 --> 00:47:26,580 Sasa, bila shaka, jina zitatofautiana kwa urefu. 1058 00:47:26,580 --> 00:47:27,380 Labda ni jina fupi. 1059 00:47:27,380 --> 00:47:28,600 Labda ni jina tena. 1060 00:47:28,600 --> 00:47:33,390 Lakini nini muhimu hapa ni kwamba ni idadi ya mara kwa mara. 1061 00:47:33,390 --> 00:47:36,810 Na labda ni kweli mara kwa mara, lakini mungu, kama realistically, katika 1062 00:47:36,810 --> 00:47:41,570 kamusi, pengine kuna baadhi ya kikomo juu ya idadi ya herufi katika 1063 00:47:41,570 --> 00:47:43,820 jina la mtu katika nchi fulani. 1064 00:47:43,820 --> 00:47:46,940 >> Na hivyo tunaweza kudhani kuwa thamani ni mara kwa mara. 1065 00:47:46,940 --> 00:47:47,750 Mimi sijui ni nini. 1066 00:47:47,750 --> 00:47:50,440 Ni pengine kubwa kuliko tunafikiri ni. 1067 00:47:50,440 --> 00:47:52,720 Kwa sababu kuna daima kona baadhi kesi na jina mambo ya muda mrefu. 1068 00:47:52,720 --> 00:47:56,360 Basi hebu kuiita k, lakini bado mara kwa mara labda, kwa sababu kila 1069 00:47:56,360 --> 00:48:00,190 jina duniani, angalau katika nchi fulani, ni kwamba urefu au 1070 00:48:00,190 --> 00:48:01,780 mfupi, hivyo ni mara kwa mara. 1071 00:48:01,780 --> 00:48:04,490 Lakini wakati tumekuwa alisema kitu ni kubwa O ya thamani ya mara kwa mara, nini kwamba 1072 00:48:04,490 --> 00:48:07,760 kweli sawa na? 1073 00:48:07,760 --> 00:48:10,420 Hiyo ni kweli kitu kimoja kama akisema wakati mara kwa mara. 1074 00:48:10,420 --> 00:48:11,530 >> Sasa sisi ni aina ya cheating, haki? 1075 00:48:11,530 --> 00:48:15,340 Sisi ni aina ya leveraging baadhi ya nadharia hapa kusema kisima utaratibu wa k ni 1076 00:48:15,340 --> 00:48:17,450 kweli ili tu ya moja, na ni mara kwa mara wakati. 1077 00:48:17,450 --> 00:48:18,200 Lakini ni kweli ni. 1078 00:48:18,200 --> 00:48:22,550 Kwa sababu ufahamu muhimu hapa ni kwamba kama sisi n majina tayari katika hii 1079 00:48:22,550 --> 00:48:26,010 data muundo, na sisi Insert Maxwell, ni kiasi cha muda inachukua sisi 1080 00:48:26,010 --> 00:48:29,530 kuingiza Maxwell wakati wote walioathirika na jinsi watu wengine wengi 1081 00:48:29,530 --> 00:48:31,100 ni katika muundo wa data? 1082 00:48:31,100 --> 00:48:31,670 Haionekani kuwa. 1083 00:48:31,670 --> 00:48:36,280 Kama mimi alikuwa bilioni mambo zaidi na hii trie, na kisha kuingiza Maxwell, ni 1084 00:48:36,280 --> 00:48:38,650 yeye wakati wote walioathirika? 1085 00:48:38,650 --> 00:48:39,050 No 1086 00:48:39,050 --> 00:48:42,950 Na kwamba ni tofauti yoyote ya data siku miundo tumeona hivi sasa, ambapo 1087 00:48:42,950 --> 00:48:46,820 wakati mbio ya algorithm yako ni kujitegemea kabisa ya kiasi gani 1088 00:48:46,820 --> 00:48:51,430 mambo ni au si tayari katika kuwa muundo data. 1089 00:48:51,430 --> 00:48:54,650 >> Na hivyo na hii erbjuder wewe sasa ni fursa kwa p seti sita, ambayo itakuwa 1090 00:48:54,650 --> 00:48:58,310 tena kuhusisha kutekeleza yako mwenyewe Spell kusahihisha, kusoma katika 150,000 1091 00:48:58,310 --> 00:49:01,050 maneno, namna bora ya kuhifadhi kwamba ni lazima si dhahiri. 1092 00:49:01,050 --> 00:49:04,030 Na ingawa nimekuwa aspired kupata grail takatifu, sijui 1093 00:49:04,030 --> 00:49:05,330 kudai kwamba trie ni. 1094 00:49:05,330 --> 00:49:09,810 Kwa kweli, meza hash anaweza vizuri sana kuthibitisha kuwa ufanisi mkubwa zaidi. 1095 00:49:09,810 --> 00:49:10,830 Lakini wale ni tu - 1096 00:49:10,830 --> 00:49:14,620 hiyo ni moja tu ya maamuzi ya kubuni utakuwa na kufanya. 1097 00:49:14,620 --> 00:49:18,920 >> Lakini katika kufunga hebu kuchukua 50 au hivyo sekunde kuchukua Peek katika kile uongo 1098 00:49:18,920 --> 00:49:22,190 mbele wiki ijayo na zaidi ya mpito sisi kutoka hii mstari amri 1099 00:49:22,190 --> 00:49:26,220 dunia kama C mipango ya mtandao mambo msingi na na lugha kama PHP 1100 00:49:26,220 --> 00:49:30,350 JavaScript na biashara yenyewe, itifaki kama HTTP, ambayo wewe wameweza 1101 00:49:30,350 --> 00:49:32,870 kuchukuliwa kwa nafasi kwa miaka sasa, na typed wengi kila 1102 00:49:32,870 --> 00:49:34,440 siku, labda, au kuonekana. 1103 00:49:34,440 --> 00:49:37,420 Na tutaweza kuanza peel nyuma tabaka ya nini ni ya internet. 1104 00:49:37,420 --> 00:49:40,650 Na ni nini kificho kwamba underlies leo zana. 1105 00:49:40,650 --> 00:49:43,230 Hivyo 50 sekunde ya teaser hii hapa. 1106 00:49:43,230 --> 00:49:46,570 Nawapa Warriors ya Net. 1107 00:49:46,570 --> 00:49:51,370 >> [Video avspelning] 1108 00:49:51,370 --> 00:49:56,764 >> -Yeye alikuja na ujumbe. 1109 00:49:56,764 --> 00:50:00,687 Na itifaki ya yote peke yake. 1110 00:50:00,687 --> 00:50:13,370 1111 00:50:13,370 --> 00:50:19,780 Yeye alikuja kwa dunia ya mpenyo kikatili, asiyejali ruta, na hatari ya mbali 1112 00:50:19,780 --> 00:50:22,600 mbaya zaidi kuliko kifo. 1113 00:50:22,600 --> 00:50:23,590 Yeye ni kufunga. 1114 00:50:23,590 --> 00:50:25,300 Yeye ni nguvu. 1115 00:50:25,300 --> 00:50:27,700 Yeye ni TCPIP. 1116 00:50:27,700 --> 00:50:30,420 Na yeye got anwani yako. 1117 00:50:30,420 --> 00:50:32,920 1118 00:50:32,920 --> 00:50:34,590 Warriors ya Net. 1119 00:50:34,590 --> 00:50:35,290 >> [MWISHO video avspelning] 1120 00:50:35,290 --> 00:50:38,070 >> SPIKA 1: Hiyo ni jinsi ya internet atakuwa kazi kama ya wiki ijayo. 1121 00:50:38,070 --> 00:50:40,406