1 00:00:00,000 --> 00:00:03,000 [Powered by Google Translate] [Iedaļas 3] [mazāk apmierināti] 2 00:00:03,000 --> 00:00:05,000 >> [Nate Hardison] [Hārvarda] 3 00:00:05,000 --> 00:00:08,000 >> [Tas ir CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:10,000 >> Labi, pieņemsim sāktu. 5 00:00:10,000 --> 00:00:13,000 Laipni lūdzam uz CS50 4 nedēļas. 6 00:00:13,000 --> 00:00:19,000 Ja jūs puiši atvērt interneta pārlūku un atvērt PSET 3, 7 00:00:19,000 --> 00:00:23,000 Motokross ar CS50, mēs esam gatavojas sākt iet 8 00:00:23,000 --> 00:00:26,000 izmantojot sadaļā jautājumus tur. 9 00:00:26,000 --> 00:00:32,000 Tāpat kā pagājušajā nedēļā, mēs būsim strādā CS50 Spaces, 10 00:00:32,000 --> 00:00:35,000 ja jūs arī vilkt ka uz augšu, kā arī, 11 00:00:35,000 --> 00:00:43,000 un, ja jūs iet uz priekšu un apmeklēt šo saiti, kas man šeit augšā. 12 00:00:43,000 --> 00:00:45,000 Ir pienācis laiks, lai sāktu. 13 00:00:45,000 --> 00:00:51,000 Mēs esam ieguvuši mūsu maz hi programma šeit. Nekas traks. 14 00:00:51,000 --> 00:00:55,000 Viena no pirmajām lietām, ko es gribu darīt ar jums, puiši šodien iet pār daži risinājumi 15 00:00:55,000 --> 00:00:58,000 līdz Problem Set 1 veida risinājumu piemērus, 16 00:00:58,000 --> 00:01:03,000 tikai, lai jūs varētu saņemt justies par to, kāda veida no koda darbinieki ir rakstiski, 17 00:01:03,000 --> 00:01:07,000 kādi kodu, studentiem ir rakstiski, 18 00:01:07,000 --> 00:01:10,000 un tu to apskatīt to, jo es zinu, tas ir dīvaini 19 00:01:10,000 --> 00:01:14,000 kad jūs iesniegt risinājumu problēmai komplektu un saņemt komentārus 20 00:01:14,000 --> 00:01:18,000 uz savu versiju, bet dažreiz tas ir noderīgi, lai redzētu, kā citi cilvēki to darīja, 21 00:01:18,000 --> 00:01:22,000 īpaši tie, kas ir jauka meklē. 22 00:01:22,000 --> 00:01:27,000 Par lielāko daļu, es biju patiesi pārsteigts par risinājumiem, kas jums puiši ražoti. 23 00:01:27,000 --> 00:01:31,000 Man vēl nav sākuši meklē jūsu problēma Set 2S, bet, ja viņi kaut kā pirmais, 24 00:01:31,000 --> 00:01:34,000 tas nozīmē, ka nekas, bet labas lietas. 25 00:01:34,000 --> 00:01:40,000 >> Ja paskatās manu pārskatīšanu, sāksim visu ceļu uz leju pie 1 redakcijas, 26 00:01:40,000 --> 00:01:47,000 un mēs esam gatavojas pieņemt ātri apskatīt Mario risinājumu. 27 00:01:47,000 --> 00:01:54,000 Ja jūs pull šo augšu, šīs programmas, ka mēs ejam iepazīstināt ir pareizi. 28 00:01:54,000 --> 00:01:56,000 Tur nebija pareizības jautājumus ar šīm problēmām, bet gan, 29 00:01:56,000 --> 00:01:59,000 Mēs vēlamies runāt mazliet par dažādām dizaina jautājumiem 30 00:01:59,000 --> 00:02:03,000 kas tika izmantoti šeit. 31 00:02:03,000 --> 00:02:08,000 Viena no lietām, kas bija interesanti par risinājumu 32 00:02:08,000 --> 00:02:11,000 ir tas, ka tā izmanto šo jauno konstrukciju sauc sterliņu noteikt, 33 00:02:11,000 --> 00:02:15,000 dažkārt dēvē arī hash definēt. 34 00:02:15,000 --> 00:02:18,000 Ļaujiet man tuvinātu to šeit. 35 00:02:18,000 --> 00:02:24,000 # Define ļauj iedot nosaukumus šiem jūsu programmā numuriem. 36 00:02:24,000 --> 00:02:28,000 Šajā gadījumā maksimālais augstums piramīdas Mario 37 00:02:28,000 --> 00:02:34,000 bija 23 un nevis liekot 23 manā kods- 38 00:02:34,000 --> 00:02:37,000 mēs atsaukties uz šo kā cieto 23 kodēšanu - 39 00:02:37,000 --> 00:02:43,000 vietā tas dod vārdu MAX_HEIGHT uz šo numuru, 40 00:02:43,000 --> 00:02:48,000 lai noteikti šeit manā do-kamēr cilpa 41 00:02:48,000 --> 00:02:51,000 Jūs faktiski var atsaukties uz MAX_HEIGHT 42 00:02:51,000 --> 00:02:55,000 vietā liekot skaitu 23 collas 43 00:02:55,000 --> 00:02:57,000 [Studentu] Kāda ir to izdarīt, priekšrocības? 44 00:02:57,000 --> 00:02:59,000 Tas ir liels jautājums. 45 00:02:59,000 --> 00:03:03,000 Viens no tiem ir lasāmību. 46 00:03:03,000 --> 00:03:08,000 Izmantot šo # define priekšrocība ir lasāmību. 47 00:03:08,000 --> 00:03:11,000 Kad es lasu šo kodu, es redzu, kas notiek. 48 00:03:11,000 --> 00:03:15,000 >> Es redzu šo nosacījumu, ka mēs esam testēšanas 49 00:03:15,000 --> 00:03:19,000 par augstumu ir <0, kas mēs varētu būt arī definēti 50 00:03:19,000 --> 00:03:22,000 būt minimālais augstums vai min augstums. 51 00:03:22,000 --> 00:03:25,000 Otra priekšrocība ir tā, ka es pēc tam var izlasīt pārējo līniju, lai redzētu 52 00:03:25,000 --> 00:03:30,000 ka mēs esam arī pārbaudes, lai pārliecinātos, ka augstums ir ne lielāks par max augstumu, 53 00:03:30,000 --> 00:03:35,000 jo mēs esam gatavojas turpināt, kamēr augstums ir lielāks nekā maksimālā augstumā. 54 00:03:35,000 --> 00:03:40,000 Otra priekšrocība ir, ja es attālinātu mazliet šeit- 55 00:03:40,000 --> 00:03:49,000 ja man palaist šo programmu, un es palaist to, teiksim, ar 23 tagad, 56 00:03:49,000 --> 00:03:52,000 tas būs izdrukāt visas 23 rindas tieši tāpat. 57 00:03:52,000 --> 00:03:54,000 Bet saku es gribēju mainīt max augstumu, 58 00:03:54,000 --> 00:03:57,000 un tagad es gribu, lai ierobežotu maksimālo augstumu piramīdas 59 00:03:57,000 --> 00:04:06,000 būs tikai teikt-cilvēks, kas bija bailīgs. 60 00:04:06,000 --> 00:04:14,000 # Ietvert , # define MAX_HEIGHT, 61 00:04:14,000 --> 00:04:18,000 un pieņemsim, ka mēs vēlējāmies, lai uzstādītu to vienāds ar 10. 62 00:04:18,000 --> 00:04:22,000 Tagad šajā brīdī, visi man bija darīt bija mainīt šajā vienā vietā. 63 00:04:22,000 --> 00:04:27,000 Es varu recompile kodu, un tagad, ja es mēģinātu rakstīt 12, 64 00:04:27,000 --> 00:04:30,000 tas liks man atkal. 65 00:04:30,000 --> 00:04:33,000 Šajā gadījumā, mēs esam tikai izmantojot MAX_HEIGHT vienreiz. 66 00:04:33,000 --> 00:04:37,000 Tas nav tik liels apgrūtinājumus iet 67 00:04:37,000 --> 00:04:40,000 un mainīt to kamēr cilpa, ja jums nepieciešams. 68 00:04:40,000 --> 00:04:44,000 Bet programmām, kur jūs atsauču pašu burvju numuru 69 00:04:44,000 --> 00:04:47,000 atkal un atkal, tas # define mehānisms ir ļoti parocīgs 70 00:04:47,000 --> 00:04:52,000 jo jūs vienkārši mainīt to vienu reizi augšā failu-tas parasti, ja jūs viņus- 71 00:04:52,000 --> 00:04:57,000 un izmaiņas percolates caur pārējiem dokumentiem. 72 00:04:57,000 --> 00:05:02,000 >> Citas lietas, es gribēju atzīmēt šo cesiju, ka es domāju, izskatījās patiešām jauki, 73 00:05:02,000 --> 00:05:05,000 viens bija nosaucot par mainīgajiem. 74 00:05:05,000 --> 00:05:14,000 Tu redzi, ka mēs esam ieguvuši skaitlim mainīgie sauc rindas un sauc augstumu. 75 00:05:14,000 --> 00:05:20,000 Telpām, hashes, tas palīdz padarīt kodu nedaudz vairāk lasāms, 76 00:05:20,000 --> 00:05:25,000 padara to nedaudz saprotamāku to, kas patiesībā notiek. 77 00:05:25,000 --> 00:05:31,000 Tas ir pretstatā izmantojot, teiksim, nejaušus burtus 78 00:05:31,000 --> 00:05:35,000 vai vienkārši gobbledygook pavisam. 79 00:05:35,000 --> 00:05:39,000 Pēdējā lieta es ņemšu norādīt, ka uz cilpas, 80 00:05:39,000 --> 00:05:45,000 bieži vien šie iterator mainīgie, šie skaitītāji, kas jums izmantot jūsu uz cilpas, 81 00:05:45,000 --> 00:05:51,000 tas ir standarta un parasto sākt tos ar vai nu es, un tad J un pēc tam k 82 00:05:51,000 --> 00:05:54,000 un iet no turienes, ja jums nepieciešams vairāk mainīgie, 83 00:05:54,000 --> 00:05:56,000 un tas ir tikai konvencija. 84 00:05:56,000 --> 00:05:58,000 Ir daudz konvenciju. 85 00:05:58,000 --> 00:06:00,000 Tas ir atkarīgs no programmēšanas valodu jūs izmantojat. 86 00:06:00,000 --> 00:06:04,000 Bet C, mēs parasti sākas ar i. 87 00:06:04,000 --> 00:06:08,000 Tas nav jēgas lietot, teiksim, vai b 88 00:06:08,000 --> 00:06:13,000 atkarībā no situācijas. 89 00:06:13,000 --> 00:06:15,000 Tas ir tas par šo vienu. 90 00:06:15,000 --> 00:06:25,000 Ja jūs tagad uzvilkt Revision 2, jūs redzēsiet citu Mario, 91 00:06:25,000 --> 00:06:29,000 un tas viens ir līdzīgs uz otru, ka mēs tikko redzējām, 92 00:06:29,000 --> 00:06:32,000 bet tas kaut kāda veida atdzist. 93 00:06:32,000 --> 00:06:38,000 Ja mēs skatāmies uz šo sadaļu šeit iekšā iekšējais uz cilpas, 94 00:06:38,000 --> 00:06:44,000 viņi izmanto daži crazy meklē sintaksi tiesības šajā rindā. 95 00:06:44,000 --> 00:06:47,000 To sauc trīskāršo operators. 96 00:06:47,000 --> 00:06:53,000 Tas ir, ja cits paziņojums ietilpināt vienā rindā. 97 00:06:53,000 --> 00:06:57,000 Nosacījums ir šī daļa iekavās. 98 00:06:57,000 --> 00:07:05,000 Tas ir līdzvērtīgi sakot, ja j 00:07:10,000 Un tad ko tad tas saturs, ja bloks būtu esam telpa 100 00:07:10,000 --> 00:07:16,000 un tad no kāda cits būtu saturs ir tas #. 101 00:07:16,000 --> 00:07:20,000 Tas būtībā piešķirot telpu šim mainīgajam. 102 00:07:20,000 --> 00:07:24,000 Tas liekot telpu no bloka mainīgo saturu, 103 00:07:24,000 --> 00:07:29,000 ja šis nosacījums ir izpildīts, un ja nosacījums netiek izpildīts, 104 00:07:29,000 --> 00:07:32,000 tad bloks mainīgais izpaužas šī #. 105 00:07:32,000 --> 00:07:37,000 Un tad, protams, tā vietā veidojot veselu virkni 106 00:07:37,000 --> 00:07:43,000 un drukāšanas viss, beigās šis risinājums izdrukas to veic vienu rakstzīmi laikā. 107 00:07:43,000 --> 00:07:48,000 Diezgan atdzist. 108 00:07:48,000 --> 00:07:53,000 >> Vēl pāris lietas, lai paskatās. Mēs pāriet uz mantkārīgs. 109 00:07:53,000 --> 00:07:58,000 Tagad, ja mēs skatāmies uz mantkārīgs, šis pirmais risinājums 110 00:07:58,000 --> 00:08:00,000 izmanto šos # definē diezgan daudz. 111 00:08:00,000 --> 00:08:06,000 Mēs esam ieguvuši viens nemainīgs attiecībā uz katru no dažādiem numuriem šajā programmā. 112 00:08:06,000 --> 00:08:12,000 Mēs esam ieguvuši vienu centiem uz vienu dolāru, viens ceturtdaļas, dimes, nickels un pennies, 113 00:08:12,000 --> 00:08:15,000 un tagad, ja mēs uz leju un lasīt kodu, 114 00:08:15,000 --> 00:08:22,000 mēs varam redzēt standarta do-kamēr cilpa drukāšanas viss out. 115 00:08:22,000 --> 00:08:25,000 Veida būtība šīs problēmas tika saprotot, ka 116 00:08:25,000 --> 00:08:29,000 Jums nepieciešams, lai pārvērstu pludiņu ka jums lasīt no lietotāja līdz veselam skaitlim 117 00:08:29,000 --> 00:08:32,000 precīzi darīt to math, un tas ir tāpēc, 118 00:08:32,000 --> 00:08:36,000 ar peldošo punktu skaitu, tāpat kā mēs runājām par lekciju īsi, 119 00:08:36,000 --> 00:08:41,000 tas nav iespējams precīzi atspoguļo katru vērtību uz numuru rindā 120 00:08:41,000 --> 00:08:47,000 jo ir bezgala daudz vērtības starp 3 un, teiksim, 3.1 pat. 121 00:08:47,000 --> 00:08:54,000 Jūs varat būt 3.01 un 3,001 un 3,0001, un jūs varat glabāt notiek. 122 00:08:54,000 --> 00:09:00,000 Izrādās, kad jūs strādājat ar naudu, jūs bieži vēlas, lai pārvērstu to 123 00:09:00,000 --> 00:09:05,000 uz veselu formātā, lai jūs nav zaudēt pennies un ka stuff veida. 124 00:09:05,000 --> 00:09:09,000 Izdarīt, un noapaļošanu bija galvenais. 125 00:09:09,000 --> 00:09:14,000 Šis risinājums izmanto perfekti vienkāršs, liels algoritmu, 126 00:09:14,000 --> 00:09:17,000 kas decremented skaitu centiem atlikušo vispirms pa ceturkšņiem, 127 00:09:17,000 --> 00:09:19,000 pēc tam dimes, pēc tam nickels, tad ar pennies, 128 00:09:19,000 --> 00:09:24,000 un pievienojot monētu skaits katru reizi. 129 00:09:24,000 --> 00:09:31,000 >> Vēl viens risinājums, ka mēs redzēsim, kā es to attālināt un pārejiet uz 4 Revision, 130 00:09:31,000 --> 00:09:40,000 bija ļoti līdzīga sākuma, bet tā vietā izmanto div un mod 131 00:09:40,000 --> 00:09:44,000 Tiesības nekā šeit, lai aprēķinātu skaitu centiem. 132 00:09:44,000 --> 00:09:50,000 Tas, ka ceturtdaļas skaits ir vienāds ar skaitu centiem dalīts ar 25, 133 00:09:50,000 --> 00:09:53,000 un iemesls tas darbojas, ir tāpēc, ka mēs darām veselu nodaļu, 134 00:09:53,000 --> 00:09:58,000 tāpēc tas ir izmetot kādu atlikums. 135 00:09:58,000 --> 00:10:02,000 [Studentu] Vai mums komentēt meklēšanu? 136 00:10:02,000 --> 00:10:05,000 Tas patiešām ir atkarīgs. 137 00:10:05,000 --> 00:10:08,000 [Studentu] Jūs komentējot vairāk nav minēts šeit. 138 00:10:08,000 --> 00:10:16,000 Jā, un tāpēc ir ķekars dažādas filozofijas par šo. 139 00:10:16,000 --> 00:10:21,000 Mana personīgā filozofija ir tāda, ka Jūsu kods ir patiešām patiesība, 140 00:10:21,000 --> 00:10:24,000 piemēram, jūsu kods ir kas patiesībā izpildot uz datora, 141 00:10:24,000 --> 00:10:29,000 un tāpēc jūsu kodam vajadzētu būt lasāma kā iespējams, nav pamats tik daudz komentāriem. 142 00:10:29,000 --> 00:10:33,000 Ka teica, ja jūs darāt lietas, kas ir sava veida grūts matemātiski 143 00:10:33,000 --> 00:10:38,000 vai algoritmiski, tas ir labi, lai komentēt tos tā, ka jūs varat 144 00:10:38,000 --> 00:10:43,000 pievienot papildu dimensiju, papildu slānis, lai kurš ir lasījumā savu kodu. 145 00:10:43,000 --> 00:10:49,000 Šajos risinājumos, bieži tās tiek komentēts smagāki tikai tāpēc, 146 00:10:49,000 --> 00:10:52,000 Mēs gribam, lai varētu izplatīt, un tiem ir cilvēki paņemt tos 147 00:10:52,000 --> 00:10:56,000 un lasīt tos diezgan viegli. 148 00:10:56,000 --> 00:11:05,000 Bet noteikti, es piekrītu, ka tas ir smags. 149 00:11:05,000 --> 00:11:07,000 [Studentu] Bet, ja rodas šaubas, iet smagāks? 150 00:11:07,000 --> 00:11:10,000 Ja šaubāties, iet smagāks. 151 00:11:10,000 --> 00:11:17,000 Daži cilvēki reizēm saka atgriešanās 0 vai kaut kas tamlīdzīgs. 152 00:11:17,000 --> 00:11:20,000 Es domāju, ka ir smieklīgs komentārs. 153 00:11:20,000 --> 00:11:22,000 Skaidri, ka tas, kas notiek. 154 00:11:22,000 --> 00:11:25,000 Man nav nepieciešams angļu man pateikt, ka. 155 00:11:25,000 --> 00:11:28,000 Dažreiz cilvēki rakstīt sīkumi, piemēram, "kthxbai!" 156 00:11:28,000 --> 00:11:32,000 Tas ir sava veida gudrs, bet arī ne- 157 00:11:32,000 --> 00:11:35,000 kas nav padarīt starpību starp komentēšanas punktiem vai ne. 158 00:11:35,000 --> 00:11:41,000 Šie komentāri veidi ir tikai ha, ha. 159 00:11:41,000 --> 00:11:43,000 Atdzist. 160 00:11:43,000 --> 00:11:48,000 >> Šajā brīdī, sāksim strādāt par problēma Set 3 sadaļā jautājumiem. 161 00:11:48,000 --> 00:11:52,000 Ja jūs puiši pull šo atkal, 162 00:11:52,000 --> 00:11:55,000 kā ar iepriekšējo nedēļu, mēs nebrauksim, lai noskatītos šorti šajā sadaļā. 163 00:11:55,000 --> 00:12:00,000 Mēs jūs puiši darīt par savu laiku un runāt par jautājumiem. 164 00:12:00,000 --> 00:12:05,000 Bet tagad šajā sadaļā mēs esam gatavojas pavadīt mazliet vairāk laika 165 00:12:05,000 --> 00:12:11,000 runājam par mazāk kodēšanas pamati 166 00:12:11,000 --> 00:12:15,000 tāpat mēs pagājušajā nedēļā, un tā vietā, mēs esam gatavojas koncentrēties vairāk uz 167 00:12:15,000 --> 00:12:22,000 mazliet vairāk par teoriju, tāpēc runāt par bināro meklēšanu un pēc tam šķirošana. 168 00:12:22,000 --> 00:12:27,000 No tiem no jums, kas ir pēc kopā ar lekciju, 169 00:12:27,000 --> 00:12:30,000 var kāds man Atgādinājums par kāda atšķirība ir 170 00:12:30,000 --> 00:12:35,000 starp bināro meklēšanas un lineāru meklēt? 171 00:12:35,000 --> 00:12:37,000 Kas notiek? Pārliecināts. 172 00:12:37,000 --> 00:12:42,000 Linear meklēšanas meklējumi caur katra elementa sakārtotās sarakstā 173 00:12:42,000 --> 00:12:45,000 pa vienam pa vienam ar pa vienam, 174 00:12:45,000 --> 00:12:50,000 un bināro meklēšanu sadala sarakstu 2 grupās, 175 00:12:50,000 --> 00:12:57,000 pārbaudes ja atslēgas vērtība, kas jūs meklējat, ir lielāks vai mazāks nekā viduspunktā vērtība 176 00:12:57,000 --> 00:13:00,000 ka jūs vienkārši atrast, un, ja tas ir mazāk nekā, tā iet ar zemāku sarakstu 177 00:13:00,000 --> 00:13:03,000 un tad dala, ka atkal tas pats funkciju 178 00:13:03,000 --> 00:13:07,000 galam, līdz tā atrod viduspunktā ir vienāds ar vērtību pati. 179 00:13:07,000 --> 00:13:10,000 Tiesības. 180 00:13:10,000 --> 00:13:12,000 >> Kāpēc mēs rūpējamies? 181 00:13:12,000 --> 00:13:20,000 Kāpēc mēs runājam par bināro meklēšanu, salīdzinot lineāru meklēt? 182 00:13:20,000 --> 00:13:22,000 Yeah. 183 00:13:22,000 --> 00:13:24,000 Binārā ir daudz ātrāk, tādēļ, ja jūs dubultā problēmas apjomu 184 00:13:24,000 --> 00:13:27,000 tas aizņem vēl vienu soli, nevis divreiz vairāk. 185 00:13:27,000 --> 00:13:29,000 Tieši tā. 186 00:13:29,000 --> 00:13:31,000 Tas ir lielisks risinājums. 187 00:13:31,000 --> 00:13:36,000 Lineārā meklēšana ir ļoti pārbaudot vienu elementu laikā, 188 00:13:36,000 --> 00:13:39,000 un kā mēs redzējām ļoti pirmajā dienā lekcijā 189 00:13:39,000 --> 00:13:42,000 Dāvids gāja caur viņa tālruņa grāmatu Piemēram 190 00:13:42,000 --> 00:13:45,000 un izvilkts vienu lapu no tālruņu grāmatas laikā 191 00:13:45,000 --> 00:13:47,000 un tur dara, ka atkal un atkal un atkal, 192 00:13:47,000 --> 00:13:51,000 tas notiek, lai viņam ļoti ilgu laiku, lai atrastu kādu, kas tālruņu grāmatā, 193 00:13:51,000 --> 00:13:55,000 ja vien, protams, viņš meklē kādu pašā sākumā alfabēta. 194 00:13:55,000 --> 00:14:00,000 Ar bināro meklēšanu, jūs varat iet daudz ātrāk, 195 00:14:00,000 --> 00:14:05,000 un tas nav tikai divreiz ātrāk vai 3 reizes ātrāk vai 4 reizes ātrāk. 196 00:14:05,000 --> 00:14:13,000 Bet problēma kļūst mazākas un mazākas un mazākas daudz ātrāk. 197 00:14:13,000 --> 00:14:17,000 Lai to ilustrētu, mēs sākam runāt par to, kas notiek 198 00:14:17,000 --> 00:14:21,000 kad mēs rakstīt bināro meklēšanu. 199 00:14:21,000 --> 00:14:27,000 Pie rokas problēma ir tā, ka, ja man ir masīvs numuru, 200 00:14:27,000 --> 00:14:40,000 saka, 1, 2, 3, 5, 7, 23, 45, 78, 12.323, 201 00:14:40,000 --> 00:14:47,000 un tad 9 ar ton 0S pēc tā, 202 00:14:47,000 --> 00:14:52,000 Mēs vēlamies, lai varētu izdomāt tiešām ātri to, kas ir 203 00:14:52,000 --> 00:14:57,000 Šis masīvs numuriem. 204 00:14:57,000 --> 00:15:00,000 Es zinu, tas šķiet mazliet muļķīgi un mazliet izdomāts, 205 00:15:00,000 --> 00:15:02,000 jo šobrīd tā ir. 206 00:15:02,000 --> 00:15:05,000 Mums ir masīva, kurā nav ļoti daudz elementu tajā, 207 00:15:05,000 --> 00:15:08,000 un, ja es aicinu kādu no jums, lai noskaidrotu, vai nav 208 00:15:08,000 --> 00:15:11,000 23 ir masīvā, jūs varat darīt, ka diezgan ātri 209 00:15:11,000 --> 00:15:16,000 vienkārši glancing šo un stāsta man jā vai nē. 210 00:15:16,000 --> 00:15:20,000 Analogās uz jāapsver, ir iedomāties, ja tas tā būtu, teiksim, 211 00:15:20,000 --> 00:15:27,000 Excel izklājlapu ar 10000 rindām, 20000 rindas. 212 00:15:27,000 --> 00:15:31,000 Protams, jūs varat darīt komandu F vai kontroles F un meklēt kaut augšu. 213 00:15:31,000 --> 00:15:33,000 Jūs varat arī izmantot filtrus un meklēšanas sīkumi, 214 00:15:33,000 --> 00:15:37,000 bet, ja jums bija meklēt caur šo failu pozīcijai pa līniju, 215 00:15:37,000 --> 00:15:40,000 tas tevi ilgs laiks, lai atrastu to. 216 00:15:40,000 --> 00:15:42,000 Tas ir veids, piemēram, tālruņa grāmatu, piemēram, pārāk, ja 217 00:15:42,000 --> 00:15:44,000 neviens izskatās caur telefona grāmatu vienā lappusē laikā. 218 00:15:44,000 --> 00:15:47,000 Raksturīgi, viņi atver to vidū, 219 00:15:47,000 --> 00:15:50,000 vai gadījumā, daudz telefona grāmatas un vārdnīcas kur 220 00:15:50,000 --> 00:15:54,000 jums tiešām ir tā keyed uz pirmo burtu, 221 00:15:54,000 --> 00:16:01,000 Jūs uzsist uz šo pirmo burtu un atvērt un sākt iet cauri tur. 222 00:16:01,000 --> 00:16:03,000 >> Atgādināt man par savu vārdu vēlreiz. >> Sam. 223 00:16:03,000 --> 00:16:05,000 Sam. 224 00:16:05,000 --> 00:16:11,000 Tāpat kā Sam teica, ka lineārs meklēšanas process būs ļoti lēns, 225 00:16:11,000 --> 00:16:15,000 un tā vietā ar bināro meklēšanu, kā tas darbojas, ir, ka 226 00:16:15,000 --> 00:16:21,000 Katru reizi, kad mēs iet caur atkārtojuma mūsu meklēšanas algoritmu, 227 00:16:21,000 --> 00:16:27,000 mēs spēsim sadalīt sarakstu uz pusēm, būtībā, 228 00:16:27,000 --> 00:16:33,000 divos mazākos sarakstos. 229 00:16:33,000 --> 00:16:39,000 Un tad nākamajā atkārtojuma no cilpas, mēs sadalīt to vēlreiz 230 00:16:39,000 --> 00:16:44,000 citās mazākās sarakstos. 231 00:16:44,000 --> 00:16:48,000 Kā jūs varat redzēt, ka problēma tur kļūst mazākas un mazākas 232 00:16:48,000 --> 00:16:55,000 jo mēs turam izmetot pusi no saraksta katru reizi. 233 00:16:55,000 --> 00:16:59,000 Kā tas jāizlej darbojas? 234 00:16:59,000 --> 00:17:05,000 Tāpat kā atgādinājums, ko mēs gatavojamies darīt, ja mēs datoru 235 00:17:05,000 --> 00:17:11,000 un mums bija, teiksim, meklējot numuru 5 šajā sarakstā 236 00:17:11,000 --> 00:17:15,000 ir tas, ka mēs varētu izvēlēties numuru vidū. 237 00:17:15,000 --> 00:17:26,000 Vidū šajā sarakstā, jo ir 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 numuri, 238 00:17:26,000 --> 00:17:32,000 mēs gribētu izvēlēties numuru vai nu pēc gada 4 pozīcijā vai ar 5 pozīciju, 239 00:17:32,000 --> 00:17:38,000 un mēs gribētu aicināt šo vidū mūsu sarakstā. 240 00:17:38,000 --> 00:17:42,000 Pick numuru vidū. 241 00:17:42,000 --> 00:17:51,000 Tad, tāpat kā Sems teica, mēs pārbaudīt, lai redzētu, ja šis skaits ir vienāds 242 00:17:51,000 --> 00:17:59,000 uz numuru ka mēs vēlamies, lai iegūtu vai mūsu vēlamo numuru. 243 00:17:59,000 --> 00:18:06,000 Ja tas ir vienāds, tad mēs esam noskaidrojuši to. Mēs win. 244 00:18:06,000 --> 00:18:12,000 Ja tas nav vienāds, tad ir pāris gadījumu. 245 00:18:12,000 --> 00:18:15,000 Abas lietas ir vai nu skaits ir lielāks nekā skaits, mēs esam meklē, 246 00:18:15,000 --> 00:18:19,000 vai tas ir mazāk nekā. 247 00:18:19,000 --> 00:18:25,000 Ja tas ir lielāks, mēs virzāmies uz labo pusi. 248 00:18:25,000 --> 00:18:33,000 Un, ja tas ir mazāk, mēs virzāmies uz kreiso pusi. 249 00:18:33,000 --> 00:18:41,000 Un tad mēs atkārtot visu procesu no jauna 250 00:18:41,000 --> 00:18:48,000 vai nu labajā pusē vai kreisajā pusē sarakstā. 251 00:18:48,000 --> 00:18:51,000 >> Pirmā problēma šodienas sadaļā ir izdomāt 252 00:18:51,000 --> 00:18:55,000 kā mēs faktiski var sākt izteikt šo C kodu. 253 00:18:55,000 --> 00:18:58,000 Mēs esam ieguvuši pseudocode šeit. 254 00:18:58,000 --> 00:19:04,000 Ko mēs sāktu darīt, ir es uzvilkt pavisam jaunu telpu, 255 00:19:04,000 --> 00:19:09,000 saglabājiet šo pārskatīšanu, lai mums ir šīs piezīmes vēlāk, 256 00:19:09,000 --> 00:19:20,000 mēs izdzēstu visu, un tad nokopēt un ielīmēt no problēmas komplekta 257 00:19:20,000 --> 00:19:26,000 Šī mūsu telpās informāciju, un cerams, ka tas nav pārtraukumu. 258 00:19:26,000 --> 00:19:28,000 Perfekta. 259 00:19:28,000 --> 00:19:33,000 Ja jūs puiši visu darīt, kopēt un ielīmēt šo kodu savā jaunajā telpā, 260 00:19:33,000 --> 00:19:43,000 tukšu vienu. 261 00:19:43,000 --> 00:19:47,000 Mēģināsim Daniel. Ja jūs sastādīt un palaist šo programmu, tas darbojas? 262 00:19:47,000 --> 00:19:49,000 Nē. >> Ko tas saka? 263 00:19:49,000 --> 00:19:53,000 Tajā teikts vadības sasniedz beigu bez spēkā neesošu funkciju. 264 00:19:53,000 --> 00:19:55,000 Yeah, tāpēc ļaujiet man mēģināt rādīt to. 265 00:19:55,000 --> 00:19:59,000 Vai jums puiši redzējis šo pirms? Vai jūs zināt, ko tas nozīmē? 266 00:19:59,000 --> 00:20:01,000 Labi, pieņemsim preparēt šo mazliet. 267 00:20:01,000 --> 00:20:10,000 Tas ir saprotams pie file.c uz līniju 9 slejas 1 Mums ir kļūda, tāpat kā jūs teicāt, 268 00:20:10,000 --> 00:20:16,000 un tā saka, ka tas izriet no kļūdu brīdinājuma un atgriešanās tipa brīdinājumu. 269 00:20:16,000 --> 00:20:18,000 Izskatās, ka kaut kas notiek ar atgriešanās veidam, kas ir jēga. 270 00:20:18,000 --> 00:20:21,000 Mēs esam ieguvuši ārpus neesošu funkciju, kas nozīmē, ka mēs esam ieguvuši funkcijas 271 00:20:21,000 --> 00:20:24,000 ka neatgriežas tukšumu. 272 00:20:24,000 --> 00:20:27,000 Anulēts funkcija ir viens, kas izskatās šādi: 273 00:20:27,000 --> 00:20:35,000 anulēts foo (), un tas ir spēkā, jo atgriešanās tips nav spēkā, 274 00:20:35,000 --> 00:20:38,000 kas nozīmē, ka, ja mums būtu kaut kas šeit 275 00:20:38,000 --> 00:20:45,000 piemēram, 1 atpakaļ, mēs gribētu saņemt kompilatora kļūdu par šo. 276 00:20:45,000 --> 00:20:49,000 Tomēr, mums ir ne-void funkcija. 277 00:20:49,000 --> 00:20:51,000 Mūsu non-neesošu funkcija šajā gadījumā ir mūsu meklēšanas funkcija 278 00:20:51,000 --> 00:20:56,000 jo tā ir atgriešanās veidu bool. 279 00:20:56,000 --> 00:20:59,000 Kad tas ir saprotams, ka kontroles sasniedz beigām bez spēkā neesošu funkciju, 280 00:20:59,000 --> 00:21:02,000 tas ir tāpēc, ka meklēšana nav atgriešanās paziņojumu. 281 00:21:02,000 --> 00:21:04,000 Tas neatgriezīsies neko tipa bool. 282 00:21:04,000 --> 00:21:09,000 >> Mēs varam noteikt, ka, un ko jūs guys domā 283 00:21:09,000 --> 00:21:13,000 meklēšana būtu atgriezties pēc noklusējuma? 284 00:21:13,000 --> 00:21:16,000 Kāda būtu noklusējuma atgriešanās vērtību meklējumos? 285 00:21:16,000 --> 00:21:19,000 Jo tas, ko mēs varam likt beigās. 286 00:21:19,000 --> 00:21:21,000 Šarlote, vai jums ir kāds,? 287 00:21:21,000 --> 00:21:23,000 Patiess vai nepatiess >> Patiess vai nepatiess?. 288 00:21:23,000 --> 00:21:26,000 Kurš? 289 00:21:26,000 --> 00:21:28,000 Nepatiesa. Es nezinu. 290 00:21:28,000 --> 00:21:30,000 Nepatiess? Mēģināsim to. 291 00:21:30,000 --> 00:21:32,000 Kāpēc jūs teikt atgriezties viltus? Tas ir lieliski intuīcija. 292 00:21:32,000 --> 00:21:35,000 [Šarlote] Es nezinu. 293 00:21:35,000 --> 00:21:39,000 Mēs ejam, lai atgriezties viltus šajā gadījumā, jo tas būs mūsu noklusējuma 294 00:21:39,000 --> 00:21:44,000 ja kāda iemesla dēļ saraksts ir tukšs vai adatu 295 00:21:44,000 --> 00:21:46,000 ka mēs meklējam neeksistē. 296 00:21:46,000 --> 00:21:50,000 Tad pašās beigās, ja mēs atgrieztos taisnība agrāk šo funkciju, 297 00:21:50,000 --> 00:21:55,000 mēs vienmēr zinām, ka šī funkcija teiks nē, tas nav masīvā. 298 00:21:55,000 --> 00:21:58,000 Tas nav siena kaudzē. 299 00:21:58,000 --> 00:22:03,000 Tagad, ja mēs apkopotu un palaist to, ļaujiet man saglabāt to, lai mēs varētu vilkt to uz augšu. 300 00:22:03,000 --> 00:22:08,000 Tagad, ja mēs apkopotu un palaist savu programmu, tas uzkrājas. 301 00:22:08,000 --> 00:22:12,000 Mēs mūsu maz uzvedni. 302 00:22:12,000 --> 00:22:20,000 Ja es hit 4-UH-oh. 303 00:22:20,000 --> 00:22:25,000 Tā nav izdrukāt neko. Izskatās viss beidzās labi. 304 00:22:25,000 --> 00:22:35,000 Mēs esam ieguvuši, lai aizpildītu šo collas 305 00:22:35,000 --> 00:22:39,000 Mēs runājām par algoritms pseudocode mazliet atpakaļ. 306 00:22:39,000 --> 00:22:44,000 Ļaujiet man redzēt, izņemot to, 307 00:22:44,000 --> 00:22:49,000 un es ņemšu pull, ka algoritms atpakaļ atkal. 308 00:22:49,000 --> 00:22:51,000 Pieņemsim skārusi šo puisis. Nope. 309 00:22:51,000 --> 00:22:58,000 Tur tas ir. 310 00:22:58,000 --> 00:23:03,000 Kā mēs to darām? 311 00:23:03,000 --> 00:23:11,000 Kāda būtu laba stratēģija, sākot off šo kodu? 312 00:23:11,000 --> 00:23:16,000 Jums ir izvēlēties skaitli vidū. 313 00:23:16,000 --> 00:23:23,000 Kā mēs izvēlēties numuru vidū masīva? 314 00:23:23,000 --> 00:23:25,000 Kādi ieteikumi? 315 00:23:25,000 --> 00:23:27,000 [Studentu] strlen dalīts ar 2. 316 00:23:27,000 --> 00:23:32,000 Strlen dalīts ar 2. Tas ir liels vienu. 317 00:23:32,000 --> 00:23:35,000 Strlen strādā ar īpašām veidu blokus. 318 00:23:35,000 --> 00:23:38,000 Kādas masīviem? 319 00:23:38,000 --> 00:23:44,000 Stīgu masīvi, raksturs masīvi. 320 00:23:44,000 --> 00:23:48,000 Tas ir tas pats veida koncepciju, ka mēs vēlamies piemērot, 321 00:23:48,000 --> 00:23:52,000 bet mēs nevaram izmantot strlen jo mums nav masīvs rakstzīmes. 322 00:23:52,000 --> 00:23:55,000 Mums ir masīvs Ints. 323 00:23:55,000 --> 00:23:58,000 Bet ko strlen saņemt par mums? 324 00:23:58,000 --> 00:24:01,000 Vai jūs zināt, ko tas izpaužas mums? 325 00:24:01,000 --> 00:24:03,000 [Studentu] strlen izpaužas mums garumu. 326 00:24:03,000 --> 00:24:05,000 Tieši tā, tas izpaužas mums garumu. 327 00:24:05,000 --> 00:24:09,000 Strlen izpaužas garums masīva mums. 328 00:24:09,000 --> 00:24:14,000 >> Kā mēs varam iegūt, ka mūsu binārās meklēšanas programmu? 329 00:24:14,000 --> 00:24:18,000 Kā jūs saņemsiet garumu masīva? 330 00:24:18,000 --> 00:24:20,000 [Studentu] strlen? 331 00:24:20,000 --> 00:24:25,000 Jūs varat saņemt garumu pareizi formatēta C stīgu masīva ar strlen. 332 00:24:25,000 --> 00:24:31,000 Problēma, lai gan, ir tas, ka mums nav virknes masīvs. 333 00:24:31,000 --> 00:24:36,000 Ja mēs atskatāmies uz šo kodu, mums ir šis veselais masīvs. 334 00:24:36,000 --> 00:24:38,000 Kā mēs zinām, cik ilgi tas ir? 335 00:24:38,000 --> 00:24:44,000 [Studentu] Vai ir līdzvērtīgs viena parametra, piemēram, int l vai kaut ko? 336 00:24:44,000 --> 00:24:49,000 Izrādās, ka patiesībā nav, un tāpēc tādā veidā, tas ir 337 00:24:49,000 --> 00:24:52,000 viena no tām lietām, kas ir tikai labi zināt par C, 338 00:24:52,000 --> 00:24:57,000 ka nav veids, kā iegūt garumu masīva 339 00:24:57,000 --> 00:24:59,000 ja viss, ko es dot jums ir masīvs. 340 00:24:59,000 --> 00:25:02,000 Iemesls tas darbojas ar stīgām, iemesls strlen darbi, 341 00:25:02,000 --> 00:25:06,000 ir tāpēc, ja virkne ir pareizi formatēts, 342 00:25:06,000 --> 00:25:12,000 tas ir, ka īpaša \ 0 raksturu pašās beigās. 343 00:25:12,000 --> 00:25:16,000 >> Jūs varat arī iedomāties, ja jums ir nepareizi formatēts virkni 344 00:25:16,000 --> 00:25:20,000 un tur nav \ 0 raksturs tur, tad viss nedarbojas. 345 00:25:20,000 --> 00:25:22,000 [Studentu] Vai jūs pievienot \ 0? 346 00:25:22,000 --> 00:25:24,000 Mēs varētu šajā gadījumā. 347 00:25:24,000 --> 00:25:29,000 Mēs varētu pievienot dažas veida 0 \ 348 00:25:29,000 --> 00:25:33,000 vai daži no nozīmētu raksturu un pēc tam kārtot izmantot. 349 00:25:33,000 --> 00:25:36,000 Bet tas nav gluži iet uz darbu 350 00:25:36,000 --> 00:25:40,000 jo \ 0 ir par char tipa, 351 00:25:40,000 --> 00:25:43,000 un šeit mēs esam ieguvuši Ints. 352 00:25:43,000 --> 00:25:46,000 Otra lieta ir, ja mēs izmantot īpašu vērtību 353 00:25:46,000 --> 00:25:49,000 piemēram -1 līdz atzīmētu beigām masīva 354 00:25:49,000 --> 00:25:54,000 tad mēs varētu nekad glabāt -1 mūsu skaitlim masīvi. 355 00:25:54,000 --> 00:25:56,000 Mēs gribētu būt iestrēdzis. 356 00:25:56,000 --> 00:26:00,000 Izrādās, ka vienīgais veids, kā iegūt garumu 357 00:26:00,000 --> 00:26:03,000 gada masīva C ir faktiski atcerēties 358 00:26:03,000 --> 00:26:08,000 kad jūs to uz augšu un pēc tam nodot to apkārt ar masīva 359 00:26:08,000 --> 00:26:14,000 tāpēc, ka, ja man ir funkcija, kas gatavojas darīt kādu darbu 360 00:26:14,000 --> 00:26:18,000 uz vairākām integers vai pludiņiem vai dubultspēlē vai ko jūs, 361 00:26:18,000 --> 00:26:22,000 Man arī vajadzētu dot funkcija Array garuma, 362 00:26:22,000 --> 00:26:26,000 un tas ir tieši tas, ko mēs esam darījuši šeit meklēšanas funkciju. 363 00:26:26,000 --> 00:26:30,000 Ja paskatās, ko mēs esam darījuši, kad mēs iet mūsu masīvs šeit, 364 00:26:30,000 --> 00:26:36,000 mēs arī iet garumā, izmērs. 365 00:26:36,000 --> 00:26:41,000 Tā vienkārši gadās, ka mēs esam nosaukuši šo mainīgo šeit, 366 00:26:41,000 --> 00:26:43,000 Šis parametrs vai arguments. 367 00:26:43,000 --> 00:26:46,000 To sauc funkciju arguments sarakstu vai parametru sarakstā, 368 00:26:46,000 --> 00:26:51,000 un tie ir arī sauc argumentus vai parametri. 369 00:26:51,000 --> 00:26:53,000 Cilvēki izmanto dažādus terminus dažādos laikos. 370 00:26:53,000 --> 00:26:55,000 Es dažreiz mijas viņiem sevi. 371 00:26:55,000 --> 00:27:00,000 Tas tikai tā notiek, ka šis mainīgais šeit ir nosaukta līdzīgi 372 00:27:00,000 --> 00:27:03,000 līdz šī # definēt šeit. 373 00:27:03,000 --> 00:27:06,000 Bet viņi nav tas pats. 374 00:27:06,000 --> 00:27:11,000 Kapitalizācijas nav jautājums. 375 00:27:11,000 --> 00:27:14,000 >> Ja paskatās, kas notiek šeit, mēs paziņojam 376 00:27:14,000 --> 00:27:18,000 Mūsu int masīvs, ko mēs esam sauc numuriem. 377 00:27:18,000 --> 00:27:23,000 Mēs esam izdarījusi mūsu izmēra, kas atbilst mūsu # definēt augšā. 378 00:27:23,000 --> 00:27:27,000 Tas būs 8. 379 00:27:27,000 --> 00:27:35,000 Un tad, kad mēs tam saucam mūsu meklēšanas funkciju zemāk, 380 00:27:35,000 --> 00:27:40,000 mums iet skaita mēs vēlamies, lai meklētu, ko mēs esam tiek prasīts, 381 00:27:40,000 --> 00:27:43,000 gotten no lietotāja. 382 00:27:43,000 --> 00:27:46,000 Mums iet masīvā, šo skaitu, 383 00:27:46,000 --> 00:27:51,000 un tad mums ir arī iziet ar izmēru masīva, 384 00:27:51,000 --> 00:27:57,000 un tad 8 izmēra vērtība izpaužas uzglabā 385 00:27:57,000 --> 00:28:01,000 vai nodots šim skaitlim mainīgo sauc lielumu. 386 00:28:01,000 --> 00:28:08,000 Mums ir ārpus masīva. 387 00:28:08,000 --> 00:28:11,000 Tagad, ja mēs ejam atpakaļ uz to, ko mēs runājām par agrāk, 388 00:28:11,000 --> 00:28:14,000 Es domāju, Missy audzināti domu, ka to, ko mums vajadzēja darīt, ir iegūt garums masīva 389 00:28:14,000 --> 00:28:20,000 un sadalīt to ar 2, un kas dos mums viduspunktā. 390 00:28:20,000 --> 00:28:22,000 Pieņemsim redzēt. 391 00:28:22,000 --> 00:28:25,000 Vai man ir kāds rakstīt šo un saglabājiet to savā telpā? 392 00:28:25,000 --> 00:28:27,000 Kā par Leila? 393 00:28:27,000 --> 00:28:31,000 Vai man ir rakstīt šis? 394 00:28:31,000 --> 00:28:35,000 Uzrakstiet pirmo līniju, kur jūs lietojat garums masīva un saņemt viduspunktā 395 00:28:35,000 --> 00:28:41,000 un uzglabāt to jaunā mainīgā. 396 00:28:41,000 --> 00:28:44,000 Es jums pāris sekundes. Vai esat gatavi? 397 00:28:44,000 --> 00:28:46,000 [Studentu dzirdams] 398 00:28:46,000 --> 00:28:50,000 Protams, es varētu būt jums aprēķināt viduspunktā 399 00:28:50,000 --> 00:28:55,000 no siena kaudzē masīvs iekšpusē meklēšanas funkciju 400 00:28:55,000 --> 00:29:03,000 izmantojot garumu siena kaudzē masīvs, kas ir lielums mainīgs? 401 00:29:03,000 --> 00:29:08,000 Nekas grūts šeit. 402 00:29:08,000 --> 00:29:12,000 [Leila] Tikai izmērs / 2 un tikko 403 00:29:12,000 --> 00:29:17,000 Un saglabājiet to, un hit pogas Saglabāt šeit augšā, 404 00:29:17,000 --> 00:29:19,000 un mēs velciet to uz augšu. 405 00:29:19,000 --> 00:29:22,000 Perfekta. 406 00:29:22,000 --> 00:29:28,000 Tur mums iet. Awesome. 407 00:29:28,000 --> 00:29:30,000 >> Kā ir, vai tas sastāda? 408 00:29:30,000 --> 00:29:32,000 [Leila] Nē, tas ir lielāks. 409 00:29:32,000 --> 00:29:34,000 [Nate] Jā, lai to, ko mums vajag darīt? 410 00:29:34,000 --> 00:29:36,000 [Leila] Tāpat int viduspunktā vai kaut ko. 411 00:29:36,000 --> 00:29:41,000 Awesome. Jā, pieņemsim darīt, int viduspunktā = lielums. 412 00:29:41,000 --> 00:29:44,000 Vai tas apkopotu? 413 00:29:44,000 --> 00:29:47,000 Pieņemsim dzēst šo komentāru, un saņemt to no ceļu. 414 00:29:47,000 --> 00:29:50,000 Kas netiek sastādīt par šo? 415 00:29:50,000 --> 00:29:52,000 Mēs nedarām neko ar skaitlim, 416 00:29:52,000 --> 00:29:55,000 tāpēc mums ir nepieciešams, lai izdrukāt vai kaut kas tamlīdzīgs. 417 00:29:55,000 --> 00:29:58,000 Jā, tieši tā. 418 00:29:58,000 --> 00:30:00,000 Mēs saņemt neizmantoto mainīgo. 419 00:30:00,000 --> 00:30:02,000 Kas vēl nav dodas uz darbu par šo? 420 00:30:02,000 --> 00:30:06,000 Es domāju, ka jūs kaut ko teica, Sam. Semikoliem. 421 00:30:06,000 --> 00:30:08,000 Jā, es esmu trūkst šos semikoliem. 422 00:30:08,000 --> 00:30:14,000 Tas būs nemainīga lieta gaitā termiņa. 423 00:30:14,000 --> 00:30:17,000 Pēdējā lieta es darīšu, ir Es nolikšu daži atstarpēm abās pusēs 424 00:30:17,000 --> 00:30:23,000 Šīs operators šeit, jo tas parasti kā mēs to darām 425 00:30:23,000 --> 00:30:26,000 saskaņā ar mūsu style guide. 426 00:30:26,000 --> 00:30:29,000 Mēs esam ieguvuši viduspunktā mūsu masīvs. 427 00:30:29,000 --> 00:30:32,000 Tagad, ja mēs atceramies atpakaļ uz mūsu algoritma, 428 00:30:32,000 --> 00:30:37,000 kāda bija otrais solis, kas mums bija jādara, kad mums ir viduspunkts? 429 00:30:37,000 --> 00:30:42,000 [Studentu] Ja tas ir lielāks [nedzirdama]. 430 00:30:42,000 --> 00:30:48,000 Yeah, tāpēc mums ir jādara kaut kādas salīdzināšanas, un ko mēs salīdzinot šeit? 431 00:30:48,000 --> 00:30:53,000 Jūs teicāt, ja tā ir lielāka nekā. Kas tas ir, šajā teikumā atsaucoties uz? 432 00:30:53,000 --> 00:30:57,000 Numuru, kas nāk uz augšu, ja tas ir lielāks par viduspunktu, tad aiziet līdz masīva? 433 00:30:57,000 --> 00:31:05,000 Tieši, to skaits, kas nāk uz augšu, ja mēs- 434 00:31:05,000 --> 00:31:10,000 Adata, tāpēc mēs esam, salīdzinot ar adatu, 435 00:31:10,000 --> 00:31:12,000 un ko mēs salīdzinātu pret adatas? 436 00:31:12,000 --> 00:31:15,000 Jo adata ir tas, ko mēs meklējam. 437 00:31:15,000 --> 00:31:18,000 Mēs esam salīdzinot to nokļūt līdz viduspunktā. 438 00:31:18,000 --> 00:31:21,000 >> Bet vai ir jēga pārbaudīt, lai redzētu 439 00:31:21,000 --> 00:31:27,000 ja adata = viduspunkts? 440 00:31:27,000 --> 00:31:32,000 Vai ir jēga? 441 00:31:32,000 --> 00:31:35,000 Vai kāds nepiekrīt? 442 00:31:35,000 --> 00:31:40,000 Pieņemsim pamēģināt, ja (adata == viduspunktā). 443 00:31:40,000 --> 00:31:42,000 [Studentu] Vai printf jums atrast to. 444 00:31:42,000 --> 00:31:51,000 [Nate] printf ("Mēs atklājām to \ n!"); 445 00:31:51,000 --> 00:31:56,000 Citādi-I'm gatavojas sākt darīt kaut ko citu šeit. 446 00:31:56,000 --> 00:32:00,000 Es esmu gatavojas sākt liekot breketes apkārt, ja paziņojumus visu laiku 447 00:32:00,000 --> 00:32:05,000 tikai tāpēc, ja mēs pievienot vairāk stuff, tad 448 00:32:05,000 --> 00:32:07,000 mums nav iegūt kompilatoru. 449 00:32:07,000 --> 00:32:09,000 Yeah, Sam. Tev taisnība. 450 00:32:09,000 --> 00:32:12,000 Problēma ir tā, ka viduspunktā pārstāv pozīciju masīvā, 451 00:32:12,000 --> 00:32:15,000 bet jūs varat saņemt to pārstāvēt vērtību šādā stāvoklī masīva. 452 00:32:15,000 --> 00:32:17,000 Tas ir liels jautājums. 453 00:32:17,000 --> 00:32:19,000 Vai ikviens dzirdēt Sems teica? 454 00:32:19,000 --> 00:32:22,000 Viņš teica, ka viduspunkts kā ir 455 00:32:22,000 --> 00:32:28,000 atspoguļo tikai pozīciju masīvā, bet tas nav faktisko elementu masīvā. 456 00:32:28,000 --> 00:32:30,000 Ja jūs domājat par kodu kā tas rakstīts tieši tagad, 457 00:32:30,000 --> 00:32:35,000 ja mēs skatāmies uz šo masīvs šeit lejā, kas ir 8 elementi tajā, 458 00:32:35,000 --> 00:32:39,000 kāda ir viduspunkts būs šo funkciju vērtība? 459 00:32:39,000 --> 00:32:41,000 [Studentu] 4. 460 00:32:41,000 --> 00:32:45,000 [Nate] 4. 461 00:32:45,000 --> 00:32:51,000 Ja mēs skatāmies uz numuru 4 - 462 00:32:51,000 --> 00:32:54,000 un mēs varam tikai palaist šo kodu un nodot nedaudz skumjš sejas šeit 463 00:32:54,000 --> 00:32:58,000 jo mēs neatradām to-ja mēs palaist šo kodu 464 00:32:58,000 --> 00:33:04,000 kā ir šobrīd, augšupielādējot to, ēka, ļaujiet man ritiniet uz leju, 465 00:33:04,000 --> 00:33:09,000 un ja mēs skatāmies uz numuru 4, 466 00:33:09,000 --> 00:33:18,000 mēs atradām, bet mums nav iegūt šo printf jā. 467 00:33:18,000 --> 00:33:23,000 Viens no iemesliem ir, ka mēs neatgriezās taisnība, 468 00:33:23,000 --> 00:33:26,000 bet vai mēs patiešām atrast numuru 4? 469 00:33:26,000 --> 00:33:28,000 Un Sam saka nē. 470 00:33:28,000 --> 00:33:31,000 Ko mēs redzam? 471 00:33:31,000 --> 00:33:35,000 Mēs tiešām konstatēja viduspunktā, kas, ja mēs skatāmies no masīva leju šeit, 472 00:33:35,000 --> 00:33:38,000 tas būs elements ir 4 indeksa ka mēs meklējam, 473 00:33:38,000 --> 00:33:42,000 kas ir 23. 474 00:33:42,000 --> 00:33:46,000 >> Kā mēs faktiski iegūtu šo elementu viduspunktā 475 00:33:46,000 --> 00:33:48,000 un ne tikai viduspunkts pati? 476 00:33:48,000 --> 00:33:52,000 [Studentu] Mēs stāsies char vai kaut ko? 477 00:33:52,000 --> 00:33:55,000 Kas būtu, ka darīt, tikai no zinātkāri? 478 00:33:55,000 --> 00:33:57,000 Vai jūs varat izstrādāt mazliet vairāk? 479 00:33:57,000 --> 00:34:02,000 Jums ir pārveidot pozīciju vērā skaitu, 480 00:34:02,000 --> 00:34:05,000 lai jums veikt dažas savienojuma Es domāju, ka tas palija, bet tā varētu būt. 481 00:34:05,000 --> 00:34:07,000 Jā, tas ir labs punkts. 482 00:34:07,000 --> 00:34:12,000 Mēs esam bijuši dara daudz šo konvertējošā pozīciju vērā chars, šīs zīmes, 483 00:34:12,000 --> 00:34:14,000 pirmajās divās problēmu kopas. 484 00:34:14,000 --> 00:34:18,000 Izrādās, ka šeit tas ir gandrīz līdzīgs 485 00:34:18,000 --> 00:34:24,000 piekļūstot kārtējam raksturu laikā virknē, ja tas ir jēga. 486 00:34:24,000 --> 00:34:30,000 Šeit mēs gribam, lai piekļūtu viduspunktu elementu. 487 00:34:30,000 --> 00:34:34,000 Kā mēs to darām? 488 00:34:34,000 --> 00:34:39,000 Kevin, vai jums ir kādi ierosinājumi, kā mēs varētu darīt? 489 00:34:39,000 --> 00:34:44,000 Jūs varētu darīt siena kaudzē, atvērta kronšteinu, vidū, slēgta kronšteinu. 490 00:34:44,000 --> 00:34:46,000 Vai jūs varat rakstīt, ka mums? 491 00:34:46,000 --> 00:34:51,000 Saglabājiet to šeit, un mēs pull, ka uz augšu. 492 00:34:51,000 --> 00:34:56,000 Mēs esam meklē šajā līnijā 9, 493 00:34:56,000 --> 00:34:59,000 un mēs esam saprotot, ka mēs negribam salīdzināt adatu viduspunktu, 494 00:34:59,000 --> 00:35:03,000 bet tā vietā, mēs vēlamies, lai salīdzinātu adatu 495 00:35:03,000 --> 00:35:07,000 līdz elementā pozīciju viduspunktā laikā mūsu siena kaudzē masīvs. 496 00:35:07,000 --> 00:35:10,000 Atdzist. 497 00:35:10,000 --> 00:35:12,000 Tur mums iet. 498 00:35:12,000 --> 00:35:15,000 Yeah, ka izskatās diezgan labi, ja (adata == Haystack [viduspunktā]). 499 00:35:15,000 --> 00:35:18,000 Mēs atradis. 500 00:35:18,000 --> 00:35:22,000 Tagad, ja mēs palaist kodu we'll atpakaļ uz augšu mazliet, 501 00:35:22,000 --> 00:35:26,000 tas apkopo, tā darbojas, un tagad, ja mēs skatāmies uz 4, 502 00:35:26,000 --> 00:35:30,000 Mēs neatradām, jo ​​tagad mēs esam faktiski kļūst numuru 23. 503 00:35:30,000 --> 00:35:33,000 Mēs esam kļūst vērtība 23, un tas, ko mēs esam, salīdzinot ar mūsu adatu. 504 00:35:33,000 --> 00:35:35,000 Bet tas ir labi. Tas ir solis pareizajā virzienā. 505 00:35:35,000 --> 00:35:37,000 >> Ka tas, ko mēs cenšamies darīt. 506 00:35:37,000 --> 00:35:40,000 Mēs nemēģinām salīdzināt adatu pret pozīcijām masīva 507 00:35:40,000 --> 00:35:44,000 bet gan pret faktiskajiem elementiem masīvs. 508 00:35:44,000 --> 00:35:49,000 Ja mēs atskatāmies atkal tagad nākamo soli mūsu algoritms, 509 00:35:49,000 --> 00:35:51,000 kāda ir nākamais solis? 510 00:35:51,000 --> 00:35:57,000 Leila jau minēts tas īsumā. 511 00:35:57,000 --> 00:36:00,000 [Studentu] Pārbaudiet, vai tas ir lielāks vai mazāks nekā un tad izlemt, uz kuru pusi virzīties. 512 00:36:00,000 --> 00:36:03,000 [Nate] Jā, tā kā būtu mēs darīt? 513 00:36:03,000 --> 00:36:07,000 Vai jūs varat ievietot kādā-I'll saglabāt šo pārskatīšanu, 514 00:36:07,000 --> 00:36:13,000 un tad, ja jūs nodot dažas līnijas, kas būs jādara. 515 00:36:13,000 --> 00:36:15,000 Jā, Šarlote >> man ir jautājums.. 516 00:36:15,000 --> 00:36:19,000 Nevajadzētu tā būt viduspunktam - 1, jo pirmā lieta ir 517 00:36:19,000 --> 00:36:26,000 tas 0 indeksētas, tāpēc, ja mēs ieliekam 4, tas nav faktiski raksturs mēs meklējam? 518 00:36:26,000 --> 00:36:30,000 Jā, un otra problēma, kas ir- 519 00:36:30,000 --> 00:36:35,000 tas liels nozvejas, jo to, kas notiek, lai galu galā notiek, iespējams 520 00:36:35,000 --> 00:36:42,000 ja mēs pastāvīgi pārvietojas un mēs kādreiz pielāgot sākotnēji? 521 00:36:42,000 --> 00:36:46,000 Es domāju, ko mēs varētu galu galā dara mēģina piekļūt 522 00:36:46,000 --> 00:36:49,000 elementa pie 8. pozīciju masīva, 523 00:36:49,000 --> 00:36:53,000 kas šajā gadījumā nepastāv. 524 00:36:53,000 --> 00:36:56,000 Mēs vēlamies darīt kaut kādas uzskaites faktu 525 00:36:56,000 --> 00:36:59,000 ka mums ir dažas nulles indeksācija. 526 00:36:59,000 --> 00:37:05,000 [Šarlote] Atvainojiet, es gribēju viduspunktā - 1 kvadrātiekavās. 527 00:37:05,000 --> 00:37:08,000 Mēs varam darīt. 528 00:37:08,000 --> 00:37:10,000 Mēs atgriezīsimies pie šī jautājuma, tikai mazliet. 529 00:37:10,000 --> 00:37:13,000 Tiklīdz mēs sākam to faktisko looping, 530 00:37:13,000 --> 00:37:16,000 tas ir, kad mēs patiešām redzam stājas play. 531 00:37:16,000 --> 00:37:21,000 Pagaidām, mēs varam darīt, bet tu esi pilnīgi taisnība. 532 00:37:21,000 --> 00:37:28,000 Ka nulles indeksācija būs ietekme, kas mums ir nepieciešams, lai uzskaitītu. 533 00:37:28,000 --> 00:37:30,000 Pieņemsim redzēt. 534 00:37:30,000 --> 00:37:34,000 >> Cik ir lielāks un mazāks nekā? 535 00:37:34,000 --> 00:37:36,000 [Studentu] man kā to izdarīt lielāks un mazāks nekā daļu. 536 00:37:36,000 --> 00:37:41,000 Es vienkārši nebiju pārliecināts, ko drukāt, ja jūs konstatējat, ka tas ir mazāk nekā siena kaudzē viduspunktā vai lielāka. 537 00:37:41,000 --> 00:37:43,000 Šeit es varētu saglabāt to, ko I've- 538 00:37:43,000 --> 00:37:47,000 [Nate] Jā, ja jūs saglabāt to, ko jūs esat ieguvuši, un mēs velciet to uz augšu. 539 00:37:47,000 --> 00:37:49,000 Tur mums iet. 540 00:37:49,000 --> 00:37:51,000 [Studentu] Un man jautājuma zīmes par to, ko es nezināju. 541 00:37:51,000 --> 00:37:54,000 [Nate] Tas izskatās lieliski. 542 00:37:54,000 --> 00:37:58,000 Šeit mēs esam ieguvuši jautājuma zīmes, jo mēs vēl nezinām 543 00:37:58,000 --> 00:38:06,000 ko mēs gatavojamies gluži darīt vēl. 544 00:38:06,000 --> 00:38:12,000 Ko mēs vēlamies darīt-Ups, mēs esam ieguvuši dažas lencēm visiem bailīgs uz mums. 545 00:38:12,000 --> 00:38:15,000 Mēs labot šos lencēm. 546 00:38:15,000 --> 00:38:19,000 Tur mums iet. 547 00:38:19,000 --> 00:38:22,000 Un, lai ko mēs vēlamies darīt, saskaņā ar mūsu algoritma, 548 00:38:22,000 --> 00:38:27,000 ja mēs nevaram atrast adatu? 549 00:38:27,000 --> 00:38:32,000 Say gadījumā ka adata ir mazāks nekā tas, ko mēs meklējam, ir. Kevin. 550 00:38:32,000 --> 00:38:34,000 Tikai apskatīt kreisajā pusē. 551 00:38:34,000 --> 00:38:40,000 Labi, tāpēc mēs likts komentāru šeit, kas saka "apskatīt kreisajā pusē." 552 00:38:40,000 --> 00:38:46,000 Un, ja adata ir lielāks nekā siena kaudzē pie viduspunktā, ko mēs vēlamies darīt? 553 00:38:46,000 --> 00:38:48,000 [Studentu] Tad jums apskatīt labajā pusē. 554 00:38:48,000 --> 00:38:53,000 Paskaties labajā pusē, "apskatīt labajā pusē." 555 00:38:53,000 --> 00:38:58,000 Ne pārāk nobružāts. 556 00:38:58,000 --> 00:39:05,000 Labi, tāpēc šajā brīdī, lietas, meklē diezgan laba. 557 00:39:05,000 --> 00:39:13,000 Ar kodu, kā rakstveida problēma ir tas, ko? 558 00:39:13,000 --> 00:39:15,000 [Studentu] Jums nav mērķa kritērijus pusītes. 559 00:39:15,000 --> 00:39:18,000 Labi, mums nav mērķa kritērijus pusītes. 560 00:39:18,000 --> 00:39:20,000 Mēs arī tikai gatavojas iet caur šo vienu reizi. 561 00:39:20,000 --> 00:39:23,000 Mēs esam tikai gatavojas apskatīt vienu viduspunktā. 562 00:39:23,000 --> 00:39:27,000 Nu elements ir tur, vai arī tas nav. 563 00:39:27,000 --> 00:39:34,000 Lai pabeigtu, mums būs nepieciešams veikt dažas veida atkārtošanās. 564 00:39:34,000 --> 00:39:39,000 Mums ir nepieciešams, lai saglabātu atkārtojot, līdz mēs redzam, ka 565 00:39:39,000 --> 00:39:43,000 nu elements ir tur, jo mēs esam sašaurināts leju un beidzot atradis, 566 00:39:43,000 --> 00:39:46,000 vai tas nav tur, jo mēs esam paskatījās cauri visām lietām 567 00:39:46,000 --> 00:39:52,000 attiecīgajās pusītes masīva un konstatēja, ka nekas nav tur. 568 00:39:52,000 --> 00:39:56,000 >> Ikreiz, kad mēs esam ieguvuši šo atkārtošanās notiek, ko mēs gatavojamies izmantot? 569 00:39:56,000 --> 00:39:58,000 [Studentu] cilpa. 570 00:39:58,000 --> 00:40:00,000 Kaut kādas cilpas. Jā. 571 00:40:00,000 --> 00:40:03,000 [Studentu] Vai mēs do-kamēr cilpa, un ir to darīt un tad, kamēr 572 00:40:03,000 --> 00:40:10,000 adata nav vienāds-I'm nav pārliecināts, kur man bija iet ar to. 573 00:40:10,000 --> 00:40:18,000 Bet kaut kas līdzīgs darīt, kamēr tā nav vienāda vērtība, lietotāja ievadi. 574 00:40:18,000 --> 00:40:21,000 Yeah, tāpēc pieņemsim redzēt, kā tas varētu uzrakstīt pati? 575 00:40:21,000 --> 00:40:23,000 Jūs teicāt pieņemsim izmantot do-kamēr cilpa. 576 00:40:23,000 --> 00:40:26,000 Kur tas jādara sākt? 577 00:40:26,000 --> 00:40:33,000 [Studentu] Uzreiz pēc izmēra / 2. 578 00:40:33,000 --> 00:40:42,000 [Nate] Labi, un ko mēs gatavojamies darīt? 579 00:40:42,000 --> 00:40:44,000 Mēs aizpildiet brītiņa vēlāk. 580 00:40:44,000 --> 00:40:46,000 Ko mēs darīsim? 581 00:40:46,000 --> 00:40:49,000 [Studentu] Vai nav mēs vēlamies darīt visu stuff mums ir IF daļu? 582 00:40:49,000 --> 00:40:52,000 [Nate] Vai visu šo stuff, lieliski. 583 00:40:52,000 --> 00:40:55,000 Kopēt un ielīmēt. 584 00:40:55,000 --> 00:40:59,000 Ak, cilvēks. 585 00:40:59,000 --> 00:41:03,000 Redzēsim, vai tas darbojas, ja mēs varam tab šo pāri. 586 00:41:03,000 --> 00:41:08,000 Skaisti. 587 00:41:08,000 --> 00:41:16,000 Labi, un mēs saglabājam šo, lai jūs puiši ir tā. 588 00:41:16,000 --> 00:41:21,000 Labi, un mēs gatavojamies darīt, bet- 589 00:41:21,000 --> 00:41:25,000 kāda bija, kamēr nosacījums bijāt pēc? 590 00:41:25,000 --> 00:41:31,000 [Studentu] Kaut adata nav vienāda, tāpēc, piemēram, izsaukuma zīme. 591 00:41:31,000 --> 00:41:37,000 Bet es neesmu pārliecināts, ko tieši tas ir vēl. 592 00:41:37,000 --> 00:41:39,000 [Nate] Jā, tas ir viens no veidiem, kā to darīt. 593 00:41:39,000 --> 00:41:41,000 Sam, jums ir komentārs? 594 00:41:41,000 --> 00:41:43,000 [Sems] Es atcerējos, kad es paskatījos video, 595 00:41:43,000 --> 00:41:48,000 Paņēmu screenshot viens no-piemēram, kad mēs to darīja pseudocode par to, 596 00:41:48,000 --> 00:41:52,000 pastāv saistība starp max un min attiecības. 597 00:41:52,000 --> 00:41:58,000 Es domāju, ka tas bija kaut kas līdzīgs, ja max ir arvien mazāk nekā min. 598 00:41:58,000 --> 00:42:00,000 Dabūja to. 599 00:42:00,000 --> 00:42:04,000 [Sems] Vai patīk, ja max ir ne mazāka nekā min vai kaut kas tamlīdzīgs, 600 00:42:04,000 --> 00:42:06,000 jo tas nozīmētu, ka esat meklējis visu. 601 00:42:06,000 --> 00:42:13,000 >> Jā, lai to, ko tas izklausās max un min tika atsaucoties uz? 602 00:42:13,000 --> 00:42:16,000 [Sam] Vērtības, ka-integers, kas gatavojas mainīt 603 00:42:16,000 --> 00:42:18,000 relatīvs, kur mēs ieliekam viduspunktā. 604 00:42:18,000 --> 00:42:20,000 Tieši tā. 605 00:42:20,000 --> 00:42:24,000 [Sems] Tajā brīdī, tas notiek, lai [dzirdams] aprēķināt max un min. 606 00:42:24,000 --> 00:42:29,000 Viduspunktā tas max un min ideja. 607 00:42:29,000 --> 00:42:35,000 Vai tas ir jēga, lai ļaudīm? 608 00:42:35,000 --> 00:42:39,000 Ja mēs sākt meklēt, kā mēs gatavojamies darīt atkārtojuma, 609 00:42:39,000 --> 00:42:43,000 tu esi pilnīgi pareizi, ka mēs vēlamies izmantot kādu no do-kamēr cilpa. 610 00:42:43,000 --> 00:42:49,000 Bet es domāju, ja mēs atceramies to, kas notiek pie vietas šī masīva 611 00:42:49,000 --> 00:42:53,000 un to, kas patiesībā notiek, I'm gatavojas rakstīt nekā šeit- 612 00:42:53,000 --> 00:42:58,000 pie pašas pirmās atkārtojuma bināro meklēšanu, mums ir- 613 00:42:58,000 --> 00:43:05,000 Es esmu gatavojas izmantot B un E, lai apzīmētu sākumā. 614 00:43:05,000 --> 00:43:10,000 Un tad beigas mūsu masīvs. 615 00:43:10,000 --> 00:43:14,000 Mēs zinām, ka sākums ir 4 labi nekā šeit, 616 00:43:14,000 --> 00:43:18,000 un mēs zinām, ka gals ir pie 108. 617 00:43:18,000 --> 00:43:23,000 Saka, ka mēs esam meklējot numuru 15. 618 00:43:23,000 --> 00:43:27,000 Pirmo reizi mēs to darām, kā mēs redzējām agrāk, 619 00:43:27,000 --> 00:43:30,000 viduspunktā ir vai nu būs būt 16 vai 23 620 00:43:30,000 --> 00:43:34,000 atkarībā no tā, kā mēs aprēķinām lietas. 621 00:43:34,000 --> 00:43:37,000 Tā vienmērīgi sadalot pa vidu dotu mums šo vietu 622 00:43:37,000 --> 00:43:42,000 no 16 līdz 23, mēs nevaram vienmērīgi sadalīt to 623 00:43:42,000 --> 00:43:47,000 vai sadalīt to un saņemt pie patiess viduspunktā. 624 00:43:47,000 --> 00:43:49,000 Mēs apskatīt 16. 625 00:43:49,000 --> 00:43:55,000 Mēs saprotam "Hei, 16> 15, ka mēs meklējam." 626 00:43:55,000 --> 00:43:59,000 Lai pēc tam apskatīt kreisajā pusē masīva 627 00:43:59,000 --> 00:44:03,000 ko mēs galu galā darīt ir izmetot 628 00:44:03,000 --> 00:44:07,000 Tas viss augšējā daļa 629 00:44:07,000 --> 00:44:16,000 un saka: "Labi, tagad mūsu rezultāts būs šeit." 630 00:44:16,000 --> 00:44:22,000 Nākamais evolūcijas mūsu cilpas, mēs šobrīd meklē šī masīva, 631 00:44:22,000 --> 00:44:25,000 efektīvi, kas izmet šo daļu, jo tagad 632 00:44:25,000 --> 00:44:30,000 ja mēs esam ņemot viduspunktā kā starpība starp sākuma un beigu, 633 00:44:30,000 --> 00:44:34,000 mēs atrast mūsu viduspunktā ir 8, 634 00:44:34,000 --> 00:44:40,000 ko tad mēs varam pārbaudīt 8 lai redzētu, kur tas atrodas attiecībā pret skaitu mēs meklējam, 635 00:44:40,000 --> 00:44:44,000 15, atrast, ka 15 ir lielāks, 636 00:44:44,000 --> 00:44:49,000 tāpēc mums ir jāvirzās uz labo daļu sarakstā, 637 00:44:49,000 --> 00:44:51,000 ko mēs zinām, jo ​​mēs esam cilvēki, un mēs varam redzēt to. 638 00:44:51,000 --> 00:44:54,000 Mēs zinām, ka tiesības daļa būs, kur mēs atrast, 639 00:44:54,000 --> 00:45:01,000 bet dators nezina, ka, lai to, ko mēs darīsim, ir mēs tiešām 640 00:45:01,000 --> 00:45:04,000 ir tas iet uz augšu, un tagad sākums un beigas 641 00:45:04,000 --> 00:45:11,000 ir tajā pašā vietā, tāpēc viduspunktā kļūst par vienīgo numuru sarakstā šajā brīdī, 642 00:45:11,000 --> 00:45:16,000 kas ir 15, un mēs esam noskaidrojuši to. 643 00:45:16,000 --> 00:45:21,000 Vai tas nelielu ieskatu par to, kur tas viss max un min notāciju notiek, 644 00:45:21,000 --> 00:45:24,000 sekotu no masīva galapunktiem, lai noskaidrotu 645 00:45:24,000 --> 00:45:35,000 kā sašaurināt lietas leju? 646 00:45:35,000 --> 00:45:42,000 >> Kas notiktu, ja tas tā nav vienāda ar 15 tagad? 647 00:45:42,000 --> 00:45:52,000 Ko darīt, ja mēs meklējam 15 un tā vietā, šis skaitlis arī bija 16? 648 00:45:52,000 --> 00:45:54,000 Mēs gribētu teikt: "Ak, tas ir lielāks. 649 00:45:54,000 --> 00:45:57,000 Mēs gribam doties atpakaļ uz kreiso. " 650 00:45:57,000 --> 00:46:01,000 Un mēs gribētu pārcelties mūsu e pa labi, 651 00:46:01,000 --> 00:46:06,000 kurā brīdī mums ir vērtētais kas būtu pretrunīgi. 652 00:46:06,000 --> 00:46:09,000 Tas nevarētu meklēt kādu vairāk elementiem 653 00:46:09,000 --> 00:46:13,000 jo tagad mums ir mūsu vērtētais un mūsu sākuma punktu, 654 00:46:13,000 --> 00:46:16,000 Mūsu max un mūsu min, tagad Pagriezts. 655 00:46:16,000 --> 00:46:23,000 Mēs meklēt pa visu masīvs. Mēs nevaram atrast neko. 656 00:46:23,000 --> 00:46:27,000 Tas ir brīdis, kad mēs gribētu gribu teikt: "Labi, mēs ejam, lai apturētu šo algoritmu. 657 00:46:27,000 --> 00:46:34,000 Mēs esam nav atrasts neko. Mēs zinām, tas nav šeit. " 658 00:46:34,000 --> 00:46:36,000 Kā tas notiek? 659 00:46:36,000 --> 00:46:40,000 [Studentu] Kā tieši tas dators pāriet beigām? 660 00:46:40,000 --> 00:46:45,000 Kā beigu beigās pirms sākuma? 661 00:46:45,000 --> 00:46:48,000 Gals beidzas pirms sākuma 662 00:46:48,000 --> 00:46:54,000 jo matemātiku ka mēs gatavojamies darīt katru reizi, kad mēs to izdarītu. 663 00:46:54,000 --> 00:47:00,000 Veids, kā mēs swap ir, ja paskatās ļoti pirmo reizi mēs šo swap 664 00:47:00,000 --> 00:47:03,000 kur mums ir pie 4 sākumu un beigas 665 00:47:03,000 --> 00:47:13,000 viss uz leju pie 108 ceļu un mūsu viduspunktā, teiksim, 16 gadu vecumā - 666 00:47:13,000 --> 00:47:20,000 Es esmu gatavojas, lai atjaunotu šo atpakaļ uz 15, ja mēs meklējam 15 dalībvalstu, 667 00:47:20,000 --> 00:47:25,000 Mēs zinājām, ka to, ko mēs darījām, kad mēs pārbauda 16 un redzēja, ka tā bija lielāka 668 00:47:25,000 --> 00:47:28,000 un vēlējās atbrīvoties visu labo daļu sarakstā, 669 00:47:28,000 --> 00:47:36,000 Mēs redzējām, ka tas, ko mēs vēlējāmies darīt, ir pārvietot šo e šeit. 670 00:47:36,000 --> 00:47:44,000 Faktiski, e got pārcēlās pirms viduspunktā vienu. 671 00:47:44,000 --> 00:47:48,000 Tāpat, ja mēs šo iterāciju algoritma 672 00:47:48,000 --> 00:47:51,000 un viduspunktā bija 8, 673 00:47:51,000 --> 00:47:55,000 mēs noskaidrojām, ka 8 <15, tāpēc mēs vēlējāmies, lai pārvietotu b 674 00:47:55,000 --> 00:48:00,000 1 garām viduspunktā. 675 00:48:00,000 --> 00:48:07,000 Tagad, sākums un gals ir gan kopā 15 šīs. 676 00:48:07,000 --> 00:48:10,000 >> Ja mēs gribētu noticis meklēt kādu citu vērtību, nevis 15, 677 00:48:10,000 --> 00:48:14,000 vai, ja šis 15 ir nevis bijis 16, 678 00:48:14,000 --> 00:48:20,000 mēs būtu konstatēts, ka e mēs vēlamies, lai pārvietotu vienu pirms viduspunktā. 679 00:48:20,000 --> 00:48:33,000 Tagad e būtu tur Pagriezts mazāks nekā b. 680 00:48:33,000 --> 00:48:39,000 Apskatīsim, kā mēs tiešām galu galā kodēšanas šo algoritmu. 681 00:48:39,000 --> 00:48:44,000 Mēs zinām, ka mēs vēlamies, lai šī viduspunktā aprēķinu. 682 00:48:44,000 --> 00:48:48,000 Mēs zinām arī to, ka mēs vēlamies, lai izsekotu sākumu un masīva beigām 683 00:48:48,000 --> 00:48:51,000 Mūsu pašreizējo masīvs, lai mēs varētu izrēķināt 684 00:48:51,000 --> 00:48:56,000 ja tas kreiso pusi no saraksta ir un kur labajā pusē no saraksta ir. 685 00:48:56,000 --> 00:49:03,000 Mēs darīt ar nu sākas un beidzas, 686 00:49:03,000 --> 00:49:07,000 vai mēs varam viņiem piezvanīt min un maks. 687 00:49:07,000 --> 00:49:10,000 Es izmantot sākas un beidzas šo laiku. 688 00:49:10,000 --> 00:49:15,000 Kad mēs sāktu, ja mēs atskatāmies uz mūsu piemērā šeit lejā, 689 00:49:15,000 --> 00:49:20,000 Mūsu sākums tika noteikts paša sākuma masīvs, kā dabas. 690 00:49:20,000 --> 00:49:25,000 Kas indekss bija tas? Kas būtu mūsu jāsāk būtu? 691 00:49:25,000 --> 00:49:27,000 Daniel. 692 00:49:27,000 --> 00:49:30,000 [Daniels] Haystack [0]. 693 00:49:30,000 --> 00:49:37,000 [Nate] Jā, lai mēs to varētu vienāda ar siena kaudzē [0]. 694 00:49:37,000 --> 00:49:40,000 Problēma, lai gan, ir, ka tas dod mums nav nostāju pirmā elementa. 695 00:49:40,000 --> 00:49:45,000 Tas dod mums indekss pirmā elementa vai faktisko vērtību tajā pirmajā pozīcijā. 696 00:49:45,000 --> 00:49:47,000 [Studentu] Tas būs konvertēt uz 0,20? 697 00:49:47,000 --> 00:49:52,000 [Nate] Ko tas būs jādara, ir-labi, tas nav darīt jebkuru konvertēšanu. 698 00:49:52,000 --> 00:49:56,000 Ko tas būs jādara, ir tas veikals ar 4 no sākuma, 699 00:49:56,000 --> 00:49:59,000 un tad tas būs grūti, lai salīdzinātu pret sākas 700 00:49:59,000 --> 00:50:03,000 jo sakt rīkos vērtību 4, 701 00:50:03,000 --> 00:50:06,000 kas ir sākums mūsu masīvs, 702 00:50:06,000 --> 00:50:08,000 bet mēs vēlamies, lai izsekotu indeksus masīvā 703 00:50:08,000 --> 00:50:11,000 nevis vērtībām. 704 00:50:11,000 --> 00:50:17,000 Mēs faktiski izmantot 0, tāpat. 705 00:50:17,000 --> 00:50:20,000 Gada beigās masīva-Šarlote cēla šo up mazliet agrāk. 706 00:50:20,000 --> 00:50:23,000 Tas ir, ja mēs ņemtu vērā nulles indeksācija. 707 00:50:23,000 --> 00:50:25,000 >> Šarlote, kas ir beigu masīva? 708 00:50:25,000 --> 00:50:28,000 Kas ir beigu rādītājs? 709 00:50:28,000 --> 00:50:30,000 [Šarlote] Size - 1. 710 00:50:30,000 --> 00:50:32,000 Yeah, un kuras izmērs mums vajadzētu izmantot? 711 00:50:32,000 --> 00:50:35,000 Mums vajadzētu izmantot kapitāla lielumu vai mazos izmēru? 712 00:50:35,000 --> 00:50:37,000 Kapitāla lielumu. 713 00:50:37,000 --> 00:50:42,000 Šajā gadījumā, mēs varētu izmantot kapitāla lielumu. 714 00:50:42,000 --> 00:50:45,000 Ja mēs vēlējāmies šī funkcija būtu pārnēsājamas 715 00:50:45,000 --> 00:50:48,000 un izmantot šo funkciju citās programmās, 716 00:50:48,000 --> 00:50:50,000 mēs faktiski var izmantot mazajam izmēram. 717 00:50:50,000 --> 00:50:52,000 Tas ir labi too. 718 00:50:52,000 --> 00:51:01,000 Bet Šarlote ir pilnīgi pareizi, ka mēs vēlamies, lai būtu izmērs - 1. 719 00:51:01,000 --> 00:51:03,000 Šajā brīdī, 720 00:51:03,000 --> 00:51:05,000 [Studentu] Kā tas ir, ka jūs varat izmantot lielo izmēru? 721 00:51:05,000 --> 00:51:07,000 Kā tas ir, ka mēs varētu izmantot lielo izmēru? 722 00:51:07,000 --> 00:51:13,000 Izrādās, ka šie # definē ir tiešām, 723 00:51:13,000 --> 00:51:19,000 ar kapuci, dokumentu kā atrast un aizstāt, ja tas ir jēga. 724 00:51:19,000 --> 00:51:24,000 Kad jūs sastādīt savu kodu, preprocessing posms 725 00:51:24,000 --> 00:51:27,000 no kompilatora iet caur failu, 726 00:51:27,000 --> 00:51:31,000 un tā meklē visur, ka jūs esat rakstiski kapitāla lielumu, 727 00:51:31,000 --> 00:51:39,000 un tas tiek aizstāts ar šo tekstu burtiski ar 8, tieši tāpat. 728 00:51:39,000 --> 00:51:42,000 Šajā ziņā, tas ir ļoti atšķiras no mainīgā. 729 00:51:42,000 --> 00:51:45,000 Tas nav sākt kādu telpu atmiņā. 730 00:51:45,000 --> 00:51:52,000 Tas ir vienkāršs teksta aizstāšana triks. 731 00:51:52,000 --> 00:51:57,000 Šajā gadījumā mēs spēsim izmantot izmēru. 732 00:51:57,000 --> 00:52:01,000 No šejienes mēs vēlamies darīt kaut kādas atkārtošanās, 733 00:52:01,000 --> 00:52:03,000 un mēs esam uz pareizā ceļa ar mūsu do-kamēr cilpa. 734 00:52:03,000 --> 00:52:08,000 Mēs vēlamies kaut ko darīt, kamēr stāvoklis nav tur vairs, 735 00:52:08,000 --> 00:52:12,000 un kā mēs redzējām iepriekš, mēs redzējām, ka šis nosacījums 736 00:52:12,000 --> 00:52:19,000 bija tāds, ka mēs negribam beigas 737 00:52:19,000 --> 00:52:24,000 būt mazāks nekā sākt. 738 00:52:24,000 --> 00:52:26,000 >> Tas ir mūsu apstāšanās nosacījums. 739 00:52:26,000 --> 00:52:35,000 Ja tā notiek, mēs vēlamies apstāties un atzīt, piemēram, "Hei, mēs esam nav atrasts neko." 740 00:52:35,000 --> 00:52:43,000 Izteikt to, mēs vēlamies izmantot kādu no cilpas. 741 00:52:43,000 --> 00:52:49,000 Šajā gadījumā tas būtu do-kamēr cilpa, lai cilpa, kamēr cilpa? 742 00:52:49,000 --> 00:52:51,000 Mums ir do-kamēr cilpa šeit. 743 00:52:51,000 --> 00:52:53,000 Vai jūs puiši kā šo pieeju? 744 00:52:53,000 --> 00:52:59,000 Vai jūs domājat, mums vajadzētu mēģināt citu pieeju? 745 00:52:59,000 --> 00:53:01,000 Kevin, kādas domas? 746 00:53:01,000 --> 00:53:06,000 Mēs varētu būt, kamēr cilpa, jo mēs zinām, ne 747 00:53:06,000 --> 00:53:11,000 , būtu lielāka nekā min sākumā anyways. 748 00:53:11,000 --> 00:53:14,000 Yeah, tāpēc tur nav inicializācijas ka nepieciešams notikt. 749 00:53:14,000 --> 00:53:17,000 Šie do-kamēr cilpas ir liels, kad jums ir, lai sāktu kaut ko 750 00:53:17,000 --> 00:53:21,000 pirms tam pārbaudot, bet šeit 751 00:53:21,000 --> 00:53:26,000 mēs zinām, ka mēs nebrauksim, lai saglabātu reinitializing gan sākas un beidzas 752 00:53:26,000 --> 00:53:28,000 katru kārtu no cilpas. 753 00:53:28,000 --> 00:53:32,000 Mēs zinām, ka mēs vēlamies, lai sāktu tos, tad pārbaudiet mūsu stāvokli. 754 00:53:32,000 --> 00:53:38,000 Šajā gadījumā, es tiešām iet ar vienkāršu kamēr cilpa. 755 00:53:38,000 --> 00:53:44,000 Izrādās, ka do-kamēr tiek pielietotas cilpas diezgan reti. 756 00:53:44,000 --> 00:53:49,000 Vietu daudz nav pat iemācīt darīt, kamēr cilpas. 757 00:53:49,000 --> 00:53:53,000 Viņi labi darbam lietotāja ievadi, tāpēc mēs esam redzējuši daudz no viņiem līdz šim. 758 00:53:53,000 --> 00:53:59,000 Bet normāli, un, kamēr cilpas ir daudz kopīga. 759 00:53:59,000 --> 00:54:03,000 Izrādās, ka šis nosacījums kā rakstīts 760 00:54:03,000 --> 00:54:09,000 nav īsti darīt mums daudz laba, un kāpēc tā? 761 00:54:09,000 --> 00:54:11,000 Es atvainojos, es nezinu savu vārdu. 762 00:54:11,000 --> 00:54:13,000 Es esmu Džerijs. >> Atvainojiet? 763 00:54:13,000 --> 00:54:15,000 Tas ir B-O-R-U-es. 764 00:54:15,000 --> 00:54:18,000 Ak, labi. 765 00:54:18,000 --> 00:54:23,000 Es neredzu tevi manā sarakstā. 766 00:54:23,000 --> 00:54:26,000 Ak, tas ir tāpēc, ak, ka ir jēga. 767 00:54:26,000 --> 00:54:31,000 Vai jums ir ideja par to, kāpēc šis kamēr cilpa varētu nedarboties, kā paredzēts, 768 00:54:31,000 --> 00:54:38,000 kā rakstīts ar nosacījumu? 769 00:54:38,000 --> 00:54:43,000 [Džerijs] Tu domā tāpat kā jūs vēlaties visi sīkumi pēc to uz-? 770 00:54:43,000 --> 00:54:46,000 Jā, tā tas ir viens. 771 00:54:46,000 --> 00:54:49,000 Mums varētu būt likt visu šo stuff kamēr cilpa, kas ir pilnīgi taisnība. 772 00:54:49,000 --> 00:54:55,000 Otra lieta, kas ir nedaudz vairāk problemātiska, gan, ir tas, ka šis nosacījums nedarbojas. 773 00:54:55,000 --> 00:54:57,000 [Studentu] Jūs nepieciešams, lai uzsist to. 774 00:54:57,000 --> 00:55:04,000 Labi, tāpēc šis nosacījums nav kādreiz būs taisnība sākotnēji kā mēs runājām par to. 775 00:55:04,000 --> 00:55:08,000 Mēs vēlamies kaut ko darīt līdz gada beigām 00:55:13,000 bet mēs gribam kaut ko darīt, kamēr 777 00:55:13,000 --> 00:55:21,000 sākas ≤ galu. 778 00:55:21,000 --> 00:55:24,000 >> Tur, ka par loģiku maiņa tur. 779 00:55:24,000 --> 00:55:27,000 Es esmu vainīgs padarīt tās kļūdas visu laiku. 780 00:55:27,000 --> 00:55:31,000 [Studentu] Kāpēc tas ir mazāks nekā vai vienāds ar? 781 00:55:31,000 --> 00:55:33,000 Jo jūs atceraties šo lietu, ka mēs saņēmām 782 00:55:33,000 --> 00:55:36,000 kur bija tikai viens elements, un mēs bijām uz leju, 783 00:55:36,000 --> 00:55:43,000 un mēs meklē tikai ar 15 mūsu masīvā? 784 00:55:43,000 --> 00:55:47,000 Un mūsu sākums un mūsu gals bija pats elements. 785 00:55:47,000 --> 00:55:50,000 Mēs vēlamies, lai pārliecinātos, ka mēs risinām šo lietu. 786 00:55:50,000 --> 00:55:54,000 Ja mēs taisni mazāk nekā, 787 00:55:54,000 --> 00:55:58,000 mēs tikai varētu nokļūt uz leju, lai 2-elementu masīvu. 788 00:55:58,000 --> 00:56:06,000 Kad mēs saņēmām līdz šī pēdējā elementa, ja tā būtu mūsu elements, mēs nekad to atrast. 789 00:56:06,000 --> 00:56:10,000 Tagad šeit, mēs varam darīt tieši tāpat jūs sakot. 790 00:56:10,000 --> 00:56:15,000 Mēs varam sākt plopping sīkumi labi vidū mūsu kamēr cilpa. 791 00:56:15,000 --> 00:56:20,000 Mēs varam plunkšķis mūsu viduspunktā. 792 00:56:20,000 --> 00:56:24,000 Mēs varam veikt visus šos ja apgalvojumi, 793 00:56:24,000 --> 00:56:30,000 izvelciet tos no šīs do-kamēr cilpa, 794 00:56:30,000 --> 00:56:34,000 plunkšķis tos, 795 00:56:34,000 --> 00:56:39,000 tīrīt lietas pat mazliet, 796 00:56:39,000 --> 00:56:48,000 un es iešu uz priekšu un saglabājiet šo pārskatīšanu. 797 00:56:48,000 --> 00:56:53,000 Un šajā brīdī, mēs esam iegūt diezgan tuvu. 798 00:56:53,000 --> 00:56:55,000 Sam. 799 00:56:55,000 --> 00:56:58,000 Es domāju, ka jums ir arī ir int viduspunktu = izmērs - 1/2. 800 00:56:58,000 --> 00:57:01,000 Sanāca tā, izmērs - 1/2. 801 00:57:01,000 --> 00:57:05,000 Vai ir kaut kas cits mums ir nepieciešams mainīt par šo līniju? 802 00:57:05,000 --> 00:57:10,000 Tas bija labs loms. 803 00:57:10,000 --> 00:57:14,000 >> Kāda izmēra darīt? Vai mēs kādreiz mainās izmēru? 804 00:57:14,000 --> 00:57:17,000 Lai saglabātu līnijas, piemēram, mums ir, lai mainītu izmēru. 805 00:57:17,000 --> 00:57:21,000 Mums ir, lai mainītu izmēru katru reizi, kad ejam ap cilpa. 806 00:57:21,000 --> 00:57:25,000 Bet atceros, kad mēs piedzīvojam mūsu piemērs tikai mazliet agrāk, 807 00:57:25,000 --> 00:57:30,000 un mums bija sākumā pie 4 808 00:57:30,000 --> 00:57:33,000 un beigās visi ceļu pār pie 108? 809 00:57:33,000 --> 00:57:35,000 Kā mēs aprēķināt viduspunktā? 810 00:57:35,000 --> 00:57:38,000 Ja mēs, izmantojot izmēru? 811 00:57:38,000 --> 00:57:40,000 Vai mēs izmantojām sākas un beidzas vietā? 812 00:57:40,000 --> 00:57:42,000 Tā ir atšķirība starp gada beigām un sākumu. 813 00:57:42,000 --> 00:57:50,000 Tieši tā, un kā tieši man vajadzētu rakstīt, ka, Šarloti? 814 00:57:50,000 --> 00:57:52,000 Tikai beigās - sākas. 815 00:57:52,000 --> 00:57:55,000 Jums nav nepieciešams darīt - 1 816 00:57:55,000 --> 00:57:58,000 jo - 1 ir iekļauts beigās un sākt jau. 817 00:57:58,000 --> 00:58:00,000 [Nate] Great, tu esi pilnīgi taisnība. 818 00:58:00,000 --> 00:58:03,000 Mums nav jādara - 1, jo tas - 1 ir iekļauts 819 00:58:03,000 --> 00:58:08,000 un veidoja kad mēs sāktu beigu mainīgo. 820 00:58:08,000 --> 00:58:11,000 >> Vai ir kaut kas cits man jādara sintaktiski lai šī līnija ir jēga? 821 00:58:11,000 --> 00:58:13,000 [Studentu] Plus sākt >> Plus. Sākt? 822 00:58:13,000 --> 00:58:15,000 [Studentu] beigās. 823 00:58:15,000 --> 00:58:20,000 Jo tas ir tikai aprēķina pusi garuma. 824 00:58:20,000 --> 00:58:26,000 Jums ir nepieciešams, lai pievienotu sākt. 825 00:58:26,000 --> 00:58:31,000 [Nate] Kas varētu šo aprēķināt mums? 826 00:58:31,000 --> 00:58:35,000 Ja mēs domājam par mērķi uz šo pirmo atkārtojuma no cilpas, 827 00:58:35,000 --> 00:58:40,000 gals būs pozīcijā indeksā 7. 828 00:58:40,000 --> 00:58:43,000 Sāktu ir pozīcijā 0. 829 00:58:43,000 --> 00:58:47,000 Atcerieties, mēs meklējam nu 830 00:58:47,000 --> 00:58:52,000 pozīciju 3 vai pozīcija 4. 831 00:58:52,000 --> 00:58:56,000 Ja mēs skatāmies uz šo matemātiku, tikai, lai padarītu to mazliet vairāk taustāms, 832 00:58:56,000 --> 00:59:02,000 nodot dažus numurus šeit, mums ir 7, 0, 833 00:59:02,000 --> 00:59:10,000 tā 7-0, un tad / 2 834 00:59:10,000 --> 00:59:19,000 ir 3 skaitlim sadalīšanas, kas ir. 835 00:59:19,000 --> 00:59:26,000 Tad mums vajag tad pievienot atpakaļ mūsu sākt? 836 00:59:26,000 --> 00:59:28,000 Mums nav šajā gadījumā. 837 00:59:28,000 --> 00:59:31,000 Par ļoti pirmajā iterācijā, tas būs labi, jo sakt ir 0. 838 00:59:31,000 --> 00:59:36,000 Bet, kā mēs progress, mēs tiešām visi vienkārši vajag 839 00:59:36,000 --> 00:59:42,000 beigas - sākas / 2. 840 00:59:42,000 --> 00:59:46,000 Ir viena cita triks šeit, un tas ir proti, viena no prioritātes. 841 00:59:46,000 --> 00:59:49,000 [Studentu] Vai mums vajag iekavas? 842 00:59:49,000 --> 00:59:53,000 [Nate] Tieši tā, un tas ir tāpēc, ja mums nav likt šos iekavas, 843 00:59:53,000 --> 00:59:58,000 tad šī pozīcija tiks interpretēts vietā 844 00:59:58,000 --> 01:00:09,000 kā (beigas) - (sākt / 2), ko mēs noteikti nevēlamies. 845 01:00:09,000 --> 01:00:11,000 Noskatīties ārpus tiem prioritātes noteikumi. 846 01:00:11,000 --> 01:00:15,000 [Studentu] Kāpēc tas nav galu + sākt? 847 01:00:15,000 --> 01:00:17,000 Kāpēc tas nav galu + sākt? 848 01:00:17,000 --> 01:00:19,000 [Studentu] Kāpēc tas nav tik? 849 01:00:19,000 --> 01:00:24,000 Kāpēc tas būtu +? 850 01:00:24,000 --> 01:00:26,000 Es domāju, ka tev taisnība. 851 01:00:26,000 --> 01:00:28,000 [Studentu] Jo tas ir vidējais? 852 01:00:28,000 --> 01:00:31,000 [Nate] End + sākas, tu esi pilnīgi taisnība. 853 01:00:31,000 --> 01:00:34,000 Wow, es pilnīgi goofed. Tev taisnība. 854 01:00:34,000 --> 01:00:39,000 Ja mēs darām uz mīnusa, mēs vēlamies, lai pievienotu sāktu atkal iekšā 855 01:00:39,000 --> 01:00:43,000 Šajā gadījumā, jūs esat ļoti labi, ka mēs vēlamies, lai ņemtu vidējo diviem, 856 01:00:43,000 --> 01:00:45,000 tāpēc mēs vēlamies, lai pievienotu tos, nevis atņemtu tiem. 857 01:00:45,000 --> 01:00:49,000 [Studentu] Tas arī strādāt, ja jūs galu - sākas / 2 + sākas. 858 01:00:49,000 --> 01:00:55,000 Tas būtu, ja mēs-es uzskatu tā. 859 01:00:55,000 --> 01:01:00,000 >> Piemēram, ja mēs apskatot sākas, 860 01:01:00,000 --> 01:01:04,000 un mēs pārvietoti to vairāk šeit 861 01:01:04,000 --> 01:01:08,000 līdz 15 no. 862 01:01:08,000 --> 01:01:12,000 Tagad sāk ir stāvoklī 2. 863 01:01:12,000 --> 01:01:15,000 Gals ir 7 pozīcijā. 864 01:01:15,000 --> 01:01:21,000 Ja mēs atņemtu tiem, mēs 5. 865 01:01:21,000 --> 01:01:24,000 Dalīt to ar 2, mēs nokļūt 2. 866 01:01:24,000 --> 01:01:27,000 Un tad mēs pievieno 2 atpakaļ, 867 01:01:27,000 --> 01:01:30,000 un kas izpaužas mums uz 4 pozīciju, 868 01:01:30,000 --> 01:01:33,000 kas ir tepat, kas ir viduspunkts. 869 01:01:33,000 --> 01:01:36,000 [Studentu] Vai mums ir nepieciešams rūpēties par iesaiņojuma? 870 01:01:36,000 --> 01:01:39,000 Kādā jēga mums ir nepieciešams rūpēties par iesaiņojuma? 871 01:01:39,000 --> 01:01:43,000 Ja summa vai starpība starp 872 01:01:43,000 --> 01:01:45,000 atkarībā no tā, kā mēs to darām, nav pat numuru. 873 01:01:45,000 --> 01:01:49,000 Tad dators izpaužas sajaukt vai, ja tas ir 2,5; 874 01:01:49,000 --> 01:01:52,000 Jūs pārvietot pa kreisi vai pa labi, lai noteiktu, kas ir viduspunkts? 875 01:01:52,000 --> 01:01:54,000 Dabūja to. 876 01:01:54,000 --> 01:01:56,000 Izrādās, ka ar veselu sadalījumu, 877 01:01:56,000 --> 01:01:59,000 mums nav kādreiz saņemt šos peldošā komata skaitļus. 878 01:01:59,000 --> 01:02:01,000 Mēs nekad iegūt decimālo. 879 01:02:01,000 --> 01:02:04,000 Tas ir pilnīgi jāiznīcina. 880 01:02:04,000 --> 01:02:08,000 Ja jums ir dators dalīt 2 int mainīgie, 881 01:02:08,000 --> 01:02:11,000 un viens ir 7, un otrs ir 2, 882 01:02:11,000 --> 01:02:13,000 Jums nav iegūt 3,5, kā rezultātā. 883 01:02:13,000 --> 01:02:16,000 Tas būs iegūt 3. 884 01:02:16,000 --> 01:02:19,000 Atlikums tiks izmesti, tāpēc tas ir efektīvi noapaļošanas 885 01:02:19,000 --> 01:02:24,000 nevis apaļa, bet gan grīdas, ja jūs puiši ir pazīstami ar to math, 886 01:02:24,000 --> 01:02:27,000 kur tu pilnībā atbrīvoties decimal, 887 01:02:27,000 --> 01:02:31,000 un tā jūs būtībā truncating to uz leju līdz tuvākajam 888 01:02:31,000 --> 01:02:33,000 Visa pozīciju, līdz tuvākajam veselajam skaitlim. 889 01:02:33,000 --> 01:02:38,000 [Studentu] Bet tad tas ir problemātiski, jo, ja jums ir masīvs 7 elementi 890 01:02:38,000 --> 01:02:43,000 tad automātiski veic 3. elements no viduspunktā, nevis uz 4th. 891 01:02:43,000 --> 01:02:46,000 Kā mēs varam tikt galā ar šo? 892 01:02:46,000 --> 01:02:49,000 Tas ir problemātiski, jo, ja mums bija masīva 7, 893 01:02:49,000 --> 01:02:54,000 tas varētu paņemt The 3rd, nevis uz 4th. 894 01:02:54,000 --> 01:02:56,000 Vai jūs varētu paskaidrot mazliet vairāk? 895 01:02:56,000 --> 01:02:59,000 [Studentu] Jo, ja jums ir 7 elementi, tad ar 4 elements 896 01:02:59,000 --> 01:03:04,000 būtu viduspunkts, vai ne? 897 01:03:04,000 --> 01:03:07,000 Atceros savu komentāru par to nulles indeksēti, lai gan. 898 01:03:07,000 --> 01:03:10,000 [Studentu] Jā, tā 3 stāvoklī. Tas būtu viduspunktā. 899 01:03:10,000 --> 01:03:12,000 Yeah. 900 01:03:12,000 --> 01:03:16,000 Ak, labi. Es redzu, ko tu domā. 901 01:03:16,000 --> 01:03:19,000 Tas ir sava veida dīvaini, jo mēs pierastu pie visa šī jēdziena 902 01:03:19,000 --> 01:03:22,000 atbrīvojoties no decimāldaļām. 903 01:03:22,000 --> 01:03:26,000 Tas ir liels jautājums. 904 01:03:26,000 --> 01:03:30,000 Pieņemsim pabeigt šo augšu. 905 01:03:30,000 --> 01:03:32,000 Mēs esam aprēķina mūsu viduspunktā. 906 01:03:32,000 --> 01:03:37,000 >> Mēs esam testēšanu, lai redzētu, vai mūsu adata ir vienāds ar vidējo vērtību. 907 01:03:37,000 --> 01:03:41,000 Mēs esam drukāšanas ka mēs atradām, bet tiešām, ko mēs vēlamies darīt šajā situācijā? 908 01:03:41,000 --> 01:03:46,000 Mēs esam noskaidrojuši, tāpēc mēs vēlamies, lai zvanītājs zina, ka mēs atradām. 909 01:03:46,000 --> 01:03:49,000 Mēs esam ieguvuši funkciju, kas ir Būla drukāti funkcija. 910 01:03:49,000 --> 01:03:54,000 Veids, kā mēs signalizēt zvanītāju mūsu funkciju, ka mēs esam gatavi iet 911 01:03:54,000 --> 01:03:58,000 ir mums saka: "Hei, tā ir taisnība." 912 01:03:58,000 --> 01:04:00,000 Kā mēs darīt, Kevins? 913 01:04:00,000 --> 01:04:02,000 Tu esi pavirša galvu. >> [Kevins] Pievienot atgriešanās taisnība. 914 01:04:02,000 --> 01:04:06,000 [Nate] Tieši tā, atgriešanās patiess. 915 01:04:06,000 --> 01:04:12,000 Tagad, ja tas nav vienādi, kā būtu mēs apskatīt kreisajā pusē? 916 01:04:12,000 --> 01:04:16,000 Jebkuras idejas? 917 01:04:16,000 --> 01:04:18,000 Stella, jebkuras idejas? 918 01:04:18,000 --> 01:04:21,000 Jums ir nepieciešams noteikt jaunu pozīciju beigām. 919 01:04:21,000 --> 01:04:23,000 Yeah. 920 01:04:23,000 --> 01:04:29,000 Tāpēc mums ir jādara pozīciju viduspunktā - beigas. 921 01:04:29,000 --> 01:04:33,000 Lieliski. 922 01:04:33,000 --> 01:04:36,000 Mums ir nepieciešams noteikt jaunu nostāju beigās 923 01:04:36,000 --> 01:04:38,000 paskatīties uz kreiso pusi. 924 01:04:38,000 --> 01:04:41,000 Tas bija tas, ko mēs runājām pirms kur 925 01:04:41,000 --> 01:04:44,000 Es turpinu iet atpakaļ uz šo piemēru. 926 01:04:44,000 --> 01:04:50,000 Man ir sākt šeit, un tad man ir beigas visiem ceļu pār šeit. 927 01:04:50,000 --> 01:04:53,000 >> Atkal, ja mēs meklējam 15, un mūsu viduspunktā ir 16, 928 01:04:53,000 --> 01:04:56,000 un mēs saprotam, "Ups, 16 ir lielāks. 929 01:04:56,000 --> 01:04:59,000 Mēs vēlamies, lai pārietu uz kreiso pusi. " 930 01:04:59,000 --> 01:05:02,000 Tad mēs varētu pārvietot galu jau 15, 931 01:05:02,000 --> 01:05:06,000 un mēs ka, veicot kādu prom no viduspunktā 932 01:05:06,000 --> 01:05:09,000 un nosakot, ka mūsu jaunā gada beigām. 933 01:05:09,000 --> 01:05:12,000 Tāpat, ja mēs gribam skatīties uz labo pusi, kā būtu mēs darīt? 934 01:05:12,000 --> 01:05:14,000 Vai jums ir ideja? 935 01:05:14,000 --> 01:05:22,000 [Studentu] Jūs vienkārši iestatīt sākt viduspunkts + 1. 936 01:05:22,000 --> 01:05:24,000 [Nate] Lielā. 937 01:05:24,000 --> 01:05:29,000 Un tagad, ja, ka mēs nevaram atrast neko, 938 01:05:29,000 --> 01:05:32,000 tas, ka saņemt rūpēsies par mums? 939 01:05:32,000 --> 01:05:36,000 Daniel, vai tas get rūpēsies par mums? 940 01:05:36,000 --> 01:05:38,000 [Daniels] Nē 941 01:05:38,000 --> 01:05:40,000 [Nate] Ja mēs to visa masīva un mēs nevaram atrast neko, 942 01:05:40,000 --> 01:05:42,000 kur tad tas ir jāņem aprūpi, vai mums vajadzētu rūpēties par to? 943 01:05:42,000 --> 01:05:44,000 [Daniels], kamēr nosacījums. 944 01:05:44,000 --> 01:05:48,000 [Nate] Jā, bet nosacījums, tieši tā. 945 01:05:48,000 --> 01:05:51,000 Tas būs rūpēties par iet cauri visam blokam, ja mēs nevaram atrast neko. 946 01:05:51,000 --> 01:05:53,000 Tas savukārt cilpa beigsies. 947 01:05:53,000 --> 01:05:56,000 Mēs nekad ir saskārušās ar šo nosacījumu, 948 01:05:56,000 --> 01:06:03,000 un mēs varam atgriezties viltus. 949 01:06:03,000 --> 01:06:10,000 Mēs varam arī atstāt šo, ja šeit, piemēram, tas 950 01:06:10,000 --> 01:06:14,000 jo, ja tas, ja apgalvojums ir patiess, 951 01:06:14,000 --> 01:06:16,000 un mūsu funkcija atgriezīsies, 952 01:06:16,000 --> 01:06:21,000 un tāpēc mēs būtībā pārtraukt šī funkcija šajā brīdī 953 01:06:21,000 --> 01:06:24,000 kad mēs atgrieztos taisnība. 954 01:06:24,000 --> 01:06:28,000 Bet kas notiek ar šo struktūru šeit? 955 01:06:28,000 --> 01:06:34,000 Tas darbosies pilnībā, vai pastāv dažas loģiski plaisāt tur? 956 01:06:34,000 --> 01:06:37,000 >> Ir daži loģiski plaisāt tur, ar to, kā tā ir izveidota. 957 01:06:37,000 --> 01:06:40,000 Kas tas varētu būt? 958 01:06:40,000 --> 01:06:43,000 [Studentu] Kāpēc jums ir nepieciešams - un + 1s? 959 01:06:43,000 --> 01:06:47,000 Kas nosaka mūsu masīvs līdz būt mūsu jauno kreiso pusi un labo pusi. 960 01:06:47,000 --> 01:06:51,000 [Studentu] Bet kāpēc nevarētu jūs to darīt bez - 1s un + 1s? 961 01:06:51,000 --> 01:06:53,000 [Nate] Mēs to varētu vienādi ar viduspunktu? 962 01:06:53,000 --> 01:07:04,000 Kāda varētu būt problemātiski par to? 963 01:07:04,000 --> 01:07:08,000 [Studentu] Es domāju, tas ir neefektīvi, jo jūs pārbaudīt vērtību, kas jau ir pārbaudīta. 964 01:07:08,000 --> 01:07:11,000 [Nate] Tieši tā, tāpēc Sam ir pilnīgi pareizi. 965 01:07:11,000 --> 01:07:15,000 Ja jūs noteikti galu un sāk vienāds ar viduspunktu 966 01:07:15,000 --> 01:07:18,000 vietā - 1 un + 1 domīgi, 967 01:07:18,000 --> 01:07:22,000 kādā brīdī nākotnē mēs galu galā pārbaudīt viduspunktā vēlreiz. 968 01:07:22,000 --> 01:07:26,000 [Studentu] Es sāku PSET, un tad man bija kaut kas līdzīgs, ka 969 01:07:26,000 --> 01:07:30,000 kur es aizmirsu + 1, un tas got iestrēdzis bezgalīga cilpa. 970 01:07:30,000 --> 01:07:34,000 Labi, jo kādā brīdī jūs nekad gatavojas saņemt sākas un beidzas 971 01:07:34,000 --> 01:07:39,000 faktiski pārklājas. 972 01:07:39,000 --> 01:07:41,000 Atdzist. 973 01:07:41,000 --> 01:07:44,000 Tur ir vēl viena loģiskā trūkums, un tas, ka šis noteikti vajadzētu būt 974 01:07:44,000 --> 01:07:48,000 cits ja. 975 01:07:48,000 --> 01:07:55,000 Kāpēc varētu būt? 976 01:07:55,000 --> 01:07:59,000 >> Iemesls ir, ja tas nav cits, ja, vai jūs redzat to, Kevins? 977 01:07:59,000 --> 01:08:02,000 [Kevins] Jā, jo jūs mainās beigu punktu. 978 01:08:02,000 --> 01:08:05,000 [Nate] Tieši tā. 979 01:08:05,000 --> 01:08:07,000 Mēs esam mainot vērtētais, 980 01:08:07,000 --> 01:08:12,000 un ja tas ir rakstīts šādi-we'll veikt atstarpes starp- 981 01:08:12,000 --> 01:08:14,000 tā pārbauda šo gadījumu. 982 01:08:14,000 --> 01:08:18,000 Šajā gadījumā, ja tas izdodas, tiks apturēta no funkcijas. 983 01:08:18,000 --> 01:08:21,000 Tad tas būs pārbaudīt šo nākamo lietu, 984 01:08:21,000 --> 01:08:24,000 un ja tas izdodas, tas būs pielāgot vērtētais, 985 01:08:24,000 --> 01:08:28,000 un tad tas tiks turpināts un pārbaudīt šo lietu. 986 01:08:28,000 --> 01:08:31,000 Bet šajā brīdī, mēs negribam, lai turpinātu pārbaudes. 987 01:08:31,000 --> 01:08:35,000 Par laimi, mums nav reset viduspunktā šeit, 988 01:08:35,000 --> 01:08:39,000 un mēs zinām, ka šī lieta neizdosies. 989 01:08:39,000 --> 01:08:44,000 Bet mēs noteikti vēlamies likt cits ja tur 990 01:08:44,000 --> 01:08:48,000 kaut kas varētu-šajā gadījumā 991 01:08:48,000 --> 01:08:52,000 jo mēs esam ne pielāgojot viduspunktā, tas var kaut ko mainīt? 992 01:08:52,000 --> 01:08:54,000 Nē, jo šie gadījumi ir visi ekskluzīvas. 993 01:08:54,000 --> 01:08:58,000 Atkal, mans slikti. 994 01:08:58,000 --> 01:09:01,000 Mums nav, es domāju, ir nepieciešams šo cits ja. 995 01:09:01,000 --> 01:09:05,000 Mēs varam arī tā izmēģināt un palaist to un redzēt, kas notiek. 996 01:09:05,000 --> 01:09:08,000 Ēka, kļūda. 997 01:09:08,000 --> 01:09:12,000 Tas ir iespējams tāpēc, ka es pa kreisi šie b s un e s šeit. 998 01:09:12,000 --> 01:09:14,000 Vai man ir vairāk par tiem augšā? 999 01:09:14,000 --> 01:09:16,000 Tas nav izskatās tā. 1000 01:09:16,000 --> 01:09:20,000 Mēs zoom out, veidot, 1001 01:09:20,000 --> 01:09:24,000 tur tā iet, tāpēc tagad, ja mēs meklētu 15, 1002 01:09:24,000 --> 01:09:28,000 Jā. 1003 01:09:28,000 --> 01:09:30,000 Ļaujiet man pietuvinātu objektu 1004 01:09:30,000 --> 01:09:33,000 15, jā. Mēs varam palaist vēlreiz. 1005 01:09:33,000 --> 01:09:36,000 Augšupielādējot pirmkodu, celtniecības, darbojas. 1006 01:09:36,000 --> 01:09:41,000 Mēs varam meklēt kaut ko līdzīgu 13, 1007 01:09:41,000 --> 01:09:45,000 un mums nav iegūt kaut ko izdrukāt, tāpēc tas nav atrast, kas par mums. 1008 01:09:45,000 --> 01:09:51,000 Tas ir lieliski, jo tas nav mūsu sarakstā. 1009 01:09:51,000 --> 01:09:53,000 >> Mēs esam tagad no laika. 1010 01:09:53,000 --> 01:09:55,000 Kas notiek, lai tas būtu par šo nedēļu. 1011 01:09:55,000 --> 01:10:00,000 Paldies par pievienošanos, un uz redzēšanos. 1012 01:10:00,000 --> 01:10:02,000 >> [CS50.TV]