1 00:00:05,259 --> 00:00:07,219 DOGS LOIDS: Tātad CS50 mēs esam aptvēruši daudz dažādu datu 2 00:00:07,219 --> 00:00:09,180 struktūru, vai ne? 3 00:00:09,180 --> 00:00:11,190 Mēs esam redzējuši masīvus un saistītos sarakstus, un jaukšanas 4 00:00:11,190 --> 00:00:13,200 tabulasjaucējtabulas, un mēģinājumusdigitālos kokus, skursteņusstekus 5 00:00:13,200 --> 00:00:15,210 un rindas. 6 00:00:15,210 --> 00:00:17,665 Mēs arī nedaudz uzzināsim par kokiem un kaudzēm, taču patiesībā tas 7 00:00:17,665 --> 00:00:20,120 viss ir tikai tēmas variācijas. 8 00:00:20,120 --> 00:00:22,655 Patiešām ir šādas četras pamatidejas, uz kurām var attiekties viss 9 00:00:22,655 --> 00:00:25,190 pārējais. 10 00:00:25,190 --> 00:00:26,670 Masīvi, saistītie saraksti, hash tabulasjaucējtabulas un 11 00:00:26,670 --> 00:00:28,150 mēģinājumidigitālie koki. 12 00:00:28,150 --> 00:00:31,480 Un, kā jau teicu, tiem ir dažādas variācijas, taču tas apkopos 13 00:00:31,480 --> 00:00:34,810 gandrīz visu, par ko mēs runāsim šajā klasēkursā/nodarbībā attiecībā 14 00:00:34,810 --> 00:00:38,140 uz programmēšanas valodu C. 15 00:00:38,140 --> 00:00:40,140 Bet kā tas viss tiek novērtēts, vai ne? 16 00:00:40,140 --> 00:00:43,265 Par katra priekšrocībām un mīnusiem esam runājuši atsevišķos 17 00:00:43,265 --> 00:00:46,390 videoklipos par tiem, taču ir daudz dažādu skaitļu. 18 00:00:46,390 --> 00:00:48,723 Ir daudz vispārīgu domuuzskatu, kas tiek izmētātas. 19 00:00:48,723 --> 00:00:51,950 Mēģināsim to apvienot tikai vienā vietā. 20 00:00:51,950 --> 00:00:55,113 Izvērtēsim plusus un mīnusus un apsvērsim, kura datu struktūra varētu 21 00:00:55,113 --> 00:00:58,276 būt īstā datu struktūra jūsu konkrētajai situācijai neatkarīgi no 22 00:00:58,276 --> 00:01:01,440 glabājamo datu veida. 23 00:01:01,440 --> 00:01:04,713 Jums ne vienmēr ir jāizmanto īpaši ātra mēģinājumadigitālā koka 24 00:01:04,713 --> 00:01:07,986 ievietošana, dzēšana un uzmeklēšana, ja jums patiešām nav pārāk 25 00:01:07,986 --> 00:01:11,260 svarīgi ievietot un dzēst. 26 00:01:11,260 --> 00:01:12,614 Ja jums ir nepieciešama tikai ātra nejauša piekļuvebrīvpiekļuve, 27 00:01:12,614 --> 00:01:13,968 iespējams, masīvs ir labāks. 28 00:01:13,968 --> 00:01:15,340 Tātad destilēsimizvērtēsim to. 29 00:01:15,340 --> 00:01:18,006 Parunāsim par katru no četriem galvenajiem datu struktūru veidiem, 30 00:01:18,006 --> 00:01:20,673 par kuriem mēs runājām, un vienkārši redzēsim, kad tās varētu būt 31 00:01:20,673 --> 00:01:23,340 labas un kad tās varētu nebūt tik labas. 32 00:01:23,340 --> 00:01:24,610 Tātad sāksim ar masīviem. 33 00:01:24,610 --> 00:01:27,300 Tātad ievietošana, tas ir slikti. 34 00:01:27,300 --> 00:01:29,325 Ievietošana masīva beigās ir piemērota, ja mēs veidojam masīvu darba 35 00:01:29,325 --> 00:01:31,350 gaitā. 36 00:01:31,350 --> 00:01:34,430 Bet, ja elementi ir jāievieto vidū, atcerieties ievietošanas 37 00:01:34,430 --> 00:01:37,510 kārtošanu, jo ir daudz pārbīdes, lai tajā ievietotu elementu. 38 00:01:37,510 --> 00:01:40,550 Un tāpēc, ja mēs ievietosim jebkur, izņemot masīva beigas, tas, 39 00:01:40,550 --> 00:01:43,590 iespējams, nav tik lieliski. 40 00:01:43,590 --> 00:01:45,990 Tāpat arī dzēšana, ja vien nedzēšam no masīva beigām, iespējams, arī 41 00:01:45,990 --> 00:01:48,390 nav tik lieliska, ja nevēlamies atstāt tukšas atstarpes, ko parasti 42 00:01:48,390 --> 00:01:50,790 nedarām. 43 00:01:50,790 --> 00:01:52,745 Mēs vēlamies noņemt elementu un pēc tam kaut kā padarīt to atkal 44 00:01:52,745 --> 00:01:54,700 pieguļošuto atkal sakārtot. 45 00:01:54,700 --> 00:01:57,670 Un tāpēc elementu dzēšana no masīva arī nav tik lieliska. 46 00:01:57,670 --> 00:01:58,820 Tomēr uzmeklēšana ir lieliska. 47 00:01:58,820 --> 00:02:00,920 Mums ir brīvpiekļuve, pastāvīga laika meklēšana. 48 00:02:00,920 --> 00:02:02,360 Mēs vienkārši sakām septiņi, un mēs ejam uz masīva pārvietošanu 49 00:02:02,360 --> 00:02:03,800 septiņi. 50 00:02:03,800 --> 00:02:05,907 Mēs sakām 20, ar pāreju uz masīva pārvietošanu 20. 51 00:02:05,907 --> 00:02:07,240 Mums nav jāatkārtojāveic iterācija. 52 00:02:07,240 --> 00:02:08,630 Tas ir diezgan labi. 53 00:02:08,630 --> 00:02:11,020 Masīvus ir arī salīdzinoši viegli kārtot. 54 00:02:11,020 --> 00:02:13,410 Katru reizi, kad mēs runājām par šķirošanas algoritmu, piemēram, 55 00:02:13,410 --> 00:02:15,800 atlases kārtošanu, ievietošanas kārtošanu, burbuļu 56 00:02:15,800 --> 00:02:18,190 kārtošanuburbuļkārtošanu, sapludināšanas kārtošanu, mēs vienmēr 57 00:02:18,190 --> 00:02:20,580 izmantojām masīvus, jo masīvus ir diezgan viegli kārtot, salīdzinot 58 00:02:20,580 --> 00:02:22,970 ar līdz šim redzētajām datu struktūrām. . 59 00:02:22,970 --> 00:02:24,320 Tie ir arī salīdzinoši mazi. 60 00:02:24,320 --> 00:02:25,695 Tur nav daudz papildu vietas. 61 00:02:25,695 --> 00:02:28,007 Jūs vienkārši atliekat malā tieši tik daudz, cik nepieciešams datu 62 00:02:28,007 --> 00:02:30,320 glabāšanai, un tas arī viss. 63 00:02:30,320 --> 00:02:33,180 Tātad tie ir diezgan mazi un efektīvi. 64 00:02:33,180 --> 00:02:36,000 Taču vēl viens mīnuss ir tas, ka tie ir fiksēti pēc izmēra. 65 00:02:36,000 --> 00:02:37,970 Mums ir precīzi jāpaziņo, cik lielu masīvu mēs vēlamies, lai mūsu 66 00:02:37,970 --> 00:02:39,940 masīvs būtu, un mēs to iegūstam tikai vienu reizi. 67 00:02:39,940 --> 00:02:41,280 Mēs nevaram to augtpalielināt un samazināt. 68 00:02:41,280 --> 00:02:44,515 Ja mums tas jāpalielina vai jāsamazina, mums ir jādeklarē pilnīgi 69 00:02:44,515 --> 00:02:47,750 jauns masīvs, jākopē visi pirmā masīva elementi otrajā masīvā. 70 00:02:47,750 --> 00:02:49,580 Un, ja mēs nepareizi aprēķinājām šo laikutoreiz, mums tas jādara 71 00:02:49,580 --> 00:02:51,410 vēlreiz. 72 00:02:51,410 --> 00:02:52,760 Ne tik lieliski. 73 00:02:52,760 --> 00:02:58,750 Tātad masīvi nedod mums iespēju izmantot mainīgu elementu skaitu. 74 00:02:58,750 --> 00:03:01,320 Izmantojot saistīto sarakstu, ievietošana ir diezgan vienkārša. 75 00:03:01,320 --> 00:03:03,290 Mēs vienkārši uzkāpjam uz priekšpusipievienojam sākumam. 76 00:03:03,290 --> 00:03:04,892 Dzēšana ir arī ir diezgan vienkārša. 77 00:03:04,892 --> 00:03:06,100 Mums ir jāatrod elementi. 78 00:03:06,100 --> 00:03:07,270 Tas ietver meklēšanu. 79 00:03:07,270 --> 00:03:09,615 Bet, kad esat atradis meklēto elementu, viss, kas jums jādara, ir 80 00:03:09,615 --> 00:03:11,960 jāmaina rādītājs, iespējams, divi, ja jums ir saistīts saraksts — 81 00:03:11,960 --> 00:03:14,305 drīzāk divkārši saistīts saraksts — un pēc tam varat vienkārši 82 00:03:14,305 --> 00:03:16,650 atbrīvot mezglu. . 83 00:03:16,650 --> 00:03:18,399 Jums nav viss jāpārvieto apkārt. 84 00:03:18,399 --> 00:03:20,244 Jūs vienkārši mainietmaināt divus rādītājus, tāpēc tas ir diezgan 85 00:03:20,244 --> 00:03:22,090 ātri. 86 00:03:22,090 --> 00:03:23,470 Tomēr meklēšana ir slikta, vai ne? 87 00:03:23,470 --> 00:03:25,364 Lai mēs varētu atrast elementu saistītajā sarakstā neatkarīgi no tā, 88 00:03:25,364 --> 00:03:27,259 vai tas ir saistīts atsevišķi vai divreizdivkārši, mums tas ir 89 00:03:27,259 --> 00:03:29,154 jāmeklē lineāri. 90 00:03:29,154 --> 00:03:31,507 Mums jāsāk no sākuma un jāpārvieto beigasuz beigām, vai jāsāk beigās, 91 00:03:31,507 --> 00:03:33,860 pārejietpārejot uz sākumu. 92 00:03:33,860 --> 00:03:35,474 Mums vairs nav nejaušas piekļuvesbrīvpiekļuves. 93 00:03:35,474 --> 00:03:37,652 Tātad, ja mēs veicam daudz meklēšanu, iespējams, saistītais saraksts 94 00:03:37,652 --> 00:03:39,830 mums nav tik labs. 95 00:03:39,830 --> 00:03:43,750 Tos ir arī ļoti grūti šķirot, vai ne? 96 00:03:43,750 --> 00:03:45,810 Vienīgais veids, kā jūs patiešām varat kārtot saistīto sarakstu, ir 97 00:03:45,810 --> 00:03:47,870 kārtot, to veidojot. 98 00:03:47,870 --> 00:03:49,850 Bet, ja kārtojat to konstruēšanasveidošanas laikā, jūs vairs 99 00:03:49,850 --> 00:03:51,830 neveiksit ātrusātru ievietošanu. 100 00:03:51,830 --> 00:03:53,746 Jūs ne tikai uzlīmējatievietojat lietas uz priekšpusisākumā. 101 00:03:53,746 --> 00:03:56,568 Jums ir jāatrod īstā vieta, kur to ievietot, un tad jūsu ievietošana 102 00:03:56,568 --> 00:03:59,390 kļūst tikpat slikta kā ievietošana masīvā. 103 00:03:59,390 --> 00:04:03,130 Tāpēc saistītie saraksti nav tik lieliski piemēroti datu kārtošanai. 104 00:04:03,130 --> 00:04:05,830 Tie ir arī diezgan mazi, pēc izmēraizmēra ziņā. 105 00:04:05,830 --> 00:04:08,330 Divkārši saistītie saraksti ir nedaudz lielāki nekā atsevišķi 106 00:04:08,330 --> 00:04:10,830 saistītie saraksti, kas ir nedaudz lielāki par masīviem, taču tas nav 107 00:04:10,830 --> 00:04:13,330 liels izniekotas vietas apjoms. 108 00:04:13,330 --> 00:04:17,755 Tātad, ja vieta ir ļoti dārgasvarīga, bet ne pārāk intensīvatik ļoti 109 00:04:17,755 --> 00:04:22,180 svarīga, tas varētu būt pareizais ceļš. 110 00:04:22,180 --> 00:04:23,330 Hash tabulasJaucējtabulas. 111 00:04:23,330 --> 00:04:25,850 Ievietošana hash tabulājaucējtabulā ir diezgan vienkārša. 112 00:04:25,850 --> 00:04:26,980 Tas ir divpakāpju process. 113 00:04:26,980 --> 00:04:30,503 Vispirms mums ir jāpalaiž savi dati, izmantojot jaucējfunkciju, lai 114 00:04:30,503 --> 00:04:34,026 iegūtu jaucējkodu, un pēc tam mēs ievietojam elementu jaucēja tabulā 115 00:04:34,026 --> 00:04:37,550 jaucējtabulā šajā jaucējkoda vietā. 116 00:04:37,550 --> 00:04:39,214 Dzēšana, līdzīgi kā saistītajam sarakstam, ir vienkārša, tiklīdz 117 00:04:39,214 --> 00:04:40,879 atrodat elementu. 118 00:04:40,879 --> 00:04:43,002 Vispirms tas ir jāatrod, bet pēc tam, kad to izdzēšat, jums vienkārši 119 00:04:43,002 --> 00:04:45,126 jāapmainās ar pāris norādesjāapmaina pāris rādītāju, ja izmantojat 120 00:04:45,126 --> 00:04:47,250 atsevišķu ķēdi. 121 00:04:47,250 --> 00:04:50,145 Ja izmantojat zondēšanu/izpēti vai jauktabulājaucējtabulā vispār 122 00:04:50,145 --> 00:04:53,040 neizmantojat ķēdi, dzēšana patiesībā ir ļoti vienkārša. 123 00:04:53,040 --> 00:04:55,087 Viss, kas jums jādara, ir jaukt datuspievienot tēmturi datiem un pēc 124 00:04:55,087 --> 00:04:57,134 tam doties uz šo vietu. 125 00:04:57,134 --> 00:04:59,392 Un, pieņemot, ka jums nav nekādu sadursmju, jūs varēsit dzēst ļoti 126 00:04:59,392 --> 00:05:01,650 ātri. 127 00:05:01,650 --> 00:05:04,930 Tagad meklēšana ir vieta, kur lietas kļūst nedaudz sarežģītākas. 128 00:05:04,930 --> 00:05:06,910 Tas ir vidēji labāksKopumā tā ir labāka nekā saistītie saraksti. 129 00:05:06,910 --> 00:05:10,040 Ja izmantojat ķēdes savienojumu, jums joprojām ir saistīts saraksts, 130 00:05:10,040 --> 00:05:13,170 kas nozīmē, ka meklēšana joprojām kaitē saistītajam sarakstam. 131 00:05:13,170 --> 00:05:17,240 Bet, tā kā jūs izmantojat saistīto sarakstu un sadalāt to pa 100 vai 132 00:05:17,240 --> 00:05:21,310 1000 vai n elementiem savā jaukšanas tabulā, visi saistītie saraksti 133 00:05:21,310 --> 00:05:25,380 ir n-tā izmēra. 134 00:05:25,380 --> 00:05:27,650 ViņiTie visi ir ievērojami mazāki. 135 00:05:27,650 --> 00:05:29,865 Jums ir n saistīti saraksti, nevis viens saistīts saraksts ar izmēru 136 00:05:29,865 --> 00:05:32,080 n. 137 00:05:32,080 --> 00:05:34,630 Un tāpēc šis reālās pasaules nemainīgais faktors, par kuru mēs 138 00:05:34,630 --> 00:05:37,180 parasti nerunājam par laika sarežģītībulaika sarežģītības kontekstā, 139 00:05:37,180 --> 00:05:39,730 tas patiesībā šeit rada atšķirību. 140 00:05:39,730 --> 00:05:43,180 Tātad uzmeklēšana joprojām ir lineāra meklēšana, ja izmantojat ķēdes 141 00:05:43,180 --> 00:05:46,630 savienojumu, taču salīdzinājumam meklētā saraksta garums salīdzinoši 142 00:05:46,630 --> 00:05:50,080 ir ļoti, ļoti īss. 143 00:05:50,080 --> 00:05:52,225 Atkal, ja kārtošana ir jūsu mērķis šeit, iespējams, hash tabula 144 00:05:52,225 --> 00:05:54,370 jaucējtabula nav pareizais ceļš. 145 00:05:54,370 --> 00:05:56,830 Vienkārši izmantojiet masīvu, ja kārtošana jums ir patiešām svarīga. 146 00:05:56,830 --> 00:05:58,590 Un tie var darboties dažādu izmēru diapazonā. 147 00:05:58,590 --> 00:06:00,430 Ir grūti pateikt, vai hash tabulajaucējtabula ir maza vai liela, jo 148 00:06:00,430 --> 00:06:02,270 tas tiešām ir atkarīgs no tā, cik liela ir jūsu jaucēj 149 00:06:02,270 --> 00:06:04,110 tabulajaucējtabula. 150 00:06:04,110 --> 00:06:08,362 Ja jaukšanas tabulājaucējtabulā glabāsit tikai piecus elementus un 151 00:06:08,362 --> 00:06:12,614 tajā ir 10 000 elementu, jūs, iespējams, tērējat daudz vietas. 152 00:06:12,614 --> 00:06:14,816 Pretstatā tam, ka jums var būt arī ļoti kompaktas jaucēj 153 00:06:14,816 --> 00:06:17,018 tabulasjaucējtabulas, taču, jo mazāka kļūst jaucēj 154 00:06:17,018 --> 00:06:19,220 tabulajaucējtabula, jo garāks kļūst katrs no saistītajiem sarakstiem. 155 00:06:19,220 --> 00:06:22,015 Tāpēc īsti nav iespējams precīzi definēt jaukšanas tabulas lielumu, 156 00:06:22,015 --> 00:06:24,810 taču droši var teikt, ka tas parasti būs lielāks par saistīto 157 00:06:24,810 --> 00:06:27,605 sarakstu, kurā tiek glabāti tie paši dati, bet mazāks par 158 00:06:27,605 --> 00:06:30,400 mēģinājumudigitālo koku. 159 00:06:30,400 --> 00:06:32,235 Un mēģinājumidigitālie koki ir ceturtā no šīm struktūrām, par kurām 160 00:06:32,235 --> 00:06:34,070 mēs runājām. 161 00:06:34,070 --> 00:06:36,450 Ievietošana trijādigitālajā kokā ir sarežģīta. 162 00:06:36,450 --> 00:06:38,615 Ir daudz dinamiskas atmiņas piešķiršanas, it īpaši sākumā, kad sākat 163 00:06:38,615 --> 00:06:40,780 veidot. 164 00:06:40,780 --> 00:06:43,700 Bet tas ir pastāvīgs laiks. 165 00:06:43,700 --> 00:06:47,690 Tikai cilvēka elementscilvēciskais faktors šeit padara to sarežģītu. 166 00:06:47,690 --> 00:06:49,956 Ja jums ir jāsastopas ar nulles rādītāju, malloc atstarpi, dodieties 167 00:06:49,956 --> 00:06:52,223 uz turieni, iespējams, no turienes vēlreiz ar mallocatvēliet 168 00:06:52,223 --> 00:06:54,490 atstarpi. 169 00:06:54,490 --> 00:06:57,310 NorādītājuRādītāju iebiedēšanaspakļaušanas faktors 170 00:06:57,310 --> 00:07:00,130 dinamiskajādinamiskās atmiņas piešķiršanā ir šķērslis, kas jānovērš. 171 00:07:00,130 --> 00:07:03,470 Bet, kad esat to notīrījissakārtojuši, ievietošana patiesībā notiek 172 00:07:03,470 --> 00:07:06,810 diezgan vienkārši, un tas noteikti ir nemainīgs laiks. 173 00:07:06,810 --> 00:07:07,680 Dzēšana ir vienkārša. 174 00:07:07,680 --> 00:07:10,050 Viss, kas jums jādara, ir jānovirza pāris norādesrādītāji uz leju un 175 00:07:10,050 --> 00:07:12,420 jāatbrīvo mezgls, tāpēc tas ir diezgan labi. 176 00:07:12,420 --> 00:07:13,930 Uzmeklēšana ir arī arī ir diezgan ātra. 177 00:07:13,930 --> 00:07:16,780 TasTā ir balstītsbalstīta tikai uz jūsu datu garumu. 178 00:07:16,780 --> 00:07:18,944 Tātad, ja visi jūsu dati sastāv no piecām rakstzīmju virknēm, 179 00:07:18,944 --> 00:07:21,109 piemēram, jūs savā mēģinājumādigitālajā kokā glabājat piecas 180 00:07:21,109 --> 00:07:23,274 rakstzīmju virknes, nepieciešamas tikai piecas darbības, lai atrastu 181 00:07:23,274 --> 00:07:25,439 to, ko meklējat. 182 00:07:25,439 --> 00:07:28,554 Pieci ir tikai nemainīgs faktors, tāpēc arī šeit ievietošana, dzēšana 183 00:07:28,554 --> 00:07:31,670 un meklēšana ir nemainīgs laiks. 184 00:07:31,670 --> 00:07:33,275 Vēl viena lieta ir tāda, ka jūsu mēģinājumsdigitālais koks faktiski 185 00:07:33,275 --> 00:07:34,880 jau ir sakārtots, vai ne? 186 00:07:34,880 --> 00:07:37,431 Pamatojoties uz to, kā mēs ievietojam elementus, pārejot burtu pēc 187 00:07:37,431 --> 00:07:39,982 atslēgas burta vai ciparu pēc atslēgas ciparaizmantojot atslēgas 188 00:07:39,982 --> 00:07:42,533 burtus vai atslēgas ciparus, jūsu mēģinājumsdigitālais koks parasti 189 00:07:42,533 --> 00:07:45,084 tiek sakārtots, veidojot to. 190 00:07:45,084 --> 00:07:47,079 Nav īsti jēgas domāt par kārtošanu tādā pašā veidā, kā mēs par to 191 00:07:47,079 --> 00:07:49,074 domājam ar masīviem, saistītiem sarakstiem vai jaucēj 192 00:07:49,074 --> 00:07:51,070 tabulāmjaucējtabulām. 193 00:07:51,070 --> 00:07:54,780 Taču zināmā mērā jūsu mēģinājumsdigitālais koks tiek sakārtots. 194 00:07:54,780 --> 00:07:56,705 Negatīvā puse, protams, ir tāda, ka mēģinājumsdigitālais koks ātri 195 00:07:56,705 --> 00:07:58,630 kļūst milzīgs. 196 00:07:58,630 --> 00:08:01,832 No katra savienojuma punkta jums var būt — ja jūsu atslēga sastāv no 197 00:08:01,832 --> 00:08:05,035 cipariem, jums ir vēl 10 vietas, kur varat doties, kas nozīmē, ka 198 00:08:05,035 --> 00:08:08,237 katrā mezglā ir informācija par datiem, ko vēlaties saglabāt šajā 199 00:08:08,237 --> 00:08:11,440 mezglā, kā arī 10 norādesrādītāji. 200 00:08:11,440 --> 00:08:14,430 Kas CS50 IDE ir 80 baiti. 201 00:08:14,430 --> 00:08:16,835 Tātad katram jūsu izveidotajam mezglam ir vismaz 80 baiti, un tas pat 202 00:08:16,835 --> 00:08:19,240 neskaitapat neskaitot datus. 203 00:08:19,240 --> 00:08:23,532 Un, ja jūsu mezgli ir burti, nevis cipari, tagad jums ir 26 204 00:08:23,532 --> 00:08:27,825 norādesrādītāji no katras atrašanās vietas. 205 00:08:27,825 --> 00:08:32,007 Un 26 reiz 8, iespējams, ir 200 baiti vai kaut kas tamlīdzīgs. 206 00:08:32,007 --> 00:08:33,694 Un jums ir lielie un mazie burti — jūs varat redzēt, kur es eju ar 207 00:08:33,694 --> 00:08:35,381 šo, vai ne? 208 00:08:35,381 --> 00:08:37,925 Jūsu mezgli var kļūt ļoti lieli, un tādējādi arī pats 209 00:08:37,925 --> 00:08:40,470 mēģinājumsdigitālais koks kopumā var kļūt ļoti liels. 210 00:08:40,470 --> 00:08:42,906 Tātad, ja jūsu sistēmā ir daudz vietasvietai ir liela nozīme, 211 00:08:42,906 --> 00:08:45,343 mēģinājumsdigitālais koks var nebūt pareizais ceļš, lai gan tiek 212 00:08:45,343 --> 00:08:47,780 izmantotas citas tāstā priekšrocības. 213 00:08:47,780 --> 00:08:48,710 Es esmu Dags Loids. 214 00:08:48,710 --> 00:08:50,740 Šis ir CS50.