1 00:00:00,000 --> 00:00:05,259 2 00:00:05,259 --> 00:00:08,300 Doug Lloyd: Se konsa, nan CS50, nou te kouvri yon anpil nan estrikti done diferan, 3 00:00:08,300 --> 00:00:09,180 dwa? 4 00:00:09,180 --> 00:00:11,420 Nou te wè ranje, ak lye lis, ak tablo yo regle, 5 00:00:11,420 --> 00:00:15,210 ak ap eseye, pil ak ke moun kap kriye. 6 00:00:15,210 --> 00:00:17,579 Nou pral aprann tou yon ti kras sou pye bwa ak pil, 7 00:00:17,579 --> 00:00:20,120 men vrèman sa yo tout jis fini ke yo te varyasyon sou yon tèm. 8 00:00:20,120 --> 00:00:22,840 Gen reyèlman yo sa yo kalite kat lide debaz 9 00:00:22,840 --> 00:00:25,190 ke tout bagay lòt moun ka bouyi desann nan. 10 00:00:25,190 --> 00:00:28,150 Ranje, lis lye, tab regle, ak ap eseye. 11 00:00:28,150 --> 00:00:30,720 Li te tankou m 'te di, gen se varyasyon sou yo, 12 00:00:30,720 --> 00:00:32,720 men sa a se trè pi ale nan rezime 13 00:00:32,720 --> 00:00:38,140 tout sa nou ap ale nan pale sou nan klas sa a an tèm de C. 14 00:00:38,140 --> 00:00:40,140 >> Men, ki jan fè sa yo tout mezi moute, dwa? 15 00:00:40,140 --> 00:00:44,265 Nou te te pale osijè de avantaj yo ak dezavantaj nan chak nan videyo separe sou yo, 16 00:00:44,265 --> 00:00:46,390 men gen nan yon anpil nan nimewo ap resevwa jete alantou. 17 00:00:46,390 --> 00:00:48,723 Genyen yon anpil nan jeneral panse ap resevwa jete alantou. 18 00:00:48,723 --> 00:00:51,950 Ann eseye ak konsolide l 'nan jis yon sèl kote. 19 00:00:51,950 --> 00:00:55,507 Se pou yo peze avantaj yo kont enkonvenyans yo, epi konsidere 20 00:00:55,507 --> 00:00:57,340 ki estrikti done ta ka done yo dwat 21 00:00:57,340 --> 00:01:01,440 estrikti pou sitiyasyon an patikilye ou a, tou sa kalite done w ap estoke. 22 00:01:01,440 --> 00:01:06,625 Ou pa nesesèman toujou bezwen itilize Super vit ensèsyon, sipresyon an, 23 00:01:06,625 --> 00:01:10,761 ak Passage nan yon trye si ou reyèlman pa pran swen sou mete ak efase 24 00:01:10,761 --> 00:01:11,260 twop. 25 00:01:11,260 --> 00:01:13,968 Si ou bezwen jis byen vit o aza aksè, petèt yon etalaj se pi bon. 26 00:01:13,968 --> 00:01:15,340 Se konsa nou distile sa. 27 00:01:15,340 --> 00:01:18,530 Se pou nou pale sou chak nan kat la kalite pi gwo nan estrikti done 28 00:01:18,530 --> 00:01:21,720 ke nou te pale osijè de, ak jis wè yo lè yo ta kapab bon, 29 00:01:21,720 --> 00:01:23,340 ak yo lè yo pa ta ka tèlman bon. 30 00:01:23,340 --> 00:01:24,610 Se konsa, kite la kòmanse avèk ranje. 31 00:01:24,610 --> 00:01:27,300 Se konsa, ensèsyon, ki nan kalite move. 32 00:01:27,300 --> 00:01:31,350 >> Ensèsyon nan fen yon etalaj se OK, si nou ap bati yon etalaj jan nou ale. 33 00:01:31,350 --> 00:01:33,570 Men, si nou bezwen insert eleman nan mitan an, 34 00:01:33,570 --> 00:01:35,550 panse tounen nan ensèsyon sòt, gen nan yon anpil 35 00:01:35,550 --> 00:01:37,510 a déplacement nan anfòm yon eleman nan la. 36 00:01:37,510 --> 00:01:41,170 Se konsa, si nou ap ale nan Insert nenpòt kote, men nan fen yon etalaj, 37 00:01:41,170 --> 00:01:43,590 sa a, se pwobableman pa konsa pou sa gwo. 38 00:01:43,590 --> 00:01:46,710 >> Menm jan tou, sipresyon, sof si nou ap efase soti nan nan fen yon etalaj, 39 00:01:46,710 --> 00:01:49,810 se pwobableman tou pa konsa pou sa gwo si nou pa vle kite twou vid ki genyen vid, 40 00:01:49,810 --> 00:01:50,790 ki se nòmalman nou pa fè sa. 41 00:01:50,790 --> 00:01:54,700 Nou vle yo retire yon eleman, ak Lè sa a, sòt de fè li confortable ankò. 42 00:01:54,700 --> 00:01:57,670 Se konsa, efase eleman soti nan yon etalaj, tou pa tèlman gwo. 43 00:01:57,670 --> 00:01:58,820 >> Passage, menm si, se gwo. 44 00:01:58,820 --> 00:02:00,920 Nou gen aksè o aza, konstan tan Passage. 45 00:02:00,920 --> 00:02:03,800 Nou jis di sèt, epi nou ale nan etalaj demenajman sèt. 46 00:02:03,800 --> 00:02:05,907 Nou di 20, ak ale nan etalaj demenajman 20. 47 00:02:05,907 --> 00:02:07,240 Nou pa bezwen repekte nan tout. 48 00:02:07,240 --> 00:02:08,630 Sa a trè bon. 49 00:02:08,630 --> 00:02:11,020 >> Ranje yo tou relativman fasil sòt. 50 00:02:11,020 --> 00:02:14,040 Chak fwa nou te pale de yon klasman algorithm, tankou sòt seleksyon, 51 00:02:14,040 --> 00:02:18,820 sòt ensèsyon, sòt jarèt, rantre sòt, nou toujou itilize ranje fè li, 52 00:02:18,820 --> 00:02:21,860 paske ranje yo trè fasil yo sòt, relatif nan estrikti yo done 53 00:02:21,860 --> 00:02:22,970 nou te wè byen lwen tèlman. 54 00:02:22,970 --> 00:02:24,320 >> Yo ap tou relativman ti. 55 00:02:24,320 --> 00:02:25,695 Gen nan pa yon anpil nan espas siplemantè. 56 00:02:25,695 --> 00:02:29,210 Ou jis mete sou kote egzakteman kòm anpil jan ou bezwen kenbe done ou a, 57 00:02:29,210 --> 00:02:30,320 e ke sa a bèl anpil li. 58 00:02:30,320 --> 00:02:33,180 Se konsa, yo ap trè ti ak efikas nan fason sa a. 59 00:02:33,180 --> 00:02:36,000 Men, yon lòt inconvénient, menm si, se yo ke yo yo se fiks nan gwosè. 60 00:02:36,000 --> 00:02:38,630 Nou gen deklare egzakteman ki jan gwo nou vle etalaj nou an yo dwe, 61 00:02:38,630 --> 00:02:39,940 epi nou sèlman jwenn yon sèl piki nan li. 62 00:02:39,940 --> 00:02:41,280 Nou pa ka grandi ak retresi li. 63 00:02:41,280 --> 00:02:44,582 >> Si nou bezwen yo grandi oswa retresi li, nou bezwen deklare yon etalaj totalman nouvo, 64 00:02:44,582 --> 00:02:47,750 kopi tout nan eleman ki nan la premye etalaj nan etalaj la dezyèm fwa. 65 00:02:47,750 --> 00:02:51,410 Men, si nou miscalculated ki tan, nou bezwen fè l 'ankò. 66 00:02:51,410 --> 00:02:52,760 Pa tèlman gwo. 67 00:02:52,760 --> 00:02:58,750 Se konsa, ranje pa ban nou fleksibilite nan gen nimewo varyab nan eleman. 68 00:02:58,750 --> 00:03:01,320 >> Avèk yon lis lye, ensèsyon se trè fasil. 69 00:03:01,320 --> 00:03:03,290 Nou jis fofile sou devan an. 70 00:03:03,290 --> 00:03:04,892 Sipresyon se tou trè fasil. 71 00:03:04,892 --> 00:03:06,100 Nou gen jwenn eleman yo. 72 00:03:06,100 --> 00:03:07,270 Sa enplike kèk rechèch. 73 00:03:07,270 --> 00:03:10,270 >> Men, yon fwa ou te jwenn eleman nan w ap chèche pou yo, tout sa ou bezwen fè 74 00:03:10,270 --> 00:03:12,830 se chanje yon konsèy, pètèt de si ou gen 75 00:03:12,830 --> 00:03:15,151 yon lye list-- yon doubl lis lye, rather-- 76 00:03:15,151 --> 00:03:16,650 ak Lè sa a ou ka jis libere ne la. 77 00:03:16,650 --> 00:03:18,399 Ou pa gen chanjman tout bagay alantou. 78 00:03:18,399 --> 00:03:22,090 Ou jis chanje de endikasyon, se konsa ke a trè rapid. 79 00:03:22,090 --> 00:03:23,470 >> Passage se move menm si, dwa? 80 00:03:23,470 --> 00:03:26,280 Yo nan lòd pou nou pou n jwenn yon eleman nan yon lis lye, 81 00:03:26,280 --> 00:03:29,154 si wi ou non separeman oubyen doubl lye, nou dwe lineyè rechèch li. 82 00:03:29,154 --> 00:03:32,320 Nou dwe kòmanse nan kòmansman an ak deplase fen a, oswa kòmanse nan fen mouvman an 83 00:03:32,320 --> 00:03:33,860 nan konmansman an. 84 00:03:33,860 --> 00:03:35,474 Nou pa gen aksè o aza ankò. 85 00:03:35,474 --> 00:03:37,265 Se konsa, si n ap fè yon anpil nan rechèch, petèt 86 00:03:37,265 --> 00:03:39,830 yon lis lye se pa byen tèlman bon pou nou. 87 00:03:39,830 --> 00:03:43,750 >> Yo ap tou vrèman difisil a sòt, dwa? 88 00:03:43,750 --> 00:03:45,666 Sèl fason pou ou kapab reyèlman sòt yon lis lye 89 00:03:45,666 --> 00:03:47,870 se yo sòt li jan ou konstwi li. 90 00:03:47,870 --> 00:03:50,497 Men, si ou sòt li jan ou konstwi li, ou ap pa gen okenn ankò 91 00:03:50,497 --> 00:03:51,830 fè parusyon rapid ankò. 92 00:03:51,830 --> 00:03:53,746 W ap pa sèlman tacking bagay sou devan an. 93 00:03:53,746 --> 00:03:55,710 Ou gen jwenn nan plas dwa mete l ', 94 00:03:55,710 --> 00:03:57,820 ak Lè sa a ensèsyon ou vin jis sou tankou move 95 00:03:57,820 --> 00:03:59,390 kòm mete nan yon etalaj. 96 00:03:59,390 --> 00:04:03,130 Se konsa, lis lye yo pa tèlman gwo pou klasman done. 97 00:04:03,130 --> 00:04:05,830 >> Yo ap tou trè piti, gwosè-gen bon konprann. 98 00:04:05,830 --> 00:04:08,496 Doubl lye lis yon ti kras pi gwo pase lis separeman lye, 99 00:04:08,496 --> 00:04:10,620 ki se ti kras pi gwo pase ranje, men li la pa 100 00:04:10,620 --> 00:04:13,330 yon kantite lajan gwo gaspiye espas. 101 00:04:13,330 --> 00:04:18,730 Se konsa, si espas se nan yon prim, men pa yon prim reyèlman entans, 102 00:04:18,730 --> 00:04:22,180 sa a ta kapab yon dwa chemen yo ale. 103 00:04:22,180 --> 00:04:23,330 >> Tab regle. 104 00:04:23,330 --> 00:04:25,850 Ensèsyon nan yon tab regle se jistis senp. 105 00:04:25,850 --> 00:04:26,980 Li se yon pwosesis de-etap. 106 00:04:26,980 --> 00:04:30,700 Premye nou bezwen kouri done nou yo atravè yon fonksyon regle yo ka resevwa yon kòd hash, 107 00:04:30,700 --> 00:04:37,550 ak Lè sa a nou Insert eleman an nan la regle tab nan ki kote Kòd regle. 108 00:04:37,550 --> 00:04:40,879 >> Sipresyon, menm jan ak lis lye, se fasil yon fwa ou jwenn eleman an. 109 00:04:40,879 --> 00:04:43,170 Ou gen jwenn li an premye, men Lè sa a lè ou efase li, 110 00:04:43,170 --> 00:04:45,128 ou jis bezwen fè echanj yon koup la endikasyon, 111 00:04:45,128 --> 00:04:47,250 si w ap itilize Anchènman ki apa a. 112 00:04:47,250 --> 00:04:49,942 Si w ap lè l sèvi avèk sonde, oswa si ou pa ap 113 00:04:49,942 --> 00:04:51,650 lè l sèvi avèk Anchènman nan tout nan tablo regle ou, 114 00:04:51,650 --> 00:04:53,040 sipresyon se aktyèlman reyèlman fasil. 115 00:04:53,040 --> 00:04:57,134 Tout sa ou bezwen fè se Hash nan done, ak Lè sa a ale nan ki kote. 116 00:04:57,134 --> 00:04:58,925 Apre sa, an konsideran ou pa fè sa gen nenpòt kolizyon, 117 00:04:58,925 --> 00:05:01,650 ou pral kapab yo efase trè vit. 118 00:05:01,650 --> 00:05:04,930 >> Koulye a, Passage a se kote bagay sa yo jwenn yon ti kras pi plis konplike. 119 00:05:04,930 --> 00:05:06,910 Li nan an mwayèn pi bon pase lis lye. 120 00:05:06,910 --> 00:05:09,560 Si w ap lè l sèvi avèk Anchènman, ou toujou gen yon lis lye, 121 00:05:09,560 --> 00:05:13,170 ki vle di ou toujou gen nan rechèch detriman yon lis lye. 122 00:05:13,170 --> 00:05:18,390 Men, paske se w ap pran lye ou lis ak divize li sou 100 oswa 1,000 123 00:05:18,390 --> 00:05:25,380 oswa n eleman nan tablo regle ou, w ap lis lye, yo tout yon sèl nyèm gwosè a. 124 00:05:25,380 --> 00:05:27,650 Yo ap tout anpil pi piti. 125 00:05:27,650 --> 00:05:32,080 Ou te n lye lis olye pou nan yon sèl lis lye nan gwosè n. 126 00:05:32,080 --> 00:05:34,960 >> Se konsa, sa a-mond reyèl konstan faktè, nou jeneralman 127 00:05:34,960 --> 00:05:39,730 pa pale sou nan tan konpleksite, li aktyèlman fè yon diferans isit la. 128 00:05:39,730 --> 00:05:43,020 Se konsa, Passage se toujou lineyè rechèch si w ap itilize Anchènman, 129 00:05:43,020 --> 00:05:46,780 men longè a nan lis la w ap chèche a 130 00:05:46,780 --> 00:05:50,080 se trè, trè kout pa konparezon. 131 00:05:50,080 --> 00:05:52,995 Yon fwa ankò, si se ou klasman Objektif isit la, regle tab la 132 00:05:52,995 --> 00:05:54,370 pwobableman pa chemen ki dwat la yo ale. 133 00:05:54,370 --> 00:05:56,830 Jis itilize yon etalaj si klasman se reyèlman enpòtan ba ou. 134 00:05:56,830 --> 00:05:58,590 >> Apre sa, yo ka kouri gam la nan gwosè. 135 00:05:58,590 --> 00:06:01,640 Li difisil yo di si yon tab regle se ti piti oubyen gwo, 136 00:06:01,640 --> 00:06:04,110 paske li reyèlman depann de ki jan gwo tab regle ou a se. 137 00:06:04,110 --> 00:06:07,340 Si w ap sèlman ale nan dwe estoke senk eleman nan tablo regle ou, 138 00:06:07,340 --> 00:06:10,620 epi ou gen yon tab regle ak 10,000 eleman nan li, 139 00:06:10,620 --> 00:06:12,614 w ap pwobableman gaspiye yon anpil nan espas. 140 00:06:12,614 --> 00:06:15,030 Kontrèman ke yo te ou ka tou gen tab regle trè kontra enfòmèl ant, 141 00:06:15,030 --> 00:06:18,720 men ki pi piti tab la regle ou vin, ankò nan chak nan sa yo bay lis lye 142 00:06:18,720 --> 00:06:19,220 vin. 143 00:06:19,220 --> 00:06:22,607 Se konsa, gen nan reyèlman pa gen fason yo defini egzakteman gwosè a nan yon tab regle, 144 00:06:22,607 --> 00:06:24,440 men li la pwobableman ki an sekirite yo di li nan jeneralman 145 00:06:24,440 --> 00:06:27,990 pral fè pi gwo pase yon lye lis estoke done a menm, 146 00:06:27,990 --> 00:06:30,400 men ki pi piti pase yon trye. 147 00:06:30,400 --> 00:06:32,720 >> Epi eseye yo katriyèm lan nan sa yo estrikti 148 00:06:32,720 --> 00:06:34,070 ke nou ve yo te ap pale de. 149 00:06:34,070 --> 00:06:36,450 Mete nan yon trye se konplèks. 150 00:06:36,450 --> 00:06:38,400 Genyen yon anpil nan dinamik alokasyon memwa, 151 00:06:38,400 --> 00:06:40,780 espesyalman nan kòmansman an, jan ou ap kòmanse yo bati. 152 00:06:40,780 --> 00:06:43,700 Men, li lè konstan. 153 00:06:43,700 --> 00:06:47,690 Li nan sèlman eleman imen an isit la ki fè li difisil. 154 00:06:47,690 --> 00:06:53,250 Èske w gen yo rankontre null konsèy, malok espas, ale la, espas pètèt malok 155 00:06:53,250 --> 00:06:54,490 apati de la ankò. 156 00:06:54,490 --> 00:06:58,880 Sòt la nan faktè a entimidasyon endikasyon nan alokasyon memwa dinamik 157 00:06:58,880 --> 00:07:00,130 se obstak nan klè. 158 00:07:00,130 --> 00:07:04,550 Men, yon fwa ou te otorize li, ensèsyon aktyèlman vini byen senp, 159 00:07:04,550 --> 00:07:06,810 epi li sètènman se tan konstan. 160 00:07:06,810 --> 00:07:07,680 >> Sipresyon se fasil. 161 00:07:07,680 --> 00:07:11,330 Tout sa ou bezwen fè se navige desann yon koup la endikasyon ak gratis ne la, 162 00:07:11,330 --> 00:07:12,420 se konsa sa a, se trè bon. 163 00:07:12,420 --> 00:07:13,930 Passage se tou trè vit. 164 00:07:13,930 --> 00:07:16,780 Li nan sèlman ki baze sou la longè done ou. 165 00:07:16,780 --> 00:07:19,924 Se konsa, si tout done ou a se senk strings karaktè, 166 00:07:19,924 --> 00:07:22,590 pou egzanp, w ap estoke senk strings karaktè nan trye ou, 167 00:07:22,590 --> 00:07:25,439 li sèlman pran senk etap sa yo jwenn sa ou ap chèche pou. 168 00:07:25,439 --> 00:07:28,480 Senk se jis yon faktè konstan, se konsa ankò, ensèsyon, sipresyon, ak Passage 169 00:07:28,480 --> 00:07:31,670 isit la yo se tout tan tout tan konstan, efektivman. 170 00:07:31,670 --> 00:07:34,880 >> Yon lòt bagay se ke trye ou a se aktyèlman kalite deja klase, dwa? 171 00:07:34,880 --> 00:07:36,800 Pa vèti nan ki jan nou ap mete eleman, 172 00:07:36,800 --> 00:07:40,060 pa ale lèt pa lèt nan an kle, oswa chif pa chif a kle a, 173 00:07:40,060 --> 00:07:45,084 tipikman, trye ou fini moute ke yo te kalite Ranje jan ou bati l '. 174 00:07:45,084 --> 00:07:47,250 Li pa vrèman fè sans nan panse osijè de Fouye 175 00:07:47,250 --> 00:07:49,874 nan menm fason an nou panse osijè de l 'ak ranje, oswa lis lye, 176 00:07:49,874 --> 00:07:51,070 oswa regle tab. 177 00:07:51,070 --> 00:07:54,780 Men, nan kèk sans, ou trye se Klase jan ou ale. 178 00:07:54,780 --> 00:07:58,630 >> Inconvénient la, nan kou, se ke yon trye rapidman vin gwo. 179 00:07:58,630 --> 00:08:02,970 Soti nan chak pwen junction, ou ta ka en-si kle ou konsiste de chif, 180 00:08:02,970 --> 00:08:04,880 ou gen 10 lòt kote ou ka ale, ki 181 00:08:04,880 --> 00:08:07,490 vle di ke chak ne gen enfòmasyon 182 00:08:07,490 --> 00:08:11,440 sou done yo ou vle nan magazen nan ki ne, plis 10 endikasyon. 183 00:08:11,440 --> 00:08:14,430 Ki, sou CS50 IDE, se 80 bytes. 184 00:08:14,430 --> 00:08:17,220 Se konsa, li omwen 80 bytes pou chak ne ke ou kreye, 185 00:08:17,220 --> 00:08:19,240 ak ki pa nan menm konte done. 186 00:08:19,240 --> 00:08:24,950 Men, si ou yo nœuds lèt olye pou yo chif, 187 00:08:24,950 --> 00:08:27,825 kounye a ou gen 26 endikasyon soti nan tout kote. 188 00:08:27,825 --> 00:08:32,007 Ak 26 fwa 8 se pwobableman 200 bytes, oswa yon bagay tankou sa. 189 00:08:32,007 --> 00:08:33,840 Epi ou gen kapital ak miniskil ou ka 190 00:08:33,840 --> 00:08:35,381 wè ki kote mwen pral ak sa a, dwa? 191 00:08:35,381 --> 00:08:37,500 Nœuds ou ka jwenn vrèman gwo, e konsa trye nan 192 00:08:37,500 --> 00:08:40,470 tèt li, an jeneral, kapab jwenn vrèman gwo, tou. 193 00:08:40,470 --> 00:08:42,630 Se konsa, si espas se nan yon wo prim sou sistèm ou a, 194 00:08:42,630 --> 00:08:45,830 yon trye pa ta ka wout la dwa ale, menm si lòt benefis li yo 195 00:08:45,830 --> 00:08:47,780 antre nan jwe. 196 00:08:47,780 --> 00:08:48,710 Mwen se Doug Lloyd. 197 00:08:48,710 --> 00:08:50,740 Sa a se CS50. 198 00:08:50,740 --> 00:08:52,316