1 00:00:00,000 --> 00:00:03,332 >> [Mūzikas atskaņošanai] 2 00:00:03,332 --> 00:00:06,490 >> ANDI PENG: Aicinām sadaļas 3 nedēļas. 3 00:00:06,490 --> 00:00:09,550 Paldies, jūs puiši, visiem nāk uz šo agrāko sākuma laiku šodien. 4 00:00:09,550 --> 00:00:11,466 Mēs esam ieguvuši jauku, nedaudz intīms grupa šodien. 5 00:00:11,466 --> 00:00:14,570 Tik cerams, mēs sāksim apdare, iespējams, agri, 6 00:00:14,570 --> 00:00:15,780 mazliet agri šodien. 7 00:00:15,780 --> 00:00:22,057 Tik ātri, tikai daži paziņojumi par darba kārtībā šodien. 8 00:00:22,057 --> 00:00:23,890 Pirms sākam, mēs esam gatavojas tikai iet pa 9 00:00:23,890 --> 00:00:28,910 dažas īsas loģistikas jautājumiem, PSET jautājumi, debrief, lietas, piemēram, ka. 10 00:00:28,910 --> 00:00:30,250 Un tad mēs nirt tiesības. 11 00:00:30,250 --> 00:00:34,710 Mēs izmantosim atkļūdotājs sauc GDB līdz sākt atmaskot mūsu kodu, kas David 12 00:00:34,710 --> 00:00:36,550 izskaidrots lekciju citu dienu. 13 00:00:36,550 --> 00:00:39,420 Mēs iet pār četru veidu veidu. 14 00:00:39,420 --> 00:00:42,310 Mēs iet pār viņiem diezgan ātri jo viņi diezgan intensīva. 15 00:00:42,310 --> 00:00:45,710 Bet zinu, ka visi slaidi un pirmkods vienmēr tiešsaistē. 16 00:00:45,710 --> 00:00:50,810 Lai justies brīvi, pēc jūsu pārlasīšana, lai atgriezties un apskatīt to. 17 00:00:50,810 --> 00:00:53,930 >> Mēs iet cauri asimptotiskās notācija, kas 18 00:00:53,930 --> 00:00:55,944 ir tikai iedomātā veids kā pateikt "runtimes," 19 00:00:55,944 --> 00:00:58,360 kur mums ir Big O, kas David paskaidrots lekciju. 20 00:00:58,360 --> 00:01:01,550 Un mums ir arī Omega, kas ir zemākā robeža runtime. 21 00:01:01,550 --> 00:01:06,450 Un mēs runājam mazliet vairāk padziļināti par to, kā šos darbus. 22 00:01:06,450 --> 00:01:10,160 Un visbeidzot, mēs iet pār bināro meklēšanu, jo daudz no jums, kas ir jau 23 00:01:10,160 --> 00:01:15,190 paskatījās jūsu psets droši vien zināt, ka tas ir jautājums, kas ir jūsu PSET. 24 00:01:15,190 --> 00:01:17,470 Tātad jūs visi būtu laimīgi ka mēs uz šo šodien. 25 00:01:17,470 --> 00:01:20,610 >> Un visbeidzot, par savu sadaļa atsauksmes, es tiešām 26 00:01:20,610 --> 00:01:23,000 atstāja aptuveni 15 minūtes pēc beigām, lai tikai iet pa 27 00:01:23,000 --> 00:01:27,730 loģistika pset3, kādi jautājumi, varbūt mazliet vadlīnijas, ja jūs, 28 00:01:27,730 --> 00:01:28,990 Pirms mēs sākam programmēšanu. 29 00:01:28,990 --> 00:01:30,890 Tātad pieņemsim mēģināt tikt cauri materiāls diezgan ātri. 30 00:01:30,890 --> 00:01:33,880 Un tad mēs varam pavadīt kādu laiku ņemot vairākus jautājumus par PSET. 31 00:01:33,880 --> 00:01:35,230 LABI. 32 00:01:35,230 --> 00:01:39,570 >> Ātri, lai tikai daži paziņojumi, pirms mēs sākam jau šodien. 33 00:01:39,570 --> 00:01:45,410 Pirmkārt, welcome to padarot tas caur diviem no jūsu psets. 34 00:01:45,410 --> 00:01:49,432 Paņēmu apskatīt your-- yeah, pieņemsim iegūt kārta aplausi par šo vienu. 35 00:01:49,432 --> 00:01:51,140 Patiesībā, es biju patiesi, patiešām iespaidu. 36 00:01:51,140 --> 00:01:55,800 Es sašķirotas pirmo PSET jums puiši Pagājušajā nedēļā un jums puiši izdarīja neticami. 37 00:01:55,800 --> 00:01:58,290 >> Stils bija brīdī Bez dažiem komentāriem. 38 00:01:58,290 --> 00:02:00,660 Pārliecinieties, ka jūs esat vienmēr Komentējot savu kodu. 39 00:02:00,660 --> 00:02:03,040 Bet jūsu psets bija punktu. 40 00:02:03,040 --> 00:02:05,549 Un glabā to uz augšu. 41 00:02:05,549 --> 00:02:08,090 Un tas ir labi, lai greiders uz redzu, ka jūs guys ir liekot 42 00:02:08,090 --> 00:02:10,704 tik daudz pūļu, savu stilu un jūsu dizains savu kodu 43 00:02:10,704 --> 00:02:12,120 ka mēs vēlētos, lai jūs varētu redzēt. 44 00:02:12,120 --> 00:02:16,450 Tāpēc es esmu iet gar manu pateicību par pārējiem Tehniskās vienošanās. 45 00:02:16,450 --> 00:02:19,210 >> Tomēr pastāv daži debrief jautājumi 46 00:02:19,210 --> 00:02:22,010 Es tikai gribu, lai iet pār būtu gan manu dzīvi 47 00:02:22,010 --> 00:02:24,900 un daudz otra Tehniskās vienošanās "dzīvo mazliet vieglāk. 48 00:02:24,900 --> 00:02:28,220 Pirmkārt, es esmu ievērojis, šis pagātne week-- cik daudzi no jums 49 00:02:28,220 --> 00:02:32,301 ir darboties check50 uz Jūsu kods, pirms jūs iesniedzat? 50 00:02:32,301 --> 00:02:32,800 LABI. 51 00:02:32,800 --> 00:02:36,690 Tāpēc ikvienam vajadzētu darīt check50, because-- secret-- mēs faktiski 52 00:02:36,690 --> 00:02:41,540 palaist check50 kā daļu no mūsu pareizību skripti testēšana savu kodu. 53 00:02:41,540 --> 00:02:45,480 Tātad, ja jūsu kods nepilda check50, visticamāk, 54 00:02:45,480 --> 00:02:47,570 tas ir iespējams, gatavojas neizdoties mūsu pārbaudi, kā arī. 55 00:02:47,570 --> 00:02:49,320 Dažreiz jūs guys ir pareizās atbildes. 56 00:02:49,320 --> 00:02:52,200 Līdzīgi, jo mantkārīgs, daži Jums ir tiesības numurus, 57 00:02:52,200 --> 00:02:53,960 jūs vienkārši izdrukāt dažas papildu sīkumi. 58 00:02:53,960 --> 00:02:55,940 Un ka papildu sīkumi faktiski neiztur pārbaudi, 59 00:02:55,940 --> 00:02:58,440 jo dators nav tiešām zināt, ko tas meklē. 60 00:02:58,440 --> 00:03:00,981 Un tā tas būs vienkārši palaist cauri, redzēt, ka jūsu izejas nav 61 00:03:00,981 --> 00:03:03,810 saskaņot to, ko mēs sagaidām atbildi būt, un atzīmējiet tas ir nepareizi. 62 00:03:03,810 --> 00:03:06,560 >> Un es zinu, ka notika daži no jūsu gadījumu šonedēļ. 63 00:03:06,560 --> 00:03:09,870 Tāpēc es devos atpakaļ un manuāli pāršķiro ikviena kodu. 64 00:03:09,870 --> 00:03:12,780 Nākotnē gan, lūdzu, lūdzu, pārliecinieties, ka 65 00:03:12,780 --> 00:03:14,570 ka jūs strādājat pārbaudīt 50 uz jūsu kodu. 66 00:03:14,570 --> 00:03:17,970 Jo tas ir sava veida sāpes par TA lai iet atpakaļ un manuāli pāršķirošanu 67 00:03:17,970 --> 00:03:21,197 katru PSET par katru single, mazliet garām instance. 68 00:03:21,197 --> 00:03:22,530 Tāpēc es neņēma nost nekādus punktus. 69 00:03:22,530 --> 00:03:25,210 Es domāju, ka es novilka varbūt viens vai divi projektēšanai. 70 00:03:25,210 --> 00:03:27,710 Nākotnē, lai gan, ja jūs nedarot check50, 71 00:03:27,710 --> 00:03:31,330 punkti tiks ņemti off pareizību. 72 00:03:31,330 --> 00:03:35,020 >> Turklāt psets ir dēļ piektdienās plkst. 73 00:03:35,020 --> 00:03:38,990 Es domāju, ka tur ir septiņu minūšu vēlu labvēlības periods, kas mums dos jums. 74 00:03:38,990 --> 00:03:42,434 Per Hārvardas laiku, viņi ļāva būt septiņas minūtes, vēlu, lai viss. 75 00:03:42,434 --> 00:03:44,350 Tātad šeit at Yale, mēs ievērot, ka labi. 76 00:03:44,350 --> 00:03:47,910 Bet diezgan daudz, pie 12:07, Ja jūsu PSET nav, 77 00:03:47,910 --> 00:03:49,720 tas būs jāmarķē kā vēlu. 78 00:03:49,720 --> 00:03:53,160 Un tā, kamēr tas tiek atzīmēts kā vēlu, tad TA-- es esmu 79 00:03:53,160 --> 00:03:54,870 joprojām būs šķirošanas jūsu psets. 80 00:03:54,870 --> 00:03:56,760 Tātad jūs joprojām redzēt parādīsies pakāpes. 81 00:03:56,760 --> 00:03:58,820 Tomēr zinu, ka beigas semestrī, 82 00:03:58,820 --> 00:04:02,270 visi vēlu psets būs tikai automātiski noregulē uz nulli ar datoru. 83 00:04:02,270 --> 00:04:04,490 >> Mēs to darām, divu iemeslu dēļ. 84 00:04:04,490 --> 00:04:09,220 Viens, dažreiz mēs attaisnojama, tāpat prāvesta attaisnojumus, 85 00:04:09,220 --> 00:04:10,762 vēlāk, ka es nezinu par vēl. 86 00:04:10,762 --> 00:04:13,761 Tāpēc mēs gribētu, lai pārliecinātos, mēs klasificēšanai viss tikai gadījumā, piemēram, es esmu 87 00:04:13,761 --> 00:04:15,080 trūkst dekāna attaisnojums. 88 00:04:15,080 --> 00:04:17,000 Un, otrkārt, paturiet prāta, jūs joprojām varat 89 00:04:17,000 --> 00:04:19,370 piliens vienu PSET, ka ir pilnā apjomā punktus. 90 00:04:19,370 --> 00:04:21,430 Un tā mēs vēlētos grade visiem jūsu psets tikko 91 00:04:21,430 --> 00:04:24,730 lai pārliecinātos, ka jūsu darbības joma ir tur un jūs cenšaties viņus. 92 00:04:24,730 --> 00:04:29,150 Tātad, pat ja tas ir vēlu, jūs joprojām saņemt kredītu jomas jautājumiem, es domāju. 93 00:04:29,150 --> 00:04:33,730 >> Tātad morālā no stāsts ir, padarīt ka jūsu psets ir uz laiku. 94 00:04:33,730 --> 00:04:38,350 Un, ja tie nav uz laiku, zinu, ka tas nav liels. 95 00:04:38,350 --> 00:04:41,678 Jā, pirms es virzīties tālāk, vai kāds ir kādi jautājumi par PSET atsauksmes? 96 00:04:41,678 --> 00:04:42,178 Jā. 97 00:04:42,178 --> 00:04:43,630 >> Mērķauditorija: Vai jūs teiktu, mēs var nomest kādu no psets? 98 00:04:43,630 --> 00:04:44,296 >> ANDI PENG: Jā. 99 00:04:44,296 --> 00:04:47,050 Tātad tur ir deviņi psets kopumā gaitā semestra. 100 00:04:47,050 --> 00:04:50,610 Un, ja jums ir joma points-- tā darbības joma ir tikai, 101 00:04:50,610 --> 00:04:53,567 diezgan daudz, jūs mēģināt veikt problēma, jūs liekot laikā, 102 00:04:53,567 --> 00:04:56,150 Jūs parādot, ka jūs esat demonstrēja esat izlasījis spec. 103 00:04:56,150 --> 00:04:57,191 Tas ir diezgan plašas. 104 00:04:57,191 --> 00:04:59,370 Un, ja jūs pilda joma punkti, mēs 105 00:04:59,370 --> 00:05:03,360 var nomest zemākais viens no pilnā apjomā. 106 00:05:03,360 --> 00:05:06,790 Tātad tas ir jūsu priekšrocības pabeigt un izmēģināt visu PSET. 107 00:05:06,790 --> 00:05:10,320 >> Pat upload-- ja neviena no viņiem strādāt, augšupielādēt tos visus. 108 00:05:10,320 --> 00:05:13,711 Un tad mēs, cerams, varēs sniegt jums dažus no šiem punktiem atpakaļ. 109 00:05:13,711 --> 00:05:14,210 Cool. 110 00:05:14,210 --> 00:05:16,780 Jebkuri citi jautājumi? 111 00:05:16,780 --> 00:05:17,840 Liels. 112 00:05:17,840 --> 00:05:21,960 >> Otrkārt, biroja hours-- daži ātri piezīmes par darba laika. 113 00:05:21,960 --> 00:05:24,300 Tātad, pirmkārt, nāk agri nedēļā. 114 00:05:24,300 --> 00:05:26,909 Neviens nekad at Darba laiks pirmdienās. 115 00:05:26,909 --> 00:05:28,700 Christabel ieradās Darba laiks pēdējā naktī. 116 00:05:28,700 --> 00:05:29,691 Jā, Christabel. 117 00:05:29,691 --> 00:05:32,190 Un ko mums birojā stundas vakar vakarā, Christabel? 118 00:05:32,190 --> 00:05:33,020 >> Mērķauditorija: Mums bija saldējumu. 119 00:05:33,020 --> 00:05:36,160 >> ANDI PENG: Tāpēc, ka ir labi, mums bija saldējums pie darba laika pēdējā naktī. 120 00:05:36,160 --> 00:05:39,390 Lai gan es nevaru apsolīt, ka mums būs saldējums pie darba laika 121 00:05:39,390 --> 00:05:43,230 katru nedēļu, ko es varu jums apsolīt ir tā, ka tur būs daudz 122 00:05:43,230 --> 00:05:45,380 labāk studentam TA attiecību. 123 00:05:45,380 --> 00:05:47,650 Tāpat legit, tas ir tāpat kā trīs pret vienu. 124 00:05:47,650 --> 00:05:50,350 Tā kā, kontrasts, ka ar Ceturtdiena, tev par 150 125 00:05:50,350 --> 00:05:52,830 tiešām uzsvēra, bērni un nav saldējumu. 126 00:05:52,830 --> 00:05:55,360 Un tas ir tikai nav produktīvs ikvienam. 127 00:05:55,360 --> 00:05:58,730 Tātad stāsts morāles ir, nāk agri uz darba laika un labas lietas 128 00:05:58,730 --> 00:06:00,310 notiks. 129 00:06:00,310 --> 00:06:02,110 >> Arī nāk gatava uzdot jautājumus. 130 00:06:02,110 --> 00:06:03,200 Tu zini? 131 00:06:03,200 --> 00:06:05,420 Neatkarīgi no tā, TAS, es domāju, ir teikts, 132 00:06:05,420 --> 00:06:10,710 mēs esam iegūt pāris studentus kas nonāk ceturtdien, piemēram, 10:50 133 00:06:10,710 --> 00:06:15,100 ne izlasot spec ir līdzīgi man palīdzēt, palīdziet man. 134 00:06:15,100 --> 00:06:18,200 Diemžēl šajā brīdī, tur ir nav daudz mēs varam darīt, lai palīdzētu jums. 135 00:06:18,200 --> 00:06:19,590 Tāpēc, lūdzu, nāk agri nedēļā. 136 00:06:19,590 --> 00:06:22,040 Nāciet agri darba laika. 137 00:06:22,040 --> 00:06:23,350 Nāciet gatavi uzdot jautājumus. 138 00:06:23,350 --> 00:06:25,310 Pārliecinieties, ka jūs, kā students, esam tur, kur 139 00:06:25,310 --> 00:06:27,620 Jums ir nepieciešams, lai būtu tā, ka Tehniskās vienošanās var jums kopā, 140 00:06:27,620 --> 00:06:32,850 kas ir tas, ko darba laiks vajadzētu tikt atvēlēts. 141 00:06:32,850 --> 00:06:37,380 >> Otrkārt, tāpēc es zinu, profesori patīk pārsteigt mūs ar testiem. 142 00:06:37,380 --> 00:06:39,439 Man bija profesors šos piemēram, yo, starp citu, 143 00:06:39,439 --> 00:06:41,230 atcerieties, ka vidēja termiņa Jums ir nākamajā pirmdienā. 144 00:06:41,230 --> 00:06:42,855 Jā, es nezināju par šo vidusposma. 145 00:06:42,855 --> 00:06:45,630 Tāpēc es esmu gatavojas būt, ka TA kas atgādina jums visu šo viktorīnu 146 00:06:45,630 --> 00:06:47,270 0-- jo jūs zināt, mēs esam CS. 147 00:06:47,270 --> 00:06:50,730 Tagad, ka mēs esam darījuši bloki, jūs saņemsiet kāpēc tas ir viktorīna 0, ne viktorīna 1, vai nē? 148 00:06:50,730 --> 00:06:51,320 LABI. 149 00:06:51,320 --> 00:06:52,490 Ak, es saņēmu dažas chuckles par šo vienu. 150 00:06:52,490 --> 00:06:53,120 LABI. 151 00:06:53,120 --> 00:06:59,710 >> Tātad viktorīna 0 būs 14 oktobrim, ja tu esi no pirmdienas līdz trešdienas sadaļu 152 00:06:59,710 --> 00:07:02,920 un 15. oktobrī, ja tu esi otrdiena līdz ceturtdienai sadaļā. 153 00:07:02,920 --> 00:07:05,630 Tas neattiecas uz Tiem no jums, Harvard 154 00:07:05,630 --> 00:07:10,350 who-- Es domāju, ka jums viss būs ņemot jūsu viktorīnas par 14. 155 00:07:10,350 --> 00:07:13,560 >> Tātad yeah, nākamnedēļ, ja David, lekciju, iet, 156 00:07:13,560 --> 00:07:15,747 yeah, tāpēc par to, ka viktorīna nākamnedēļ, jūs visi 157 00:07:15,747 --> 00:07:17,580 netiks šokēts, jo jums nāca uz sadaļu 158 00:07:17,580 --> 00:07:19,664 un jūs zināt, ka jūsu viktorīna 0 ir divas nedēļas. 159 00:07:19,664 --> 00:07:21,580 Un mums būs atsauksmi sesijas un viss. 160 00:07:21,580 --> 00:07:26,360 Līdz ar to nav rūpes par ir bail par to. 161 00:07:26,360 --> 00:07:29,890 Visus jautājumus before-- kādi jautājumi visu par loģistikas jautājumiem, 162 00:07:29,890 --> 00:07:32,591 šķirošana, darba laiks, sekcijas? 163 00:07:32,591 --> 00:07:33,090 Jā. 164 00:07:33,090 --> 00:07:35,100 >> Mērķauditorija: Tātad viktorīna ir būs lekciju laikā? 165 00:07:35,100 --> 00:07:35,766 >> ANDI PENG: Jā. 166 00:07:35,766 --> 00:07:39,460 Tātad viktorīnas, es domāju, ir 60 minutes atvēlēts šajā laika slots 167 00:07:39,460 --> 00:07:42,240 ka jūs vienkārši ņemt ar lekciju zālē. 168 00:07:42,240 --> 00:07:44,810 Tātad jums nav nonākt par, piemēram, izlases 7:00 PM. 169 00:07:44,810 --> 00:07:46,140 Tas viss ir labi. 170 00:07:46,140 --> 00:07:47,100 Jā. 171 00:07:47,100 --> 00:07:50,060 Cool. 172 00:07:50,060 --> 00:07:50,840 >> Viss kārtībā. 173 00:07:50,840 --> 00:07:54,330 Tātad mēs ejam ieviest koncepciju, lai jums 174 00:07:54,330 --> 00:08:00,760 šonedēļ, ka Deivids ir jau sava veida no pieskārās lekciju pagājušajā nedēļā. 175 00:08:00,760 --> 00:08:02,010 To sauc GDB. 176 00:08:02,010 --> 00:08:05,570 Un cik daudzi no jums, bet Par rakstot savu psets Protams, 177 00:08:05,570 --> 00:08:09,981 ir pamanījuši lielu pogu, kas saka "Debug" uz augšu jūsu IDE? 178 00:08:09,981 --> 00:08:10,480 LABI. 179 00:08:10,480 --> 00:08:13,770 Tāpēc tagad mēs faktiski nokļūt atklāt noslēpums, kas tas patiesībā pogas 180 00:08:13,770 --> 00:08:14,270 dara. 181 00:08:14,270 --> 00:08:16,790 Un es garantija jums, tas ir skaista, skaista lieta. 182 00:08:16,790 --> 00:08:20,740 >> Tātad līdz šim, es domāju, ka tur ir bijis divas lietas 183 00:08:20,740 --> 00:08:23,320 studenti bijuši parasti darot, kad debugging psets. 184 00:08:23,320 --> 00:08:27,635 Viens, viņi vai nu pievienot printf () - tā ik pēc dažām līnijām, 185 00:08:27,635 --> 00:08:29,760 viņi pievienot ar printf () - Ak, kas tas ir mainīgs? 186 00:08:29,760 --> 00:08:32,551 Ak, kas tas ir mainīgs now-- un jūs veida redzēt progresēšanu 187 00:08:32,551 --> 00:08:33,940 Jūsu kodu, kā tas darbojas. 188 00:08:33,940 --> 00:08:37,030 Vai otrā metode bērniem darīt, ir ka viņi vienkārši uzrakstīt visa lieta 189 00:08:37,030 --> 00:08:38,610 un pēc tam iet, piemēram, tas beigās. 190 00:08:38,610 --> 00:08:39,970 Cerams, ka tas darbojas. 191 00:08:39,970 --> 00:08:44,851 I garantija jums, GDB ir labāk nekā abas šīs metodes. 192 00:08:44,851 --> 00:08:45,350 Jā. 193 00:08:45,350 --> 00:08:46,980 Tātad tas būs jūsu jaunais labākais draugs. 194 00:08:46,980 --> 00:08:51,780 Jo tas ir skaista lieta kas vizuāli parāda gan 195 00:08:51,780 --> 00:08:54,850 kādas ir jūsu kods dara kādā konkrētā 196 00:08:54,850 --> 00:08:57,486 kā arī to, ko visas jūsu mainīgie ir uzskaites, 197 00:08:57,486 --> 00:08:59,610 piemēram, kādi ir viņu vērtības, šajā konkrētajā brīdī. 198 00:08:59,610 --> 00:09:02,670 Un šādā veidā, jūs varat patiešām kas kontrolpunkti jūsu kodu. 199 00:09:02,670 --> 00:09:04,350 Jūs varat palaist caur pozīcijai. 200 00:09:04,350 --> 00:09:07,324 Un GDB vienkārši ir par Jūs, redzams jums, 201 00:09:07,324 --> 00:09:09,490 ko visi jūsu mainīgo ir, ko viņi dara, 202 00:09:09,490 --> 00:09:10,656 kas notiek ar kodu. 203 00:09:10,656 --> 00:09:13,240 Un tādā veidā, tas ir tik daudz vieglāk, lai redzētu 204 00:09:13,240 --> 00:09:17,120 kas notiek, nevis printf-ing vai rakstot uz leju savus paziņojumus. 205 00:09:17,120 --> 00:09:19,160 >> Tāpēc mēs darīsim piemēru šo vēlāk. 206 00:09:19,160 --> 00:09:20,660 Tātad tas šķiet mazliet abstrakts. 207 00:09:20,660 --> 00:09:23,490 Neraizējieties, mēs darīsim piemērus. 208 00:09:23,490 --> 00:09:29,170 Un tā būtībā, trīs lielākās, visbiežāk izmanto funkcijas jums būs nepieciešams GDB 209 00:09:29,170 --> 00:09:32,500 ir nākamais, Soli pa, un Solis pogām. 210 00:09:32,500 --> 00:09:34,860 Es esmu gatavojas dodies tur, faktiski, tieši tagad. 211 00:09:34,860 --> 00:09:40,930 >> Tātad jūs varat guys visu redzēt, ka vai man tuvinātu mazliet? 212 00:09:40,930 --> 00:09:43,220 213 00:09:43,220 --> 00:09:44,470 Uz muguras, jūs varat redzēt, ka? 214 00:09:44,470 --> 00:09:45,730 Ja es tuvinātu? 215 00:09:45,730 --> 00:09:46,480 Tikai mazliet? 216 00:09:46,480 --> 00:09:49,390 OK, atdzesē. 217 00:09:49,390 --> 00:09:50,280 Tur mēs ejam. 218 00:09:50,280 --> 00:09:50,960 LABI. 219 00:09:50,960 --> 00:09:57,000 >> Tāpēc man ir, šeit, Mani ieviešana mantkārīgs. 220 00:09:57,000 --> 00:10:01,430 Un, lai gan daudzi no jums guys rakstīja mantkārīgs in kamēr cilpa form-- ka 221 00:10:01,430 --> 00:10:04,890 ir pilnīgi pieņemams veids, kā to izdarīt it-- vēl viens veids, kā to darīt, ir vienkārši 222 00:10:04,890 --> 00:10:06,280 sadalīt ar Modulo. 223 00:10:06,280 --> 00:10:09,290 Jo tad jums var būt jūsu vērtība un tad ir jūsu atlikušo daļu. 224 00:10:09,290 --> 00:10:11,150 Un tad jūs varat vienkārši pievienojiet to visu kopā. 225 00:10:11,150 --> 00:10:13,390 Vai loģiku, ko es daru šeit jēgas ikvienam, 226 00:10:13,390 --> 00:10:14,117 Pirms mēs sākam? 227 00:10:14,117 --> 00:10:16,760 228 00:10:16,760 --> 00:10:17,980 IT kā? 229 00:10:17,980 --> 00:10:18,710 Cool. 230 00:10:18,710 --> 00:10:19,210 Liels. 231 00:10:19,210 --> 00:10:21,290 Tas ir diezgan sexy gabals koda, es teiktu. 232 00:10:21,290 --> 00:10:23,502 Tāpat kā es teicu, David, jo lekciju, pēc brītiņa, 233 00:10:23,502 --> 00:10:25,960 jūs visi sākat redzēt kodu kā kaut ko, kas ir skaists. 234 00:10:25,960 --> 00:10:29,950 Un dažreiz, kad jūs redzat skaista kods, tas ir tik brīnišķīga sajūta. 235 00:10:29,950 --> 00:10:35,410 >> Tātad tomēr, kamēr šis kods ir ļoti skaisti, tas nedarbojas pareizi. 236 00:10:35,410 --> 00:10:37,750 Tātad, pieņemsim palaist check50 par šo. 237 00:10:37,750 --> 00:10:39,440 Pārbaudiet 50 20-- OOP. 238 00:10:39,440 --> 00:10:43,221 239 00:10:43,221 --> 00:10:43,720 2? 240 00:10:43,720 --> 00:10:44,990 Vai tas pset2? 241 00:10:44,990 --> 00:10:46,870 Jā. 242 00:10:46,870 --> 00:10:47,520 Ak, pset1. 243 00:10:47,520 --> 00:10:50,970 244 00:10:50,970 --> 00:10:52,890 LABI. 245 00:10:52,890 --> 00:10:53,900 Tātad mēs palaist check50. 246 00:10:53,900 --> 00:11:01,550 247 00:11:01,550 --> 00:11:07,170 >> Un kā jūs guys var redzēt šeit, tas ja pāris gadījumos. 248 00:11:07,170 --> 00:11:10,165 Un daži no jums, jo Protams, kā to savu problēmu kopas, 249 00:11:10,165 --> 00:11:11,110 jūs, piemēram, ah, kāpēc nav tā strādā. 250 00:11:11,110 --> 00:11:13,318 Kāpēc tas strādā daži vērtības, bet ne citiem? 251 00:11:13,318 --> 00:11:17,760 Nu, GDB notiek, lai palīdzētu jums saprast , kāpēc šie dati nebija darba. 252 00:11:17,760 --> 00:11:18,320 >> LABI. 253 00:11:18,320 --> 00:11:21,640 Tātad, pieņemsim redzēt, kas ir viens no Pārbaudes Es biju nepildīšanu check50 254 00:11:21,640 --> 00:11:24,920 bija ieejas vērtību 0.41. 255 00:11:24,920 --> 00:11:27,830 Tātad pareizā atbilde, ka Jums vajadzētu iegūt ir 4. 256 00:11:27,830 --> 00:11:33,090 Bet tā vietā, ko es esmu izdrukāšana ir 3-n, kas ir nepareiza. 257 00:11:33,090 --> 00:11:36,190 Tātad pieņemsim tikai palaist manuāli, tikai pārliecinieties, ka check50 strādā. 258 00:11:36,190 --> 00:11:36,940 Darīsim ./greedy. 259 00:11:36,940 --> 00:11:40,130 260 00:11:40,130 --> 00:11:43,340 Hmm, man ir veikt mantkārīgs. 261 00:11:43,340 --> 00:11:43,840 Tur mēs ejam. 262 00:11:43,840 --> 00:11:44,381 Tagad ./greedy. 263 00:11:44,381 --> 00:11:46,950 264 00:11:46,950 --> 00:11:47,670 >> Cik daudz ir parādā? 265 00:11:47,670 --> 00:11:49,550 Darīsim 0,41. 266 00:11:49,550 --> 00:11:52,590 Un Yep, mēs redzam šeit ka tas izvada 3 267 00:11:52,590 --> 00:11:55,160 kad pareizā atbilde, patiesībā, vajadzētu būt 4. 268 00:11:55,160 --> 00:12:01,460 Tātad pieņemsim ieiet GDB un redzēt, kā mēs var iet par nosakot šo problēmu. 269 00:12:01,460 --> 00:12:03,992 >> Tātad pirmais solis vienmēr atkļūdošana savu kodu 270 00:12:03,992 --> 00:12:05,950 ir noteikt pārtraukumpunkts, vai punkts, kurā Jūs 271 00:12:05,950 --> 00:12:09,079 vēlaties datora vai atkļūdotājs lai sāktu meklē. 272 00:12:09,079 --> 00:12:11,120 Tātad, ja jums nav īsti zināt, kādas ir jūsu problēma ir, 273 00:12:11,120 --> 00:12:14,670 parasti, tipisks lieta, ko mēs gribam darīt, ir noteikt mūsu koncentrācija ir galvenais. 274 00:12:14,670 --> 00:12:18,520 Tātad, ja jūs guys var redzēt šo sarkano pogu turpat, 275 00:12:18,520 --> 00:12:22,860 Yep, kas bija mani a; koncentrācija par galveno funkciju. 276 00:12:22,860 --> 00:12:24,130 Es noklikšķiniet uz tā. 277 00:12:24,130 --> 00:12:26,130 >> Un tad es varu iet uz augšu uz manu Debug pogu. 278 00:12:26,130 --> 00:12:27,036 Es hit šīs pogas. 279 00:12:27,036 --> 00:12:31,710 280 00:12:31,710 --> 00:12:36,555 Ļaujiet man tālinātu, ja es varu. 281 00:12:36,555 --> 00:12:38,020 Tur mēs ejam. 282 00:12:38,020 --> 00:12:40,730 Tāpēc mums ir, šeit, paneli labajā pusē. 283 00:12:40,730 --> 00:12:43,680 Man žēl, puiši uz muguras, jūs nevar īsti redzēt patiešām labi. 284 00:12:43,680 --> 00:12:49,090 Bet būtībā, visi šīs tiesības panelis dara 285 00:12:49,090 --> 00:12:53,130 ir sekot gan uzsvēra līnija, kas ir rindā kodu 286 00:12:53,130 --> 00:12:56,640 ka dators pašlaik darbojas, kā arī visiem saviem mainīgajiem 287 00:12:56,640 --> 00:12:57,600 leju šeit. 288 00:12:57,600 --> 00:13:00,487 >> Tātad jūs esat ieguvuši centiem, monētas, n, visi deklarēti dažādām lietām 289 00:13:00,487 --> 00:13:01,070 šajā brīdī. 290 00:13:01,070 --> 00:13:04,850 Neraizējieties, jo mums nav reāli inicializēts tos visus mainīgajiem vēl. 291 00:13:04,850 --> 00:13:07,200 Tātad jūsu datorā, jūsu dators ir tikai redzēt, 292 00:13:07,200 --> 00:13:14,376 oh, 32767 bija pēdējais lietotais funkcija Šīs atmiņas vietu manā datorā. 293 00:13:14,376 --> 00:13:16,000 Un tā tas ir, ja centi šobrīd ir. 294 00:13:16,000 --> 00:13:19,360 Bet nē, ka tad, kad jūs palaist kodu, tai jākļūst inicializēts. 295 00:13:19,360 --> 00:13:24,110 >> So iesim cauri, līniju ar līnija, kas notiek šeit. 296 00:13:24,110 --> 00:13:25,350 LABI. 297 00:13:25,350 --> 00:13:29,400 Tātad, šeit ir trīs pogas, ka es tikko paskaidroja. 298 00:13:29,400 --> 00:13:34,090 Jums ir spēlēt, vai Run funkciju, poga, jums ir soli pa pogu, 299 00:13:34,090 --> 00:13:36,600 un jums ir arī solis uz pogas. 300 00:13:36,600 --> 00:13:41,260 Un būtībā, visas trīs viņiem vienkārši iet caur savu kodu 301 00:13:41,260 --> 00:13:42,690 un darīt dažādas lietas. 302 00:13:42,690 --> 00:13:45,680 >> Tātad parasti, kad jūs atkļūdošana, mēs nevēlamies, lai tikai sasniegtu Atskaņot, 303 00:13:45,680 --> 00:13:47,930 jo spēlē būs vienkārši palaist Jūsu kods līdz gada beigām tā. 304 00:13:47,930 --> 00:13:49,070 Un tad jums nebūs faktiski zināt, kādas ir jūsu problēma 305 00:13:49,070 --> 00:13:51,432 ir, ja jūs noteikti vairāki kontrolpunkti. 306 00:13:51,432 --> 00:13:53,890 Ja jūs noteikti vairāki kontrolpunkti, tas vienkārši automātiski 307 00:13:53,890 --> 00:13:56,030 palaist no viena pārtraukumpunkts, uz nākamo, uz nākamo. 308 00:13:56,030 --> 00:13:58,030 Bet šajā gadījumā mēs esam tikai, ka viens, jo mēs 309 00:13:58,030 --> 00:13:59,970 vēlos strādāt mūsu ceļu no augšas uz leju uz leju. 310 00:13:59,970 --> 00:14:04,830 Tātad mēs ejam, lai ignorēt šo pogu tagad nolūkā šo programmu. 311 00:14:04,830 --> 00:14:08,230 >> Tātad soli pa funkciju tikai soļi nekā katru līniju 312 00:14:08,230 --> 00:14:11,510 un stāsta jums to, ko dators dara. 313 00:14:11,510 --> 00:14:14,630 Solis uz funkciju iet vērā faktisko funkciju 314 00:14:14,630 --> 00:14:16,000 tas ir jūsu koda rindu. 315 00:14:16,000 --> 00:14:19,070 Tā, piemēram, piemēram, printf (), kas ir funkcija, vai ne? 316 00:14:19,070 --> 00:14:21,980 Ja es gribēju fiziski solis uz printf () funkciju, 317 00:14:21,980 --> 00:14:25,610 Es tiešām iedziļināties gabals kodu, kur printf () bija rakstīts un redzēt 318 00:14:25,610 --> 00:14:26,730 kas notiek tur. 319 00:14:26,730 --> 00:14:29,924 >> Bet parasti, mēs pieņemam, ka kods, kas mums dos jums darbojas. 320 00:14:29,924 --> 00:14:31,340 Mēs pieņemam, ka printf () strādā. 321 00:14:31,340 --> 00:14:33,170 Mēs pieņemam, ka GetInt () strādā. 322 00:14:33,170 --> 00:14:35,170 Tāpēc nav nepieciešams soli šīm funkcijām. 323 00:14:35,170 --> 00:14:37,170 Bet, ja tur ir funkcijas ka jums rakstīt pats 324 00:14:37,170 --> 00:14:39,060 ka jūs vēlaties, lai pārbaudītu to, kas notiek, 325 00:14:39,060 --> 00:14:41,200 Jūs vēlaties, lai soli par šo funkciju. 326 00:14:41,200 --> 00:14:43,940 >> Tāpēc tagad mēs esam tikai gatavojas soli pa šo gabalu kodu. 327 00:14:43,940 --> 00:14:44,485 Tātad, pieņemsim redzēt. 328 00:14:44,485 --> 00:14:46,547 Ak, print, "Ak hai, kā daudz pārmaiņas parādā? " 329 00:14:46,547 --> 00:14:47,130 Mums nav vienalga. 330 00:14:47,130 --> 00:14:49,830 Mēs zinām, ka strādā, tāpēc mēs soli pār to. 331 00:14:49,830 --> 00:14:53,290 >> Tātad, n, kas ir mūsu pludiņš kas mēs esam initialized-- vai declared-- 332 00:14:53,290 --> 00:14:56,810 augšā, mēs esam tagad vienāds, ka, lai GetFloat (). 333 00:14:56,810 --> 00:14:57,810 Tātad pieņemsim soli pār to. 334 00:14:57,810 --> 00:14:59,580 Un mēs redzam pie bottom šeit, programma 335 00:14:59,580 --> 00:15:03,360 ir pamudinot mani ievadi vērtība. 336 00:15:03,360 --> 00:15:08,580 So let ieguldījuma vērtību mēs gribam pārbaudīt šeit, kas ir 0.41. 337 00:15:08,580 --> 00:15:09,160 Liels. 338 00:15:09,160 --> 00:15:12,780 >> Tāpēc tagad N- do you guys redzēt šeit, pie bottom-- tas ir 339 00:15:12,780 --> 00:15:15,140 stored-- jo mēs vēl nav noapaļotas, tas ir 340 00:15:15,140 --> 00:15:19,540 glabājas šajā līdzīgu milzu pludiņš, kas ir 0,4099999996, 341 00:15:19,540 --> 00:15:22,550 kas ir pietiekami tuvu, lai mūsu mērķiem, tieši tagad, lai 0.41. 342 00:15:22,550 --> 00:15:26,090 Un tad mēs redzēsim vēlāk, kā mēs turpināt pastiprināšanu pār programmu, 343 00:15:26,090 --> 00:15:29,850 pēc šeit, n ir kļuvusi noapaļoti un centiem kļuvis 41. 344 00:15:29,850 --> 00:15:30,350 Liels. 345 00:15:30,350 --> 00:15:32,230 Tātad mēs zinām, ka mūsu noapaļošanas strādā. 346 00:15:32,230 --> 00:15:34,700 Mēs zinām, ka mums ir pareizs skaits centiem, 347 00:15:34,700 --> 00:15:36,990 tāpēc mēs zinām, ka tas ir nav īsti problēma. 348 00:15:36,990 --> 00:15:40,050 >> Tātad mēs turpinām pastiprināšanu par šajā programmā. 349 00:15:40,050 --> 00:15:40,900 Mēs ejam šeit. 350 00:15:40,900 --> 00:15:46,139 Un tā pēc šīs līnijas kodu, mēs vajadzētu zināt, cik daudz ceturtdaļas mums ir. 351 00:15:46,139 --> 00:15:46,680 Mēs soli pa. 352 00:15:46,680 --> 00:15:52,040 Un jūs redzat mēs, patiesībā, ir viens ceturtdaļa jo mēs esam atņemti 25 353 00:15:52,040 --> 00:15:53,790 no mūsu sākotnējās vērtības 41. 354 00:15:53,790 --> 00:15:55,890 Un mums ir 16 aizbrauca uz mūsu centiem. 355 00:15:55,890 --> 00:15:58,830 >> Vai visi saprotam, cik programma ir pastiprināšanu caur 356 00:15:58,830 --> 00:16:02,980 un kāpēc centi ir kļuvis 16 un kāpēc tagad, monētas ir kļuvis 1? 357 00:16:02,980 --> 00:16:04,610 Vai visi šādu loģiku? 358 00:16:04,610 --> 00:16:05,110 Cool. 359 00:16:05,110 --> 00:16:07,860 Tā kā šo punktu, tad Programmas darba, vai ne? 360 00:16:07,860 --> 00:16:09,797 Mēs zinām, tas dara tieši tā ko mēs gribam to. 361 00:16:09,797 --> 00:16:11,880 Un mēs neesam reāli ir izdrukāt, ak, ko 362 00:16:11,880 --> 00:16:14,430 ir centi šajā brīdī, kas ir monētas šajā brīdī. 363 00:16:14,430 --> 00:16:17,170 >> Mēs turpinām iet caur programmu. 364 00:16:17,170 --> 00:16:18,100 Pārkāpt pāri. 365 00:16:18,100 --> 00:16:18,620 Cool. 366 00:16:18,620 --> 00:16:19,700 Mēs ejam pa dimes. 367 00:16:19,700 --> 00:16:20,200 Liels. 368 00:16:20,200 --> 00:16:22,367 Mēs redzam, ka tas ir pieņemts off $ 0,10 par dimetānnaftalīns. 369 00:16:22,367 --> 00:16:23,450 Un tagad mums ir divas monētas. 370 00:16:23,450 --> 00:16:25,260 Tas ir pareizi. 371 00:16:25,260 --> 00:16:31,555 >> Mēs ejam pār pennies un mēs redzam ka mēs esam ieguvuši palikuši pāri centiem. 372 00:16:31,555 --> 00:16:32,680 Hmm, tas ir dīvaini. 373 00:16:32,680 --> 00:16:37,540 Šurp pie programmas, man vajadzēja to ir jāatņem savu pennies. 374 00:16:37,540 --> 00:16:39,400 Varbūt es vienkārši nebija dara, ka līnija tiesības. 375 00:16:39,400 --> 00:16:42,190 Un diemžēl, jūs varat redzēt šeit, jo mēs zinām, 376 00:16:42,190 --> 00:16:44,360 ka mēs pastiprināšanu caur un līnijām 32 33, 377 00:16:44,360 --> 00:16:50,560 tas ir, ja mūsu programma nepareizi bija mainīgie darboties. 378 00:16:50,560 --> 00:16:55,136 Tātad, mēs varam skatīties un redzēt, ak, Es esmu atņemot centiem šeit, 379 00:16:55,136 --> 00:16:57,010 bet es neesmu faktiski pievienojot manu monētu vērtību. 380 00:16:57,010 --> 00:16:57,860 Es esmu pievienojot centiem. 381 00:16:57,860 --> 00:17:00,234 Un es negribu, lai pievienotu centiem, es gribu pievienot monētām. 382 00:17:00,234 --> 00:17:05,420 Tātad, ja mēs mainīt, ka uz monētām, mēs esam ieguvuši darba programmu. 383 00:17:05,420 --> 00:17:06,730 Es varu palaist check50. 384 00:17:06,730 --> 00:17:11,063 Jūs varat vienkārši iziet ārā no GDB tiesības šeit un pēc tam palaist check50 vēlreiz. 385 00:17:11,063 --> 00:17:11,938 Es varētu vienkārši darīt. 386 00:17:11,938 --> 00:17:14,822 387 00:17:14,822 --> 00:17:18,480 Man ir veikt mantkārīgs. 388 00:17:18,480 --> 00:17:19,940 0.41. 389 00:17:19,940 --> 00:17:22,819 Un šeit, tas ir apdruka out pareizo atbildi. 390 00:17:22,819 --> 00:17:26,569 >> Tātad, kā jūs guys var redzēt, GDB ir ļoti spēcīgs instruments 391 00:17:26,569 --> 00:17:29,940 , kad mums ir tik daudz kodu notiek, un tik daudz mainīgo 392 00:17:29,940 --> 00:17:32,510 ka tas ir grūti par mums, jo cilvēka, lai sekotu. 393 00:17:32,510 --> 00:17:35,360 Dators, kas GDB atkļūdotājs, ir spēja 394 00:17:35,360 --> 00:17:37,020 sekot visam. 395 00:17:37,020 --> 00:17:40,480 Es zinu, kas Visionaire, jūs puiši, iespējams, varētu būt hit dažas segmentācijas kļūdas 396 00:17:40,480 --> 00:17:43,150 jo tu darbojās no robežas jūsu masīvs. 397 00:17:43,150 --> 00:17:46,510 Piemērā par ķeizaru, kas ir tieši tas, ko es esmu ieviesta šeit. 398 00:17:46,510 --> 00:17:50,060 >> Tāpēc es aizmirsu, lai pārbaudītu kas notiktu, ja es 399 00:17:50,060 --> 00:17:52,510 nebija divas komandrindas argumentus. 400 00:17:52,510 --> 00:17:53,880 Man vienkārši nav laidis šajā pārbaudē. 401 00:17:53,880 --> 00:17:57,380 Un tāpēc, ja es palaist Debug-- es noteikti mans robežvērtība, lai turpat. 402 00:17:57,380 --> 00:17:58,055 Es palaist Debug. 403 00:17:58,055 --> 00:18:15,880 404 00:18:15,880 --> 00:18:16,550 >> LABI. 405 00:18:16,550 --> 00:18:17,050 Jā. 406 00:18:17,050 --> 00:18:20,350 Tātad faktiski, GDB bija paredzēts to ir teicis man tur 407 00:18:20,350 --> 00:18:22,300 bija segmentācija vaina tur. 408 00:18:22,300 --> 00:18:24,883 Es nezinu, kas notiek labi tur, bet, kad es ilga to, 409 00:18:24,883 --> 00:18:25,590 tas strādāja. 410 00:18:25,590 --> 00:18:29,410 Palaižot rindas koda cauri un GDB varētu vienkārši pēkšņi atmest par jums, 411 00:18:29,410 --> 00:18:31,540 iet uz augšu un meklēt to, ko sarkanā kļūda. 412 00:18:31,540 --> 00:18:33,930 Tas jums pateiks, hey, jūs bija segmentāciju vaina, 413 00:18:33,930 --> 00:18:38,550 kas nozīmē, ka jūs mēģinājis piekļūt telpa masīva ka nepastāvēja. 414 00:18:38,550 --> 00:18:39,050 Jā. 415 00:18:39,050 --> 00:18:43,280 >> Tātad, nākamajā problēmu Uzlikt šo nedēļu, jums puiši 416 00:18:43,280 --> 00:18:45,600 iespējams, būs daudz mainīgie peldošs apkārt. 417 00:18:45,600 --> 00:18:48,560 Jūs neesat gatavojas, lai pārliecinātos, ko tie visi nozīmē kādā noteiktā brīdī. 418 00:18:48,560 --> 00:18:53,560 Tātad GDB būs tiešām palīdzēs jums norādītas , ko viņi visi līdzinoties 419 00:18:53,560 --> 00:18:55,940 un to var redzēt, ka vizuāli. 420 00:18:55,940 --> 00:19:01,995 Vai kāds sajaukt par to, kā jebkuru, kas strādā? 421 00:19:01,995 --> 00:19:02,495 Cool. 422 00:19:02,495 --> 00:19:10,121 423 00:19:10,121 --> 00:19:10,620 Viss kārtībā. 424 00:19:10,620 --> 00:19:14,260 Tātad, pēc tam, mēs esam gatavojas nirt tiesības 425 00:19:14,260 --> 00:19:17,562 vērā ir četras dažādas veidu veidu šajā nedēļā. 426 00:19:17,562 --> 00:19:19,520 Cik daudzi no jums, pirmkārt no visiem, pirms mēs sākam, 427 00:19:19,520 --> 00:19:23,020 esmu izlasījis visu spec par pset3? 428 00:19:23,020 --> 00:19:23,824 LABI. 429 00:19:23,824 --> 00:19:24,740 Es esmu lepns par jums puiši. 430 00:19:24,740 --> 00:19:29,110 Tas ir tāpat kā pusei no klases, kurā ir ievērojami vairāk nekā pēdējo reizi. 431 00:19:29,110 --> 00:19:33,950 >> Tātad tas ir lieliski, jo, kad mēs runājam par saturu 432 00:19:33,950 --> 00:19:36,170 in lecture-- vai žēl, in section-- man patīk 433 00:19:36,170 --> 00:19:38,210 saistīt daudz kas atpakaļ uz to, ko PSET ir 434 00:19:38,210 --> 00:19:40,210 un kā jūs vēlaties īsteno ka jūsu PSET. 435 00:19:40,210 --> 00:19:42,400 Tātad, ja jūs nākt ar lasīt spec, tas būs 436 00:19:42,400 --> 00:19:45,510 būt daudz vieglāk, lai jūs varētu saprast ko es runāju par to, kad es saku, 437 00:19:45,510 --> 00:19:48,720 oh hey, tas varētu būt patiešām laba vieta, lai īstenotu šāda veida. 438 00:19:48,720 --> 00:19:52,870 Tātad tiem no jums, kas ir izlasījis spec zina, ka, kā daļu no jūsu PSET, 439 00:19:52,870 --> 00:19:54,900 jūs nāksies uzrakstīt veida veida. 440 00:19:54,900 --> 00:19:58,670 Tātad tas var būt ļoti noderīga par šodien daudzi no jums. 441 00:19:58,670 --> 00:20:01,760 >> Tātad mēs sāktu ar, būtībā, visvienkāršākā veids 442 00:20:01,760 --> 00:20:04,580 no veida, izvēle kārtošanas. 443 00:20:04,580 --> 00:20:06,800 Tipisks algoritms kā mēs gribētu iet par šo 444 00:20:06,800 --> 00:20:10,460 is-- David gāja cauri šiem visiem lekcija, tāpēc es ņemšu ātri pārvietoties pa 445 00:20:10,460 --> 00:20:13,900 here-- būtībā, jūs ir masīvs vērtībām. 446 00:20:13,900 --> 00:20:17,170 Un tad jūs atrast mazākais nešķiroti vērtība 447 00:20:17,170 --> 00:20:20,200 un jūs mijmaiņas šo vērtību ar pirmais nešķiroti vērtība. 448 00:20:20,200 --> 00:20:22,700 Un tad jūs vienkārši turēt atkārtojot ar pārējo savu sarakstu. 449 00:20:22,700 --> 00:20:25,740 >> Un šeit ir vizuāls paskaidrojums par to, kā tas varētu strādāt. 450 00:20:25,740 --> 00:20:30,460 Tā, piemēram, ja mēs, lai sāktu ar masīvu pieciem elementiem, indeksa 451 00:20:30,460 --> 00:20:35,910 0 līdz 4, ar 3, 5, 2, 6, un 4 vērtības ievietots array-- tāpēc tieši tagad, 452 00:20:35,910 --> 00:20:38,530 mēs esam tikai gatavojas pieņemt ka viņi visi nešķiroti 453 00:20:38,530 --> 00:20:41,130 jo mēs neesam pārbaudītas citādi. 454 00:20:41,130 --> 00:20:44,130 >> Tātad, kā atlases veida būtu darbs ir, ka tas būtu pirmais 455 00:20:44,130 --> 00:20:46,800 palaist cauri kopumā no nešķirotu masīva. 456 00:20:46,800 --> 00:20:49,120 Tas izlasīt mazāko vērtību. 457 00:20:49,120 --> 00:20:51,750 Šajā gadījumā, 3, pa labi Tagad, ir mazākais. 458 00:20:51,750 --> 00:20:52,680 Tas izpaužas 5. 459 00:20:52,680 --> 00:20:55,620 Nē, 5 ir ne lielāks than-- vai sorry, ne mazāk than-- 3. 460 00:20:55,620 --> 00:20:57,779 Tātad minimālā vērtība ir vēl 3. 461 00:20:57,779 --> 00:20:58,695 Un tad jūs saņemsiet 2. 462 00:20:58,695 --> 00:21:00,990 Dators redz, ak, 2 ir mazāk nekā 3. 463 00:21:00,990 --> 00:21:02,750 Tagad 2 jābūt minimālā vērtība. 464 00:21:02,750 --> 00:21:06,630 Un tā 2 Mijmaiņu ar šo pirmo vērtību. 465 00:21:06,630 --> 00:21:10,702 >> Tātad, pēc vienas piespēles, mēs tiešām redzētu ka 2 un 3 tiek pārnestas. 466 00:21:10,702 --> 00:21:13,910 Un mēs esam tikai gatavojas turpināt darīt Tas atkal ar pārējo masīva. 467 00:21:13,910 --> 00:21:17,660 Tātad mēs ejam, lai vienkārši palaist caur pēdējie četri indeksi masīva. 468 00:21:17,660 --> 00:21:20,670 Mēs redzam, ka 3 ir nākamais minimālā vērtība. 469 00:21:20,670 --> 00:21:23,240 Tātad mēs ejam, lai mijmaiņas kas ar 4. 470 00:21:23,240 --> 00:21:26,900 Un tad mēs esam tikai gatavojas glabāt braucot cauri līdz, galu galā, jūs 471 00:21:26,900 --> 00:21:33,730 nokļūt šķiroto masīvu, kurā 2, 3, 4, 5, un 6 tiek visi sakārtoti. 472 00:21:33,730 --> 00:21:37,530 Vai visi saprast loģiku par to, kā atlases veida darbojas? 473 00:21:37,530 --> 00:21:39,669 >> Jums vienkārši ir kaut kāda minimālo vērtību. 474 00:21:39,669 --> 00:21:41,210 Jūs esat sekotu, kas tas ir. 475 00:21:41,210 --> 00:21:45,170 Un, kad jūs atradīsiet to, jūs mijmaiņas to ar pirmo vērtību array-- 476 00:21:45,170 --> 00:21:48,740 vai, nav pirmais value-- nākamais vērtību masīvā. 477 00:21:48,740 --> 00:21:50,150 Cool. 478 00:21:50,150 --> 00:21:55,460 >> Tātad, kā jūs puiši veida redzēja no īsu ieskatu, 479 00:21:55,460 --> 00:21:58,450 mēs spēsim pseudocode šo out. 480 00:21:58,450 --> 00:22:02,510 Tātad, ja jūs guys aizmugurē vēlaties veido grupu, visi pie galda 481 00:22:02,510 --> 00:22:06,170 var veidot mazliet partneris, es eju lai dotu jums puiši, piemēram, trīs minūtes 482 00:22:06,170 --> 00:22:08,190 tikai runāt caur loģika, angļu, 483 00:22:08,190 --> 00:22:14,161 par to, kā mēs varētu īstenot pseudocode uzrakstīt atlases veida. 484 00:22:14,161 --> 00:22:14,910 Un tur ir konfektes. 485 00:22:14,910 --> 00:22:16,118 Lūdzu, nāciet un saņemt konfektes. 486 00:22:16,118 --> 00:22:19,520 Ja tu esi atpakaļ, un jūs vēlaties konfektes, es varētu mest Candy pie jums. 487 00:22:19,520 --> 00:22:22,850 Patiesībā, do you-- atdzist. 488 00:22:22,850 --> 00:22:23,552 Ak, piedod. 489 00:22:23,552 --> 00:22:26,751 490 00:22:26,751 --> 00:22:27,250 LABI. 491 00:22:27,250 --> 00:25:23,880 492 00:25:23,880 --> 00:25:27,140 >> Tātad, ja mēs vēlētos, lai klases, rakstīt pseudocode 493 00:25:27,140 --> 00:25:30,466 par to, kā viens varētu tuvoties šī problēma, vienkārši justies brīvi. 494 00:25:30,466 --> 00:25:32,340 Es ņemšu tikai iet apkārt un, lai, jautājiet grupas 495 00:25:32,340 --> 00:25:35,065 nākamajam līniju Ko mums vajadzētu darīt. 496 00:25:35,065 --> 00:25:37,840 Tātad, ja jūs puiši vēlas uzsākt off, kas ir pirmā lieta, 497 00:25:37,840 --> 00:25:40,600 ko darīt, ja jūs mēģināt īstenot veidu, kā atrisināt šo programmu 498 00:25:40,600 --> 00:25:43,480 selektīvi kārtotu sarakstu? 499 00:25:43,480 --> 00:25:46,349 Pieņemsim tikai pieņemt, mēs ir masīvs, labi? 500 00:25:46,349 --> 00:25:49,088 >> Mērķauditorija: Jūs vēlaties, lai radītu dažus kārtot [dzirdams], ka tu esi 501 00:25:49,088 --> 00:25:50,420 braucot cauri jūsu visai masīvs. 502 00:25:50,420 --> 00:25:51,128 >> ANDI PENG: Right. 503 00:25:51,128 --> 00:25:54,100 Tātad jūs esat gatavojas vēlaties atkārtot ar katru telpu, labi? 504 00:25:54,100 --> 00:26:05,490 Tātad, lieliski. 505 00:26:05,490 --> 00:26:08,600 Ja jūs puiši vēlas dot man Nākamais line-- yeah, uz muguras. 506 00:26:08,600 --> 00:26:11,414 507 00:26:11,414 --> 00:26:13,290 >> Mērķauditorija: Pārbaudiet tos visi par vismazāko. 508 00:26:13,290 --> 00:26:14,248 >> ANDI PENG: Tur mēs ejam. 509 00:26:14,248 --> 00:26:17,438 Tāpēc mēs gribam iet cauri un pārbaudīt, lai redzētu minimālā vērtība ir, vai ne? 510 00:26:17,438 --> 00:26:22,110 511 00:26:22,110 --> 00:26:24,840 Es esmu gatavojas saīsināt, ka, lai "min." 512 00:26:24,840 --> 00:26:27,658 Ko jūs guys vēlaties darīt pēc esat atradis minimālo vērtību? 513 00:26:27,658 --> 00:26:28,533 >> Mērķauditorija: [dzirdams] 514 00:26:28,533 --> 00:26:29,942 515 00:26:29,942 --> 00:26:33,150 ANDI PENG: Tātad jūs gatavojas vēlaties ieslēdziet to ar pirmo šī masīva, 516 00:26:33,150 --> 00:26:33,650 labi? 517 00:26:33,650 --> 00:26:45,120 518 00:26:45,120 --> 00:26:46,850 Tas ir sākums, es esmu gatavojas teikt. 519 00:26:46,850 --> 00:26:47,220 Viss kārtībā. 520 00:26:47,220 --> 00:26:50,386 Tāpēc tagad, ka jūs esat aizstāja pirmais viens, ko jūs vēlaties darīt pēc tam? 521 00:26:50,386 --> 00:26:54,840 Tāpēc tagad mēs zinām, ka šeit tas viens jābūt vismazākā vērtība, vai ne? 522 00:26:54,840 --> 00:26:58,310 Tad jums ir papildu atpūta masīva, kas ir nešķiroti. 523 00:26:58,310 --> 00:27:01,569 Tātad, ko jūs vēlaties darīt šeit, ja jūs puiši vēlas dot man nākamo līniju? 524 00:27:01,569 --> 00:27:04,610 Mērķauditorija: Tātad jūs vēlaties atkārtot visu atlikušo masīva. 525 00:27:04,610 --> 00:27:05,276 ANDI PENG: Jā. 526 00:27:05,276 --> 00:27:09,857 Un tā, ko tas atkārtojot cauri veida nozīmē mums, iespējams, ir nepieciešama? 527 00:27:09,857 --> 00:27:10,440 Kāda veida of-- 528 00:27:10,440 --> 00:27:12,057 >> Mērķauditorija: Ak, papildu mainīgo? 529 00:27:12,057 --> 00:27:13,890 ANDI PENG: Iespējams Vēl viens cilpa, vai ne? 530 00:27:13,890 --> 00:27:28,914 Tāpēc mēs, iespējams, gatavojas vēlaties atkārtot through-- lieliski. 531 00:27:28,914 --> 00:27:31,830 Un tad jūs gatavojas doties atpakaļ un iespējams pārbaudīt minimums atkal, 532 00:27:31,830 --> 00:27:32,100 labi? 533 00:27:32,100 --> 00:27:34,975 Un jūs gatavojas glabāt atkārtojot tas, ka cilpas tikai iet 534 00:27:34,975 --> 00:27:36,010 lai saglabātu darboties, vai ne? 535 00:27:36,010 --> 00:27:39,190 >> Tātad, kā jūs guys var redzēt, mēs vienkārši ir vispārējs pseudocode 536 00:27:39,190 --> 00:27:41,480 par to, kā mēs vēlamies, lai šī programma izskatīties. 537 00:27:41,480 --> 00:27:46,646 Tas atkārtot šeit, ko mēs parasti nepieciešams uzrakstīt mūsu kodu 538 00:27:46,646 --> 00:27:49,270 ja mēs vēlamies atkārtot, izmantojot masīvs, kāda modeļa struktūra? 539 00:27:49,270 --> 00:27:51,030 Es domāju, ka Christabel jau teicu pirms tam. 540 00:27:51,030 --> 00:27:51,500 >> Mērķauditorija: A cilpa. 541 00:27:51,500 --> 00:27:52,160 >> ANDI PENG: A cilpa? 542 00:27:52,160 --> 00:27:52,770 Tieši tā. 543 00:27:52,770 --> 00:27:56,060 Tātad tas ir iespējams būs cilpas. 544 00:27:56,060 --> 00:27:59,240 Kas ir pārbaude šeit gatavojas nozīmēt? 545 00:27:59,240 --> 00:28:02,536 Parasti, ja jūs vēlaties, lai pārbaudītu ja kaut kas ir kaut else-- 546 00:28:02,536 --> 00:28:03,270 >> Mērķauditorija: Ja. 547 00:28:03,270 --> 00:28:06,790 >> ANDI PENG: An ja, vai ne? 548 00:28:06,790 --> 00:28:10,790 Un tad swap šeit, mēs iet pāri vēlāk, jo Dāvida 549 00:28:10,790 --> 00:28:12,770 pārdzīvoja, ka lekciju, kā arī. 550 00:28:12,770 --> 00:28:14,580 Un tad otrā atkārtot implies-- 551 00:28:14,580 --> 00:28:15,120 >> Mērķauditorija: Vēl viens cilpa. 552 00:28:15,120 --> 00:28:16,745 >> ANDI PENG: --another cilpas, precīzi. 553 00:28:16,745 --> 00:28:19,870 554 00:28:19,870 --> 00:28:22,000 Tātad, ja mēs meklējam šajā pareizi, mēs 555 00:28:22,000 --> 00:28:24,680 var redzēt, ka mēs, iespējams, būs nepieciešama ligzdotu cilpas 556 00:28:24,680 --> 00:28:28,330 ar nosacītu paziņojumu tur un tad faktiskā gabals kodu, kas ir 557 00:28:28,330 --> 00:28:31,360 gatavojas apmainīt vērtības. 558 00:28:31,360 --> 00:28:35,980 Tāpēc es esmu tikai parasti rakstīts pseudocode kodu šeit. 559 00:28:35,980 --> 00:28:38,910 Un tad mēs tiešām dodas fiziski, kā klasi, 560 00:28:38,910 --> 00:28:40,700 izmēģināt šo šodien īstenot. 561 00:28:40,700 --> 00:28:42,486 Iesim atpakaļ uz šo IDE. 562 00:28:42,486 --> 00:28:49,243 563 00:28:49,243 --> 00:28:50,230 >> Uh-oh. 564 00:28:50,230 --> 00:28:51,754 Kāpēc ir tā, ka not-- tur tas ir. 565 00:28:51,754 --> 00:28:52,253 LABI. 566 00:28:52,253 --> 00:28:55,834 567 00:28:55,834 --> 00:28:57,500 Atvainojiet, ļaujiet man mēģināt, lai tuvinātu mazliet vairāk. 568 00:28:57,500 --> 00:28:59,310 Tur mēs ejam. 569 00:28:59,310 --> 00:29:05,060 Viss, ko es daru šeit es esmu izveidojis programma, ko sauc "atlase / sort.c." 570 00:29:05,060 --> 00:29:10,860 Esmu izveidojis masīvs deviņu vērtībām, 4, 8, 2, 1, 6, 9, 7, 5, 3. 571 00:29:10,860 --> 00:29:14,370 Šobrīd, kā jūs varat Redzi, tie ir Nekārtots. 572 00:29:14,370 --> 00:29:17,880 n būs skaits, kas stāsta jums summu vērtību 573 00:29:17,880 --> 00:29:18,920 jums ir jūsu masīvs. 574 00:29:18,920 --> 00:29:20,670 Šajā gadījumā, mums ir deviņas vērtības. 575 00:29:20,670 --> 00:29:23,760 Un es esmu tikko ieguvuši cilpa šeit kas izdrukā uz nešķirotu masīvs. 576 00:29:23,760 --> 00:29:28,370 >> Un beigās, es esmu arī ieguva par cilpa, kas vienkārši izdrukā to no jauna. 577 00:29:28,370 --> 00:29:32,070 Tātad teorētiski, ja šīs programmas darbojas pareizi, beigās, 578 00:29:32,070 --> 00:29:35,670 Jums vajadzētu redzēt iespiesti cilpu , kurā 1, 2, 3, 4, 5, 6, 7, 8, 579 00:29:35,670 --> 00:29:39,310 9 ir visu pareizi, lai. 580 00:29:39,310 --> 00:29:43,410 >> Tātad mēs esam ieguvuši mūsu pseudocode šeit. 581 00:29:43,410 --> 00:29:46,090 Vai kāds vēlas kuri paredzēti, es esmu tikai gatavojas iet lūgt volunteers-- 582 00:29:46,090 --> 00:29:49,540 man pateikt, tieši to, ko rakstīt, ja Mēs vēlamies, lai, pirmkārt, vienkārši atkārtot 583 00:29:49,540 --> 00:29:52,840 caur sākumā šo masīva? 584 00:29:52,840 --> 00:29:55,204 Kas ir līnija koda es esmu iespējams, būs nepieciešams šeit? 585 00:29:55,204 --> 00:29:56,990 >> Mērķauditorija: [dzirdams] 586 00:29:56,990 --> 00:29:59,010 >> ANDI PENG: Jā, jūtos bezmaksas kuri paredzēti, piedodiet, jūs 587 00:29:59,010 --> 00:30:02,318 nav stāvēt up-- justies brīvi paaugstināt savu balsi mazliet. 588 00:30:02,318 --> 00:30:08,190 >> Mērķauditorija: Par int i vienāds 0-- 589 00:30:08,190 --> 00:30:10,690 >> ANDI PENG: Jā, labi. 590 00:30:10,690 --> 00:30:15,220 >> AUDITORIJA: i ir mazāks nekā masīva garumu. 591 00:30:15,220 --> 00:30:19,630 >> ANDI PENG: Tātad paturiet prātā šeit, jo mēs 592 00:30:19,630 --> 00:30:23,060 nav funkciju, kas stāsta mums garums masīva, 593 00:30:23,060 --> 00:30:25,790 mums jau ir vērtība, kas saglabā to. 594 00:30:25,790 --> 00:30:27,920 Tiesības? 595 00:30:27,920 --> 00:30:31,010 Vēl viena lieta, kas jāpatur in mind-- masīvā 596 00:30:31,010 --> 00:30:33,940 Deviņu vērtībām, kādas ir indeksi? 597 00:30:33,940 --> 00:30:38,720 Pieņemsim tikai teikt masīvs bija 0: 3. 598 00:30:38,720 --> 00:30:41,500 Jūs redzēsiet, ka pēdējā indekss ir faktiski 3. 599 00:30:41,500 --> 00:30:45,530 Tas nav 4, lai gan tur ir četras vērtības masīvā. 600 00:30:45,530 --> 00:30:49,866 >> Tātad šeit, mums ir jābūt ļoti uzmanīgiem par to, kas mūsu stāvoklī garumu 601 00:30:49,866 --> 00:30:50,490 būs. 602 00:30:50,490 --> 00:30:51,948 >> Mērķauditorija: Vai tas ir n mīnus 1? 603 00:30:51,948 --> 00:30:54,440 ANDI PENG: Tas būs n mīnus 1, tieši tā. 604 00:30:54,440 --> 00:30:57,379 Vai, ka jēga, kāpēc tas ir n mīnus 1, visi? 605 00:30:57,379 --> 00:30:58,920 Tas ir tāpēc, ka masīvi ir nulle indeksētas. 606 00:30:58,920 --> 00:31:02,010 Viņi sāk ar 0 un palaist līdz n mīnus 1. 607 00:31:02,010 --> 00:31:03,210 Jā, tas ir mazliet viltīgs. 608 00:31:03,210 --> 00:31:03,730 LABI. 609 00:31:03,730 --> 00:31:05,929 Un tad-- 610 00:31:05,929 --> 00:31:08,054 Mērķauditorija: Isnt'1 ka jau rūpēsies, lai gan, 611 00:31:08,054 --> 00:31:11,400 ko tikai ne sakot "ir mazāks vai vienāds ar "un vienkārši pasakot" mazāk nekā? " 612 00:31:11,400 --> 00:31:13,108 >> ANDI PENG: Tas ir tiešām labs jautājums. 613 00:31:13,108 --> 00:31:13,630 Tātad, jā. 614 00:31:13,630 --> 00:31:17,410 Bet arī, tā, ka mēs esam Īstenojot pārbaudes tiesības, 615 00:31:17,410 --> 00:31:19,120 Jums ir nepieciešams, lai salīdzinātu divas vērtības. 616 00:31:19,120 --> 00:31:21,009 Tātad jūs tiešām vēlaties atstāt "uz" tukšs. 617 00:31:21,009 --> 00:31:23,050 Jo, ja jūs salīdzināt Tas viens, jūs nebrauksim 618 00:31:23,050 --> 00:31:25,530 ir kaut kas pēc tam salīdzināt ar, vai ne? 619 00:31:25,530 --> 00:31:27,460 Jā. 620 00:31:27,460 --> 00:31:29,297 Tāpēc es ++. 621 00:31:29,297 --> 00:31:30,380 Pieņemsim pievienot mūsu iekavās. 622 00:31:30,380 --> 00:31:30,880 Whoops. 623 00:31:30,880 --> 00:31:33,950 624 00:31:33,950 --> 00:31:34,710 Liels. 625 00:31:34,710 --> 00:31:39,117 Tāpēc mums ir sākums Mūsu ārējā kontūra. 626 00:31:39,117 --> 00:31:41,450 Tāpēc tagad mēs, iespējams, vēlas izveidot mainīgo, lai uzturētu 627 00:31:41,450 --> 00:31:43,085 dziesmu par mazāko vērtību, vai ne? 628 00:31:43,085 --> 00:31:45,751 Vai kāds vēlas dot man rindā kodu, kas varētu darīt? 629 00:31:45,751 --> 00:31:48,700 630 00:31:48,700 --> 00:31:53,570 Kas mums ir nepieciešams, ja mēs ejam vēlas saglabāt kaut ko? 631 00:31:53,570 --> 00:31:55,047 >> Tiesības. 632 00:31:55,047 --> 00:31:57,630 Varbūt labāks nosaukums, kas būtu be-- "temp" pilnīgi works-- 633 00:31:57,630 --> 00:32:00,655 varbūt vairāk trāpīgi nosaukts būtu, ja mēs gribam mazāko value-- 634 00:32:00,655 --> 00:32:01,624 >> Mērķauditorija: Min. 635 00:32:01,624 --> 00:32:02,790 ANDI PENG: min, tur mēs ejam. 636 00:32:02,790 --> 00:32:05,230 min būtu labi. 637 00:32:05,230 --> 00:32:08,340 Un tā šeit, ko mēs vēlas, lai sāktu to? 638 00:32:08,340 --> 00:32:09,620 Tas ir mazliet viltīgs. 639 00:32:09,620 --> 00:32:13,580 Jo tieši tagad pie sākumā šo masīva, 640 00:32:13,580 --> 00:32:15,730 Jūs neesat paskatījās kaut ko, vai ne? 641 00:32:15,730 --> 00:32:19,200 Tātad, ko, automātiski, ja mēs esam tikai uz i ir vienāds ar 0, 642 00:32:19,200 --> 00:32:22,302 ko mēs gribam, lai sāktu mūsu pirmais minimālā vērtība? 643 00:32:22,302 --> 00:32:22,802 Mērķauditorija: i. 644 00:32:22,802 --> 00:32:24,790 ANDI PENG: i, tieši tā. 645 00:32:24,790 --> 00:32:27,040 Christabel, kāpēc mēs gribam inicializēt to i? 646 00:32:27,040 --> 00:32:28,510 >> Mērķauditorija: Tā, labi, mēs sākam ar 0. 647 00:32:28,510 --> 00:32:31,660 Tāpēc, ka mums nav ko salīdzināt to, minimālā galu galā ir 0. 648 00:32:31,660 --> 00:32:32,451 >> ANDI PENG: Tieši tā. 649 00:32:32,451 --> 00:32:34,400 Tātad viņa ir tieši labi. 650 00:32:34,400 --> 00:32:36,780 Jo mums ir faktiski nav paskatījās kaut ko vēl, 651 00:32:36,780 --> 00:32:38,680 mēs nezinām, ko mūsu minimālā vērtība ir. 652 00:32:38,680 --> 00:32:41,960 Mēs vēlamies, lai tikai sāktu to i, kas pašlaik ir tepat. 653 00:32:41,960 --> 00:32:44,750 Un kā mēs turpinām pārvietot pa šo masīvu, 654 00:32:44,750 --> 00:32:48,122 mēs redzēsim, ka ar katru papildu caurlaide, i pieaugumu. 655 00:32:48,122 --> 00:32:49,830 Un tā šajā brīdī, i, iespējams, gatavojas 656 00:32:49,830 --> 00:32:52,329 vēlas būt minimālā, jo tas būs būt jebkas 657 00:32:52,329 --> 00:32:54,520 ir sākums nešķirotu masīva. 658 00:32:54,520 --> 00:32:55,270 Cool. 659 00:32:55,270 --> 00:32:58,720 >> Tāpēc tagad mēs vēlamies, lai pievienotu A cilpu šeit tas ir 660 00:32:58,720 --> 00:33:03,225 gatavojas atkārtot cauri nešķiroti, vai pārējo šī masīva. 661 00:33:03,225 --> 00:33:05,808 Vai kāds vēlas sniegt man rindā kodu, kas varētu darīt? 662 00:33:05,808 --> 00:33:08,870 663 00:33:08,870 --> 00:33:11,330 Hint-- Ko mums vajag noteikti šeit? 664 00:33:11,330 --> 00:33:17,320 665 00:33:17,320 --> 00:33:18,820 Kas notiek, lai iet šajā cilpas? 666 00:33:18,820 --> 00:33:19,465 Jā. 667 00:33:19,465 --> 00:33:21,590 Mērķauditorija: Tātad mēs gribētu vēlamies ir atšķirīgs skaitli, 668 00:33:21,590 --> 00:33:25,080 jo mēs esam darbojas ar pārējo masīva nevis i, tāpēc varbūt 669 00:33:25,080 --> 00:33:25,760 j. 670 00:33:25,760 --> 00:33:27,301 >> ANDI PENG: Jā, j skan labi man. 671 00:33:27,301 --> 00:33:27,850 Vienāds? 672 00:33:27,850 --> 00:33:33,930 >> Mērķauditorija: Tātad būtu i plus 1, jo jūs, sākot ar nākamo vērtību. 673 00:33:33,930 --> 00:33:40,395 Un pēc tam uz end-- tā atkal, j ir mazāk nekā n mīnus 1, un pēc tam j ++. 674 00:33:40,395 --> 00:33:41,103 ANDI PENG: Great. 675 00:33:41,103 --> 00:33:48,510 676 00:33:48,510 --> 00:33:52,750 >> Un tad šeit, mēs esam gatavojas vēlaties pārbaudīt, lai redzētu, vai mūsu nosacījums ir izpildīts, 677 00:33:52,750 --> 00:33:53,250 labi? 678 00:33:53,250 --> 00:33:55,740 Tāpēc, ka jūs vēlaties, lai mainītu minimālo vērtību 679 00:33:55,740 --> 00:33:58,700 ja tas ir tiešām mazāks nekā tas, ko jūs salīdzināt to ar, vai ne? 680 00:33:58,700 --> 00:34:01,146 Tātad, ko mēs gatavojamies vēlamies šeit? 681 00:34:01,146 --> 00:34:04,160 682 00:34:04,160 --> 00:34:04,897 Pārbaudiet, lai redzētu. 683 00:34:04,897 --> 00:34:06,730 Kāda no paziņojuma veids mēs droši vien 684 00:34:06,730 --> 00:34:08,389 ti vēlas izmantot, ja mēs vēlaties pārbaudīt kaut ko? 685 00:34:08,389 --> 00:34:09,360 >> Mērķauditorija: ja paziņojums. 686 00:34:09,360 --> 00:34:10,485 >> ANDI PENG: An ja paziņojums. 687 00:34:10,485 --> 00:34:13,155 Tātad if-- un kādi būs nosacījums, ka mēs gribam iekšā 688 00:34:13,155 --> 00:34:13,988 Mūsu ja paziņojums? 689 00:34:13,988 --> 00:34:18,255 690 00:34:18,255 --> 00:34:22,960 >> Mērķauditorija: Ja vērtība j ir mazāka nekā vērtība, i-- 691 00:34:22,960 --> 00:34:24,600 >> ANDI PENG: Tieši tā. 692 00:34:24,600 --> 00:34:27,480 Tātad if-- tāpēc šis masīvs tiek saukta par "masīvs." 693 00:34:27,480 --> 00:34:27,980 Liels. 694 00:34:27,980 --> 00:34:30,465 Tātad, ja array-- Kas tas bija? 695 00:34:30,465 --> 00:34:31,090 Pasaki to vēlreiz. 696 00:34:31,090 --> 00:34:39,590 >> AUDITORIJA: Ja masīvs-j ir mazāks nekā masīvs-i, tad mēs varētu mainīt min. 697 00:34:39,590 --> 00:34:41,590 Tātad min būtu j. 698 00:34:41,590 --> 00:34:44,590 699 00:34:44,590 --> 00:34:47,249 >> ANDI PENG: tas, kas padara jēga? 700 00:34:47,249 --> 00:34:48,670 LABI. 701 00:34:48,670 --> 00:34:52,929 Un tagad uz leju šeit, mēs faktiski vēlas, lai īstenotu mijmaiņas, vai ne? 702 00:34:52,929 --> 00:34:58,285 Tātad atgādināt, lekciju, ka Dāvids, kad viņš mēģina apmainīt the-- Kas bija 703 00:34:58,285 --> 00:34:59,996 it-- apelsīnu sula un milk-- 704 00:34:59,996 --> 00:35:01,150 >> Mērķauditorija: Tas bija bruto. 705 00:35:01,150 --> 00:35:02,816 >> ANDI PENG: Jā, tas bija sava veida bruto. 706 00:35:02,816 --> 00:35:05,310 Bet tas bija diezgan labs jēdziens demonstrējot laiku. 707 00:35:05,310 --> 00:35:08,430 Tāpēc domāju, ka par jūsu vērtībām šeit. 708 00:35:08,430 --> 00:35:10,794 Tev masīvs min, masīvs i, 709 00:35:10,794 --> 00:35:12,460 vai kāds mēs cenšamies apmainīt šeit. 710 00:35:12,460 --> 00:35:15,310 Un jūs, iespējams, nevar ieliet tos viens otru tajā pašā laikā, pa labi? 711 00:35:15,310 --> 00:35:17,180 Tātad, ko mēs gatavojamies nepieciešams, lai izveidotu šeit 712 00:35:17,180 --> 00:35:19,126 lai mijmaiņas vērtības pareizi? 713 00:35:19,126 --> 00:35:19,820 >> Mērķauditorija: pagaidu mainīgs. 714 00:35:19,820 --> 00:35:21,370 >> ANDI PENG: pagaidu mainīgs. 715 00:35:21,370 --> 00:35:22,570 Tātad, pieņemsim darīt int temp. 716 00:35:22,570 --> 00:35:25,681 Skat, tas būtu labāk laiks kuri paredzēti, paga, kāda bija, ka? 717 00:35:25,681 --> 00:35:26,180 LABI. 718 00:35:26,180 --> 00:35:29,800 Tātad tas būtu bijis labāks laiks nosaukt mainīgais "temp." 719 00:35:29,800 --> 00:35:30,730 Tātad, pieņemsim darīt int temp. 720 00:35:30,730 --> 00:35:32,563 Ko mēs gatavojamies noteikts temp vienāds ar šeit? 721 00:35:32,563 --> 00:35:34,752 722 00:35:34,752 --> 00:35:35,335 Mērķauditorija: Min? 723 00:35:35,335 --> 00:35:38,508 724 00:35:38,508 --> 00:35:39,716 ANDI PENG: Tas ir mazliet viltīgs. 725 00:35:39,716 --> 00:35:43,110 726 00:35:43,110 --> 00:35:44,880 Tas tiešām nav svarīgi beigās. 727 00:35:44,880 --> 00:35:47,690 Tas nav svarīgi, ko Lai jūs izvēlaties mijmaiņas 728 00:35:47,690 --> 00:35:50,862 tik ilgi, cik jūs gūstat pārliecināts, ka jūs esat sekotu ko jūs pārnešana. 729 00:35:50,862 --> 00:35:52,250 >> Mērķauditorija: Tas varētu būt masīvs-i. 730 00:35:52,250 --> 00:35:53,666 >> ANDI PENG: Jā, pieņemsim darīt masīva-i. 731 00:35:53,666 --> 00:35:55,950 732 00:35:55,950 --> 00:35:59,305 Un tad kāds ir nākamais rindā kodu mēs vēlamies, lai būtu šeit? 733 00:35:59,305 --> 00:36:00,680 Mērķauditorija: masīvs-i ir vienāds ar masīvu-J. 734 00:36:00,680 --> 00:36:07,154 735 00:36:07,154 --> 00:36:08,070 ANDI PENG: Un visbeidzot? 736 00:36:08,070 --> 00:36:12,070 Mērķauditorija: masīvs-j vienāds masīvs-i. 737 00:36:12,070 --> 00:36:14,525 Mērķauditorija: Vai masīvs-j Vienāds masīvs-temp-- vai, temp. 738 00:36:14,525 --> 00:36:17,135 739 00:36:17,135 --> 00:36:19,430 >> ANDI PENG: OK. 740 00:36:19,430 --> 00:36:21,510 Tātad pieņemsim palaist šo un redzēt ja tas notiek uz darbu. 741 00:36:21,510 --> 00:36:37,520 742 00:36:37,520 --> 00:36:39,335 Ja ir, kas notiek? 743 00:36:39,335 --> 00:36:40,210 Ak, tas ir problēma. 744 00:36:40,210 --> 00:36:44,320 Skat, 40. līniju, mēs esam mēģina izmantot masīvu-J? 745 00:36:44,320 --> 00:36:47,022 Bet kur j pastāv tikai? 746 00:36:47,022 --> 00:36:48,402 >> Mērķauditorija: In uz cilpas. 747 00:36:48,402 --> 00:36:49,110 ANDI PENG: Right. 748 00:36:49,110 --> 00:36:51,730 Tātad, ko mēs gatavojamies jādara? 749 00:36:51,730 --> 00:36:53,170 >> Mērķauditorija: Noteikt to ārpus the-- 750 00:36:53,170 --> 00:36:57,777 751 00:36:57,777 --> 00:37:00,610 Mērķauditorija: Jā, es domāju, jums ir izmantot citu, ja apgalvojums, vai ne? 752 00:37:00,610 --> 00:37:05,230 Tātad, piemēram, ja minimum-- labi, ļaujiet man domāt. 753 00:37:05,230 --> 00:37:08,170 754 00:37:08,170 --> 00:37:09,990 >> ANDI Peng: Puiši, mēģiniet paskatīties Let 's 755 00:37:09,990 --> 00:37:11,270 skat, kāda ir kaut ko mēs varam darīt šeit? 756 00:37:11,270 --> 00:37:11,811 >> Mērķauditorija: OK. 757 00:37:11,811 --> 00:37:15,900 Tātad, ja minimālais nav vienāds j-- tādēļ, ja minimālais joprojām i-- 758 00:37:15,900 --> 00:37:17,570 tad mēs nebūtu swap. 759 00:37:17,570 --> 00:37:22,450 760 00:37:22,450 --> 00:37:24,712 >> ANDI PENG: Vai, ka vienāda i? 761 00:37:24,712 --> 00:37:25,920 Ko jūs vēlaties pateikt šeit? 762 00:37:25,920 --> 00:37:30,494 >> Mērķauditorija: Vai yeah, ja Minimālā nav vienāds i, jā. 763 00:37:30,494 --> 00:37:39,627 764 00:37:39,627 --> 00:37:40,210 ANDI PENG: OK. 765 00:37:40,210 --> 00:37:42,040 Nu, kas atrisina, veida, mūsu problēmas. 766 00:37:42,040 --> 00:37:47,265 Bet tas joprojām neatrisina problēma par to, kas notiek, ja j-- kopš j 767 00:37:47,265 --> 00:37:49,890 neeksistē ārpus tā, ko tu mēs gribam darīt ar to? 768 00:37:49,890 --> 00:37:50,698 Pieteikt to ārpus? 769 00:37:50,698 --> 00:37:59,410 770 00:37:59,410 --> 00:38:02,730 Mēģināsim rādīt šo. 771 00:38:02,730 --> 00:38:04,435 Uh-oh. 772 00:38:04,435 --> 00:38:06,200 Mūsu kārtot nedarbojas. 773 00:38:06,200 --> 00:38:10,060 >> Kā jūs varat redzēt, mūsu sākotnējo masīvs bija šīs vērtības. 774 00:38:10,060 --> 00:38:14,800 Un pēc tam tā vajadzētu būt ir 1, 2, 3, 4, 5, 6, 7, 8, 9. 775 00:38:14,800 --> 00:38:15,530 Tas nestrādā. 776 00:38:15,530 --> 00:38:16,030 Ahh. 777 00:38:16,030 --> 00:38:17,184 Ko mēs darām? 778 00:38:17,184 --> 00:38:17,850 Mērķauditorija: Debug. 779 00:38:17,850 --> 00:38:21,787 780 00:38:21,787 --> 00:38:23,370 ANDI PENG: Nu labi, mēs varam mēģināt to. 781 00:38:23,370 --> 00:38:25,030 Mēs varam atkļūdot. 782 00:38:25,030 --> 00:38:26,042 Zoom out mazliet. 783 00:38:26,042 --> 00:38:31,177 784 00:38:31,177 --> 00:38:33,656 Pieņemsim, kas mūsu koncentrācija. 785 00:38:33,656 --> 00:38:37,280 Iesim like-- OK. 786 00:38:37,280 --> 00:38:40,444 >> Tāpēc, ka mēs jau zinām, ka Šīs līnijas, 15 līdz 22, 787 00:38:40,444 --> 00:38:43,610 ir working-- jo viss, ko es daru, ir tikai atkārtojot cauri un printing-- 788 00:38:43,610 --> 00:38:45,406 Es varu iet uz priekšu un izlaist to. 789 00:38:45,406 --> 00:38:47,280 Sāksim līniju 25. 790 00:38:47,280 --> 00:38:48,712 OOP, ļaujiet man atbrīvoties no tā. 791 00:38:48,712 --> 00:38:51,598 792 00:38:51,598 --> 00:38:54,057 >> Mērķauditorija: Tātad robežvērtība s kur atkļūdošanas sākas? 793 00:38:54,057 --> 00:38:54,890 ANDI PENG: vai aptur. 794 00:38:54,890 --> 00:38:55,670 Mērķauditorija: vai aptur. 795 00:38:55,670 --> 00:38:55,930 ANDI PENG: Jā. 796 00:38:55,930 --> 00:38:58,640 Jūs varat iestatīt vairākus kontrolpunkti un tā var vienkārši pāriet no viena uz otru. 797 00:38:58,640 --> 00:39:01,590 Bet šajā gadījumā mēs nezinām kur kļūda notiek. 798 00:39:01,590 --> 00:39:03,780 Tātad mēs vienkārši vēlamies, lai sākt no augšas uz leju. 799 00:39:03,780 --> 00:39:05,020 Yep. 800 00:39:05,020 --> 00:39:05,550 LABI. 801 00:39:05,550 --> 00:39:08,460 >> Tātad šī līnija šeit, mēs varam soli. 802 00:39:08,460 --> 00:39:11,499 Jūs varat redzēt šeit lejā, mēs esam ieguvuši masīvu. 803 00:39:11,499 --> 00:39:13,290 Tās ir vērtības, kas ir masīva. 804 00:39:13,290 --> 00:39:16,360 Vai redzat, ka, cik indekss 0, tas atbilst value-- oh, 805 00:39:16,360 --> 00:39:17,526 Es esmu gatavojas izmēģināt, lai tuvinātu. 806 00:39:17,526 --> 00:39:20,650 Atvainojiet, tas ir tiešām grūti līdz see-- pie masīva indekss 0, 807 00:39:20,650 --> 00:39:24,090 mums ir vērtība 4 un pēc tam tā tālāk, un tā tālāk. 808 00:39:24,090 --> 00:39:25,670 Mums ir mūsu vietējās mainīgie. 809 00:39:25,670 --> 00:39:28,570 Tieši tagad i ir vienāds ar 0, ko mēs gribam, lai to. 810 00:39:28,570 --> 00:39:31,540 811 00:39:31,540 --> 00:39:33,690 >> Un tāpēc pieņemsim saglabātu pastiprināšanu caur. 812 00:39:33,690 --> 00:39:36,850 Mūsu minimālais ir vienāds ar 0, ko mēs arī vēlamies, lai to. 813 00:39:36,850 --> 00:39:39,470 814 00:39:39,470 --> 00:39:45,560 Un tad mēs ieejam mūsu sekundē cilpa, ja masīvs-j ir mazāks nekā masīvs-i, 815 00:39:45,560 --> 00:39:46,380 kas tā nebija. 816 00:39:46,380 --> 00:39:48,130 Tātad jūs redzēt, kā ka izlaidis vairāk nekā, ka? 817 00:39:48,130 --> 00:39:52,430 >> Mērķauditorija: Tātad ja ja minimums, visi that-- nevajadzētu ka 818 00:39:52,430 --> 00:39:55,424 būt iekšā pirmā cilpa? 819 00:39:55,424 --> 00:39:57,340 ANDI PENG: Nē, jo jūs joprojām vēlaties, lai pārbaudītu. 820 00:39:57,340 --> 00:40:00,329 Jūs vēlaties darīt salīdzinājumu ik laiks, pat pēc tam, kad jūs darbināt caur to. 821 00:40:00,329 --> 00:40:02,620 Jums nav vienkārši vēlaties to darīt uz pirmā transmisiju. 822 00:40:02,620 --> 00:40:05,240 Jūs vēlaties darīt to ar katram papildu pass atkal. 823 00:40:05,240 --> 00:40:07,198 Tātad jūs vēlaties, lai pārbaudītu Jūsu stāvoklis iekšā. 824 00:40:07,198 --> 00:40:11,610 825 00:40:11,610 --> 00:40:13,746 Tātad mēs esam tikai gatavojas skriet cauri šeit. 826 00:40:13,746 --> 00:40:17,337 827 00:40:17,337 --> 00:40:18,420 Es došu jums puiši mājienu. 828 00:40:18,420 --> 00:40:23,910 Tas ir saistīts ar to, ka tad, kad jūs pārbaudīt savu nosacīta, 829 00:40:23,910 --> 00:40:26,600 Jūs neesat pārbaude par pareizu indekss. 830 00:40:26,600 --> 00:40:32,510 Tātad tagad jūs pārbaudot masīvs indekss j ir mazāks nekā masīva 831 00:40:32,510 --> 00:40:33,970 indekss i. 832 00:40:33,970 --> 00:40:36,580 Bet ko jūs darāt augšā sākums cilpa? 833 00:40:36,580 --> 00:40:38,260 Vai tu nosakot j ir vienāds ar i? 834 00:40:38,260 --> 00:40:41,260 835 00:40:41,260 --> 00:40:45,415 >> Jā, tāpēc mēs faktiski var izietu atkļūdotājs šeit. 836 00:40:45,415 --> 00:40:47,040 Tātad, pieņemsim to apskatīt mūsu pseudocode. 837 00:40:47,040 --> 00:40:50,070 838 00:40:50,070 --> 00:40:52,580 For-- mēs ejam sākas i ir vienāds ar 0. 839 00:40:52,580 --> 00:40:54,760 Mēs ejam, lai iet līdz n mīnus 1. 840 00:40:54,760 --> 00:40:58,040 Let 's pārbaudīt, tomēr mums ir šādas tiesības? 841 00:40:58,040 --> 00:40:59,580 Yep, tas bija taisnība. 842 00:40:59,580 --> 00:41:02,080 >> Tātad iekšā šeit, mēs esam notiek, lai radītu minimālo vērtību 843 00:41:02,080 --> 00:41:03,630 un noteikt, ka vienāds ar i. 844 00:41:03,630 --> 00:41:04,950 Vai mēs to darām? 845 00:41:04,950 --> 00:41:06,270 Yep, to izdarīja. 846 00:41:06,270 --> 00:41:10,430 Tagad mūsu iekšējās cilpas, mēs esam darīsim j vienāds i n 1 mīnus. 847 00:41:10,430 --> 00:41:11,950 Vai mēs to darām? 848 00:41:11,950 --> 00:41:15,540 Patiesi, mēs to izdarīja. 849 00:41:15,540 --> 00:41:19,922 >> Tātad tomēr, ko mēs salīdzinot šeit? 850 00:41:19,922 --> 00:41:20,925 >> Mērķauditorija: j plus 1. 851 00:41:20,925 --> 00:41:21,716 ANDI PENG: Tieši tā. 852 00:41:21,716 --> 00:41:24,184 853 00:41:24,184 --> 00:41:27,350 Un tad jūs gatavojas vēlaties iestatīt Jūsu minimums ir vienāds ar j plus 1, kā arī. 854 00:41:27,350 --> 00:41:31,057 855 00:41:31,057 --> 00:41:32,640 Tāpēc es devos cauri, ka tiešām ātri. 856 00:41:32,640 --> 00:41:36,190 Vai jūs guys saprast kāpēc tas ir j plus 1? 857 00:41:36,190 --> 00:41:36,890 LABI. 858 00:41:36,890 --> 00:41:40,700 >> Tātad jūsu masīvs, it savu pirmo iet caur, 859 00:41:40,700 --> 00:41:44,850 Jūsu cilpas, lai int i ir vienāds ar 0, pieņemsim tikai 860 00:41:44,850 --> 00:41:46,740 pieņemu, tas vēl nav mainīta. 861 00:41:46,740 --> 00:41:53,180 862 00:41:53,180 --> 00:41:56,760 Mums ir masīvs, pilnīgi, tikai četras nešķirotas elementi, vai ne? 863 00:41:56,760 --> 00:42:00,760 Tāpēc mēs vēlamies, lai sāktu i vienāda ar 0. 864 00:42:00,760 --> 00:42:03,650 Un es gatavojas tikai palaist caur šo cilpu. 865 00:42:03,650 --> 00:42:08,560 Un tā pirmajā caurlaide, mēs ejam inicializēt mainīgo sauc par "min" 866 00:42:08,560 --> 00:42:11,245 ka arī vienāds i, jo mēs nav minimālo vērtību. 867 00:42:11,245 --> 00:42:12,870 Tātad tas ir pašlaik ir vienāds ar 0, kā arī. 868 00:42:12,870 --> 00:42:16,182 869 00:42:16,182 --> 00:42:17,640 Un tad mēs ejam, lai iet cauri. 870 00:42:17,640 --> 00:42:19,270 Un mēs gribam atkārtot vēlreiz. 871 00:42:19,270 --> 00:42:22,900 Tagad, ka mēs esam atraduši to, ko mūsu minimālais ir, mēs vēlamies atkārtot, izmantojot 872 00:42:22,900 --> 00:42:25,190 vēlreiz, lai redzētu, vai tas ir, salīdzinot, vai ne? 873 00:42:25,190 --> 00:42:40,440 Tātad j, šeit, notiek uz vienāda i, kas ir 0. 874 00:42:40,440 --> 00:42:46,320 Un tad, ja masīvs j plus i, kas ir viens, kas ir nākamais vairāk, jo mazāk 875 00:42:46,320 --> 00:42:49,270 nekā to, ko jūsu pašreizējo minimumam vērtība ir, jūs vēlaties apmainīt. 876 00:42:49,270 --> 00:42:56,850 >> Tātad pieņemsim tikai teikt, ka mēs esam ieguva, piemēram, 2, 5, 1, 8. 877 00:42:56,850 --> 00:43:01,610 Tieši tagad, i ir vienāds ar 0 un j ir vienāds ar 0. 878 00:43:01,610 --> 00:43:05,210 Un tas ir mūsu minimālā vērtība. 879 00:43:05,210 --> 00:43:09,950 Ja masīvu-j plus i-- tādēļ, ja viens tas ir pēc tam, kad viens mēs esam meklē 880 00:43:09,950 --> 00:43:13,450 ir lielāks nekā tas, pirms tā, tas notiek, lai kļūtu par minimālo. 881 00:43:13,450 --> 00:43:18,120 >> Tātad, šeit mēs redzam, ka 5 ir ne mazāks par to. 882 00:43:18,120 --> 00:43:19,730 Tātad, tas notiek, lai nav 5. 883 00:43:19,730 --> 00:43:23,580 Mēs redzam, ka 1 ir mazāks par 2, vai ne? 884 00:43:23,580 --> 00:43:32,970 Tāpēc tagad mēs zinām, ka mūsu minimums ir būs indekss ir 0, 1, 2. 885 00:43:32,970 --> 00:43:34,030 Yeah? 886 00:43:34,030 --> 00:43:39,170 Un tad, kad jums uz leju šeit, Jūs varat mijmaiņas pareizās vērtības. 887 00:43:39,170 --> 00:43:42,610 >> Tātad, ja jūs guys bija tikai, kam j pirms, jums nav apskatot vienu 888 00:43:42,610 --> 00:43:43,260 pēc tā. 889 00:43:43,260 --> 00:43:44,520 Jūs meklējāt at pati vērtība, kas 890 00:43:44,520 --> 00:43:46,290 Tāpēc tas vienkārši bija nedara neko. 891 00:43:46,290 --> 00:43:49,721 Vai tas ir jēga, lai visiem, kāpēc mums vajadzēja, ka plus 1 tur? 892 00:43:49,721 --> 00:43:50,220 LABI. 893 00:43:50,220 --> 00:43:53,345 Tagad pieņemsim tikai palaist caur to izdarīt pārliecināts pārējā kods ir pareizs. 894 00:43:53,345 --> 00:44:04,424 895 00:44:04,424 --> 00:44:05,340 Kāpēc ir tā, ka notiek? 896 00:44:05,340 --> 00:44:14,780 897 00:44:14,780 --> 00:44:16,364 Ah, tas ir min tieši šeit. 898 00:44:16,364 --> 00:44:17,780 Mēs bijām salīdzinot nepareizu vērtību. 899 00:44:17,780 --> 00:44:24,944 900 00:44:24,944 --> 00:44:25,906 Ak, nē. 901 00:44:25,906 --> 00:44:30,720 902 00:44:30,720 --> 00:44:33,482 >> Ak jā, noteikti šeit mēs bijām pārnešana nepareizas vērtības, kā arī. 903 00:44:33,482 --> 00:44:34,940 Tāpēc, ka mēs meklējām pie i un j. 904 00:44:34,940 --> 00:44:36,440 Tie ir tie, mums bija pārbaudes. 905 00:44:36,440 --> 00:44:39,160 Mēs tiešām vēlamies, lai mijmaiņas minimums, pašreizējais minimālais, 906 00:44:39,160 --> 00:44:40,550 ar kāda viena ārā ir. 907 00:44:40,550 --> 00:44:59,510 908 00:44:59,510 --> 00:45:05,402 Un kā jūs guys var redzēt uz leju šeit, mums ir sakārtoti masīvs. 909 00:45:05,402 --> 00:45:07,110 Tas vienkārši bija jādara ar fakts, ka tad, kad 910 00:45:07,110 --> 00:45:09,350 mēs pārbaudot vērtībām mēs salīdzināšanas, 911 00:45:09,350 --> 00:45:11,226 mēs nebijām meklē pareizos vērtībām. 912 00:45:11,226 --> 00:45:13,850 Mēs meklējām tajā pašā vienā šeit, faktiski nav pārnešana to. 913 00:45:13,850 --> 00:45:17,135 Jums ir jāskatās uz vienu nākamo uz to, un tad jūs varat mijmaiņas. 914 00:45:17,135 --> 00:45:19,260 Tātad tas, kas bija sava veida pirms bugging mūsu kodu. 915 00:45:19,260 --> 00:45:22,460 Un ko es darīju šeit ir viss atkļūdotājs varēja darīt, lai jūs 916 00:45:22,460 --> 00:45:23,810 Es vienkārši darīju to uz kuģa, jo tas ir vieglāk 917 00:45:23,810 --> 00:45:26,320 redzēt, nevis mēģināt lai tuvinātu atkļūdotājs. 918 00:45:26,320 --> 00:45:29,391 Vai tas ir jēga, lai visiem? 919 00:45:29,391 --> 00:45:29,890 Cool. 920 00:45:29,890 --> 00:45:34,800 921 00:45:34,800 --> 00:45:35,410 >> Viss kārtībā. 922 00:45:35,410 --> 00:45:41,070 Mēs varam pāriet uz runāt par asimptotiskās notācija, kas 923 00:45:41,070 --> 00:45:44,580 ir tikai iedomātā veids, kā sakot runtimes Visu šo veidu. 924 00:45:44,580 --> 00:45:47,650 Tāpēc es zinu, Dāvidu, lekciju, pieskārās runtimes. 925 00:45:47,650 --> 00:45:52,124 Un viņš gāja cauri visai formulu par to, kā aprēķināt runtimes. 926 00:45:52,124 --> 00:45:53,040 Neraizējieties par to. 927 00:45:53,040 --> 00:45:54,660 Ja jūs patiešām ziņkārīgs par to, kā tas darbojas, 928 00:45:54,660 --> 00:45:55,810 justies brīvi runāt ar mani pēc iedaļas. 929 00:45:55,810 --> 00:45:57,560 Mēs varam iet cauri formulas kopā. 930 00:45:57,560 --> 00:46:00,689 Bet viss, kas jums puiši ir patiešām zina, ir tas, ka n brusas vairāk nekā 2 931 00:46:00,689 --> 00:46:01,980 ir tas pats, kas n brusas. 932 00:46:01,980 --> 00:46:04,710 Jo lielākā numuru, eksponents, aug visvairāk. 933 00:46:04,710 --> 00:46:06,590 Un tā mūsu vajadzībām, viss, kas mums rūp 934 00:46:06,590 --> 00:46:09,470 ir tas, ka milzu skaits, kas ir pieaug. 935 00:46:09,470 --> 00:46:13,340 >> Tātad, kas ir labākais gadījums runtime atlases veida? 936 00:46:13,340 --> 00:46:15,830 Ja jūs nāksies atkārtot, izmantojot sarakstu 937 00:46:15,830 --> 00:46:18,712 un tad atkārtot, izmantojot pārējā šo sarakstu, 938 00:46:18,712 --> 00:46:20,420 cik reizes ir jūs gatavojas, iespējams, 939 00:46:20,420 --> 00:46:24,612 sliktākajā case-- iekļaušanu labākajā gadījumā, sorry-- palaist cauri? 940 00:46:24,612 --> 00:46:27,070 Varbūt labāk jautājums ir jautāt, kāda ir sliktākajā gadījumā 941 00:46:27,070 --> 00:46:28,153 runtime atlases veida. 942 00:46:28,153 --> 00:46:29,366 Mērķauditorija: n brusas. 943 00:46:29,366 --> 00:46:30,740 ANDI PENG: Tas n brusas, pa labi. 944 00:46:30,740 --> 00:46:36,986 Tik viegls veids, kā domāt par tas ir kā, jebkurā laikā jums ir divas ligzdotas uz cilpas, 945 00:46:36,986 --> 00:46:38,110 tas būs n brusas. 946 00:46:38,110 --> 00:46:40,386 Jo ne tikai jūs braucot cauri vēlreiz, 947 00:46:40,386 --> 00:46:42,260 Jums jādodas atpakaļ ap un palaist caur to 948 00:46:42,260 --> 00:46:44,980 atkal iekšā katrai vērtībai. 949 00:46:44,980 --> 00:46:48,640 Tātad šajā gadījumā, jūs darbojas n reizes n brusas, kas is-- sorry, 950 00:46:48,640 --> 00:46:50,505 n reizes n, kas ir vienāds ar n brusas. 951 00:46:50,505 --> 00:46:53,230 952 00:46:53,230 --> 00:46:56,360 >> Un veida ir arī nedaudz unikāls tādā ziņā, 953 00:46:56,360 --> 00:46:59,774 ka tas nav svarīgi, ja tie vērtības ir jau kārtībā. 954 00:46:59,774 --> 00:47:01,440 Tas joprojām turpinās, lai palaistu cauri anyways. 955 00:47:01,440 --> 00:47:03,872 Let tikai teikt, tas bija 1, 2, 3, 4. 956 00:47:03,872 --> 00:47:07,080 Neatkarīgi no tā, vai tas bija rīkojums, tas joprojām būtu skrēja cauri 957 00:47:07,080 --> 00:47:08,620 un joprojām pārbauda minimālo vērtību. 958 00:47:08,620 --> 00:47:10,100 Tas būtu padarījuši pats pārbaužu skaits 959 00:47:10,100 --> 00:47:12,780 katru reizi, pat ja tā faktiski nav nekam pieskarties. 960 00:47:12,780 --> 00:47:16,940 >> Tātad šādā gadījumā, labākais un sliktākais runtimes ir faktiski līdzvērtīgi. 961 00:47:16,940 --> 00:47:19,160 Tātad sagaidāmais runtime atlases veida, 962 00:47:19,160 --> 00:47:23,790 ko mēs iecelt ar simbolu no teta, teta, šajā gadījumā, 963 00:47:23,790 --> 00:47:24,790 būtu arī n brusas. 964 00:47:24,790 --> 00:47:26,480 Visi trīs šie būtu n brusas. 965 00:47:26,480 --> 00:47:29,653 Vai ikvienam skaidrs, kāpēc Runtime ir n kvadrātā? 966 00:47:29,653 --> 00:47:33,360 967 00:47:33,360 --> 00:47:33,980 >> Viss kārtībā. 968 00:47:33,980 --> 00:47:39,120 Tāpēc es esmu tikai gatavojas ātri palaist ar pārējo veidu. 969 00:47:39,120 --> 00:47:41,137 Par algoritms burbulis sort-- atcerēties, 970 00:47:41,137 --> 00:47:43,220 šī bija pirmā Dāvids piegāja lekciju. 971 00:47:43,220 --> 00:47:46,000 Būtībā, jums soli caur visu sarakstu 972 00:47:46,000 --> 00:47:48,950 un jūs swap-- jūs tikko salīdzināt divu laikā. 973 00:47:48,950 --> 00:47:51,350 Un, ja kāds ir lielāks, par tevi tikai mijmaiņas tiem. 974 00:47:51,350 --> 00:47:53,590 Tātad, ja tie ir lielāki, jūs mijmaiņas. 975 00:47:53,590 --> 00:47:56,180 Man amatpersona tieši šeit. 976 00:47:56,180 --> 00:47:59,100 >> Tātad pieņemsim tikai teikt, jums bija 8, 6, 4, 2. 977 00:47:59,100 --> 00:48:00,571 Tu gribētu salīdzināt 8 un 6. 978 00:48:00,571 --> 00:48:01,570 Jūs nepieciešams, lai mijmaiņas tiem. 979 00:48:01,570 --> 00:48:02,610 Tu gribētu salīdzināt 8 un 4. 980 00:48:02,610 --> 00:48:03,609 Jūs nepieciešams, lai mijmaiņas tiem. 981 00:48:03,609 --> 00:48:07,000 Ja jums ir swap 8 un Vai 2, mainās arī tās. 982 00:48:07,000 --> 00:48:10,760 Tātad tādā ziņā, jūs varat redzēt, izspēlēta ilgā laika periodā, 983 00:48:10,760 --> 00:48:13,730 kā vērtības veida burbulis gali, tāpēc mēs to saucam 984 00:48:13,730 --> 00:48:15,320 burbulis šķirot. 985 00:48:15,320 --> 00:48:19,950 >> Mēs vienkārši palaist cauri atkal mūsu otrais caurlaide, un mūsu trešās caurlaide, 986 00:48:19,950 --> 00:48:21,150 un mūsu ceturtais caurlaide. 987 00:48:21,150 --> 00:48:25,820 Būtībā, burbulis šķirot vienkārši iet kamēr jums nav nekādas vairāk mijmaiņas darījumus. 988 00:48:25,820 --> 00:48:31,109 Tātad šajā ziņā, tas ir tikai vispārējais pseudocode par to. 989 00:48:31,109 --> 00:48:32,650 Neraizējieties, tie visi būs tiešsaistē. 990 00:48:32,650 --> 00:48:34,990 Mums nav faktiski iet pār to. 991 00:48:34,990 --> 00:48:38,134 >> Mēs tikko inicializēt skaitītājs mainīgais, kas sākas ar 0. 992 00:48:38,134 --> 00:48:39,800 Un mēs atkārtot cauri visam blokam. 993 00:48:39,800 --> 00:48:43,420 Un, ja kāds vērtība is-- ja tas vērtība ir lielāka nekā vērtība, 994 00:48:43,420 --> 00:48:44,610 jūs gatavojas, lai mijmaiņas tiem. 995 00:48:44,610 --> 00:48:46,860 Un tad tu esi vienkārši gatavojas, lai saglabātu turpinās. 996 00:48:46,860 --> 00:48:47,970 Un jūs gatavojas rēķināties. 997 00:48:47,970 --> 00:48:50,845 Un jūs tikai gatavojas, lai saglabātu darot šis kamēr skaitītājs ir lielāks 998 00:48:50,845 --> 00:48:53,345 par 0, kas nozīmē, ka Katru reizi, kad jums ir swap, 999 00:48:53,345 --> 00:48:55,220 jūs zināt, jūs vēlaties, lai iet atpakaļ un pārbaudīt vēlreiz. 1000 00:48:55,220 --> 00:48:59,510 Jūs vēlaties, lai saglabātu pārbaudot, kamēr jūs zināt ka jums nav swap vairs. 1001 00:48:59,510 --> 00:49:05,570 >> Tātad, kas ir labākais un sliktākais Lieta runtimes burbulis kārtot? 1002 00:49:05,570 --> 00:49:09,300 Un tas hint-- ir faktiski atšķiras no atlases veida tādā ziņā 1003 00:49:09,300 --> 00:49:11,810 ka šie divi atbildes nav vienādi. 1004 00:49:11,810 --> 00:49:14,709 Padomājiet par to, kas notiktu lietā, ja tā jau bija sakārtoti. 1005 00:49:14,709 --> 00:49:16,500 Un domāt par to, ko notiktu, ja tas bija 1006 00:49:16,500 --> 00:49:18,372 gadījumā, kad tas bija nav sakārtoti. 1007 00:49:18,372 --> 00:49:20,580 Un jūs varat veida palaist cauri, kāpēc tas notiek. 1008 00:49:20,580 --> 00:49:22,954 Es došu jums puiši, piemēram, 30 sekundes, lai padomātu par to. 1009 00:49:22,954 --> 00:49:52,330 1010 00:49:52,330 --> 00:49:53,540 >> LABI. 1011 00:49:53,540 --> 00:49:57,462 Vai kāds ir minējums pie kāda sliktākajā gadījumā runtime burbuļiem veida ir? 1012 00:49:57,462 --> 00:49:57,962 Jā. 1013 00:49:57,962 --> 00:50:07,810 >> Mērķauditorija: Vai tas būtu, piemēram, n reizes n mīnus 1 vai kaut kas tamlīdzīgs? 1014 00:50:07,810 --> 00:50:10,650 Tāpat, katru reizi, kad tā darbojas, tas ir tāpat, kā, piemēram, viens swap mazāk 1015 00:50:10,650 --> 00:50:10,960 ka neatkarīgi no tā bija. 1016 00:50:10,960 --> 00:50:12,668 >> ANDI PENG: Jā, tā tu esi pilnīgi taisnība. 1017 00:50:12,668 --> 00:50:15,940 Un šis ir gadījums, kad jūsu Atbilde bija faktiski sarežģītāka 1018 00:50:15,940 --> 00:50:17,240 nekā tā mums ir nepieciešams, lai dotu. 1019 00:50:17,240 --> 00:50:19,772 Tātad, tas notiek, lai run-- es esmu gatavojas dzēst visu šo šeit. 1020 00:50:19,772 --> 00:50:20,480 Vai visi labi? 1021 00:50:20,480 --> 00:50:21,869 Vai es varu izdzēst šo? 1022 00:50:21,869 --> 00:50:22,368 LABI. 1023 00:50:22,368 --> 00:50:27,904 1024 00:50:27,904 --> 00:50:30,320 Jūs esat gatavojas palaist cauri n reizes pirmo reizi, vai ne? 1025 00:50:30,320 --> 00:50:33,200 Un viņi gatavojas palaist cauri n mīnus 1 otro reizi, vai ne? 1026 00:50:33,200 --> 00:50:37,130 Un tad jūs gatavojas glabāt iet, n raktuves 2, un tā tālāk. 1027 00:50:37,130 --> 00:50:40,210 Dāvids darīja to lekciju, ja, ja jūs saskaita visas šīs vērtības, 1028 00:50:40,210 --> 00:50:48,080 jums kaut kas ir like-- yeah-- vairāk nekā 2, kas būtībā ir tikai samazina 1029 00:50:48,080 --> 00:50:49,784 līdz n brusas. 1030 00:50:49,784 --> 00:50:51,700 Jūs esat gatavojas iegūt dīvaini frakcija tur. 1031 00:50:51,700 --> 00:50:53,892 Un tā tikai zinu, ka n brusas vienmēr 1032 00:50:53,892 --> 00:50:55,350 prevalē pār frakciju. 1033 00:50:55,350 --> 00:50:58,450 Un tā šajā gadījumā, sliktākajā runtime būtu n brusas. 1034 00:50:58,450 --> 00:51:00,210 Ja tas bija dilstošā rīkojums, domāju, jūs 1035 00:51:00,210 --> 00:51:02,530 ir padarīt swap katru reizi. 1036 00:51:02,530 --> 00:51:05,170 >> Kas varētu būt, iespējams, labākajā gadījumā izpildlaika? 1037 00:51:05,170 --> 00:51:08,580 Pieņemsim tikai teikt, ja saraksts jau bija kārtībā, kāda būtu Runtime būt? 1038 00:51:08,580 --> 00:51:09,565 >> Mērķauditorija: n. 1039 00:51:09,565 --> 00:51:10,690 ANDI PENG: Tas ir n, tieši tā. 1040 00:51:10,690 --> 00:51:11,600 Un kāpēc tas ir n? 1041 00:51:11,600 --> 00:51:13,850 Mērķauditorija: jo jūs vienkārši ir pārbaudīt katru reizi. 1042 00:51:13,850 --> 00:51:14,770 ANDI PENG: Tieši tā. 1043 00:51:14,770 --> 00:51:17,150 Tātad vislabākajā runtime, ja šis saraksts jau bija 1044 00:51:17,150 --> 00:51:20,270 sorted-- teiksim 1, 2, 3, 4-- jums vienkārši iet cauri, jūs varētu pārbaudīt, 1045 00:51:20,270 --> 00:51:21,720 jūs varētu redzēt, ak, viņi visi pan out. 1046 00:51:21,720 --> 00:51:22,636 Man nav swap. 1047 00:51:22,636 --> 00:51:23,370 Esmu pabeidzis. 1048 00:51:23,370 --> 00:51:26,500 Tātad šajā gadījumā, tas ir tikai n vai vairāki soļi jūs vienkārši 1049 00:51:26,500 --> 00:51:29,870 bija pārbaudīt pirmajā sarakstā. 1050 00:51:29,870 --> 00:51:33,990 >> Un pēc tam, mēs tagad hit ievietošanas kārtot, kur 1051 00:51:33,990 --> 00:51:39,260 algoritms ir būtiski sadalīt tas par šķiroto un nešķirotiem porciju. 1052 00:51:39,260 --> 00:51:42,810 Un tad pa vienam, nešķirotajiem vērtības 1053 00:51:42,810 --> 00:51:46,880 ievietota to lietderīgi pozīcijas, kas saraksta sākumā. 1054 00:51:46,880 --> 00:51:52,120 >> Tā, piemēram, mums ir saraksts, 3, 5, 2, 6, 4 atkal. 1055 00:51:52,120 --> 00:51:54,750 Mēs zinām, ka tas ir šobrīd nešķiroti jo mēs esam tikai 1056 00:51:54,750 --> 00:51:57,030 sākās skatoties uz to. 1057 00:51:57,030 --> 00:52:00,610 Mēs to apskatīt, un mēs zinām, ka Pirmā vērtība ir sakārtots, labi? 1058 00:52:00,610 --> 00:52:04,190 Ja jūs tikai apskatot masīvs izmērs viens, jūs zināt, ka tas ir sakārtoti. 1059 00:52:04,190 --> 00:52:08,230 >> Tātad mēs zinām, ka Pārējie četri ir nešķiroti. 1060 00:52:08,230 --> 00:52:10,980 Mēs ejam cauri, un mēs redzam, ka vērtību. 1061 00:52:10,980 --> 00:52:11,730 Iesim atpakaļ. 1062 00:52:11,730 --> 00:52:13,130 Redzēt, ka vērtība ir 5? 1063 00:52:13,130 --> 00:52:14,110 Mēs varam doties apskatīt to. 1064 00:52:14,110 --> 00:52:15,204 Mēs salīdzinām to ar 3. 1065 00:52:15,204 --> 00:52:17,870 Mēs zinām, ka tas ir lielāks nekā 3, tāpēc mēs zinām, ka tas ir sakārtoti. 1066 00:52:17,870 --> 00:52:22,940 Tātad, mēs tagad zinām, ka pirmās divas ir sakārtoti un pēdējās trīs nav. 1067 00:52:22,940 --> 00:52:24,270 >> Mēs varam doties apskatīt 2. 1068 00:52:24,270 --> 00:52:25,720 Mēs vispirms pārbaudiet to ar 5. 1069 00:52:25,720 --> 00:52:26,700 Vai tas ir mazāk nekā 5? 1070 00:52:26,700 --> 00:52:27,240 Tas nav. 1071 00:52:27,240 --> 00:52:29,510 Tātad mums ir, lai saglabātu meklējat leju. 1072 00:52:29,510 --> 00:52:30,940 Tad jūs pārbaudīt 2 off 3. 1073 00:52:30,940 --> 00:52:31,850 Vai tas ir mazāk nekā? 1074 00:52:31,850 --> 00:52:32,350 Nē. 1075 00:52:32,350 --> 00:52:35,430 Tātad, jūs zināt, 2 ir jāievieto priekšpuses un 3 un 5 1076 00:52:35,430 --> 00:52:38,200 abiem jābūt izstumti. 1077 00:52:38,200 --> 00:52:42,190 Vai tas atkal ar 6 un 4. 1078 00:52:42,190 --> 00:52:48,962 Un mēs tikai saglabātu pārbaudot būtībā, kur mēs vienkārši pārbaudīt, pārbaudīt, pārbaudīt. 1079 00:52:48,962 --> 00:52:51,170 Un, kamēr tas ir labi amats, mēs veida tikai 1080 00:52:51,170 --> 00:52:54,890 ievietojiet to pareizā stāvoklī, kas ir, ja nosaukums no tā nāca no. 1081 00:52:54,890 --> 00:52:59,830 >> Tātad tas ir tikai algoritms, pseudocode per se, veida, 1082 00:52:59,830 --> 00:53:04,990 par to, kā mēs varētu īstenot ienesto veida. 1083 00:53:04,990 --> 00:53:05,954 Pseudocode ir šeit. 1084 00:53:05,954 --> 00:53:06,620 Tas viss ir tiešsaistē. 1085 00:53:06,620 --> 00:53:10,720 Neraizējieties, ja jūs guys ir mēģina kopēt šo leju. 1086 00:53:10,720 --> 00:53:14,500 Tātad vēlreiz, tas pats question-- ko būtu labākais un sliktākais runtimes 1087 00:53:14,500 --> 00:53:16,120 ievadīšanai veida? 1088 00:53:16,120 --> 00:53:17,750 Tas ir ļoti līdzīgs pēdējo jautājumu. 1089 00:53:17,750 --> 00:53:20,479 Es došu jums puiši, piemēram, 30 sekundes, lai padomātu par to kā labi. 1090 00:53:20,479 --> 00:53:47,150 1091 00:53:47,150 --> 00:53:50,071 >> OK Vai kāds vēlas iedodiet man sliktākais runtime? 1092 00:53:50,071 --> 00:53:50,570 Jā. 1093 00:53:50,570 --> 00:53:51,490 >> Mērķauditorija: n brusas. 1094 00:53:51,490 --> 00:53:52,573 >> ANDI PENG: Tas n brusas. 1095 00:53:52,573 --> 00:53:53,730 Un kāpēc tas ir n kvadrātā? 1096 00:53:53,730 --> 00:53:57,562 >> Mērķauditorija: Jo apgrieztā secībā, jums ir 1097 00:53:57,562 --> 00:54:02,619 iet cauri n reizes n, kas is-- 1098 00:54:02,619 --> 00:54:03,660 ANDI PENG: Jā, tieši tā. 1099 00:54:03,660 --> 00:54:06,610 Tātad pats kā burbulis šķirot. 1100 00:54:06,610 --> 00:54:08,720 Ja šis saraksts ir dilstošā secībā, jūs esat 1101 00:54:08,720 --> 00:54:11,240 nāksies pārbaudīt vispirms vienu reizi. 1102 00:54:11,240 --> 00:54:13,470 Un tad ar katru papildu vērtību, jūs esat 1103 00:54:13,470 --> 00:54:16,390 nāksies pārbaudīt to pret katru vērtību, vai ne? 1104 00:54:16,390 --> 00:54:20,290 Un tā kopā, jūs gatavojas darīt an n caurlaide reizes cits n caurlaide, kas 1105 00:54:20,290 --> 00:54:21,750 ir n brusas. 1106 00:54:21,750 --> 00:54:22,860 Kas par labākajā gadījumā? 1107 00:54:22,860 --> 00:54:24,360 Jā. 1108 00:54:24,360 --> 00:54:28,840 >> AUDITORIJA: n mīnus 1, jo Pirmais ir jau brusas. 1109 00:54:28,840 --> 00:54:30,270 >> ANDI PENG: Tātad, tuvu. 1110 00:54:30,270 --> 00:54:31,850 Atbilde ir faktiski n. 1111 00:54:31,850 --> 00:54:37,189 Jo, kamēr pirmā no tām ir sakārtots, tā nedrīkst actually-- to 1112 00:54:37,189 --> 00:54:38,980 mēs vienkārši lucked, jo šis piemērs, ka 2 1113 00:54:38,980 --> 00:54:40,930 gadījās būt mazākais skaitlis. 1114 00:54:40,930 --> 00:54:43,680 Bet tas ne vienmēr tā ir. 1115 00:54:43,680 --> 00:54:48,040 Ja 2 ir jau sakārtoti sākumā bet jums izskatīties un tur ir 1 šeit, 1116 00:54:48,040 --> 00:54:49,144 gada 1. gatavojas kliegt to. 1117 00:54:49,144 --> 00:54:51,060 Un tas notiek, lai beigtu up to bumped anyways. 1118 00:54:51,060 --> 00:54:56,250 >> Tātad labākajā gadījumā, tas ir tiešām tikai būs n. 1119 00:54:56,250 --> 00:54:59,090 Ja jums ir 1, 2, 3, 4, 5, 6, 7, 8, jūs 1120 00:54:59,090 --> 00:55:00,940 gatavojas palaist cauri ka viss saraksts reiz 1121 00:55:00,940 --> 00:55:03,430 pārbaudīt, lai redzētu, vai viss ir labi. 1122 00:55:03,430 --> 00:55:07,390 Vai visi skaidrs darbojas laiki izvēles, kā arī? 1123 00:55:07,390 --> 00:55:09,960 Es zinu, es esmu iet cauri tie ļoti ātri. 1124 00:55:09,960 --> 00:55:13,330 Bet tikai zinu, ka, ja jūs zināt vispārīgie jēdzieni, jums vajadzētu būt labi. 1125 00:55:13,330 --> 00:55:16,070 LABI. 1126 00:55:16,070 --> 00:55:19,790 Tāpēc es ņemšu tikai sniegt jums puiši varbūt, piemēram, minūtes runāt ar saviem kaimiņiem 1127 00:55:19,790 --> 00:55:21,890 par to, kas ir tikai daži no galvenajām atšķirībām 1128 00:55:21,890 --> 00:55:23,540 starp šiem veidu veidiem. 1129 00:55:23,540 --> 00:56:24,571 1130 00:56:24,571 --> 00:56:25,570 Mēs iet pār ka drīz. 1131 00:56:25,570 --> 00:56:26,444 Mērķauditorija: Ak, OK. 1132 00:56:26,444 --> 00:56:27,320 ANDI PENG: Jā. 1133 00:56:27,320 --> 00:56:28,380 LABI. 1134 00:56:28,380 --> 00:56:33,420 Atdzesē, pieņemsim jaunā sanāksmē kā klasē. 1135 00:56:33,420 --> 00:56:34,330 LABI. 1136 00:56:34,330 --> 00:56:37,579 Tātad tas bija sava veida beztermiņa jautājums tādā ziņā 1137 00:56:37,579 --> 00:56:39,120 ka tur ir daudz atbildes uz tiem. 1138 00:56:39,120 --> 00:56:40,746 Un mēs iet pār daži no tiem īsi. 1139 00:56:40,746 --> 00:56:43,411 Es tikai gribēju, lai jūs guys domājot par to, kas diferencē 1140 00:56:43,411 --> 00:56:44,530 visi trīs veidu veidu. 1141 00:56:44,530 --> 00:56:47,440 Un es dzirdēju, arī, lielisks question-- Kāda apvienot veida darīt? 1142 00:56:47,440 --> 00:56:50,110 Liels jautājums, jo tas ir ko mēs aptver nākamo. 1143 00:56:50,110 --> 00:56:52,850 >> Tātad apvienot kārtot ir viena veida, kas darbojas 1144 00:56:52,850 --> 00:56:56,100 ļoti atšķirīgi no citiem veidu. 1145 00:56:56,100 --> 00:56:58,180 Kā jūs guys var see-- Dāvids darīt, ka demo 1146 00:56:58,180 --> 00:57:01,130 kur viņš bija visu atdzist trokšņi redzēt, kā apvienot 1147 00:57:01,130 --> 00:57:04,010 kārtot skrēja, piemēram, bezgalīgi straujāk nekā pārējo divu veidu? 1148 00:57:04,010 --> 00:57:04,510 LABI. 1149 00:57:04,510 --> 00:57:07,580 Tātad, tas ir tāpēc, ka sapludināšanas Kārtot īsteno šo plaisu 1150 00:57:07,580 --> 00:57:11,020 un iekarot koncepciju, ka mēs esam runāja par daudz lekciju. 1151 00:57:11,020 --> 00:57:14,550 Tādā nozīmē, ka mēs vēlētos strādāt viedāku, ne grūtāk, ja jūs sadalīt 1152 00:57:14,550 --> 00:57:18,120 un iekarot problēmas, un izjauktu tiem uz leju, un pēc tam nodot tos kopā, 1153 00:57:18,120 --> 00:57:19,930 labas lietas vienmēr notiek. 1154 00:57:19,930 --> 00:57:21,960 >> Tātad tā, ka apvienot kārtot pēc būtības darbi 1155 00:57:21,960 --> 00:57:24,660 ir tas, ka tā dala nešķirotu masīvs pusi. 1156 00:57:24,660 --> 00:57:26,500 Un tad tas ir ieguvuši divas pusītes masīvi. 1157 00:57:26,500 --> 00:57:28,220 Un tas tikai sakārto šīs divas pusītes. 1158 00:57:28,220 --> 00:57:31,750 Tas tikai tur dalot uz pusēm, jo pusi, uz pusēm, līdz viss ir sakārtots 1159 00:57:31,750 --> 00:57:33,680 un pēc tam rekursīvi liek to visu kopā. 1160 00:57:33,680 --> 00:57:36,550 >> Tātad tas ir patiešām abstrakts. 1161 00:57:36,550 --> 00:57:38,750 Tātad tas ir tikai mazliet pseudocode. 1162 00:57:38,750 --> 00:57:41,040 Vai tas jēgas veids, kā tas darbojas? 1163 00:57:41,040 --> 00:57:43,870 Tātad pieņemsim tikai teikt, jums ir masīvs n elementiem, vai ne? 1164 00:57:43,870 --> 00:57:45,450 Ja n ir mazāks par 2, jūs varat atgriezties. 1165 00:57:45,450 --> 00:57:49,040 Jo jūs zināt, ka, ja tur ir tikai viena lieta, tā ir sakārtoti. 1166 00:57:49,040 --> 00:57:52,600 Else, jūs kārtot kreiso pusi, un tad jūs kārtot pareizo pusi, 1167 00:57:52,600 --> 00:57:54,140 un tad jūs apvienot. 1168 00:57:54,140 --> 00:57:56,979 >> Tāpēc, kamēr tas izskatās tiešām viegli, realitātē, domājot par to ir 1169 00:57:56,979 --> 00:58:00,270 veida grūti. Jo jūs esat līdzīgi, Nu, tas ir sava veida darbojas uz sevi. 1170 00:58:00,270 --> 00:58:00,769 Tiesības? 1171 00:58:00,769 --> 00:58:02,430 Tas darbojas uz sevi. 1172 00:58:02,430 --> 00:58:05,479 Tātad šajā ziņā, David pieskārās pēc recursion klasē. 1173 00:58:05,479 --> 00:58:07,270 Un tas ir jēdziens mēs runājam par daudz. 1174 00:58:07,270 --> 00:58:11,430 Tas, ka šis, šīs divas līnijas šeit, patiesībā ir tikai programma 1175 00:58:11,430 --> 00:58:13,860 stāstīt to, lai palaistu sevi ar atšķirīgu ieejas. 1176 00:58:13,860 --> 00:58:17,230 Tātad, nevis darboties pati ar tad viss n elementiem, 1177 00:58:17,230 --> 00:58:20,530 Jūs varat sadalīt minēto kreiso pusi un labajā pusē 1178 00:58:20,530 --> 00:58:22,680 un tad palaist to no jauna. 1179 00:58:22,680 --> 00:58:26,050 >> Un tad mēs skatāmies uz to vizuāli, jo es esmu vizuālo skolēns. 1180 00:58:26,050 --> 00:58:27,270 Tas darbojas labāk par mani. 1181 00:58:27,270 --> 00:58:29,890 Tātad mēs apskatīt vizuālo piemēru šeit. 1182 00:58:29,890 --> 00:58:36,237 >> Pieņemsim, ka mums ir masīvs, seši elementus, 3, 5, 2, 6, 4, 1, nav sakārtoti. 1183 00:58:36,237 --> 00:58:37,820 Labi, tur ir daudz šajā lapā. 1184 00:58:37,820 --> 00:58:43,179 Tātad, ja jūs guys var apskatīt pirmais solis šeit, 3, 5, 2, 6, 4, 1, 1185 00:58:43,179 --> 00:58:44,220 Jūs varat sadalīt to pusi. 1186 00:58:44,220 --> 00:58:45,976 Jums ir 3, 5, 2, 6, 4, 1. 1187 00:58:45,976 --> 00:58:48,850 Jūs zināt, ka tie aren't-- tevi nezinu, vai viņi šķiro vai ne, 1188 00:58:48,850 --> 00:58:52,517 lai jūs saglabātu pārkāpj tos, uz pusēm, pusi, uz pusēm, līdz beidzot, 1189 00:58:52,517 --> 00:58:53,600 jums ir tikai viens elements. 1190 00:58:53,600 --> 00:58:56,790 Un viens elements vienmēr ir sakārtots, labi? 1191 00:58:56,790 --> 00:59:01,560 >> Tātad mēs zinām, ka 3, 5, 2, 4, 6, 1, kas pašas par sevi ir sakārtoti. 1192 00:59:01,560 --> 00:59:05,870 Un tagad mēs varam nodot tos atpakaļ kopā. 1193 00:59:05,870 --> 00:59:07,510 Tātad mēs zinām 3, 5. 1194 00:59:07,510 --> 00:59:08,510 Mēs ieliekam tos kopā. 1195 00:59:08,510 --> 00:59:09,617 Mēs zinām, ka ir sakārtoti. 1196 00:59:09,617 --> 00:59:10,450 2 joprojām. 1197 00:59:10,450 --> 00:59:11,830 Mēs varam nodot 4 un 6 kopā. 1198 00:59:11,830 --> 00:59:13,996 Mēs zinām, ka tas ir sakārtots, tāpēc mēs nodot, ka kopā. 1199 00:59:13,996 --> 00:59:14,940 Un 1 ir tur. 1200 00:59:14,940 --> 00:59:18,720 >> Un tad jūs vienkārši apskatīt šīs divas pusītes tieši šeit. 1201 00:59:18,720 --> 00:59:21,300 Jums ir 3, 5, 2, 2, 3, 5. 1202 00:59:21,300 --> 00:59:23,465 Jūs varat vienkārši salīdzināt sākumā viss. 1203 00:59:23,465 --> 00:59:26,340 Jo jūs zināt, ka tas ir sakārtots un jūs zināt, ka tas ir sakārtoti. 1204 00:59:26,340 --> 00:59:29,360 Tātad jums nav pat ir salīdzināt 5, jūs vienkārši salīdzināt 3. 1205 00:59:29,360 --> 00:59:32,070 Un 2, ir mazāks par 3, tā jūs zināt, 2 jāiet beigās. 1206 00:59:32,070 --> 00:59:33,120 >> Pats tur. 1207 00:59:33,120 --> 00:59:34,740 1 ir jāiet šeit. 1208 00:59:34,740 --> 00:59:37,330 Un tad, kad jūs iet nodot šie divi lielumi kopā, 1209 00:59:37,330 --> 00:59:39,950 jūs zināt, ka tas ir sakārtots un jūs zināt, ka tas ir sakārtots. 1210 00:59:39,950 --> 00:59:43,240 Tā tad 1 un 2, 1 ir mazāks par 2. 1211 00:59:43,240 --> 00:59:45,570 Tas stāsta, ka 1 vajadzētu iet uz beigām, tas 1212 00:59:45,570 --> 00:59:47,480 pat nepaskatoties uz 3 vai 5. 1213 00:59:47,480 --> 00:59:50,100 Un tad uz 4, jūs varat vienkārši pārbaudīt, tā iet tieši šeit. 1214 00:59:50,100 --> 00:59:51,480 Jums nav jāskatās uz 5. 1215 00:59:51,480 --> 00:59:52,570 Pats ar 6. 1216 00:59:52,570 --> 00:59:55,860 Jūs zināt, ka 6-- tas vienkārši nav nepieciešams izskatījās. 1217 00:59:55,860 --> 00:59:57,870 >> Un tā šādā veidā, jūs esat tikai ietaupot sevi 1218 00:59:57,870 --> 00:59:59,526 daudz soļu, kad jūs salīdzināt. 1219 00:59:59,526 --> 01:00:02,150 Jums nav, lai salīdzinātu katru elements pret citiem elementiem. 1220 01:00:02,150 --> 01:00:05,230 Jūs vienkārši salīdzināt pret tiem, kas jums ir nepieciešams, lai salīdzinātu to pret. 1221 01:00:05,230 --> 01:00:06,870 Tātad tas ir sava veida abstraktu jēdzienu. 1222 01:00:06,870 --> 01:00:10,540 Neraizējieties, ja tas nav gluži hitting jums taisnība vēl. 1223 01:00:10,540 --> 01:00:14,740 Bet vispār, tas ir kā apvienot veida darbi. 1224 01:00:14,740 --> 01:00:17,750 Jautājumi, ātrie jautājumi, pirms es virzīties tālāk? 1225 01:00:17,750 --> 01:00:18,550 Jā. 1226 01:00:18,550 --> 01:00:22,230 >> Mērķauditorija: Tātad jūs teicāt, ka esat lietojis ar 1, un pēc tam 4, un 6 1227 01:00:22,230 --> 01:00:23,860 un nodot tos. 1228 01:00:23,860 --> 01:00:26,800 Tātad nav those-- netiek Jūs skatoties uz viņiem 1229 01:00:26,800 --> 01:00:28,544 kā atsevišķi elementi, nevis kā kopumā? 1230 01:00:28,544 --> 01:00:29,210 ANDI PENG: Jā. 1231 01:00:29,210 --> 01:00:32,020 Tātad, kas notiek ir tas, ka jūs būtībā 1232 01:00:32,020 --> 01:00:33,650 rada pavisam jaunu masīvu. 1233 01:00:33,650 --> 01:00:36,690 Tātad, jūs zināt, ka šeit, man ir divi bloki no lieluma 3, vai ne? 1234 01:00:36,690 --> 01:00:39,600 Tātad, jūs zināt, ka mans šķiroto masīvs ir jābūt seši elementi. 1235 01:00:39,600 --> 01:00:42,270 Tātad jūs vienkārši izveidot Jaunā summa atmiņas. 1236 01:00:42,270 --> 01:00:44,270 Tātad jūs esat veida, piemēram, ir izšķērdīgs atmiņas, 1237 01:00:44,270 --> 01:00:46,186 bet tas nav svarīgi jo tas ir tik mazs. 1238 01:00:46,186 --> 01:00:48,590 Tātad paskatās 1 un paskatās 2. 1239 01:00:48,590 --> 01:00:50,770 Un jūs zināt, ka 1 ir mazāks par 2. 1240 01:00:50,770 --> 01:00:53,840 Tātad, jūs zināt, ka 1 būtu jāiet sākums visiem tiem. 1241 01:00:53,840 --> 01:00:55,850 >> Jums pat nav nepieciešams apskatīt 3 un 5. 1242 01:00:55,850 --> 01:00:57,400 Tātad, jūs zināt 1 iet tur. 1243 01:00:57,400 --> 01:00:59,300 Tad jūs būtībā karbonāde off 1. 1244 01:00:59,300 --> 01:01:00,370 Tas ir, piemēram, miris pie mums. 1245 01:01:00,370 --> 01:01:03,690 Tad mēs vienkārši ir 2, 3, 5, un pēc tam 4 un 6. 1246 01:01:03,690 --> 01:01:06,270 Un tad jūs zināt, ka jūs salīdzināt 4, 2, 1247 01:01:06,270 --> 01:01:07,560 Ak, 2 vajadzētu iet tur. 1248 01:01:07,560 --> 01:01:09,685 Tātad jūs plunkšķis no 2 uz leju, jūs karbonāde to off. 1249 01:01:09,685 --> 01:01:12,060 Tātad, tad jums vienkārši ir 3 un 5 uz 4 un 6. 1250 01:01:12,060 --> 01:01:14,650 Un jūs vienkārši glabāt kapāšanas to off kamēr jūs nodot tos masīvā. 1251 01:01:14,650 --> 01:01:17,110 >> Mērķauditorija: Tātad tu esi tikai vienmēr Salīdzinot [dzirdams]? 1252 01:01:17,110 --> 01:01:17,710 >> ANDI PENG: Tieši tā. 1253 01:01:17,710 --> 01:01:19,590 Tātad šajā ziņā, tu esi vienkārši salīdzinot, būtībā, 1254 01:01:19,590 --> 01:01:21,240 viens numurs pret citu numuru. 1255 01:01:21,240 --> 01:01:22,990 Un tāpēc, ka jūs zināt ka tas ir sakārtots, jūs 1256 01:01:22,990 --> 01:01:24,350 nav jāmeklē caur visus numurus. 1257 01:01:24,350 --> 01:01:25,870 Jums tikai apskatīt pirmo. 1258 01:01:25,870 --> 01:01:27,582 Un tad jūs varat vienkārši plunkšķis tos, jo jūs zināt 1259 01:01:27,582 --> 01:01:29,640 tie pieder, ja tie ir piederīgi. 1260 01:01:29,640 --> 01:01:31,030 Jā. 1261 01:01:31,030 --> 01:01:32,920 Labs jautājums. 1262 01:01:32,920 --> 01:01:35,290 >> Un tad, ja kāds no jums ir mazliet ambiciozs, 1263 01:01:35,290 --> 01:01:38,660 justies brīvi apskatīt šo kodu. 1264 01:01:38,660 --> 01:01:40,680 Tas ir faktiski fiziskā īstenošana 1265 01:01:40,680 --> 01:01:42,150 par to, kā mēs varētu rakstīt sapludināšanas veida. 1266 01:01:42,150 --> 01:01:44,070 Un jūs varat redzēt, tas ir ļoti īss. 1267 01:01:44,070 --> 01:01:46,310 Bet idejas aiz tas ir diezgan sarežģīti. 1268 01:01:46,310 --> 01:01:50,865 Tātad, ja jūs jūtaties kā zīmēšanas šo out jūsu mājasdarbu šovakar, justies brīvi. 1269 01:01:50,865 --> 01:01:54,050 1270 01:01:54,050 --> 01:01:54,740 >> LABI. 1271 01:01:54,740 --> 01:01:58,070 Tātad Dāvids arī gāja pāri šo lekciju. 1272 01:01:58,070 --> 01:02:00,660 Kāds ir labākais lieta runtimes, vissliktākie runtimes, 1273 01:02:00,660 --> 01:02:05,680 un paredzamās runtimes no sapludināšanas veida? 1274 01:02:05,680 --> 01:02:07,260 Pāris sekundes domāt. 1275 01:02:07,260 --> 01:02:11,198 Tas ir diezgan grūti, bet sava veida intuitīvs, ja jūs domājat par to. 1276 01:02:11,198 --> 01:02:20,090 1277 01:02:20,090 --> 01:02:23,054 Viss kārtībā. 1278 01:02:23,054 --> 01:02:25,269 >> Mērķauditorija: Vai sliktākajā gadījumā n log n? 1279 01:02:25,269 --> 01:02:26,060 ANDI PENG: Tieši tā. 1280 01:02:26,060 --> 01:02:29,380 Un kāpēc tas ir n log n. 1281 01:02:29,380 --> 01:02:32,230 >> Mērķauditorija: Vai nav tā, jo tas kļūst eksponenciāli ātrāk, 1282 01:02:32,230 --> 01:02:35,390 tāpēc tas ir, piemēram, atkarībā no ka nevis tikai vienkārši ir n 1283 01:02:35,390 --> 01:02:37,529 brusas vai kaut kas? 1284 01:02:37,529 --> 01:02:38,320 ANDI PENG: Tieši tā. 1285 01:02:38,320 --> 01:02:40,750 Tātad iemesls, kāpēc runtime par šo ir n log 1286 01:02:40,750 --> 01:02:44,310 n ir because-- Ko jūs dara visu no šiem pasākumiem? 1287 01:02:44,310 --> 01:02:46,190 Tu esi tikai kapāšanas to pusi, vai ne? 1288 01:02:46,190 --> 01:02:48,750 Un tad, kad mēs darām log, visu, ko tā dara 1289 01:02:48,750 --> 01:02:53,150 ir dalot problēma pusi, pusi, uz pusēm, jo ​​vairāk daļās. 1290 01:02:53,150 --> 01:02:56,430 Un šajā ziņā, jūs varat veida no likvidēt lineārais modelis 1291 01:02:56,430 --> 01:02:57,510 ka mēs esam izmantojuši. 1292 01:02:57,510 --> 01:03:00,254 Jo, kad jūs karbonāde lietas pusi, tas ir žurnāls. 1293 01:03:00,254 --> 01:03:02,420 Tas ir tikai matemātisks veids, kā to pārstāv. 1294 01:03:02,420 --> 01:03:06,310 >> Un tad beidzot, beigās, jūs esat tikai veicot vienu pēdējo iziet cauri 1295 01:03:06,310 --> 01:03:07,930 likt tiem visiem kārtībā, vai ne? 1296 01:03:07,930 --> 01:03:10,330 Un tādēļ, ja jums vienkārši ir pārbaudīt viena lieta, kas ir n. 1297 01:03:10,330 --> 01:03:13,420 Un tā jūs esat veida reizinot abas kopā. 1298 01:03:13,420 --> 01:03:17,660 Tātad, tas ir tāpat kā tev, ka galīgais pārbaudīt n leju šeit ar log n 1299 01:03:17,660 --> 01:03:18,390 šeit. 1300 01:03:18,390 --> 01:03:21,060 Un, ja jūs reizināt tos, kas ir n log n. 1301 01:03:21,060 --> 01:03:26,100 >> Un tāpēc labākais gadījums, un sliktākajā lieta un paredzams, ka visi ir n log n. 1302 01:03:26,100 --> 01:03:27,943 Tas ir arī, piemēram, cita veida. 1303 01:03:27,943 --> 01:03:30,090 Tas ir tāpat kā atlases veida kas nozīmē, ka tā 1304 01:03:30,090 --> 01:03:32,131 nav svarīgi, kādas ir jūsu saraksts ir, tas ir tikai gatavojas 1305 01:03:32,131 --> 01:03:34,801 darīt to pašu katru reizi. 1306 01:03:34,801 --> 01:03:35,300 LABI. 1307 01:03:35,300 --> 01:03:39,950 Tātad, kā jūs guys var redzēt, kaut arī par veidu, ka mēs esam izgājuši through-- n 1308 01:03:39,950 --> 01:03:41,660 brusas, tas nav ļoti efektīva. 1309 01:03:41,660 --> 01:03:47,060 Un pat tas n log n ir nav efektīvākais. 1310 01:03:47,060 --> 01:03:49,720 Ja jūs guys ir interese, tur ir kārtot mehānismi 1311 01:03:49,720 --> 01:03:54,310 kas ir tik efektīva, ka viņi gandrīz būtībā dzīvoklis runtime. 1312 01:03:54,310 --> 01:03:55,420 >> Jūs esat ieguvuši dažas žurnālu n s. 1313 01:03:55,420 --> 01:03:58,190 Jūs esat ieguvuši dažas log log n s. 1314 01:03:58,190 --> 01:04:00,330 Mums nav pieskarties uz tiem šajā klasē tieši tagad. 1315 01:04:00,330 --> 01:04:02,663 Bet, ja jūs guys ir ziņkārīgs, justies brīvi google, kas ir 1316 01:04:02,663 --> 01:04:04,392 visefektīvākie šķirošanas mehānismi. 1317 01:04:04,392 --> 01:04:06,350 Es nezinu, ir daži patiešām smieklīgi tiem, 1318 01:04:06,350 --> 01:04:09,860 like-- tur ir daži patiešām smieklīgi tie, ka cilvēki dara. 1319 01:04:09,860 --> 01:04:12,210 Un jūs brīnums, kā viņi kādreiz domājuši par to. 1320 01:04:12,210 --> 01:04:15,730 Tātad google, ja jums ir dažas rezerves laiks, uz, kādi ir daži smieklīgi veidi 1321 01:04:15,730 --> 01:04:17,730 ka people-- kā arī Efektīvākās ways-- cilvēki 1322 01:04:17,730 --> 01:04:20,371 spējuši īstenot veidu. 1323 01:04:20,371 --> 01:04:20,870 LABI. 1324 01:04:20,870 --> 01:04:22,880 Un šeit ir tikai ērts maz diagramma. 1325 01:04:22,880 --> 01:04:26,850 Es zinu, jūs visus, pirms šī viktorīnu 0, būs savā istabā, iespējams, mēģina 1326 01:04:26,850 --> 01:04:27,960 iegaumēt, ka. 1327 01:04:27,960 --> 01:04:30,940 Tātad tas ir jauki, jo tur jums puiši. 1328 01:04:30,940 --> 01:04:37,120 Tikai neaizmirstiet loģiku, ka made-- kāpēc šie skaitļi bija noticis. 1329 01:04:37,120 --> 01:04:39,870 Ja jūs vienmēr zaudēja, tikai padara pārliecināts, ka jūs zināt, kas ir veida. 1330 01:04:39,870 --> 01:04:40,820 Un jūs varat palaist caur tos savā prātā 1331 01:04:40,820 --> 01:04:42,903 saprast, kāpēc tiem, atbildes ir šīs atbildes. 1332 01:04:42,903 --> 01:04:46,250 1333 01:04:46,250 --> 01:04:47,600 >> Viss kārtībā. 1334 01:04:47,600 --> 01:04:49,680 Tātad mēs ejam, lai pārvietotos gada, visbeidzot, meklēšanu. 1335 01:04:49,680 --> 01:04:51,638 Jo, kā tiem no jums, kurš ir izlasījis PSET, 1336 01:04:51,638 --> 01:04:55,175 meklēšana ir arī daļa no šīs nedēļas problēma komplekti. 1337 01:04:55,175 --> 01:04:57,300 Jums tiks lūgts, lai īstenotu divu veidu meklēšanu. 1338 01:04:57,300 --> 01:05:00,070 Viens no tiem ir lineāra meklēšanas un viens ir bināro meklēšanu. 1339 01:05:00,070 --> 01:05:01,760 >> Tātad lineārā meklēšana ir diezgan viegli. 1340 01:05:01,760 --> 01:05:04,070 Jūs vienkārši vēlaties meklēt elements no saraksta, lai redzētu, vai jums to. 1341 01:05:04,070 --> 01:05:05,444 Jums tikai atkārtot, izmantojot. 1342 01:05:05,444 --> 01:05:08,170 Un, ja tas ir vienāds ar kaut ko, Jūs varat atgriezties to, vai ne? 1343 01:05:08,170 --> 01:05:10,890 Bet viens, ka mēs esam visvairāk ieinteresēti runāt par 1344 01:05:10,890 --> 01:05:14,550 ir bināro meklēšanu, tiesības, kas ir skaldi un valdi mehānismu, kas 1345 01:05:14,550 --> 01:05:18,190 David demonstrēja lekciju. 1346 01:05:18,190 --> 01:05:20,810 >> Atcerieties tālruņu grāmatas piemēru ka viņš tur audzina, 1347 01:05:20,810 --> 01:05:23,960 viens, ka viņš veida cīnījās mazliet par šo pagājušajā gadā, 1348 01:05:23,960 --> 01:05:27,530 kur jūs sadalīt problēmu uz pusēm, pusi, uz pusēm, atkal un atkal, 1349 01:05:27,530 --> 01:05:30,730 līdz jūs atradīsiet to, ko jūs meklējat? 1350 01:05:30,730 --> 01:05:33,727 Un jūs esat ieguvuši runtime no tā, kā labi. 1351 01:05:33,727 --> 01:05:35,810 Un jūs varat redzēt, tas ir ievērojami efektīvāki 1352 01:05:35,810 --> 01:05:39,080 nekā jebkura cita veida meklēšanu. 1353 01:05:39,080 --> 01:05:41,880 >> Tātad tā, ka mēs varētu iet par Īstenojot bināro meklēšanu 1354 01:05:41,880 --> 01:05:46,510 ir, ja mums bija masīvs, indekss 0 līdz 6, septiņi elementi, 1355 01:05:46,510 --> 01:05:49,790 mēs varam skatīties vidū, right-- sorry, ja mūsu jautājumu first-- 1356 01:05:49,790 --> 01:05:53,840 ja mēs vēlamies uzdot jautājumu, vai masīvs satur no 7 elementu, 1357 01:05:53,840 --> 01:05:56,840 protams, ir cilvēki, un, ņemot tik maza masīvs, tas ir viegli mums 1358 01:05:56,840 --> 01:05:58,210 teikt jā. 1359 01:05:58,210 --> 01:06:05,750 Bet veids, kā īstenot bināro meklēšana būtu meklēt vidū. 1360 01:06:05,750 --> 01:06:08,020 >> Mēs zinām, ka indekss ir 3 vidū, jo mēs 1361 01:06:08,020 --> 01:06:09,270 zinu, ka ir septiņi elementi. 1362 01:06:09,270 --> 01:06:10,670 Ko 7 dalīts ar 2? 1363 01:06:10,670 --> 01:06:12,850 Jūs varat karbonāde off ka papildus 1. 1364 01:06:12,850 --> 01:06:14,850 Jūs esat ieguvuši 3 vidū. 1365 01:06:14,850 --> 01:06:17,590 Tātad ir masīvs 3 vienāds ar 7? 1366 01:06:17,590 --> 01:06:18,900 Tā nav, vai ne? 1367 01:06:18,900 --> 01:06:21,050 Bet mēs varam darīt pāris pārbaudes. 1368 01:06:21,050 --> 01:06:25,380 Vai masīvs 3 mazāk nekā 7 vai ir masīvs no 3 lielāks par 7? 1369 01:06:25,380 --> 01:06:27,240 >> Un mēs zinām, ka tas ir mazāk nekā 7. 1370 01:06:27,240 --> 01:06:30,259 Tātad mēs zinām, ka, ak, tai nav būt kreisajā pusē. 1371 01:06:30,259 --> 01:06:32,300 Mēs zinām, ka tai ir jābūt pareizajā pusē, vai ne? 1372 01:06:32,300 --> 01:06:34,662 Tātad, mēs varam tikai karbonāde off pusi masīvs. 1373 01:06:34,662 --> 01:06:36,370 Mums nav pat ir apskatīt to vairs. 1374 01:06:36,370 --> 01:06:38,711 Jo mēs zinām, ka puse no mūsu problem-- 1375 01:06:38,711 --> 01:06:41,210 mēs zinām, ka atbilde ir labajā pusē mūsu problēmas. 1376 01:06:41,210 --> 01:06:42,580 Tātad mēs vienkārši apskatīt, ka tagad. 1377 01:06:42,580 --> 01:06:44,860 >> Tāpēc tagad mēs skatāmies vidū to, ​​kas ir pa kreisi. 1378 01:06:44,860 --> 01:06:46,880 Šis indekss 5. 1379 01:06:46,880 --> 01:06:50,200 Mēs darām to pašu pārbaudi vēlreiz un mēs redzam, ka tas ir mazāks. 1380 01:06:50,200 --> 01:06:52,050 Tātad mēs skatāmies pa kreisi no tā. 1381 01:06:52,050 --> 01:06:53,430 Un tad mēs redzam, ka pārbaudi. 1382 01:06:53,430 --> 01:06:57,600 Vai masīvs vērtība indekss 4 vienāda ar 7? 1383 01:06:57,600 --> 01:06:58,260 Tas ir. 1384 01:06:58,260 --> 01:07:03,580 Tātad, mēs varam atgriezties taisnība, jo mēs atradām vērtību mūsu sarakstā. 1385 01:07:03,580 --> 01:07:06,738 Vai, kā es gāju cauri ka jēgas visiem? 1386 01:07:06,738 --> 01:07:08,760 LABI. 1387 01:07:08,760 --> 01:07:11,670 Es došu jums puiši varbūt, piemēram, trīs, četras minūtes, lai noskaidrotu 1388 01:07:11,670 --> 01:07:13,270 Kā pseudocode to. 1389 01:07:13,270 --> 01:07:18,070 >> Tik iedomāties es lūdzu jūs rakstīt funkcija sauc meklēšana (), kas atgriezās 1390 01:07:18,070 --> 01:07:20,640 vērtība, Būla vērtība, tas bija patiess vai false--, piemēram, 1391 01:07:20,640 --> 01:07:22,970 taisnība, ja jūs atradis vērtība, false, ja jums nav. 1392 01:07:22,970 --> 01:07:25,230 Un tad tu biji nodots vērtības jums 1393 01:07:25,230 --> 01:07:28,410 meklējām uz vērtībām, kas ir array-- oh, es noteikti likts 1394 01:07:28,410 --> 01:07:29,410 ka nepareizā vietā. 1395 01:07:29,410 --> 01:07:29,580 LABI. 1396 01:07:29,580 --> 01:07:31,829 Anyways, ka ir jābūt bijis pa labi no vērtībām. 1397 01:07:31,829 --> 01:07:36,280 Un tad int n ir skaitlis Elementu šajā masīvā. 1398 01:07:36,280 --> 01:07:39,430 Kā jūs iet par mēģina lai pseudocode šo problēmu? 1399 01:07:39,430 --> 01:07:41,630 Es došu jums puiši, piemēram, trīs minūtes, lai to izdarītu. 1400 01:07:41,630 --> 01:08:00,137 1401 01:08:00,137 --> 01:08:02,595 Nē, es domāju, ka tur ir only-- yeah, tur ir viena taisnība šeit. 1402 01:08:02,595 --> 01:08:03,261 Mērķauditorija: Vai es varu? 1403 01:08:03,261 --> 01:08:04,388 ANDI PENG: Jā, es saņēmu tevi. 1404 01:08:04,388 --> 01:08:09,410 1405 01:08:09,410 --> 01:08:11,050 Vai tas darbojas? 1406 01:08:11,050 --> 01:08:12,290 OK, atdzesē. 1407 01:08:12,290 --> 01:10:43,590 1408 01:10:43,590 --> 01:10:44,720 >> LABI. 1409 01:10:44,720 --> 01:10:47,630 Visas tiesības puiši, mēs esam gatavojas iegrožot to. 1410 01:10:47,630 --> 01:10:49,730 LABI. 1411 01:10:49,730 --> 01:10:54,020 Tātad pieņemu, mēs esam ieguvuši šo skaisto maz masīvs ar n vērtībām tajā. 1412 01:10:54,020 --> 01:10:55,170 Man nebija zīmēt līnijas. 1413 01:10:55,170 --> 01:10:58,649 Bet kā būtu mēs iet par cenšos rakstīt šo? 1414 01:10:58,649 --> 01:11:00,440 Vai kāds vēlas iedodiet man pirmajā rindā? 1415 01:11:00,440 --> 01:11:02,814 Ja jūs vēlaties, lai dotu man Pirmajā rindā no šīs pseudocode. 1416 01:11:02,814 --> 01:11:06,563 1417 01:11:06,563 --> 01:11:08,430 >> Mērķauditorija: [dzirdams] 1418 01:11:08,430 --> 01:11:10,138 Mērķauditorija: Jūs vēlaties, atkārtot through-- 1419 01:11:10,138 --> 01:11:11,094 Mērķauditorija: Just another cilpas? 1420 01:11:11,094 --> 01:11:11,760 Mērķauditorija: --for. 1421 01:11:11,760 --> 01:11:15,880 1422 01:11:15,880 --> 01:11:17,780 >> ANDI PENG: Tātad šis viens ir mazliet viltīgs. 1423 01:11:17,780 --> 01:11:23,130 Padomā about-- vēlaties lai saglabātu darboties šo cilpa 1424 01:11:23,130 --> 01:11:27,950 atkal un atkal, līdz, ja? 1425 01:11:27,950 --> 01:11:30,819 >> Mērķauditorija: Līdz [nedzirdama] vērtība ir vienāda ar minēto vērtību. 1426 01:11:30,819 --> 01:11:31,610 ANDI PENG: Tieši tā. 1427 01:11:31,610 --> 01:11:33,900 Tātad jūs varat faktiski tikai write-- mēs pat varam vienkāršot to vairāk. 1428 01:11:33,900 --> 01:11:35,630 Mēs varam tikai darīt, kamēr cilpa, vai ne? 1429 01:11:35,630 --> 01:11:39,380 Tātad, jūs varat vienkārši ir loop-- mēs zinām, ka tā ir, bet. 1430 01:11:39,380 --> 01:11:42,850 Bet tagad labi, es eju teikt "cilpu" - ar ko? 1431 01:11:42,850 --> 01:11:46,640 Loop until-- kas ir Mūsu beidzas stāvoklis? 1432 01:11:46,640 --> 01:11:47,510 Es domāju, ka es dzirdēju to. 1433 01:11:47,510 --> 01:11:48,530 Es dzirdēju kādu sakām to. 1434 01:11:48,530 --> 01:11:51,255 >> Mērķauditorija: Vērtības ir vienāds vidū. 1435 01:11:51,255 --> 01:11:52,255 ANDI PENG: Pasaki to vēlreiz. 1436 01:11:52,255 --> 01:11:54,470 Mērķauditorija: Vai, kamēr vērtība jūs meklējat 1437 01:11:54,470 --> 01:11:58,470 , ir vienāda ar vidējo vērtību. 1438 01:11:58,470 --> 01:12:00,280 >> ANDI PENG: Ko darīt, ja tas nav tur? 1439 01:12:00,280 --> 01:12:03,113 Ko darīt, ja vērtība jūs meklējat jo faktiski nav šajā masīvā? 1440 01:12:03,113 --> 01:12:05,890 Mērķauditorija: Tu atgriezīsies 1. 1441 01:12:05,890 --> 01:12:08,850 >> ANDI PENG: Bet ko mēs gribam cilpa, kamēr, ja mums ir stāvoklī? 1442 01:12:08,850 --> 01:12:09,350 Jā. 1443 01:12:09,350 --> 01:12:11,239 >> Mērķauditorija: Līdz tur ir tikai viena vērtība? 1444 01:12:11,239 --> 01:12:13,530 ANDI PENG: Jūs varat cilpa until-- lai jūs zināt, ka jūs esat 1445 01:12:13,530 --> 01:12:15,714 nāksies max vērtība, vai ne? 1446 01:12:15,714 --> 01:12:18,130 Un jūs zināt, ka jūs gatavojas lai būtu min vērtība, vai ne? 1447 01:12:18,130 --> 01:12:20,379 Jo arī, tas ir kaut kas Es aizmirsu pirms teikt, 1448 01:12:20,379 --> 01:12:22,640 ka kaut kas ir kritiska par bināro meklēšanu 1449 01:12:22,640 --> 01:12:24,182 ir tas, ka jūsu masīva jau ir sakārtoti. 1450 01:12:24,182 --> 01:12:26,973 Jo tur nav veids, kā to tas ja viņi tikai izlases vērtībām. 1451 01:12:26,973 --> 01:12:29,190 Jūs nezināt, ja viens ir lielāks nekā otru, labi? 1452 01:12:29,190 --> 01:12:32,720 >> Tātad, jūs zināt, ka jūsu max un Jūsu mins ir šeit, vai ne? 1453 01:12:32,720 --> 01:12:35,590 Ja jūs esat būs pielāgojot Jūsu max jūsu min un mid-- 1454 01:12:35,590 --> 01:12:38,470 pieņemsim tikai uzņemties savu mid vērtība ir taisnība here-- 1455 01:12:38,470 --> 01:12:43,910 jūs gatavojas būtībā cilpa, kamēr jūsu minimums ir 1456 01:12:43,910 --> 01:12:47,510 apmēram tāds pats kā jūsu max, pa labi, vai ja jūsu max ir tas pats kā jūsu min. 1457 01:12:47,510 --> 01:12:48,040 Tiesības? 1458 01:12:48,040 --> 01:12:51,340 Jo tad, kad tas notiks, jūs zināt, ka jūs esat beidzot hit pašu vērtību. 1459 01:12:51,340 --> 01:12:59,135 Tātad jūs vēlaties, lai cilpa, kamēr jūsu min ir mazāks par vai vienāds kuri paredzēti, Ups, 1460 01:12:59,135 --> 01:13:01,510 ne mazāks par vai vienāds ar, Otrs veids around-- maks ir. 1461 01:13:01,510 --> 01:13:15,110 1462 01:13:15,110 --> 01:13:16,160 >> Vai, ka jēga? 1463 01:13:16,160 --> 01:13:18,810 Paņēmu dažas mēģina iegūt šīs tiesības. 1464 01:13:18,810 --> 01:13:21,869 Bet cilpa līdz Jūsu max vērtības būtībā gandrīz mazāk 1465 01:13:21,869 --> 01:13:23,410 par vai vienāds ar savu minimumu, vai ne? 1466 01:13:23,410 --> 01:13:25,201 Tas ir, kad jūs zināt ka jūs esat izlīdzinājušās. 1467 01:13:25,201 --> 01:13:29,290 Mērķauditorija: Kad būtu jūsu maksimālā vērtība ir mazāka par minimālo? 1468 01:13:29,290 --> 01:13:31,040 ANDI PENG: Ja jūs paturiet pielāgojot to, kas 1469 01:13:31,040 --> 01:13:32,380 ir tas, ko mēs gatavojamies lai dara to. 1470 01:13:32,380 --> 01:13:33,460 Vai tas ir jēga? 1471 01:13:33,460 --> 01:13:35,750 Minimālā un max ir tikai veseli skaitļi, kas mums ir, iespējams, 1472 01:13:35,750 --> 01:13:39,260 gatavojas vēlaties, lai izveidotu, lai saglabātu trase, kur mēs meklējam. 1473 01:13:39,260 --> 01:13:41,790 Jo masīvs eksistē neatkarīgi no tā, ko mēs darām. 1474 01:13:41,790 --> 01:13:45,030 Tāpat, mēs esam faktiski nav fiziski kapāšanas pie masīva, vai ne? 1475 01:13:45,030 --> 01:13:47,261 Mēs esam tikai pielāgojot kur mēs meklējam. 1476 01:13:47,261 --> 01:13:48,136 Vai tas ir jēga? 1477 01:13:48,136 --> 01:13:48,472 >> Mērķauditorija: Jā. 1478 01:13:48,472 --> 01:13:49,110 >> ANDI PENG: OK. 1479 01:13:49,110 --> 01:13:57,090 Tātad, ja tas ir nosacījums mūsu cilpas, Ko mēs gribam iekšā šīs cilpas? 1480 01:13:57,090 --> 01:13:58,700 Ko mēs gribam būt vēlas darīt? 1481 01:13:58,700 --> 01:14:02,390 Tāpēc tieši tagad, mēs esam ieguvuši max un min, pa labi, 1482 01:14:02,390 --> 01:14:04,962 droši vien radīja šeit kaut kur. 1483 01:14:04,962 --> 01:14:07,170 Mēs ejam, lai, iespējams, vēlas atrast vidū, labi? 1484 01:14:07,170 --> 01:14:08,450 Kā mēs gribam būt iespēja atrast vidū? 1485 01:14:08,450 --> 01:14:09,491 Kas ir mathematical-- 1486 01:14:09,491 --> 01:14:11,079 Mērķauditorija: Max plus min dalīts ar 2. 1487 01:14:11,079 --> 01:14:11,870 ANDI PENG: Tieši tā. 1488 01:14:11,870 --> 01:14:20,300 1489 01:14:20,300 --> 01:14:21,620 Vai tas ir jēga? 1490 01:14:21,620 --> 01:14:25,780 Un jūs guys redzēt, kāpēc mēs nebija tikai use-- kāpēc mēs to darījām 1491 01:14:25,780 --> 01:14:27,850 nevis dara tikai n dalot ar 2? 1492 01:14:27,850 --> 01:14:30,310 Tas ir tāpēc, ka n ir vērtība kas notiek, lai palikt tāds pats. 1493 01:14:30,310 --> 01:14:30,979 Tiesības? 1494 01:14:30,979 --> 01:14:34,020 Bet kā mēs pielāgot mūsu minimumu un maksimālās vērtības, viņi gatavojas mainīt. 1495 01:14:34,020 --> 01:14:36,040 Un kā rezultātā, mūsu vidējā gatavojas mainīt too. 1496 01:14:36,040 --> 01:14:37,873 Tātad, tāpēc mēs vēlamies darīt šīs tiesības šeit. 1497 01:14:37,873 --> 01:14:38,510 LABI. 1498 01:14:38,510 --> 01:14:41,600 >> Un tad tagad, mēs esam noskaidrojuši our-- yeah. 1499 01:14:41,600 --> 01:14:44,270 >> Mērķauditorija: Just a quick question-- kad jūs sakāt min un max, 1500 01:14:44,270 --> 01:14:46,410 mēs pieņemot, ka tas jau sakārtoti? 1501 01:14:46,410 --> 01:14:48,400 >> ANDI PENG: Jā, tas tiešām ir priekšnoteikums bināro meklēšanu, 1502 01:14:48,400 --> 01:14:49,816 kas jums ir jāzina, tas ir sakārtoti. 1503 01:14:49,816 --> 01:14:53,660 Kurš ir iemesls, kāpēc kārtot, jūs rakstīt savu Problēma noteikti pirms jūsu bināro meklēšanu. 1504 01:14:53,660 --> 01:14:55,910 LABI. 1505 01:14:55,910 --> 01:14:58,876 Tāpēc tagad, ka mēs zinām, kur mūsu viduspunktā ir, ko jūs vēlaties darīt šeit? 1506 01:14:58,876 --> 01:15:01,789 1507 01:15:01,789 --> 01:15:04,319 >> Mērķauditorija: Mēs vēlamies, lai salīdzinātu ka uz otru. 1508 01:15:04,319 --> 01:15:05,110 ANDI PENG: Tieši tā. 1509 01:15:05,110 --> 01:15:12,280 Tātad jūs gatavojas, lai salīdzinātu vidus līdz vērtībai, vai ne? 1510 01:15:12,280 --> 01:15:14,900 1511 01:15:14,900 --> 01:15:18,670 Un ko tas pateiks mums, kad mēs salīdzinām? 1512 01:15:18,670 --> 01:15:22,226 Ko mēs vēlamies darīt pēc tam? 1513 01:15:22,226 --> 01:15:25,389 >> Mērķauditorija: Ja vērtība ir lielāka nekā vidū, mēs vēlamies samazināt to off. 1514 01:15:25,389 --> 01:15:26,180 ANDI PENG: Tieši tā. 1515 01:15:26,180 --> 01:15:33,940 Tātad, ja vērtība ir lielāka nekā vidū, mēs esam 1516 01:15:33,940 --> 01:15:36,550 gatavojas vēlaties mainīt šos Minimālā un maxes, labi? 1517 01:15:36,550 --> 01:15:38,980 Ko mēs gribam mainīt? 1518 01:15:38,980 --> 01:15:42,145 Tātad, ja mēs zinām, vērtība ir kaut kur šeit, ko jūs mums jāmaina? 1519 01:15:42,145 --> 01:15:44,758 Mēs vēlamies mainīt mūsu minimums būt vidus, labi? 1520 01:15:44,758 --> 01:15:49,420 1521 01:15:49,420 --> 01:15:54,292 Un tad vēl, ja tas ir šajā puse, ko mēs gribam mainīt? 1522 01:15:54,292 --> 01:15:55,306 >> Mērķauditorija: Jūsu maksimums. 1523 01:15:55,306 --> 01:15:55,972 ANDI PENG: Jā. 1524 01:15:55,972 --> 01:16:02,597 1525 01:16:02,597 --> 01:16:04,680 Un tad jūs tikai gatavojas saglabāt looping, vai ne? 1526 01:16:04,680 --> 01:16:08,920 Jo tagad, pēc viena atkārtojuma izmantojot, jūs esat ieguvuši max šeit. 1527 01:16:08,920 --> 01:16:10,760 Un tad jūs varat pārrēķināt mid. 1528 01:16:10,760 --> 01:16:11,990 Un tad jūs varat salīdzināt. 1529 01:16:11,990 --> 01:16:14,766 Un jūs gatavojas, lai saglabātu turpinās līdz min un maxes 1530 01:16:14,766 --> 01:16:15,890 būtībā izlīdzinājušās. 1531 01:16:15,890 --> 01:16:17,890 Un tas ir tad, kad jūs zināt, ka jūs esat hit beigām tā. 1532 01:16:17,890 --> 01:16:20,280 Un nu jūs esat atradis vai jums ir ne tajā brīdī. 1533 01:16:20,280 --> 01:16:23,170 >> Vai tas ir jēga, lai visiem? 1534 01:16:23,170 --> 01:16:26,020 1535 01:16:26,020 --> 01:16:26,770 LABI. 1536 01:16:26,770 --> 01:16:27,900 Tas ir diezgan svarīgi, jo jums ir 1537 01:16:27,900 --> 01:16:29,760 rakstīt šo jūsu kodu šovakar. 1538 01:16:29,760 --> 01:16:32,660 Bet jums puiši ir diezgan labs sajūtu, ko jums vajadzētu darīt, 1539 01:16:32,660 --> 01:16:34,051 kas ir labs. 1540 01:16:34,051 --> 01:16:34,550 LABI. 1541 01:16:34,550 --> 01:16:38,840 Tātad, mēs esam ieguvuši apmēram septiņi minūtes atstāja nodaļu. 1542 01:16:38,840 --> 01:16:43,170 Tāpēc mēs esam gatavojas runāt par Tas PSET, ka mums būs darīt. 1543 01:16:43,170 --> 01:16:46,410 Tātad PSET ir sadalīta divās daļās. 1544 01:16:46,410 --> 01:16:50,230 Pirmajā pusē ir saistīta Īstenojot Find 1545 01:16:50,230 --> 01:16:54,210 kurā jūs rakstīt lineāra meklēšana, bināro meklēšanu, kā arī šķirošanas algoritmu. 1546 01:16:54,210 --> 01:16:56,690 >> Tātad šis ir pirmais reizi pēc PSET kur 1547 01:16:56,690 --> 01:17:00,050 mēs būsim sniedzot jums puiši, ko sauc sadales kods, kas ir kodu 1548 01:17:00,050 --> 01:17:02,740 ka mēs esam iepriekš rakstīts, bet tikai pa kreisi dažus gabalus off 1549 01:17:02,740 --> 01:17:04,635 lai jūs varētu pabeigt rakstīšanu. 1550 01:17:04,635 --> 01:17:07,510 Tātad jums puiši, ja jūs apskatīt šo kods, jūs varētu saņemt patiešām nobijies. 1551 01:17:07,510 --> 01:17:08,630 Ja jūs vienkārši vēlaties, Ahh, es nezinu, ko tas dara, 1552 01:17:08,630 --> 01:17:11,670 Es nezinu, kā, piemēram, tas, šķiet, tik sarežģīti, ahh, atpūsties. 1553 01:17:11,670 --> 01:17:12,170 Ir labi. 1554 01:17:12,170 --> 01:17:12,930 Lasīt spec. 1555 01:17:12,930 --> 01:17:16,920 Spec izskaidros jums tieši Ko visas šīs programmas dara. 1556 01:17:16,920 --> 01:17:20,560 >> Piemēram, generate.c ir programma kas nāks ar savu PSET. 1557 01:17:20,560 --> 01:17:24,060 Jums nav tiešām ir pieskarties, bet Jums vajadzētu saprast, ko tas dara. 1558 01:17:24,060 --> 01:17:28,550 Un generate.c, visi tā dara, ir nu radot izlases skaitu 1559 01:17:28,550 --> 01:17:32,400 vai jūs varat dot to sēklas, piemēram, iepriekš sagatavots numurs ka tas notiek, 1560 01:17:32,400 --> 01:17:34,140 un tas rada vairāk numuru. 1561 01:17:34,140 --> 01:17:37,170 Tātad tur ir īpašs veids, kā īstenot generate.c kurā 1562 01:17:37,170 --> 01:17:42,760 Jūs varat vienkārši veikt ķekars numuriem lai jūs varētu pārbaudīt jūsu citas metodes on. 1563 01:17:42,760 --> 01:17:45,900 >> Tātad, ja jūs vēlaties, lai, Piemēram, pārbaudīt savas Atrast, 1564 01:17:45,900 --> 01:17:48,970 jūs vēlaties, lai palaistu generate.c, radīt ķekars numuriem, 1565 01:17:48,970 --> 01:17:50,880 un pēc tam palaist jūsu palīgiem funkciju. 1566 01:17:50,880 --> 01:17:53,930 Jūsu palīgi funkcija ir, ja tu esi faktiski fiziski rakstot kodu. 1567 01:17:53,930 --> 01:17:59,330 Un domā par palīgiem, kā bibliotēkas failu jūs esat rakstiski, ka atradums zvana. 1568 01:17:59,330 --> 01:18:02,950 Un tā laikā helpers.c, jūs do meklēšanu un šķirošana. 1569 01:18:02,950 --> 01:18:06,500 >> Un tad jūs gatavojas būtībā vienkārši viņus visus kopā. 1570 01:18:06,500 --> 01:18:10,350 Spec jums pateiks, kā to likt ka uz komandrindas. 1571 01:18:10,350 --> 01:18:14,880 Un jūs varēsiet pārbaudīt, vai nav jūsu kārtot un meklēt strādā. 1572 01:18:14,880 --> 01:18:15,870 Cool. 1573 01:18:15,870 --> 01:18:18,720 Vai kāds jau ir sākusies, un radušās problēmas vai jautājumi 1574 01:18:18,720 --> 01:18:20,520 tie ir tieši tagad ar šo? 1575 01:18:20,520 --> 01:18:21,020 LABI. 1576 01:18:21,020 --> 01:18:21,476 >> Mērķauditorija: Pagaidiet. 1577 01:18:21,476 --> 01:18:21,932 Man ir jautājums. 1578 01:18:21,932 --> 01:18:22,844 >> ANDI PENG: Jā. 1579 01:18:22,844 --> 01:18:28,390 >> Mērķauditorija: Tātad es sāku darīt lineārais sektorā helpers.c 1580 01:18:28,390 --> 01:18:29,670 un tas nebija īsti strādāt. 1581 01:18:29,670 --> 01:18:34,590 Bet tad vēlāk, es uzzināju mēs vienkārši ir izdzēst to un darīt bināro meklēšanu. 1582 01:18:34,590 --> 01:18:36,991 Tātad tas jautājums, ja tas nedarbojas? 1583 01:18:36,991 --> 01:18:39,700 1584 01:18:39,700 --> 01:18:41,510 >> ANDI PENG: Īsā atbilde ir nē. 1585 01:18:41,510 --> 01:18:42,642 Bet, tā kā mēs esam not-- 1586 01:18:42,642 --> 01:18:44,350 Mērķauditorija: Bet neviens s faktiski pārbaudot. 1587 01:18:44,350 --> 01:18:46,058 ANDI PENG: Mēs esam nekad gatavojas redzēt, ka. 1588 01:18:46,058 --> 01:18:49,590 Bet jūs, iespējams, vēlaties, lai Pārliecinieties, ka jūsu meklēšanas strādā. 1589 01:18:49,590 --> 01:18:51,700 Jo, ja jūsu lineārs meklēšana nedarbojas, 1590 01:18:51,700 --> 01:18:54,410 tad izredzes ir jūsu bināro meklēšana nav dodas uz darbu, kā arī. 1591 01:18:54,410 --> 01:18:56,646 Jo jums ir līdzīga loģika viņiem abiem. 1592 01:18:56,646 --> 01:18:58,020 Un nē, tas nav īsti jautājums. 1593 01:18:58,020 --> 01:19:01,300 Tātad vienīgie, jūs savukārt jo ir kārtot un bināro meklēšanu. 1594 01:19:01,300 --> 01:19:02,490 Jā. 1595 01:19:02,490 --> 01:19:06,610 >> Un arī, daudz bērniem bija mēģinot apkopot helpers.c. 1596 01:19:06,610 --> 01:19:09,550 Jūs neesat faktiski atļauta to darīt, jo helpers.c 1597 01:19:09,550 --> 01:19:11,200 nav galvenā funkcija. 1598 01:19:11,200 --> 01:19:13,550 Un lai jūs būtu tikai būt faktiski apkopojot 1599 01:19:13,550 --> 01:19:18,670 radīt un atrast, jo atrast zvani helpers.c un funkcijas tajā. 1600 01:19:18,670 --> 01:19:20,790 Tātad, kas padara atkļūdošanu sāpes muca. 1601 01:19:20,790 --> 01:19:22,422 Bet tas, kas mums ir jādara. 1602 01:19:22,422 --> 01:19:23,880 Mērķauditorija: Jums tikai darīt visu, vai ne? 1603 01:19:23,880 --> 01:19:27,290 ANDI PENG: jūs varat vienkārši darīt visu, kā arī, jā. 1604 01:19:27,290 --> 01:19:28,060 LABI. 1605 01:19:28,060 --> 01:19:32,570 Tāpēc, ka tas arī viss par to, ko PSET lūdz jūs visi darīt. 1606 01:19:32,570 --> 01:19:35,160 Ja jums ir kādi jautājumi, droši brīvi uzdot man pēc iedaļas. 1607 01:19:35,160 --> 01:19:37,580 Es būšu šeit, piemēram, 20 minūtes. 1608 01:19:37,580 --> 01:19:40,500 >> Un jā, tad PSET s tiešām nav tik slikti. 1609 01:19:40,500 --> 01:19:41,680 Jūs puiši būtu OK. 1610 01:19:41,680 --> 01:19:43,250 Tie, vienkārši izpildiet norādījumus. 1611 01:19:43,250 --> 01:19:47,840 Veida ir sajūta, loģiski, ko vajadzētu būt noticis, un jums būs labi. 1612 01:19:47,840 --> 01:19:48,690 Vai nav pārāk nobijies. 1613 01:19:48,690 --> 01:19:50,220 Tur ir daudz koda jau rakstīts tur. 1614 01:19:50,220 --> 01:19:53,011 Vai nav pārāk nobijies, ja jums nav saprast, ko tas viss nozīmē. 1615 01:19:53,011 --> 01:19:54,749 Ja tas ir daudz, tas ir pilnīgi naudas sodu. 1616 01:19:54,749 --> 01:19:55,790 Un nāk uz darba laika. 1617 01:19:55,790 --> 01:19:57,520 Mēs palīdzēsim jums to apskatīt. 1618 01:19:57,520 --> 01:20:00,810 >> Mērķauditorija: Ar papildu funkcijas, mēs skatīties tos uz augšu? 1619 01:20:00,810 --> 01:20:03,417 >> ANDI PENG: Jā, tie ir kodu. 1620 01:20:03,417 --> 01:20:05,750 Šajā spēlē 15, puse no tas jau rakstīts jums. 1621 01:20:05,750 --> 01:20:09,310 Tātad šīs funkcijas ir jau kodu. 1622 01:20:09,310 --> 01:20:12,020 Yep. 1623 01:20:12,020 --> 01:20:12,520 Viss kārtībā. 1624 01:20:12,520 --> 01:20:14,000 Nu, veiksmi. 1625 01:20:14,000 --> 01:20:15,180 Tas ir pretīgi diena. 1626 01:20:15,180 --> 01:20:19,370 Tik cerams, jūs guys nejūtos pārāk slikti par uzturas iekšā un kodēšanas. 1627 01:20:19,370 --> 01:20:22,133