1 00:00:00,000 --> 00:00:06,370 2 00:00:06,370 --> 00:00:08,150 >> Jason Hirschhorn: Welcome uz nedēļu trīs, visi. 3 00:00:08,150 --> 00:00:11,650 Mums ir aizņemts, bet aizraujoša sadaļā priekšā mums. 4 00:00:11,650 --> 00:00:17,010 Tātad, pirmkārt, tāpēc, ka mēs esam veikuši dažus panākumus ar kursu, bet mēs joprojām 5 00:00:17,010 --> 00:00:20,570 ir daudz mācīšanās atstāta darīt, es esmu dodas, lai pierādītu, jūs guys daži resursi 6 00:00:20,570 --> 00:00:24,160 kas būtu izrādīties neticami noderīga, kā jūs ne tikai pie jūsu 7 00:00:24,160 --> 00:00:28,130 Problēma noteikti, bet arī sagremot visu materiāla mēs jums guys 8 00:00:28,130 --> 00:00:30,800 lekcijas un šorti un sadaļu. 9 00:00:30,800 --> 00:00:34,790 >> Tad mēs esam gatavojas pavadīt pirmo 20 25 minūtes sadaļa iet pāri 10 00:00:34,790 --> 00:00:38,630 GDB, kas jūs var vai nevar būt izmantota šajā brīdī, bet tas ir 11 00:00:38,630 --> 00:00:42,570 neticami noderīgs rīks, kas būs palīdzēs jums atkļūdot savas programmas. 12 00:00:42,570 --> 00:00:46,060 Daudzi no jums var būt izmantoti printf in vidū savu programmu, lai noskaidrotu 13 00:00:46,060 --> 00:00:47,430 , ko mainīgais bija vienāda. 14 00:00:47,430 --> 00:00:52,060 GDB ir pat labāk nekā printf un nav screw up savu kodu, jo jums 15 00:00:52,060 --> 00:00:53,320 palaist uz izpildāmo failu. 16 00:00:53,320 --> 00:00:56,500 Tāpēc mēs iet pār 10 visnoderīgākie komandas jums ir nepieciešams, lai gdb, un mēs esam 17 00:00:56,500 --> 00:01:00,540 gatavojas doties uz īstenošanu kopā, lai jo problēma noteikti trīs un tālāk, jūs 18 00:01:00,540 --> 00:01:03,320 var izmantot gdb, lai palīdzētu atkļūdot jūsu programmas. 19 00:01:03,320 --> 00:01:06,420 Un visbeidzot, mēs esam gatavojas iet pār daži šķirošanas un meklēšanas algoritmi 20 00:01:06,420 --> 00:01:10,590 ka redzējāt lekciju, un mēs esam dodas uz faktiski kods, ne tikai 21 00:01:10,590 --> 00:01:17,360 pseudocode, bet kodu bināro meklēšanu, burbulis kārtot un atlase kārtot. 22 00:01:17,360 --> 00:01:20,090 >> Tātad, pirmkārt, es gribu iet pār resursiem. 23 00:01:20,090 --> 00:01:23,530 Tas ir plašs saraksts, un tas ir mazāku fontu, jo man bija daudz 24 00:01:23,530 --> 00:01:24,390 fit šeit. 25 00:01:24,390 --> 00:01:26,950 Bet tie būs ne tikai palīdzēt jums, atkal ar problēmu kopas un 26 00:01:26,950 --> 00:01:30,760 karsējot informāciju, jūs esat iemācījušies, bet noteikti, nāc viktorīna laiku, tās būs 27 00:01:30,760 --> 00:01:32,130 būt neticami noderīgi. 28 00:01:32,130 --> 00:01:34,700 Tātad, pirmkārt, lekciju piezīmes. 29 00:01:34,700 --> 00:01:39,480 Ja jūs iet uz cs50.net/lectures un pārvietojieties uz konkrēto nedēļu un dienu, 30 00:01:39,480 --> 00:01:43,120 jūs redzēsiet, ka tur ir piezīmes par katru lekciju, kas ir ne tikai 31 00:01:43,120 --> 00:01:47,250 atšifrējums, bet rediģēt versija , kas bija iekļauti lekciju ar kodu 32 00:01:47,250 --> 00:01:49,610 fragmentus un citus noderīgus niekiem. 33 00:01:49,610 --> 00:01:52,220 Es ļoti ieteiktu iet pār tiem. 34 00:01:52,220 --> 00:01:55,340 Un tad arī, tur ir pirmkodu pieejami no katra lekciju. 35 00:01:55,340 --> 00:02:00,050 Un atkal, šie slaidi būs pieejams tiešsaistē cs50.net/sections 36 00:02:00,050 --> 00:02:01,480 šovakar. 37 00:02:01,480 --> 00:02:06,860 >> Tātad otrais ir šorti katru nedēļu, ka aptver tādas tēmas, kas parasti 5 līdz 15 38 00:02:06,860 --> 00:02:08,090 minūtes garumā. 39 00:02:08,090 --> 00:02:12,310 Un tie, cerams, dos jums lielisks primer par dažādām tēmām. 40 00:02:12,310 --> 00:02:12,870 Trešais - 41 00:02:12,870 --> 00:02:16,370 un tas ir pavisam jaunu šī gadā - ir study.cs50.net. 42 00:02:16,370 --> 00:02:20,110 Ja jums nav pārbaudīt to ārā, es ļoti iesakām jums to darīt. 43 00:02:20,110 --> 00:02:21,100 Jums izvēlēties tēmu. 44 00:02:21,100 --> 00:02:23,040 Mums ir desmitiem tēmām tur. 45 00:02:23,040 --> 00:02:24,770 Tā, piemēram, jūs izvēlaties funkcijas. 46 00:02:24,770 --> 00:02:27,270 Tas dod jums dažas slaidi un norāda uz funkcijām. 47 00:02:27,270 --> 00:02:31,190 Tie ir faktiski slaidi, kas TFS tiek aicināti izmantot laikā mūsu 48 00:02:31,190 --> 00:02:32,710 prezentācijas sadaļā. 49 00:02:32,710 --> 00:02:35,040 Tur ir arī padomi un viltības, lai risinātu ar funkcijām, un tur ir 50 00:02:35,040 --> 00:02:37,290 prakse problēmas, kas palīdz jūs strādājat ar funkcijām. 51 00:02:37,290 --> 00:02:41,500 Mēs arī sniegt jums saites uz īstermiņa funkcijas un laiki, kas darbojas 52 00:02:41,500 --> 00:02:42,750 ir jānāk klajā ar lekciju. 53 00:02:42,750 --> 00:02:46,550 Tātad study.cs50.net, pavisam jauna šī gadā, fantastisks resurss. 54 00:02:46,550 --> 00:02:52,180 >> Tālāk, man ir cilvēks, kas ir rokasgrāmata Komanda, kas var palaist 55 00:02:52,180 --> 00:02:52,770 komandrindas. 56 00:02:52,770 --> 00:02:57,880 Tātad, ja jums ir kādi jautājumi par komandu, piemēram, rand, kurā mēs 57 00:02:57,880 --> 00:03:00,900 radās pagājušajā nedēļā nodaļā laikā un jums ir iespējams sastapt 58 00:03:00,900 --> 00:03:05,380 jūsu problēma noteikt, kad iet cauri ģenerēt kodu, bet, ja jūs tipa cilvēks 59 00:03:05,380 --> 00:03:09,980 rand, jūs saņemsiet lapu, stāsta jums visiem par Rand. 60 00:03:09,980 --> 00:03:14,040 Tas dod jums to, ko tā veic, parametru, kas nepieciešams, kā arī atgriešanās 61 00:03:14,040 --> 00:03:16,530 tips un īss apraksts šī funkcija. 62 00:03:16,530 --> 00:03:17,500 >> Tāpēc izbraukšana Rand. 63 00:03:17,500 --> 00:03:22,270 Tas var būt nedaudz izplūdis un neskaidrs, tāpēc dažreiz es uzskatu, ka 64 00:03:22,270 --> 00:03:26,150 vienkārši Googling to, ko es gribu zināt, ir Labākais veids, kā atrast atbildi. 65 00:03:26,150 --> 00:03:27,940 Tātad praksē ar Google. 66 00:03:27,940 --> 00:03:28,600 Iegūt labi Google. 67 00:03:28,600 --> 00:03:30,600 Tas kļūs par jūsu labāko draugu. 68 00:03:30,600 --> 00:03:34,300 >> Kā arī Google, ja jūs nevarat atrast to, Google, cs50.net/discuss, tas ir 69 00:03:34,300 --> 00:03:35,550 diskusiju forumu. 70 00:03:35,550 --> 00:03:39,390 Izredzes ir, ja jums ir jautājums, kas ir viens Jūsu 700 + vienaudžiem arī, ka 71 00:03:39,390 --> 00:03:42,110 jautājums, un tā var būt lūgusi tas jau apspriestu 72 00:03:42,110 --> 00:03:43,540 forumi un ir tā atbilde. 73 00:03:43,540 --> 00:03:48,130 Tātad, ja jums ir kopīgs jautājums, vai Jums ir jautājums, ka jūs domājat 74 00:03:48,130 --> 00:03:52,300 varbūt citi cilvēki varētu uzskriet, izbraukšana cs50.net/discuss. 75 00:03:52,300 --> 00:03:55,450 >> Visbeidzot, pēdējie divi, ja jūs vēlaties, lai runāt ar reālu cilvēku, birojs 76 00:03:55,450 --> 00:03:57,770 laiks no pirmdienas līdz piektdienai. 77 00:03:57,770 --> 00:04:00,850 Pastāv arī tiešsaistes biroja darba laiks Pagarinājuma studentiem. 78 00:04:00,850 --> 00:04:04,370 Un pēdējais, bet noteikti ne mazāk, me, izsaukuma zīme. 79 00:04:04,370 --> 00:04:05,960 Jums visiem ir savu kontaktinformāciju. 80 00:04:05,960 --> 00:04:11,940 Ja jums ir nepieciešams kaut ko, lūdzu, nekad sazinieties ar mani. 81 00:04:11,940 --> 00:04:14,020 Vienmēr justies brīvi to darīt. 82 00:04:14,020 --> 00:04:17,490 Ļoti maz no jums ir pievienots mani Gchat, tā, ka ir bijis neapmierinošs, 83 00:04:17,490 --> 00:04:20,410 bet cerams, ka būs jāmaina starp šajā un nākamajā sadaļā. 84 00:04:20,410 --> 00:04:22,105 Kādi jautājumi līdz šim par resursiem? 85 00:04:22,105 --> 00:04:25,670 86 00:04:25,670 --> 00:04:27,450 Lieliski. 87 00:04:27,450 --> 00:04:34,280 >> Visbeidzot, vēl viens spraudnis atsauksmes, sayat.me/cs50. 88 00:04:34,280 --> 00:04:37,050 Jūs varat dot man anonīmu atsauksmes par to, kā es esmu dara. 89 00:04:37,050 --> 00:04:38,320 Tas bija patiešām noderīga pagājušajā nedēļā. 90 00:04:38,320 --> 00:04:41,890 Es saņēmu pāris komentārus no jums puiši uzreiz pēc sadaļā, kā arī no 91 00:04:41,890 --> 00:04:44,750 citi studenti, kas noskatījos to nedēļas laikā, un tā 92 00:04:44,750 --> 00:04:46,830 bija neticami noderīgi. 93 00:04:46,830 --> 00:04:50,250 Es esmu gatavojas izmēģināt un ierobežot manu izmantošanu vārds "salds", bet es jums parādīs manu 94 00:04:50,250 --> 00:04:52,410 entuziasmu un uztraukums citos veidos. 95 00:04:52,410 --> 00:04:56,550 Bet tur bija citas papildu materiālo feedbacks, 96 00:04:56,550 --> 00:04:57,600 gan plusi un delta. 97 00:04:57,600 --> 00:05:00,480 Tāpēc, lūdzu, es jums puiši atsauksmes par savu problēmu kopas. 98 00:05:00,480 --> 00:05:01,790 Justies brīvi, lai dotu man atsauksmes par manu mācību. 99 00:05:01,790 --> 00:05:04,010 Es esmu šeit, lai jums puiši. 100 00:05:04,010 --> 00:05:05,270 >> Lieliski. 101 00:05:05,270 --> 00:05:07,020 Tas ir viss, kas man ir, lai Pirmajā sadaļā. 102 00:05:07,020 --> 00:05:08,565 Vai kāds ir kāda jautājumi līdz šim? 103 00:05:08,565 --> 00:05:12,370 104 00:05:12,370 --> 00:05:14,640 Un man ir piezīmi kontroles centrs. 105 00:05:14,640 --> 00:05:21,200 Extension studenti messaged mani sakot, viņi nesaņemu audio, 106 00:05:21,200 --> 00:05:23,870 bet tas ir no manas pilnvaras noteikt. 107 00:05:23,870 --> 00:05:25,280 Tāpēc cerams, ka izpaužas atrisināts tuvākajā laikā. 108 00:05:25,280 --> 00:05:28,850 Ja jūs skatīties online, hi, bet jūs nevarat dzirdēt mani. 109 00:05:28,850 --> 00:05:33,860 >> Tātad, pirmkārt, mēs gatavojamies iet cauri gdb. 110 00:05:33,860 --> 00:05:37,100 GDB, jo man jau ir minēts iepriekš, ir atkļūdošanas rīks 111 00:05:37,100 --> 00:05:39,040 daudz labāk nekā printf. 112 00:05:39,040 --> 00:05:44,700 Tātad, lai sāktu ar GDB, jums, puiši, ja jūs vēlaties, lai atvērtu savu ierīci 113 00:05:44,700 --> 00:05:49,070 un veic failu, kas man savu e-pastu agrāk - tas fails būs 114 00:05:49,070 --> 00:05:51,940 pieejami tiešsaistē mazliet - 115 00:05:51,940 --> 00:05:55,700 un palaist gdb. / nosaukumu failu. 116 00:05:55,700 --> 00:05:58,580 Pirmkārt, protams, jums ir apkopot failu, jo GDB darbojas tikai 117 00:05:58,580 --> 00:05:59,890 izpildāmos failus. 118 00:05:59,890 --> 00:06:02,300 >> Bet, ja jūs kādreiz vēlaties, lai sāktu GDB, pirmā lieta, jums jādara, 119 00:06:02,300 --> 00:06:04,550 jūs darbināt gdb. / Cēzars. 120 00:06:04,550 --> 00:06:08,340 Tātad tas ir programmas nosaukums, mēs esat , kas iet ar to tieši tagad. 121 00:06:08,340 --> 00:06:12,810 Tāpēc es esmu gatavojas rakstīt izdarīt Cēzars, kas dos man izpildāmo failu 122 00:06:12,810 --> 00:06:14,100 šeit iezīmēts zaļā krāsā. 123 00:06:14,100 --> 00:06:19,250 Un tad es esmu gatavojas palaist GDB. / Cesar. 124 00:06:19,250 --> 00:06:19,810 >> Un tur jums iet. 125 00:06:19,810 --> 00:06:24,540 Jūs redzat, mums ir dažas teksta man saki par versiju gdb, dod man 126 00:06:24,540 --> 00:06:27,570 dažas garantijas informācija, un tad mēs ir IKP uzvedni, kas izskatās veida 127 00:06:27,570 --> 00:06:29,350 un tāpat kā mūsu komandrindas ātri, bet jūs redzēt, tas ir atvērts 128 00:06:29,350 --> 00:06:32,510 paren, GDB, tuvu paren. 129 00:06:32,510 --> 00:06:36,520 Pirms mēs turpinām un atkļūdot šo failu ka es nosūtīju jums visiem, aplūkosim 130 00:06:36,520 --> 00:06:40,220 dažas noderīgas komandas tāpēc mums ir jēga , ko mēs gatavojamies, lai segtu. 131 00:06:40,220 --> 00:06:45,060 >> Šīs komandas ir uzskaitītas šeit kārtību, kādā es parasti tos izmantot. 132 00:06:45,060 --> 00:06:50,230 Tāpēc es sāku savu programmu, palaižot GBD. / Programmas nosaukums, 133 00:06:50,230 --> 00:06:51,360 Šajā gadījumā, Caesar. 134 00:06:51,360 --> 00:06:57,430 Un tad pirmā lieta, ko es daru 99,9% laika tiek tipa pārtraukums nozīmē. 135 00:06:57,430 --> 00:06:59,070 , Kas nosaka lūzuma punkts ir galvenais. 136 00:06:59,070 --> 00:07:03,260 Būtībā, ko jūs darāt tur ir programma gatavojas apstāties pie 137 00:07:03,260 --> 00:07:06,100 Galvenais, lai jūs varat sākt pārbaudot to līniju pa līniju, nevis rādīt visu 138 00:07:06,100 --> 00:07:07,040 ceļu caur. 139 00:07:07,040 --> 00:07:09,730 Jūs varat pauze dažādos punktos savu kodu, bet galvenais ir parasti 140 00:07:09,730 --> 00:07:11,870 laba vieta, kur sākt. 141 00:07:11,870 --> 00:07:14,840 >> Nākamais komanda palaist ir palaist. 142 00:07:14,840 --> 00:07:17,400 Kas sākas programma darbojas, un ja jums ir nepieciešams, lai ievadītu komandrindas 143 00:07:17,400 --> 00:07:19,090 argumenti, palaižot to, ka komandu. 144 00:07:19,090 --> 00:07:20,500 Palaist ar argumentiem. 145 00:07:20,500 --> 00:07:25,000 Tāpēc, ka mēs iet pār versiju C, kas ir programma, jūs guys 146 00:07:25,000 --> 00:07:26,160 rakstīja PSET diviem - 147 00:07:26,160 --> 00:07:29,880 tas viens, protams, ir dažas kļūdas tajā, ka, cerams, mēs atradīsim - 148 00:07:29,880 --> 00:07:32,810 mēs esam gatavojas palaist palaist ar kādu komandu argumentus, jo Caesar, 149 00:07:32,810 --> 00:07:34,860 kā jūs guys zināt par problēmu noteikt spec, aizņem dažas 150 00:07:34,860 --> 00:07:36,380 komandrindas argumentus. 151 00:07:36,380 --> 00:07:40,000 >> Nākamais pāris komandas, nākamais viens ir faktiski aicināja nākamo. 152 00:07:40,000 --> 00:07:42,470 Kas ņem jums pozīcijai izmantojot savu programmu. 153 00:07:42,470 --> 00:07:45,800 Tātad, trāpot n tad Enter ņem jums uz nākamo līniju, izpildot 154 00:07:45,800 --> 00:07:46,880 iepriekšējo līniju. 155 00:07:46,880 --> 00:07:49,440 Solis tiek ne tikai jums next line, bet tas 156 00:07:49,440 --> 00:07:51,070 ņem jums iekšpusē funkcijas. 157 00:07:51,070 --> 00:07:54,310 Tātad, ja jūs esat uzrakstījis funkciju Jūsu kods vai, ja jūs vēlaties, lai izpētītu 158 00:07:54,310 --> 00:07:57,820 uz i, piemēram, jūs varat hit s, un nevis iet uz nākamo līniju 159 00:07:57,820 --> 00:08:02,390 failu, jūs iet caur labo tagad, jūs faktiski solis 160 00:08:02,390 --> 00:08:04,670 šī funkcija un redzēt savu kodu. 161 00:08:04,670 --> 00:08:12,300 >> Sarakstā ir redzams, jo ļoti lietotājam draudzīgi formātā, 10 vai tik līnijas ap 162 00:08:12,300 --> 00:08:14,940 kur jūs pašlaik ir jūsu kodu lai jūs patiesībā var redzēt failu 163 00:08:14,940 --> 00:08:17,810 nevis ņemot mijmaiņas atpakaļ un atpakaļ starp dažādiem viedokļiem. 164 00:08:17,810 --> 00:08:21,890 Print ir kā printf, Kā norāda tās nosaukums. 165 00:08:21,890 --> 00:08:24,020 , Kas parāda jums to, ko mainīgais ir vienāds. 166 00:08:24,020 --> 00:08:25,870 >> Info vietējie iedzīvotāji ir ļoti noderīga. 167 00:08:25,870 --> 00:08:27,740 Šī ir īpaša versija izdrukāt. 168 00:08:27,740 --> 00:08:31,770 Info vietējie parāda jums visas vietējās mainīgie, izdrukā tos visus no jums 169 00:08:31,770 --> 00:08:33,380 , kas pašlaik ir pieejami. 170 00:08:33,380 --> 00:08:36,360 Tāpēc es vispār, nevis ņemot izdrukāt četrus mainīgos, kas es esmu 171 00:08:36,360 --> 00:08:39,929 ziņkārīgs par to, ja es esmu uz cilpas, lai Piemēram, es vienkārši uzrakstīt info vietējie iedzīvotāji, 172 00:08:39,929 --> 00:08:43,470 un tas būs parādīt man to, ko mans skaitītājs i vienāds, kā arī masīva ka es esmu 173 00:08:43,470 --> 00:08:45,130 strādā par vienlīdzīgiem. 174 00:08:45,130 --> 00:08:47,530 >> Visbeidzot, turpināsies. 175 00:08:47,530 --> 00:08:49,300 Ierakstot pārtraukumu apstājas jums pie lūzuma punkts. 176 00:08:49,300 --> 00:08:51,380 Jūs varat pastaigāties pa līniju ar līnija ar nākamo un soli. 177 00:08:51,380 --> 00:08:55,640 Turpināt iet programmu, lai jūsu nākamais pauze punktu vai līdz pabeigšanai, ja 178 00:08:55,640 --> 00:08:57,180 ir ne vairāk break punkti. 179 00:08:57,180 --> 00:09:00,060 Atslēgt noņem pārtraukuma punktus, ja jums nolēma pauze galvenais bija 180 00:09:00,060 --> 00:09:01,890 nepiemērota, jūs vēlaties, lai noteikt to kaut kur citur. 181 00:09:01,890 --> 00:09:05,090 Un visbeidzot q, atmest, saņem no gdb. 182 00:09:05,090 --> 00:09:10,784 >> Tātad šī programma. / Caesar, mēs gatavojamies meklēt, izmantojot tiesības tagad, un mēs 183 00:09:10,784 --> 00:09:13,490 gatavojas izmantot GDB, lai atrastu bugs šajā programmā. 184 00:09:13,490 --> 00:09:18,110 I ilga šo programmu agrāk, Pārbaudiet 50, un es saņēmu vienu skatiens. 185 00:09:18,110 --> 00:09:22,310 Viss tas pastāvēja, tā apkopota, tā pagājis daudz testu, bet 186 00:09:22,310 --> 00:09:27,950 kaut kādu iemeslu dēļ, tas neizturēja piekto tests, pagriežot BARFOO, visas cepures, uz 187 00:09:27,950 --> 00:09:33,350 E-D-U-I-R-R, visu caps, izmantojot trīs kā atslēgu. 188 00:09:33,350 --> 00:09:34,090 Man diezgan tuvu. 189 00:09:34,090 --> 00:09:35,410 I got off ar vienu burtu. 190 00:09:35,410 --> 00:09:37,340 Tātad tur ir daži neliela kļūda šeit. 191 00:09:37,340 --> 00:09:38,070 Es apskatīju caur manu kodu. 192 00:09:38,070 --> 00:09:38,850 Es nevarēju saprast it out. 193 00:09:38,850 --> 00:09:41,740 Cerams, jūs guys var man palīdzēt skaitlis, ko šī kļūda ir. 194 00:09:41,740 --> 00:09:44,610 >> Tā ka ir kļūda, mēs esam meklē. 195 00:09:44,610 --> 00:09:46,090 Pieņemsim pāriet uz gdb. 196 00:09:46,090 --> 00:09:51,100 Atkal, es esmu palaist GDB. / Cēzars, tāpēc tagad mēs esam gdb. 197 00:09:51,100 --> 00:09:54,290 Un kas ir pirmais lieta, ko man vajadzētu darīt? 198 00:09:54,290 --> 00:09:56,680 Esmu tikko ienāca GDB. 199 00:09:56,680 --> 00:10:00,316 Kāds man labs komandu, lai ievadītu. 200 00:10:00,316 --> 00:10:01,140 >> STUDENTU: Break galvenais. 201 00:10:01,140 --> 00:10:01,800 >> Jason Hirschhorn: Break galvenais. 202 00:10:01,800 --> 00:10:02,900 Fantastiska. 203 00:10:02,900 --> 00:10:03,560 Pieņemsim, ierakstiet, ka iekšā 204 00:10:03,560 --> 00:10:06,390 Jūs guys var noskatīties šeit vai sekot kopā ar jūsu datoru. 205 00:10:06,390 --> 00:10:09,410 Break galvenais, un jūs redzēsiet lūzuma punkts bija noteikts - 206 00:10:09,410 --> 00:10:12,340 tas dod man kādu dīvaini atmiņas adresi, un tas arī dod man līniju skaitu. 207 00:10:12,340 --> 00:10:15,310 Ja es būtu, lai atskatītos uz šo failu, Es gribētu saprast, ka main 208 00:10:15,310 --> 00:10:17,700 notika tiešsaistē 21. 209 00:10:17,700 --> 00:10:18,950 Ko man vajadzētu darboties tālāk? 210 00:10:18,950 --> 00:10:22,970 211 00:10:22,970 --> 00:10:25,060 Ir mana programma darbojas? 212 00:10:25,060 --> 00:10:25,650 Nē. 213 00:10:25,650 --> 00:10:27,175 Tātad, ko man vajadzētu darboties tālāk? 214 00:10:27,175 --> 00:10:27,520 >> STUDENTU: Run. 215 00:10:27,520 --> 00:10:28,050 >> Jason Hirschhorn: Run. 216 00:10:28,050 --> 00:10:30,760 Man vienkārši palaist palaist, vai būtu Es pievienot dažas citas lietas? 217 00:10:30,760 --> 00:10:31,960 >> STUDENTU: Run ar argumentu. 218 00:10:31,960 --> 00:10:33,320 >> Jason Hirschhorn: palaist ar tad komanda argumentus. 219 00:10:33,320 --> 00:10:36,420 Un, tā kā es esmu atkļūdošana ļoti specifiska gadījumā, man būtu jāievada ka 220 00:10:36,420 --> 00:10:37,120 komandrindas arguments. 221 00:10:37,120 --> 00:10:42,290 Tāpēc es darīšu palaist trīs, kas ir, atkal, izejas es saņēmu no Reģistrēšanās 50. 222 00:10:42,290 --> 00:10:44,240 Sākot programma. 223 00:10:44,240 --> 00:10:45,420 Mēs ejam cauri pāris līnijas. 224 00:10:45,420 --> 00:10:47,700 Jūs tagad redzēt, ka mēs esam uz līnijas 21. 225 00:10:47,700 --> 00:10:49,200 Kā es varu zināt, ka mēs esam uz līnijas 21? 226 00:10:49,200 --> 00:10:52,170 Jo, ja paskatās pa kreisi mana termināļa loga, tur 227 00:10:52,170 --> 00:10:53,120 tā saka līnija 21. 228 00:10:53,120 --> 00:10:57,010 Un tas dod man, patiesībā, kodu, kas ir saskaņā 21. 229 00:10:57,010 --> 00:10:58,440 Tāpēc es misspoke agrāk. 230 00:10:58,440 --> 00:10:59,770 Galvenais ir faktiski nav rindā 21. 231 00:10:59,770 --> 00:11:02,000 Galvenais ir pāris līnijas iepriekš 21. 232 00:11:02,000 --> 00:11:04,300 Bet rindā 21, kas ir kur mēs esam sadalīšana. 233 00:11:04,300 --> 00:11:06,280 Šī līnija kods ir vēl nav izpildīts. 234 00:11:06,280 --> 00:11:06,890 Tas ir svarīgi. 235 00:11:06,890 --> 00:11:09,120 Līnija jūs redzat, ir ne izpildīts vēl. 236 00:11:09,120 --> 00:11:12,650 Tas ir nākamais rindā kodu jūs gatavojaties veikt. 237 00:11:12,650 --> 00:11:15,860 >> Tātad nākamais rindā, kā jūs puiši ir iespējams, ir iepazinušies ar, tas ir 238 00:11:15,860 --> 00:11:20,070 nosacījumu pārbaudi, lai redzētu, vai man ir ieraksta komandrindas argumentu. 239 00:11:20,070 --> 00:11:22,140 Un uz i, kas ir otrais daļa, kas dara? 240 00:11:22,140 --> 00:11:23,457 Kas ir kas i? 241 00:11:23,457 --> 00:11:24,950 >> STUDENTU: Mainot to līdz veselam skaitlim. 242 00:11:24,950 --> 00:11:25,450 >> Jason Hirschhorn: Sorry? 243 00:11:25,450 --> 00:11:27,400 >> STUDENTU: Tas mainās arguments līdz veselam skaitlim. 244 00:11:27,400 --> 00:11:30,890 >> Jason Hirschhorn: Tāpēc, lai i maina ARG v1 no virknes līdz veselam skaitlim. 245 00:11:30,890 --> 00:11:32,140 Un kas tad ir tas pārbaudes? 246 00:11:32,140 --> 00:11:35,414 247 00:11:35,414 --> 00:11:37,112 >> Students: Ja ir otrais komandrindas argumentu, malā 248 00:11:37,112 --> 00:11:38,100 No darbības programmu. 249 00:11:38,100 --> 00:11:39,460 >> Jason Hirschhorn: Un kas ir otrajā pusē, šajā 250 00:11:39,460 --> 00:11:41,220 Būla izteiksme pārbaudes? 251 00:11:41,220 --> 00:11:42,540 Šī daļa vairāk nekā šeit, lai i? 252 00:11:42,540 --> 00:11:44,080 >> Students: Ja tas ir negatīvs. 253 00:11:44,080 --> 00:11:45,380 >> Jason Hirschhorn: Pārliecinoties, ko? 254 00:11:45,380 --> 00:11:47,120 >> STUDENTU: Pārliecinoties, ka ir, faktiski, pozitīva. 255 00:11:47,120 --> 00:11:47,650 >> Jason Hirschhorn: Tieši tā. 256 00:11:47,650 --> 00:11:50,600 Tas ir pārbaudīt, lai redzētu, vai tas ir negatīvs, un, ja tas ir negatīvs, es 257 00:11:50,600 --> 00:11:53,220 ir sajūta, ka nākamajā rindiņā varenību tikt me kliedza lietotājam. 258 00:11:53,220 --> 00:11:55,930 Tāpēc pieņemsim hit beigām, lai izpildītu šo līniju. 259 00:11:55,930 --> 00:11:59,925 Mēs neredzam, ka līniju, ka jūs guys varbūt cerēju ieraudzīt kliedza 260 00:11:59,925 --> 00:12:03,030 lietotāju un pēc tam atgriežas, jo šī pozīcija nav izpildīt. 261 00:12:03,030 --> 00:12:03,840 Iegāju 3. 262 00:12:03,840 --> 00:12:06,860 Tāpēc man bija, faktiski, ievadiet divas komandas argumentus, un 3 ir 263 00:12:06,860 --> 00:12:07,610 ir lielāka par nulli. 264 00:12:07,610 --> 00:12:09,950 Tātad, mēs redzējām, ka līnija, mēs izpildīts, bet mēs neesam ne soli 265 00:12:09,950 --> 00:12:11,300 iekšpusē, ja stāvoklī. 266 00:12:11,300 --> 00:12:17,060 >> Tāpēc tagad, blakus, es redzu, es esmu, kurā int galvenais ir vienāds ar i arg v1. 267 00:12:17,060 --> 00:12:18,840 Tātad tas ir man rada mainīgu atslēgu. 268 00:12:18,840 --> 00:12:22,450 Tātad, ja es izdrukāt atslēgu tieši tagad, jo , kas ļauj jums redzēt 269 00:12:22,450 --> 00:12:26,040 vērtība iekšpusē mainīgo, Galvenais ir vienāds ar 47. 270 00:12:26,040 --> 00:12:28,810 Tas ir dīvaini, bet, protams, tas ir tāpēc, ka man nav 271 00:12:28,810 --> 00:12:30,490 izpildīt šīs līnijas vēl. 272 00:12:30,490 --> 00:12:35,880 Tāpēc tagad, ja es hit n, izpildīt šo līniju, un darīt drukas taustiņu, galvenais būs vienāda ar 3, 273 00:12:35,880 --> 00:12:37,740 kas ir tas, ko mēs sagaidām, ka tas ir vienāds. 274 00:12:37,740 --> 00:12:41,170 >> Tātad atkal, gdb, rindā jūs redzēt jūs vēl neesat izpildīts. 275 00:12:41,170 --> 00:12:44,850 Jums ir hit n vai s vai numuru Citu komandu faktiski 276 00:12:44,850 --> 00:12:46,610 izpildīt šīs līnijas. 277 00:12:46,610 --> 00:12:47,380 Print taustiņu. 278 00:12:47,380 --> 00:12:48,280 Galvenie ir pie 3. 279 00:12:48,280 --> 00:12:49,750 Līdz šim tik labi. 280 00:12:49,750 --> 00:12:51,000 String ir vienkāršs teksts. 281 00:12:51,000 --> 00:12:52,270 Pieņemsim izpildīt šīs līnijas. 282 00:12:52,270 --> 00:12:53,970 Es saņemu virkni no lietotāja. 283 00:12:53,970 --> 00:12:58,690 >> Let 's redzēt savā pārbaudē 50, es ievadiet BARFOO visas cepures, lai 284 00:12:58,690 --> 00:13:01,330 tas ko es ieiet. 285 00:13:01,330 --> 00:13:07,300 Ja tagad es drukāt vienkāršu tekstu. 286 00:13:07,300 --> 00:13:08,610 Jūs redzēsiet, tas ir vienāds virkni. 287 00:13:08,610 --> 00:13:11,100 Tas dod man kādu citu dīvainu heksadecimālo numuru, bet tas ir 288 00:13:11,100 --> 00:13:13,620 Fakts, ka mans virkne ir BARFOO. 289 00:13:13,620 --> 00:13:19,308 Ja es gribēju redzēt, ko galvenais pielīdzināts pie šis jautājums, kā es varētu pārbaudīt atslēgu? 290 00:13:19,308 --> 00:13:20,710 >> STUDENTU: Print atslēga. 291 00:13:20,710 --> 00:13:22,010 >> Jason Hirschhorn: Print atslēga, tieši tā. 292 00:13:22,010 --> 00:13:23,260 Un patiesībā, tur ir īsceļu. 293 00:13:23,260 --> 00:13:25,910 Ja jums ir apnicis rakstīt drukāt, Jūs varat vienkārši ierakstiet p. 294 00:13:25,910 --> 00:13:28,340 Tāpēc p galvenais dara to pašu precīzu lieta. 295 00:13:28,340 --> 00:13:29,730 Un atkal, es redzu, tas ir vienāds ar 3. 296 00:13:29,730 --> 00:13:34,760 >> Ja es gribēju uzzināt, kāda gan taustiņu un BARFOO sastādīja vienlaicīgi 297 00:13:34,760 --> 00:13:37,215 bet man bija apnicis rakstīt katras viena individuāli, es 298 00:13:37,215 --> 00:13:38,590 varētu ierakstīt info vietējie iedzīvotāji. 299 00:13:38,590 --> 00:13:41,170 Tas dod man galvenās ir vienāds ar 3. 300 00:13:41,170 --> 00:13:42,500 Vienkāršs teksts ir vienāds BARFOO. 301 00:13:42,500 --> 00:13:45,265 Tas arī dod man šīs divas dīvainas lietas augšpusē, šis mainīgais i un 302 00:13:45,265 --> 00:13:46,590 šis mainīgais n. 303 00:13:46,590 --> 00:13:48,460 >> Tie ir faktiski pastāvošo manā galvenajā programmā. 304 00:13:48,460 --> 00:13:51,280 Mēs neesam saskārušies viņiem vēl, bet kā preview, tiem 305 00:13:51,280 --> 00:13:52,880 pastāv manā cilpa. 306 00:13:52,880 --> 00:13:55,360 Tātad tagad, tie ir vienādi daži dīvaini skaits, jo viņi nav bijuši 307 00:13:55,360 --> 00:13:58,300 inicializēts, tomēr tās joprojām pastāv atmiņā, tāpēc viņi vienkārši noteikt 308 00:13:58,300 --> 00:14:00,220 uz kādu atkritumu vērtību. 309 00:14:00,220 --> 00:14:02,890 Bet mēs redzēt atslēgu vienkāršā teksta turpat. 310 00:14:02,890 --> 00:14:06,390 >> Tāpēc es esmu gatavojas veikt šo līniju, līnija 34, lai cilpa. 311 00:14:06,390 --> 00:14:08,220 Mēs ejam, lai ielēkt cilpa ar hitting n. 312 00:14:08,220 --> 00:14:10,050 Un mēs esam iekšā cilpa. 313 00:14:10,050 --> 00:14:11,360 Mēs esam pie mūsu pirmo pārbaudi. 314 00:14:11,360 --> 00:14:14,300 Un atkal, tie ir sava veida meklēt pazīstams ar jums, jo tas bija 315 00:14:14,300 --> 00:14:18,080 Caesar programma, kas bija rakstīts, bet atkal, ir dažas bug veida. 316 00:14:18,080 --> 00:14:21,940 >> Un tagad, ja man info vietējie iedzīvotāji, jo es esmu iekšā, ka cilpa, jūs redzēsiet 317 00:14:21,940 --> 00:14:23,900 ka man ir vienāds ar nulli, kā mēs sagaidām. 318 00:14:23,900 --> 00:14:26,820 Tas ir tas, ko mēs noteikti to un inicializēts tas lai ir uz cilpas. 319 00:14:26,820 --> 00:14:27,560 n ir vienāds ar 6. 320 00:14:27,560 --> 00:14:30,700 Tas arī ir jēga, jo mēs noteikti to uz strlen no teksta. 321 00:14:30,700 --> 00:14:34,270 Tāpēc es vēlētos darīt info vietējiem vai drukāt uz mainīgo bieži, lai pārliecinātos, ka 322 00:14:34,270 --> 00:14:36,370 viss vienmēr ir tas, ko Es ceru, ka tas ir vienāds. 323 00:14:36,370 --> 00:14:39,800 Šajā gadījumā, viss ko es ceru, ka tas ir vienāds. 324 00:14:39,800 --> 00:14:41,850 >> Tāpēc sāksim pārvietojas pa šis cilpa. 325 00:14:41,850 --> 00:14:45,715 Līnija es esmu par, ir līnija 36, ​​ja plain teksta i ir lielāks par un plain 326 00:14:45,715 --> 00:14:48,540 teksta i ir mazāks par vai vienāds ar z. 327 00:14:48,540 --> 00:14:51,880 Es zinu, ka mana problēma ir nevis ar savu pirmo burtu, tas ir ar otro burtu. 328 00:14:51,880 --> 00:14:56,290 Ja mēs atskatāmies uz Reģistrēšanās 50, B dodas uz E naudas sodu. 329 00:14:56,290 --> 00:14:59,010 Es esmu ņemot A un atstājot to kā , nemainot to D. Tātad 330 00:14:59,010 --> 00:15:00,200 kaut kas ir nepareizi ar Otru vēstuli. 331 00:15:00,200 --> 00:15:01,640 Tāpēc es esmu gatavojas pārvietot tur sekundē. 332 00:15:01,640 --> 00:15:06,030 >> Bet, ja es to vēlos, lai pārbaudītu, kāda līdzenums Teksta Es līdzinājās jo šis konkrētais 333 00:15:06,030 --> 00:15:07,760 gadījumā, es domāju, ka tas ir tas, ko? 334 00:15:07,760 --> 00:15:10,980 Kas ir teksta man ir vienāds šajā pirmā kārta, izmantojot par cilpu? 335 00:15:10,980 --> 00:15:14,046 336 00:15:14,046 --> 00:15:15,110 >> STUDENTU: Zero? 337 00:15:15,110 --> 00:15:16,510 >> Jason Hirschhorn: Teksta I? 338 00:15:16,510 --> 00:15:21,180 Lai tā būtu kapitāls B. Es, protams, ir vienāds ar nulli, bet teksta 339 00:15:21,180 --> 00:15:25,600 kronšteins nulles slēgta kronšteins vienāds B jo stīgas, kā mēs redzējām pagājušajā nedēļā, 340 00:15:25,600 --> 00:15:28,650 ir masīvs, tāpēc mēs esam nonākuši pirmais simbols no tā. 341 00:15:28,650 --> 00:15:34,960 Tātad vēlreiz, ja es izdrukāt teksta par Es, es, patiesībā, iegūtu rakstzīmi 342 00:15:34,960 --> 00:15:36,560 B. Un tas ir veikls, labi? 343 00:15:36,560 --> 00:15:40,380 Man nav tiešām ir teksta I. Tas nav viens no mainīgajiem, es noteikti 344 00:15:40,380 --> 00:15:42,950 vai inicializēts, bet jūs varat izdrukāt no visu uzņēmējas lietas 345 00:15:42,950 --> 00:15:45,640 ja vēlaties. 346 00:15:45,640 --> 00:15:47,340 >> Bet pieņemsim pārvietotos. 347 00:15:47,340 --> 00:15:50,050 Ja teksta I ir lielāks nekā A un teksta I ir mazāks par vai vienāds ar 348 00:15:50,050 --> 00:15:53,290 Z, kas skaidri ir taisnība, jo mēs esam kapitāls B. Es esmu gatavojas palaist 349 00:15:53,290 --> 00:15:54,230 daži komandu par to. 350 00:15:54,230 --> 00:15:58,530 Mēs redzējām, ka matemātikas pagājušajā nedēļā, tāpēc mēs ņemt to par pašsaprotamu, ka tas darbojas 351 00:15:58,530 --> 00:16:00,900 tiesības saskaņā ar Check 50. 352 00:16:00,900 --> 00:16:03,720 >> Šie cirtaini bikšturi, pirmā parādīja, ka man bija aizejošais ja 353 00:16:03,720 --> 00:16:07,030 nosacījumu, otrs parādīja ka es esmu iziešanas uz cilpas. 354 00:16:07,030 --> 00:16:10,400 Un tāpēc tagad, kad es hit Tālāk, mēs redzēsim mēs esam atpakaļ uz cilpas vēlreiz. 355 00:16:10,400 --> 00:16:11,970 Mēs ejam cauri uz cilpas vēlreiz. 356 00:16:11,970 --> 00:16:18,110 Pieņemsim faktiski solis otrā atkārtojuma cilpa un veidam 357 00:16:18,110 --> 00:16:20,520 informācija vietējie iedzīvotāji. 358 00:16:20,520 --> 00:16:22,190 >> Tātad mēs esam otrajā atkārtojuma Mūsu uz cilpas. 359 00:16:22,190 --> 00:16:24,530 Man ir 1, ko mēs sagaidām. 360 00:16:24,530 --> 00:16:26,650 N ir vienāds ar 6, ko mēs sagaidām. 361 00:16:26,650 --> 00:16:28,810 Galvenais ir vienāds ar 3, ko mēs sagaidām. 362 00:16:28,810 --> 00:16:32,625 Un teksta, jūs redzēsiet, ir vienāds EARFOO tagad, nevis BARFOO vairs, jo 363 00:16:32,625 --> 00:16:37,930 mūsu iepriekšējās iterācijas, B bija mainīts uz kapitālu E. Tātad mēs esam par 364 00:16:37,930 --> 00:16:40,040 sastapties šo problēmu, tāpēc šis ir vieta, kur mēs ejam 365 00:16:40,040 --> 00:16:41,130 nirt debugging. 366 00:16:41,130 --> 00:16:43,365 Bet vai kāds ir kādi jautājumi par to, ko mēs esam darījuši līdz šim? 367 00:16:43,365 --> 00:16:46,770 368 00:16:46,770 --> 00:16:47,910 Fantastiska. 369 00:16:47,910 --> 00:16:52,710 >> Tāpēc mēs esam par to, lai izpildītu to, ja nosacījums, teksta kronšteins Es aizvēru 370 00:16:52,710 --> 00:16:57,500 kronšteins pārsniedz A un teksta I ir mazāks par vai vienāds ar Z. bet pirms 371 00:16:57,500 --> 00:17:00,450 Es eju uz to, jo tas ir, ja Es zinu, mana kļūda, es vēlos norādīt 372 00:17:00,450 --> 00:17:06,859 no teksta I So pieņemsim likts izdrukāt. 373 00:17:06,859 --> 00:17:12,020 Tas ir vienāds ar rakstzīmju A, lai Šķiet, līdz šim viss ir labi un labs. 374 00:17:12,020 --> 00:17:14,740 >> Tāpēc es ceru, ka šo līniju vienu manu loģiku, Šī līnija ir taisnība. 375 00:17:14,740 --> 00:17:16,099 Tas ir lielais burts. 376 00:17:16,099 --> 00:17:20,599 Bet, ja es hit n, mēs saprotam, ka tas līnija, patiesībā, nav izpildīt. 377 00:17:20,599 --> 00:17:22,609 Es nolēca uz citam, ja. 378 00:17:22,609 --> 00:17:25,460 Kāpēc tā notiek? 379 00:17:25,460 --> 00:17:27,480 >> STUDENTU: Jo jums ir jūsu stāvoklis no teksta ir lielāks 380 00:17:27,480 --> 00:17:29,130 nekā, nav vienāds vai lielāks par. 381 00:17:29,130 --> 00:17:32,260 >> Jason Hirschhorn: Tāpēc man bija mana teksta I ir lielāks nekā, kas nav lielāks 382 00:17:32,260 --> 00:17:32,850 par vai vienāds ar. 383 00:17:32,850 --> 00:17:38,130 Tik skaidri, kapitāls nebija iedarbinātu šo, ja nosacījums, un mēs to darījām 384 00:17:38,130 --> 00:17:40,520 nav solis uz to, un mēs to darījām nedara nepieciešamo pāreju. 385 00:17:40,520 --> 00:17:41,360 Tātad tas ir tas, patiesībā. 386 00:17:41,360 --> 00:17:42,920 Es sapratu, mana kļūda. 387 00:17:42,920 --> 00:17:46,775 Es varētu iet atpakaļ manā avota failā, mainīt, un to atjaunina un 388 00:17:46,775 --> 00:17:47,855 palaist Pārbaudiet 50 vēlreiz. 389 00:17:47,855 --> 00:17:52,590 >> Bet mēs redzēsim, tikai pedagoģija s dēļ, ja es glabāt turpinās. 390 00:17:52,590 --> 00:17:59,580 Cits ja neveic vai nu, bet kāda vietā ir vienāds, ir komanda 391 00:17:59,580 --> 00:18:00,500 tas nemaina. 392 00:18:00,500 --> 00:18:04,840 Tāpēc tas nav mainījies vispār, un, ja es drukāt vienkāršu tekstu šeit, mēs redzēsim notiek 393 00:18:04,840 --> 00:18:08,250 cauri, ka cilpa nav, faktiski, mainītu šo otru raksturu vispār. 394 00:18:08,250 --> 00:18:09,600 Tas joprojām kapitāla A. 395 00:18:09,600 --> 00:18:12,690 >> Tātad vēlreiz, mēs debugged mūsu kļūda. 396 00:18:12,690 --> 00:18:17,380 Mēs sapratām, ka tur bija daži loģika trūkst. 397 00:18:17,380 --> 00:18:20,590 Un mēs atkļūdota to pirms laika pirms faktiski izpildīt šo līniju, 398 00:18:20,590 --> 00:18:24,320 bet jums būs pamanījuši, mēs nebijām vienkārši hit Next un lēkt, lai tas cits, ja, 399 00:18:24,320 --> 00:18:26,710 tas nozīmē, ka, ja nosacījums nebija taisnība. 400 00:18:26,710 --> 00:18:29,550 Mēs neesam, patiesībā, iegūt Rezultātā mēs gaidīts. 401 00:18:29,550 --> 00:18:33,240 Tātad, tad mēs varētu būt mudināts, bija mums nav bijis tik gudrs, lai apskatīt 402 00:18:33,240 --> 00:18:38,510 ka, ja nosacījums, un pārbaudīt, ja, patiesībā, Mūsu nosacījums ir jānovērtē to 403 00:18:38,510 --> 00:18:41,150 taisnība pašreizējā kontekstā. 404 00:18:41,150 --> 00:18:42,880 >> Tas ir viss, debugging šo programmu. 405 00:18:42,880 --> 00:18:45,340 Vai kāds ir kādi jautājumi? 406 00:18:45,340 --> 00:18:50,486 Kādas komandas es varētu hit atmest GDB? 407 00:18:50,486 --> 00:18:53,900 Q. Un tad es būšu piedāvāts, atmest anyway? 408 00:18:53,900 --> 00:18:54,390 Jā vai nē. 409 00:18:54,390 --> 00:18:58,440 Es hit jā, un es ņemšu atmest GDB. 410 00:18:58,440 --> 00:19:00,860 >> Tāpēc, ka bija ātrs primer uz gdb. 411 00:19:00,860 --> 00:19:03,430 Patiesībā, reālā scenārija, I did this par darba laika. 412 00:19:03,430 --> 00:19:06,710 Es GDBed šo konkrēto programmu pie darba laiks ar students. 413 00:19:06,710 --> 00:19:12,410 Un, ja mēs ejam atpakaļ mēs redzējām komandas Pirms mēs izmantojām pārtraukuma Mainas, vispirms 414 00:19:12,410 --> 00:19:13,190 lieta, ko mēs darījām. 415 00:19:13,190 --> 00:19:16,060 Mēs izmantojām darboties ar komandrindas argumentus, Otrā lieta, ko mēs darījām. 416 00:19:16,060 --> 00:19:18,520 Mēs izmantojām blakus daudz, lai pārvietotos mums pa līnijām. 417 00:19:18,520 --> 00:19:20,310 Un atkal, īsais variants Nākamās ir n. 418 00:19:20,310 --> 00:19:22,920 Tas ir, kas iekavās pelēkā slaidā. 419 00:19:22,920 --> 00:19:28,590 >> Mēs neizmantoja soli, taču mēs neesam obligāti nepieciešams, lai par šo lietu. 420 00:19:28,590 --> 00:19:32,150 Bet mēs varētu izmantot to mazliet vēlāk šodien ja mēs debugging, lai 421 00:19:32,150 --> 00:19:36,500 Piemēram, bināro meklēšanu kad binārais meklēšana sauc atsevišķu 422 00:19:36,500 --> 00:19:38,200 funkciju, bet tur ir dažas kļūdas ar to. 423 00:19:38,200 --> 00:19:40,440 Mēs esam gatavojas vēlaties, lai soli aicinājums bināro meklēšanas un 424 00:19:40,440 --> 00:19:41,840 faktiski atkļūdot to. 425 00:19:41,840 --> 00:19:45,130 Uzskaitīt mēs neizmantoja nu tāpēc, ka mums bija labu sajūtu mūsu kodu, bet, ja es 426 00:19:45,130 --> 00:19:48,420 tomēr vēlas, lai iegūtu sajūtu par to, ko kods es bija apkārt, es varētu vienkārši izmantot sarakstā. 427 00:19:48,420 --> 00:19:50,310 >> Drukāt mēs izmantojām, info vietējie mēs izmantojām. 428 00:19:50,310 --> 00:19:53,260 Turpināt mums nav nepieciešams izmantot šajā gadījumā, neviens nebija mums ir nepieciešams, lai izmantotu 429 00:19:53,260 --> 00:19:55,060 atslēgt, bet mēs izmantot atmest. 430 00:19:55,060 --> 00:19:57,850 Arī šie 10 komandas, praksē tos. 431 00:19:57,850 --> 00:20:00,770 Ja jūs saprotat šos 10 komandas, Jums ir jānosaka debugging jebkuru 432 00:20:00,770 --> 00:20:02,525 izdot ar gdb. 433 00:20:02,525 --> 00:20:05,230 434 00:20:05,230 --> 00:20:08,420 >> Tāpēc mēs esam par to, lai dotos tālāk, atkal, lai būtība sadaļā šodien iet pa 435 00:20:08,420 --> 00:20:09,720 tie šķirošanas un meklēšanas algoritmi. 436 00:20:09,720 --> 00:20:14,075 Pirms mēs to darām, atkal, kādi jautājumi, komentāri, bažas par gdb? 437 00:20:14,075 --> 00:20:16,750 438 00:20:16,750 --> 00:20:20,960 Tātad ir visi gatavojas izmantot GDB nevis printf? 439 00:20:20,960 --> 00:20:24,550 Lai ikviens, lai nepārtrauktību dēļ, visiem ir pavirša savas galvas tiesības 440 00:20:24,550 --> 00:20:27,400 tagad, tāpēc es jūs redzēt darba laika un visi TFS redzēs tevi un 441 00:20:27,400 --> 00:20:29,460 viņi teiks, parādiet man, kā izmantot GDB, un jūs varēsiet 442 00:20:29,460 --> 00:20:31,240 parādīt viņiem, vai ne? 443 00:20:31,240 --> 00:20:31,760 Veida? 444 00:20:31,760 --> 00:20:32,640 Varbūt cerams. 445 00:20:32,640 --> 00:20:33,670 Atdzist. 446 00:20:33,670 --> 00:20:35,790 >> Tāpēc mēs esam gatavojas pārcelties uz šķirošana un meklēšana. 447 00:20:35,790 --> 00:20:40,710 Jūs redzēsiet Man ir saraksts jau ir sakārtoti mums, bet tas nav dodas 448 00:20:40,710 --> 00:20:42,220 būs vienmēr. 449 00:20:42,220 --> 00:20:49,170 Tātad problēma noteikti specifikāciju Problēma noteikti trīs, jums ir šorti 450 00:20:49,170 --> 00:20:51,410 ka jūs varat skatīties, un tas faktiski lūdz, lai jūs skatīties šo šorti. 451 00:20:51,410 --> 00:20:55,090 Arī lekciju pagājušajā nedēļā, mēs devāmies pāri daudz no šiem algoritmiem, tāpēc es esmu 452 00:20:55,090 --> 00:20:59,150 nav gatavojas tērēt laiku klasē iet pār šiem algoritmiem vēlreiz, vai zīmējumu 453 00:20:59,150 --> 00:21:01,130 bildes par to, kā šos algoritmi strādā. 454 00:21:01,130 --> 00:21:04,030 Atkal, ka informācija, ko jūs varat atkārtoti skatīties lekcija, vai šī informācija 455 00:21:04,030 --> 00:21:08,570 ir notverti izcili uz šorti lai šos meklē, visi 456 00:21:08,570 --> 00:21:10,920 kas ir pieejami cs50.net. 457 00:21:10,920 --> 00:21:14,200 >> Tā vietā, ko mēs gatavojamies darīt, ir rakstīt šo programmu. 458 00:21:14,200 --> 00:21:18,190 Mums ir sajūta, garīgo modeli, par to, kā viņi strādā, un tāpēc tas, ko mēs ejam 459 00:21:18,190 --> 00:21:20,210 to darīt, ir kodu tos reāli. 460 00:21:20,210 --> 00:21:23,430 Mēs ejam, lai savukārt, ka garīgo modeli, ka attēls, ja vēlaties, uz 461 00:21:23,430 --> 00:21:24,960 faktiskais kods. 462 00:21:24,960 --> 00:21:28,460 Un, ja tu būtu nedaudz mulsina, vai miglaini par garīgo modeli, es pilnīgi 463 00:21:28,460 --> 00:21:28,770 saprast. 464 00:21:28,770 --> 00:21:30,540 >> Mēs faktiski nav gatavojas pāriet uz kodu uzreiz. 465 00:21:30,540 --> 00:21:36,030 Tāpēc, kamēr tas ātri šajā slaidā lūdz Jums kodu bināro meklēšanu, un 466 00:21:36,030 --> 00:21:39,470 patiesībā, iteratīvs versija bināro meklēšanu, pirmā lieta, ko es 467 00:21:39,470 --> 00:21:42,370 tiešām gribu, lai jūs darīt, ir uzrakstīt kādu pseudocode. 468 00:21:42,370 --> 00:21:47,020 Tātad jums ir šī garīgās modelis par to, kā bināro meklēšanas darbi. 469 00:21:47,020 --> 00:21:50,060 Izņemiet papīra lapas, ja jums ir viens viegli pieejama, vai atvērt 470 00:21:50,060 --> 00:21:52,520 teksta redaktoru, un es gribētu visi rakstīt. 471 00:21:52,520 --> 00:21:57,470 Ņem četras minūtes, lai rakstītu pseudocode bināro meklēšanu. 472 00:21:57,470 --> 00:21:58,990 >> Atkal, domā par to, ka garīgo modeli. 473 00:21:58,990 --> 00:22:01,980 Es atnākšu apkārt, ja jums ir jautājumi un mēs varam izdarīt attēlu out. 474 00:22:01,980 --> 00:22:06,220 Bet vispirms, pirms mēs sākam plānošanu, Es gribētu rakstīt 475 00:22:06,220 --> 00:22:09,920 pseudocode bināro meklēšanu, lai tad, kad mēs nirt, mēs esam kādu virzienu, kā 476 00:22:09,920 --> 00:22:12,110 , kur mums vajadzētu doties. 477 00:22:12,110 --> 00:22:15,330 >> STUDENTU: Vai mēs pieņemam masīvs vērtības, mēs iegūstam jau sakārtots? 478 00:22:15,330 --> 00:22:17,960 >> Jason Hirschhorn: Tātad bināro meklēšanu strādāt - lielisks jautājums - tu 479 00:22:17,960 --> 00:22:20,970 ir uzņemt šķiroti masīva vērtībām. 480 00:22:20,970 --> 00:22:22,290 Tāpēc pieņemu, tas darbosies. 481 00:22:22,290 --> 00:22:23,480 Mēs iesim atpakaļ uz šo slaidu. 482 00:22:23,480 --> 00:22:27,220 Jūs redzēsiet purpurā funkciju deklarācija ir bool binary_search int 483 00:22:27,220 --> 00:22:29,230 vērtību, int vērtības, int n. 484 00:22:29,230 --> 00:22:32,910 Tam vajadzētu izskatīties pazīstami, ja esat jau tuvojās vai gotten savu 485 00:22:32,910 --> 00:22:34,580 rokas netīras ar problēmu kopumu. 486 00:22:34,580 --> 00:22:35,910 >> Bet tas ir jūsu uzdevums deklarācija. 487 00:22:35,910 --> 00:22:39,080 Atkal, nav jāuztraucas par ka daudz šajā brīdī. 488 00:22:39,080 --> 00:22:43,660 Ko es tiešām gribu, lai jūs darīt, ir veikt Četras minūtes līdz pseudocode bināro 489 00:22:43,660 --> 00:22:46,380 meklēt, un tad mēs brauksim pāri, kas kā grupa. 490 00:22:46,380 --> 00:22:47,500 Un es nāk apkārt. 491 00:22:47,500 --> 00:22:49,590 Ja jums ir jautājumi, lūdzu brīvi paaugstināt savu roku. 492 00:22:49,590 --> 00:25:07,110 493 00:25:07,110 --> 00:25:09,680 >> Kāpēc jūs to vēl divas minūtes pabeigt līdz pseudocode? 494 00:25:09,680 --> 00:25:13,690 495 00:25:13,690 --> 00:25:15,820 Es zinu, tas var likties smieklīgi, ka mēs esam izdevumu tik daudz laika 496 00:25:15,820 --> 00:25:20,350 kaut kas nav pat faktiski C, bet jo īpaši tiem vairāk 497 00:25:20,350 --> 00:25:24,030 apstrīdot algoritmi un problēmu komplekti, kas mums ir, lai noskaidrotu, 498 00:25:24,030 --> 00:25:27,210 sākot ar pseudocode nav satraucošs par sintaksi, tikai neuztraucoties par 499 00:25:27,210 --> 00:25:29,150 loģika, ir neticami noderīgi. 500 00:25:29,150 --> 00:25:32,720 Un tādā veidā, jūs neesat atrisināt divas neticami sarežģītas problēmas uzreiz. 501 00:25:32,720 --> 00:25:35,390 Jūs tikai koncentrēties uz loģiku, un tad jūs pārvietoties sintaksi. 502 00:25:35,390 --> 00:25:59,960 503 00:25:59,960 --> 00:26:01,385 >> OK. 504 00:26:01,385 --> 00:26:03,680 Sāksim iet cauri pseudocode. 505 00:26:03,680 --> 00:26:05,380 Es esmu uzrakstījis šeit, bināro meklēšanas pseudocode. 506 00:26:05,380 --> 00:26:07,360 Mēs rakstīt šo par kuģa kopā. 507 00:26:07,360 --> 00:26:10,040 Vai es ņemšu rakstīt to, un jums došu man liek man ir nepieciešams. 508 00:26:10,040 --> 00:26:15,010 Tātad, var kāds sniegt man pirmais līnija pseudocode jūs 509 00:26:15,010 --> 00:26:18,350 rakstīja bināro meklēšanu? 510 00:26:18,350 --> 00:26:20,258 Jā, Annie? 511 00:26:20,258 --> 00:26:22,698 >> Students: Lai garums saraksts ir lielāka par nulli. 512 00:26:22,698 --> 00:26:26,114 513 00:26:26,114 --> 00:26:34,880 >> Jason Hirschhorn: Kamēr garums saraksta lielāka par nulli. 514 00:26:34,880 --> 00:26:38,810 Un atkal mēs redzam dažus C vērstu sintakses lietas šeit. 515 00:26:38,810 --> 00:26:41,550 Bet lielākā daļa no tā ir angļu valodā. 516 00:26:41,550 --> 00:26:43,980 Vai kāds ir līnija, ko tie īsteno Pirms šo to pseido-kodu? 517 00:26:43,980 --> 00:26:47,280 518 00:26:47,280 --> 00:26:50,210 >> STUDENTU: Get masīvs Šķirotu numurus. 519 00:26:50,210 --> 00:26:53,600 >> Jason Hirschhorn: You rakstīja: "get masīvs Šķirotu skaitļiem. "Per 520 00:26:53,600 --> 00:26:56,140 funkcija deklarāciju, mēs būsim iet masīvs sakārtoti numuriem. 521 00:26:56,140 --> 00:26:57,280 >> STUDENTU: [nedzirdama]. 522 00:26:57,280 --> 00:26:59,030 >> Jason Hirschhorn: So mums būs tā. 523 00:26:59,030 --> 00:27:01,820 Bet jā, ja mums nebija, ka mēs būtu nepieciešams, lai sakārtotu mūsu masīvs 524 00:27:01,820 --> 00:27:04,850 skaitļi, jo bināro meklēšanu darbojas tikai sakārtoti masīvi. 525 00:27:04,850 --> 00:27:11,300 Tāpēc, kamēr garums saraksta vienāda ar nulli, es esmu gatavojas īstenot dažas cirtaini lencēm 526 00:27:11,300 --> 00:27:15,420 lai tas izskatās mazliet vairāk kā C. Bet, kamēr, šķiet karti uz 527 00:27:15,420 --> 00:27:19,550 kamēr cilpa, tāpēc iekšā šo brīdi cilpa, kas mums ir nepieciešams, lai 528 00:27:19,550 --> 00:27:22,000 darīt bināro meklēšanu? 529 00:27:22,000 --> 00:27:25,530 >> Kāds cits, kas man nav devis atbildēt vēl, bet kurš rakstīja šo? 530 00:27:25,530 --> 00:27:31,750 531 00:27:31,750 --> 00:27:33,320 >> STUDENTU: Iet uz vidu saraksta. 532 00:27:33,320 --> 00:27:33,980 >> Jason Hirschhorn: Tom. 533 00:27:33,980 --> 00:27:35,230 Iet uz vidu sarakstā. 534 00:27:35,230 --> 00:27:43,290 535 00:27:43,290 --> 00:27:45,530 Un pēcpārbaudes jautājums, ko mēs darām, kad mēs esam pie 536 00:27:45,530 --> 00:27:46,870 vidū sarakstā? 537 00:27:46,870 --> 00:27:49,310 >> STUDENTU: Vai pārbaudīt, vai kas ir numuru jūs meklējat. 538 00:27:49,310 --> 00:27:50,120 >> Jason Hirschhorn: Excellent. 539 00:27:50,120 --> 00:28:05,500 Iet vidū sarakstu un pārbaudīt ja mūsu vērtības ir tur - 540 00:28:05,500 --> 00:28:06,515 fantastiska. 541 00:28:06,515 --> 00:28:10,460 Vai kāds ir kaut kas cits tas bija atšķirīgs par šo? 542 00:28:10,460 --> 00:28:11,210 Tas ir tieši labi. 543 00:28:11,210 --> 00:28:13,800 >> Pirmā lieta, ko mēs darām bināro meklēšanu ir iet uz vidu sarakstā un 544 00:28:13,800 --> 00:28:15,870 pārbaudiet, lai redzētu, vai mūsu vērtība ir tur. 545 00:28:15,870 --> 00:28:19,682 Tāpēc es pieņemu, ja mūsu vērtība ir tur, ko mēs darām? 546 00:28:19,682 --> 00:28:21,610 >> STUDENTU: Mēs atgriežamies nulle [nedzirdama]. 547 00:28:21,610 --> 00:28:23,400 >> Jason Hirschhorn: Jā, ja mūsu vērtība ir tur, mēs atradām. 548 00:28:23,400 --> 00:28:27,950 Tātad, mēs varam pateikt, kādā veidā, tomēr tas funkcija ir definēta, mēs pateikt lietotāju 549 00:28:27,950 --> 00:28:28,520 mēs atradām. 550 00:28:28,520 --> 00:28:30,950 Ja tas nav tur, lai gan, tas ir ja tas izpaužas grūts. 551 00:28:30,950 --> 00:28:35,120 Tātad, ja tas nav tur, kāds cits, kurš strādāja par bināro meklēšanu vai 552 00:28:35,120 --> 00:28:36,830 ir ideja tagad, ko mēs darām? 553 00:28:36,830 --> 00:28:37,830 >> STUDENTU: Jautājums. 554 00:28:37,830 --> 00:28:38,100 >> Jason Hirschhorn: Jā? 555 00:28:38,100 --> 00:28:39,920 >> STUDENTU: Vai masīva jau ir sakārtoti? 556 00:28:39,920 --> 00:28:42,200 >> Jason Hirschhorn: Jā, mēs esam, pieņemot masīva jau ir sakārtots. 557 00:28:42,200 --> 00:28:46,480 >> STUDENTU: Tātad jums ir, lai pārbaudītu, vai vērtība, ka jūs redzat, ir lielāks nekā 558 00:28:46,480 --> 00:28:51,745 vērtība, ka jūs vēlaties, jūs varat pārvietot uz vidu otru pusi. 559 00:28:51,745 --> 00:28:54,110 >> Jason Hirschhorn: Tātad, ja vidū saraksts ir lielāks nekā tas, ko mēs 560 00:28:54,110 --> 00:28:57,440 meklē, tad mēs darām? 561 00:28:57,440 --> 00:28:58,320 Mēs virzāmies kur? 562 00:28:58,320 --> 00:29:01,400 >> STUDENTU: Jūs vēlaties, lai pārietu uz puse no saraksta ar 563 00:29:01,400 --> 00:29:02,780 skaitļi zemākas nekā. 564 00:29:02,780 --> 00:29:04,460 >> Jason Hirschhorn: lai mēs zvans, ka kreisi. 565 00:29:04,460 --> 00:29:15,435 Tātad, ja vidū ir lielāks, mēs varam meklēt left puse no saraksta. 566 00:29:15,435 --> 00:29:20,620 567 00:29:20,620 --> 00:29:22,980 Un pēc tam meklēt, ko es domāju, ko meklēt? 568 00:29:22,980 --> 00:29:24,010 >> STUDENTU: [nedzirdama]. 569 00:29:24,010 --> 00:29:24,410 >> Jason Hirschhorn: Mēs ejam uz vidu. 570 00:29:24,410 --> 00:29:25,740 Mēs faktiski atkārtot šo lietu. 571 00:29:25,740 --> 00:29:29,210 Mēs ejam atpakaļ caur mūsu kamēr cilpa. 572 00:29:29,210 --> 00:29:31,480 Es došu jums pēdējais - 573 00:29:31,480 --> 00:29:39,047 cits, ja, vidū ir mazāks nekā mēs darām, ko mēs darām šeit? 574 00:29:39,047 --> 00:29:40,360 >> STUDENTU: Iet uz labo pusi. 575 00:29:40,360 --> 00:29:41,610 >> Jason Hirschhorn: Meklēt tiesības. 576 00:29:41,610 --> 00:29:47,440 577 00:29:47,440 --> 00:29:51,710 Tas izskatās labi, bet vai kāds ir viss, kas mums var nebūt vai 578 00:29:51,710 --> 00:29:53,200 kaut kas cits, ka jūs likts Jūsu pseido-kodu? 579 00:29:53,200 --> 00:29:57,080 580 00:29:57,080 --> 00:29:58,410 Tātad šis ir tas, ko mēs esam tik tālu. 581 00:29:58,410 --> 00:30:00,960 Kaut garums saraksta ir lielāks par nulli, mēs ejam, lai dotos 582 00:30:00,960 --> 00:30:03,220 lai saraksta vidū un pārbaudīt, ja mūsu vērtība ir tur. 583 00:30:03,220 --> 00:30:06,970 >> Ja vidū ir lielāks, mēs ejam uz meklēt pa kreisi, cits, ja pa vidu ir 584 00:30:06,970 --> 00:30:09,230 mazāk, mēs ejam, lai meklētu tiesības. 585 00:30:09,230 --> 00:30:14,430 Tātad mēs visi esam bija daži familiaritāte ar termini mēs izmantojam datorzinātnēs 586 00:30:14,430 --> 00:30:15,550 un instrumenti mums ir. 587 00:30:15,550 --> 00:30:18,300 Bet jūs jau novērojat mēs bijām runājot angļu valodā, bet mēs atradām 588 00:30:18,300 --> 00:30:24,790 par lietām, kas šķiet karti uz daudz instrumenti mums ir mūsu kodēšanas rīku komplektu. 589 00:30:24,790 --> 00:30:27,210 Tātad, tiesības pie nūja, mēs neesam gatavojas faktiski kodu vēl. 590 00:30:27,210 --> 00:30:33,300 >> Ko mēs redzam šeit, angļu valodā, ka kartes uz lietām, mēs varam rakstīt C? 591 00:30:33,300 --> 00:30:34,560 >> STUDENTU: Kamēr. 592 00:30:34,560 --> 00:30:35,320 >> Jason Hirschhorn: Kamēr. 593 00:30:35,320 --> 00:30:40,610 Tāpēc tas, kamēr šeit kartes uz ko? 594 00:30:40,610 --> 00:30:42,630 >> STUDENTU: kamēr cilpa. 595 00:30:42,630 --> 00:30:43,200 >> Jason Hirschhorn: kamēr cilpa? 596 00:30:43,200 --> 00:30:44,540 Vai, iespējams, plašākā nozīmē, cilpa. 597 00:30:44,540 --> 00:30:46,260 Mēs vēlamies kaut ko darīt vairāk un vairāk. 598 00:30:46,260 --> 00:30:49,050 Tāpēc mēs esam gatavojas kodu cilpu. 599 00:30:49,050 --> 00:30:51,640 Un mēs jau zinām, jo ​​mēs esam darījuši tas reizes pāris, un mēs 600 00:30:51,640 --> 00:30:54,180 ir daudz piemēru, kas pastāv, kā faktiski rakstīt 601 00:30:54,180 --> 00:30:55,310 šis indekss cilpu. 602 00:30:55,310 --> 00:30:56,160 Tā, ka būtu diezgan viegli. 603 00:30:56,160 --> 00:30:58,070 Mums vajadzētu būt iespējai iegūt, ka sāka diezgan ātri. 604 00:30:58,070 --> 00:31:01,830 >> Ko vēl mēs redzam šeit? 605 00:31:01,830 --> 00:31:06,820 Kādi citi struktūras sintakses lietas ka mēs esam iepazinušies ar C, mēs 606 00:31:06,820 --> 00:31:09,790 jau ir sajūta Based nost no vārdiem mēs izmantojām? 607 00:31:09,790 --> 00:31:10,830 Jā, Anna? 608 00:31:10,830 --> 00:31:11,360 [Dzirdams] 609 00:31:11,360 --> 00:31:12,990 tikai kidding. 610 00:31:12,990 --> 00:31:13,540 Anna, iet uz priekšu. 611 00:31:13,540 --> 00:31:14,530 >> Students: Ja un cits. 612 00:31:14,530 --> 00:31:16,260 >> Jason Hirschhorn: ja un cits - tieši šeit. 613 00:31:16,260 --> 00:31:18,840 Tātad, ko tie izskatās? 614 00:31:18,840 --> 00:31:20,420 >> STUDENTU: ja cits paziņojumu. 615 00:31:20,420 --> 00:31:21,560 >> Jason Hirschhorn: Jā, nosacījumiem, vai ne? 616 00:31:21,560 --> 00:31:24,650 Tāpēc mēs, iespējams, vajadzēs uzrakstīt dažus nosacījumus. 617 00:31:24,650 --> 00:31:31,185 Un atkal, lai gan varbūt mulsinoši pirmkārt, mums parasti ir jēga tagad 618 00:31:31,185 --> 00:31:34,010 par to, kā rakstīt nosacījumus un sintakse apstākļiem. 619 00:31:34,010 --> 00:31:36,850 Un, ja mums nav, mēs vienkārši uzmeklēt sintakse apstākļiem, izgriezt un ielīmēt 620 00:31:36,850 --> 00:31:39,950 ka, jo mēs zinām, mēs nepieciešams nosacījums. 621 00:31:39,950 --> 00:31:44,910 Citas lietas, mēs redzam, ka karti uz lietas, kas mums var būt nepieciešams veikt C? 622 00:31:44,910 --> 00:31:48,312 623 00:31:48,312 --> 00:31:48,960 Jā, Aleha? 624 00:31:48,960 --> 00:31:50,370 >> STUDENTU: Tas varētu būt skaidrs, , tikai pārbaudot, vai 625 00:31:50,370 --> 00:31:51,990 vērtība ir kaut kas. 626 00:31:51,990 --> 00:31:54,578 >> Jason Hirschhorn: Tātad, kā mēs pārbaudām un - lai iet uz vidu saraksta 627 00:31:54,578 --> 00:31:55,610 un pārbaudīt, ja mūsu vērtība ir tur? 628 00:31:55,610 --> 00:31:56,570 Kā mēs to darām C? 629 00:31:56,570 --> 00:31:58,450 Kas ir sintakse, kas? 630 00:31:58,450 --> 00:31:59,235 >> STUDENTU: Vienāds, ir vienāds. 631 00:31:59,235 --> 00:32:00,650 >> Jason Hirschhorn: Vienāds, ir vienāds. 632 00:32:00,650 --> 00:32:03,540 Tāpēc šī pārbaude, iespējams, gatavojas jābūt vienādības, ir vienāds. 633 00:32:03,540 --> 00:32:04,510 Tāpēc mēs zinām, mums ir nepieciešams, ka kaut kur. 634 00:32:04,510 --> 00:32:07,510 Un patiesībā, tikai rakstot to, mēs redzam šīs citas lietas. 635 00:32:07,510 --> 00:32:11,400 Mēs esam nāksies veikt dažas salīdzināšanas operatori tur - 636 00:32:11,400 --> 00:32:12,010 fantastiska. 637 00:32:12,010 --> 00:32:14,980 Tātad, tas tiešām izskatās pēc un liels, mums nav rakstīts 638 00:32:14,980 --> 00:32:16,390 Vārds C kodu vēl. 639 00:32:16,390 --> 00:32:20,610 Bet mēs saņēmām garīgo modeli uz leju ar lekciju un tiem šorti. 640 00:32:20,610 --> 00:32:22,350 >> Mēs rakstījām pseido-kodu kā grupa. 641 00:32:22,350 --> 00:32:27,110 Un jau mums ir 80%, ja ne 90% no tā, kas mums ir jādara. 642 00:32:27,110 --> 00:32:28,550 Tagad mums ir nepieciešams, lai kodu tas, kas atkal ir 643 00:32:28,550 --> 00:32:30,110 ne-trivial problēmu atrisināt. 644 00:32:30,110 --> 00:32:31,890 Bet vismaz mēs esam iestrēdzis uz loģiku. 645 00:32:31,890 --> 00:32:38,040 Vismaz tagad, kad mēs ejam uz darba laiks, Es varu teikt, es zinu, ko man vajag 646 00:32:38,040 --> 00:32:40,160 to darīt, bet jūs varat atgādināt man par sintaksi? 647 00:32:40,160 --> 00:32:42,940 Vai pat, ja darba laiks ir pārpildīti, jums varat Google par sintaksi, nevis 648 00:32:42,940 --> 00:32:45,040 nekā ir iestrēdzis uz loģiku. 649 00:32:45,040 --> 00:32:48,570 >> Un atkal, nevis mēģināt atrisināt loģika un sintakses problēmas visiem 650 00:32:48,570 --> 00:32:51,900 uzreiz, tas bieži vien ir daudz labāk lauzt šos divus cietos problēmas ietecēt 651 00:32:51,900 --> 00:32:58,280 Divi vieglāk vadāmu tiem un darīt pseido-kodu un tad kodu C. 652 00:32:58,280 --> 00:33:00,620 Tātad, pieņemsim redzēt, ko es darīju, lai pseido-kodu pirms laika. 653 00:33:00,620 --> 00:33:04,060 >> Kaut garums saraksta ir lielāks par nulli, paskatās pa vidu 654 00:33:04,060 --> 00:33:05,090 saraksta. 655 00:33:05,090 --> 00:33:09,610 Ja skaitlis konstatēts atgriezās taisnība, cits ja skaitlis lielāks, meklēt pa kreisi. 656 00:33:09,610 --> 00:33:13,200 Cits ja skaits ir mazāks, meklēt labi, atgriezties viltus. 657 00:33:13,200 --> 00:33:18,710 Tā, kas izskatās gandrīz identiski, ja nav gandrīz identisks tam, ko mēs rakstījām. 658 00:33:18,710 --> 00:33:23,030 Faktiski, Tom, ko jūs vispirms teica, laužot vidū sarakstā, un, ja 659 00:33:23,030 --> 00:33:24,880 skaits, kas atrastas uz diviem paziņojumiem ir tiešām tas, ko es darīju. 660 00:33:24,880 --> 00:33:25,507 >> Es kombinēt tos tur. 661 00:33:25,507 --> 00:33:27,100 Es būtu noklausījies Jūs pirmo reizi. 662 00:33:27,100 --> 00:33:30,640 Tāpēc, ka ir pseido-kodu mēs esam. 663 00:33:30,640 --> 00:33:35,060 Ja jūs vēlaties, lai tagad, sorry, dodieties atpakaļ uz mūsu sākotnējo problēmu. 664 00:33:35,060 --> 00:33:37,780 Pieņemsim kods binary.c. 665 00:33:37,780 --> 00:33:40,870 Tāpēc jāīsteno atkārtošanas versiju bināro meklēšanu, izmantojot šādas 666 00:33:40,870 --> 00:33:42,420 funkcija deklarācija. 667 00:33:42,420 --> 00:33:44,550 >> Un jums nav nepieciešams, lai kopētu tas nosaka tikai pagaidām. 668 00:33:44,550 --> 00:33:49,470 Es tiešām gatavojas atvērt up šeit binary.c. 669 00:33:49,470 --> 00:33:52,880 Tāpēc ir funkcija deklarācija vidū ekrāna. 670 00:33:52,880 --> 00:33:57,570 Un jūs redzēsiet, es paņēmu pseido kodu No manā pusēm, bet gandrīz identisks 671 00:33:57,570 --> 00:33:59,740 lai ko mēs rakstījām, un nodot, ka jums. 672 00:33:59,740 --> 00:34:06,010 Tāpēc tagad, pieņemsim piecas minūtes ar kodu šo funkciju. 673 00:34:06,010 --> 00:34:08,199 >> Un atkal, ja jums ir kādi jautājumi, paceliet roku, ļaujiet man zināt, es ņemšu 674 00:34:08,199 --> 00:34:08,710 nāk apkārt. 675 00:34:08,710 --> 00:34:09,800 >> STUDENTU: [nedzirdama]. 676 00:34:09,800 --> 00:34:12,380 >> Jason Hirschhorn: Tāpēc es ņēma bināro meklēšana definīciju at 677 00:34:12,380 --> 00:34:14,429 augšu, uz līnijas 12. 678 00:34:14,429 --> 00:34:16,429 Tas ir tas, ko es saņēmu par manu slaidu. 679 00:34:16,429 --> 00:34:20,940 Un tad tas viss pseido kods, es tikko kopēt un ielīmēt no slaida, 680 00:34:20,940 --> 00:34:22,190 pseido-koda slide. 681 00:34:22,190 --> 00:35:22,830 682 00:35:22,830 --> 00:35:26,786 Es joprojām nav dzirdes [nedzirdama]. 683 00:35:26,786 --> 00:37:13,010 684 00:37:13,010 --> 00:37:15,820 >> Tātad, ja jums ir pabeidzis savu īstenošanu, es gribu, lai pārbaudītu to. 685 00:37:15,820 --> 00:37:19,410 Es e-pastu jums helpers.h failu iepriekš šajā klasē. 686 00:37:19,410 --> 00:37:22,360 Un tā būs pieejama tiešsaistē, kā arī lejupielādei par cilvēkiem, skatoties 687 00:37:22,360 --> 00:37:24,750 šajā sadaļā laiku atlikta. 688 00:37:24,750 --> 00:37:29,350 Un es tikai izmantot generic sadalījumu kodu no pset3. 689 00:37:29,350 --> 00:37:34,590 Tāpēc es ņēma find.C, izmantot savu helpers.h failu nevis helpers.h failu 690 00:37:34,590 --> 00:37:36,280 , kas ir dota sadales kodu. 691 00:37:36,280 --> 00:37:39,310 >> Un man nācās veikt vēl vienu maiņu find.C nevis zvanot vienkārši 692 00:37:39,310 --> 00:37:42,770 meklēšanu, zvaniet binary_search. 693 00:37:42,770 --> 00:37:49,080 Tātad, ja jūs vēlaties, lai pārbaudītu savu kodu, zinu, ka tas ir, kā to izdarīt. 694 00:37:49,080 --> 00:37:52,530 Patiesībā, kad mēs būsim darbojas šo kodu tieši tagad, es tikko kopiju 695 00:37:52,530 --> 00:37:59,820 mans pset3 katalogs, atkal, aizstāja talcinieki failus un pēc tam, ka iespēju 696 00:37:59,820 --> 00:38:04,695 mainīt find.C zvanīt binary_search nevis vienkārši meklēt. 697 00:38:04,695 --> 00:40:08,620 698 00:40:08,620 --> 00:40:09,120 >> Jason Hirschhorn: Jā. 699 00:40:09,120 --> 00:40:11,258 Jums ir jautājums? 700 00:40:11,258 --> 00:40:12,150 >> STUDENTU: Nevermind. 701 00:40:12,150 --> 00:40:12,600 >> Jason Hirschhorn: Neraizējieties. 702 00:40:12,600 --> 00:40:13,370 Nu, pieņemsim sāktu. 703 00:40:13,370 --> 00:40:15,090 Mēs kodētu tas kā grupa. 704 00:40:15,090 --> 00:40:16,050 Viena cita piezīme. 705 00:40:16,050 --> 00:40:20,600 Atkal, tas ir, var viegli tikt samainīti in Problēma noteikti trīs. 706 00:40:20,600 --> 00:40:25,530 Man ir mana helpers.h fails, kas drīzāk nekā helpers.h mēs dota, 707 00:40:25,530 --> 00:40:28,560 paziņo, bināro meklēšanu, burbulis kārtot un atlase kārtot. 708 00:40:28,560 --> 00:40:37,400 Un find.c jūs pamanīsiet uz līnijas, kas tas ir, līnija 68, ko mēs saucam par bināro 709 00:40:37,400 --> 00:40:39,160 meklēt nevis meklēšanu. 710 00:40:39,160 --> 00:40:42,930 Tātad vēlreiz, kods, kas ir pieejama tiešsaistē vai kods, kas jūs esat 711 00:40:42,930 --> 00:40:46,590 radot tagad var viegli samainīti in p iestatīts 3, lai pārbaudītu to. 712 00:40:46,590 --> 00:40:50,620 >> Bet vispirms, pieņemsim kodu bināro meklēšanu. 713 00:40:50,620 --> 00:40:53,690 Mūsu funkcija deklarāciju, mēs atgriezties bool. 714 00:40:53,690 --> 00:40:55,810 Mēs veicam vesels skaitlis sauc vērtību. 715 00:40:55,810 --> 00:40:59,285 Mēs ņemam masīvs integers sauc vērtībām, un mēs n ir 716 00:40:59,285 --> 00:41:00,850 izmērs masīva. 717 00:41:00,850 --> 00:41:05,640 On line 10, tepat, man ir asas ietver stdbool.h. 718 00:41:05,640 --> 00:41:07,360 Vai kāds zina, kāpēc tas ir tur? 719 00:41:07,360 --> 00:41:12,180 720 00:41:12,180 --> 00:41:16,600 Tātad, ko tas kods līnijas darīt? 721 00:41:16,600 --> 00:41:19,880 >> STUDENTU: Tas ļauj izmantot bool atgriešanās veidu. 722 00:41:19,880 --> 00:41:20,350 >> Jason Hirschhorn: Tieši tā. 723 00:41:20,350 --> 00:41:22,300 >> STUDENTU: Vai tā ir bibliotēka, kas ļauj izmantot bool atgriešanās veidu. 724 00:41:22,300 --> 00:41:27,590 >> Jason Hirschhorn: Tik straujš iekļaut stdbool.h line dod man kādu 725 00:41:27,590 --> 00:41:31,340 definīcijas un deklarācijas lietām ka man ir atļauts izmantot 726 00:41:31,340 --> 00:41:32,400 Šī bibliotēka. 727 00:41:32,400 --> 00:41:36,570 Tātad tiem, saka, ka tur ir Tas, ko sauc par bool, un tas var būt 728 00:41:36,570 --> 00:41:37,750 patiesa vai nepatiesa. 729 00:41:37,750 --> 00:41:39,010 Tātad tas, ko tas līnija dara. 730 00:41:39,010 --> 00:41:41,680 Un, ja man nav šo līniju, es būtu nokļūt nepatikšanās, lai rakstot šo 731 00:41:41,680 --> 00:41:43,520 vārdu tieši šeit, bool, tieši tur. 732 00:41:43,520 --> 00:41:44,140 Tieši labi. 733 00:41:44,140 --> 00:41:46,430 Tāpēc man ir nepieciešams, ka ar šo kodu. 734 00:41:46,430 --> 00:41:47,690 OK. 735 00:41:47,690 --> 00:41:51,860 Tātad šis atkal ir iteratīvs versija, nevis rekursīvs vienu. 736 00:41:51,860 --> 00:41:53,820 Tātad, ļaujiet mums sākt. 737 00:41:53,820 --> 00:41:56,200 >> Sāksim ar to pirmo reizi līnija pseido kodu. 738 00:41:56,200 --> 00:41:58,770 Un, cerams, mēs - vai ne, cerams. 739 00:41:58,770 --> 00:42:00,530 Mēs ejam, lai iet pa istabu. 740 00:42:00,530 --> 00:42:05,110 Mēs iesim pozīcijai, un es jums palīdzēšu jūs izrēķināt līniju, kas mums ir nepieciešams 741 00:42:05,110 --> 00:42:06,310 rakstīt pirmās. 742 00:42:06,310 --> 00:42:10,550 Tāpēc, kamēr garums saraksta ir lielāka par nulli. 743 00:42:10,550 --> 00:42:12,680 Sāksim priekšā. 744 00:42:12,680 --> 00:42:15,190 Kas line man vajadzētu rakstīt šeit, kodu? 745 00:42:15,190 --> 00:42:19,470 >> STUDENTU: Kaut iekavas n ir lielāks par 0. 746 00:42:19,470 --> 00:42:21,900 >> Jason Hirschhorn: Kamēr n ir liels par 0. 747 00:42:21,900 --> 00:42:26,550 Tātad, n ir lielums saraksta, un mēs pārbaudīt, ja - 748 00:42:26,550 --> 00:42:26,800 >> [interposing BALSIS] 749 00:42:26,800 --> 00:42:27,660 >> Jason Hirschhorn: - žēl? 750 00:42:27,660 --> 00:42:29,360 >> STUDENTU: Kā mēs zinām, ka n ir lielums saraksta? 751 00:42:29,360 --> 00:42:29,690 >> Jason Hirschhorn: Sorry. 752 00:42:29,690 --> 00:42:34,690 Vienu PSET specifikācijā meklēšanu un kārtot funkcijas jums ir nepieciešams, lai rakstītu, 753 00:42:34,690 --> 00:42:36,230 n ir lielums sarakstā. 754 00:42:36,230 --> 00:42:37,710 Es aizmirsu paskaidrot, ka šeit. 755 00:42:37,710 --> 00:42:41,310 Bet jā. n ir lielums sarakstu, šajā gadījumā. 756 00:42:41,310 --> 00:42:44,740 Tātad, bet n ir lielāks par 0. 757 00:42:44,740 --> 00:42:45,580 OK. 758 00:42:45,580 --> 00:42:50,090 Tas var izrādīties nedaudz problemātiska tomēr, ja lietas iet tālāk. 759 00:42:50,090 --> 00:42:54,510 Tāpēc, ka mēs turpināsim zināt lielums saraksta visā tas 760 00:42:54,510 --> 00:43:06,640 funkcija, bet teikt, ka mēs sāktu ar masīvu 5 veselus skaitļus. 761 00:43:06,640 --> 00:43:08,950 Un mēs ejam cauri, un mēs esam Tagad samazinājies to uz leju, lai 762 00:43:08,950 --> 00:43:10,310 masīvs 2 veseli skaitļi. 763 00:43:10,310 --> 00:43:12,160 Kas 2 veseli skaitļi ir tas, ka? 764 00:43:12,160 --> 00:43:15,895 Izmērs ir 2 tagad, ka mēs gribam, lai apskatīt, bet kuriem 2 ir tas, ka? 765 00:43:15,895 --> 00:43:17,720 Vai tas ir jēga, uz šo jautājumu? 766 00:43:17,720 --> 00:43:18,020 >> OK. 767 00:43:18,020 --> 00:43:19,120 Es lūgt to vēlreiz. 768 00:43:19,120 --> 00:43:26,640 Lai mēs sāktu ar šo klāstu 5 veseli skaitļi, un n ir vienāds ar 5, vai ne? 769 00:43:26,640 --> 00:43:28,050 Mēs palaist cauri šeit. 770 00:43:28,050 --> 00:43:31,560 mēs, iespējams, mainīt izmēru, tiesības, kā lietas iet tālāk. 771 00:43:31,560 --> 00:43:32,700 Kas ir tas, ko mēs sakām, mēs vēlamies darīt. 772 00:43:32,700 --> 00:43:34,150 Mēs nevēlamies, lai meklētu pilna lieta vēlreiz. 773 00:43:34,150 --> 00:43:35,480 Tā teikt, mēs mainīt to uz 2. 774 00:43:35,480 --> 00:43:36,970 Mēs ņemam pusi sarakstu, kas ir dīvaini. 775 00:43:36,970 --> 00:43:38,800 Tik vienkārši paņemt 2. 776 00:43:38,800 --> 00:43:40,590 Tāpēc tagad n ir vienāds ar 2. 777 00:43:40,590 --> 00:43:42,780 Es atvainojos par nabadzīgajiem Dry Erase marķieri. 778 00:43:42,780 --> 00:43:43,080 Tiesības? 779 00:43:43,080 --> 00:43:45,670 Un mēs esam meklēt pa sarakstu atkal ar sarakstu lielumu 2. 780 00:43:45,670 --> 00:43:48,580 Nu, mūsu masīvs joprojām izmēru 5. 781 00:43:48,580 --> 00:43:51,920 Mēs sakām, mēs tikai vēlamies, lai meklēt 2 vietas tajā. 782 00:43:51,920 --> 00:43:53,590 Tātad, kas 2 plankumi ir tie? 783 00:43:53,590 --> 00:43:57,640 784 00:43:57,640 --> 00:43:58,815 >> Vai tas ir jēga? 785 00:43:58,815 --> 00:44:00,290 Vai tie ir palikuši 2 plankumi? 786 00:44:00,290 --> 00:44:01,940 Vai tie ir pareizie 2 plankumi? 787 00:44:01,940 --> 00:44:03,540 Vai tie ir vidējie 2 plankumi? 788 00:44:03,540 --> 00:44:06,350 Mēs esam sadalīti šo problēmu uz leju, bet mēs tiešām nezinu, kas ir daļa no 789 00:44:06,350 --> 00:44:11,600 problēma, mēs joprojām meklē, tikai, kam šie 2 mainīgos. 790 00:44:11,600 --> 00:44:16,450 Tāpēc mums ir nepieciešams nedaudz vairāk laika, bet n ir lielāks par 0. 791 00:44:16,450 --> 00:44:21,410 Mums ir jāzina, kur tas n ir mūsu faktisko masīvs. 792 00:44:21,410 --> 00:44:26,660 >> Tātad, vai kāds ir mainīt uz šo līniju? 793 00:44:26,660 --> 00:44:27,970 Lielākā daļa no šīs pozīcijas ir pilnīgi pareizi. 794 00:44:27,970 --> 00:44:29,170 Vai ir vēl papildus? 795 00:44:29,170 --> 00:44:32,510 Vai mēs varam mijmaiņas kaut ko par n līdz padara šo līniju mazliet labāk? 796 00:44:32,510 --> 00:44:32,865 Mm-hm? 797 00:44:32,865 --> 00:44:38,040 >> STUDENTU: Vai jūs sāktu mainīgo piemēram, garums līdz n, kas būs pēc tam var izmantot 798 00:44:38,040 --> 00:44:39,600 vēlāk funkcija? 799 00:44:39,600 --> 00:44:42,060 >> Jason Hirschhorn: So inicializētu dažāda garuma, lai n, 800 00:44:42,060 --> 00:44:42,900 un mēs izmantojam, ka vēlāk? 801 00:44:42,900 --> 00:44:47,070 Bet tad mēs vienkārši atjaunināt garumu un mēs vēl uzskriet šo problēmu, ja mēs 802 00:44:47,070 --> 00:44:51,180 samazināt garumu mūsu problēmas, bet mēs nekad zināt, kur, patiesībā, 803 00:44:51,180 --> 00:44:52,510 ka garums kartes uz. 804 00:44:52,510 --> 00:44:54,790 >> STUDENTU: Vai nav, ka nenotiks vēlāk, kad jūs sakāt, meklēt pa kreisi, 805 00:44:54,790 --> 00:44:55,746 meklēt labi? 806 00:44:55,746 --> 00:44:57,640 Jūs gatavojas doties uz atšķirīgu platību jūsu - 807 00:44:57,640 --> 00:44:59,110 >> Jason Hirschhorn: Mēs ejam, lai dotos uz platību, bet kā mēs zinām, 808 00:44:59,110 --> 00:45:01,150 kas iet uz? 809 00:45:01,150 --> 00:45:03,800 Ja mēs tikai ir masīvs un tas n, kā mēs zinām, kur 810 00:45:03,800 --> 00:45:05,050 iet uz masīvā. 811 00:45:05,050 --> 00:45:05,900 Uz muguras, jā? 812 00:45:05,900 --> 00:45:07,507 >> STUDENTU: Vai jums ir, piemēram, zemāka robežu un augšējo robežu mainīgu vai 813 00:45:07,507 --> 00:45:08,586 kaut kā tā? 814 00:45:08,586 --> 00:45:09,060 >> Jason Hirschhorn: OK. 815 00:45:09,060 --> 00:45:10,780 Tāpēc šī ir vēl viena ideja. 816 00:45:10,780 --> 00:45:13,490 Nevis tikai sekotu izmērs, mēs sekot zemāka un 817 00:45:13,490 --> 00:45:14,770 augšējā robeža mainīgs. 818 00:45:14,770 --> 00:45:17,840 Tātad, kā mēs aprēķinātu lielumu no apakšējo robežu un augšējo robežu? 819 00:45:17,840 --> 00:45:18,520 >> [interposing BALSIS] 820 00:45:18,520 --> 00:45:19,710 >> Jason Hirschhorn: atņemšana. 821 00:45:19,710 --> 00:45:23,650 Un arī sekotu zemāks saistoša un augšējā robeža ļaut mums zināt, 822 00:45:23,650 --> 00:45:26,215 mēs meklē šīs divas? 823 00:45:26,215 --> 00:45:28,220 Vai mēs meklē šos divus nekā šeit? 824 00:45:28,220 --> 00:45:29,540 Vai mēs meklējot vidū divas? 825 00:45:29,540 --> 00:45:32,810 Droši vien nav vidū divas, jo Tas, patiesībā, ir bināro meklēšanu. 826 00:45:32,810 --> 00:45:37,320 Bet tagad mēs varētu saņemt izmēru, bet arī robežas masīva. 827 00:45:37,320 --> 00:45:40,020 Būtībā, ja mums ir mūsu gigants tālruņa grāmatu, mēs izvilkt to pusi. 828 00:45:40,020 --> 00:45:42,990 Mēs tagad zinām, ja tas ir mazāks tālruņu grāmata ir. 829 00:45:42,990 --> 00:45:45,260 Bet mēs faktiski lielisks tālruņa grāmatu pusi. 830 00:45:45,260 --> 00:45:48,570 Mums joprojām ir nepieciešams zināt, kur jaunas robežas mūsu problēma ir. 831 00:45:48,570 --> 00:45:51,645 Vai kāds ir kādi jautājumi par to? 832 00:45:51,645 --> 00:45:52,440 Jā? 833 00:45:52,440 --> 00:45:56,020 >> STUDENTU: Vai tas darbojas, izveidojot mainīgs, es, ka jūs tad tikai pāriet 834 00:45:56,020 --> 00:46:00,770 pozīcija i attiecībā pret tās pašreizējo atrašanās vietu, un garums, n? 835 00:46:00,770 --> 00:46:01,710 >> Jason Hirschhorn: Un kas ir man? 836 00:46:01,710 --> 00:46:04,110 >> STUDENTU: Tāpat kā es to, piemēram, sava veida - 837 00:46:04,110 --> 00:46:08,040 Tāpat kā jūs sāktu man būt vidējā stāvoklī masīva. 838 00:46:08,040 --> 00:46:12,540 Un pēc tam, ja vērtība ir stāvoklī i vidū masīva konstatēts 839 00:46:12,540 --> 00:46:17,870 būt mazāka par vērtību, jums ir nepieciešams, i tagad kļūst garums masīva, plus 840 00:46:17,870 --> 00:46:19,215 I vērtība dalīta ar 2. 841 00:46:19,215 --> 00:46:20,270 , Piemēram, redzat, jūs maiņās i - 842 00:46:20,270 --> 00:46:20,770 >> Jason Hirschhorn: Right. 843 00:46:20,770 --> 00:46:21,165 >> Students: - līdz - 844 00:46:21,165 --> 00:46:24,010 >> Jason Hirschhorn: Tāpēc es esmu gandrīz pozitīvi, ka strādās. 845 00:46:24,010 --> 00:46:26,800 Bet jautājums ir, jums ir nepieciešams divi gabalus informācijas šeit. 846 00:46:26,800 --> 00:46:30,050 Jūs varat darīt to ar sākumā un beigās, vai jūs varat darīt to ar izmēru, un pēc tam 847 00:46:30,050 --> 00:46:31,060 daži marķieris. 848 00:46:31,060 --> 00:46:32,630 Bet jums ir nepieciešams divi gabali informācijas šeit. 849 00:46:32,630 --> 00:46:34,160 Jūs nevarat iztikt tikai ar vienu. 850 00:46:34,160 --> 00:46:35,830 Vai tas ir jēga? 851 00:46:35,830 --> 00:46:39,560 >> Tāpēc mēs esam gatavojas iet cauri, un mēs gatavojamies darīt [dzirdams] 852 00:46:39,560 --> 00:46:41,330 un izveidot dažas marķierus. 853 00:46:41,330 --> 00:46:42,690 Tātad Ko tu rakstīt savu kodu? 854 00:46:42,690 --> 00:46:46,190 >> STUDENTU: Es tikai teicu int saistošs viens ir vienāds ar 0. 855 00:46:46,190 --> 00:46:47,790 >> Jason Hirschhorn: Sauksim ka int, sākot. 856 00:46:47,790 --> 00:46:49,140 >> STUDENTU: OK. 857 00:46:49,140 --> 00:46:50,590 >> Jason Hirschhorn: Tas padara vairāk sajūtu par mani. 858 00:46:50,590 --> 00:46:51,670 Un? 859 00:46:51,670 --> 00:46:54,340 >> STUDENTU: Es teicu, es domāju, int beidzas. 860 00:46:54,340 --> 00:46:55,870 >> Jason Hirschhorn: int beidzas. 861 00:46:55,870 --> 00:46:57,640 >> STUDENTU: Es domāju, n mīnus 1, vai kaut kas tamlīdzīgs. 862 00:46:57,640 --> 00:46:59,100 Tāpat, pēdējais elements. 863 00:46:59,100 --> 00:47:02,310 >> Jason Hirschhorn: Tātad jūs rakstījāt, int sākuma ir 0, semikolu, un int 864 00:47:02,310 --> 00:47:04,320 beidzas vienāds n mīnus 1, semikolu. 865 00:47:04,320 --> 00:47:06,850 Tātad būtībā, ko mēs darām Šeit, 0 pirmo pozīciju. 866 00:47:06,850 --> 00:47:09,570 Un kā mēs zinām bloki, tie nav iet līdz n, viņi iet līdz n mīnus 1. 867 00:47:09,570 --> 00:47:11,110 Tāpēc mums ir daži robežas mūsu masīvs. 868 00:47:11,110 --> 00:47:15,730 Un šīs sākotnējās robežas gadās būt sākotnējās robežas mūsu problēma. 869 00:47:15,730 --> 00:47:16,640 OK. 870 00:47:16,640 --> 00:47:19,200 Tā, ka skan labi. 871 00:47:19,200 --> 00:47:22,380 Tad, ja mēs ejam atpakaļ uz šo līniju, bet garums saraksts ir lielāks par 0, 872 00:47:22,380 --> 00:47:24,752 kāda tā vietā, n, būtu mēs ieliekam šeit? 873 00:47:24,752 --> 00:47:28,820 >> STUDENTU: Rakstiet beidzas mīnus sākums. 874 00:47:28,820 --> 00:47:34,780 >> Jason Hirschhorn: Kamēr beidzas mīnus sākas ir lielāks par 0? 875 00:47:34,780 --> 00:47:35,480 OK. 876 00:47:35,480 --> 00:47:37,730 Un mēs varētu, ja mēs vēlējāmies, lai padarīt šo mazliet nicer, ko 877 00:47:37,730 --> 00:47:38,980 vēl mēs varētu darīt? 878 00:47:38,980 --> 00:47:41,650 879 00:47:41,650 --> 00:47:43,412 Ja mēs vēlējāmies, lai attīrītu Šis kods up mazliet? 880 00:47:43,412 --> 00:47:46,716 881 00:47:46,716 --> 00:47:48,180 Kā mēs varam atbrīvoties no 0? 882 00:47:48,180 --> 00:47:51,560 883 00:47:51,560 --> 00:47:52,690 Tas ir tikai stila jautājums. 884 00:47:52,690 --> 00:47:53,690 Tas ir pareizi tagad. 885 00:47:53,690 --> 00:47:54,870 >> STUDENTU: Ending nav vienāds sākums? 886 00:47:54,870 --> 00:47:55,740 >> Jason Hirschhorn: mēs varam darīt? 887 00:47:55,740 --> 00:47:56,730 >> [interposing BALSIS] 888 00:47:56,730 --> 00:47:57,330 >> STUDENTU: Ending ir lielāks? 889 00:47:57,330 --> 00:47:57,720 >> Jason Hirschhorn: Jā. 890 00:47:57,720 --> 00:48:01,110 Mēs varam tikai darīt, kamēr beidzas ir lielāks par sākuma. 891 00:48:01,110 --> 00:48:03,580 Tiesības. 892 00:48:03,580 --> 00:48:06,240 Mēs pievienotās sāk uz otru pusi no tā, kā mēs tikām vaļā no 0. 893 00:48:06,240 --> 00:48:08,000 Tāpēc tas tikai izskatās mazliet tīrāks. 894 00:48:08,000 --> 00:48:08,990 OK. 895 00:48:08,990 --> 00:48:11,460 Tātad, kaut garums saraksts ir 0, tapa ka, lai gan beidzot ir lielāks 896 00:48:11,460 --> 00:48:12,240 nekā sākums. 897 00:48:12,240 --> 00:48:19,840 Mēs gatavojamies īstenot mūsu nepieciešama cirtaini bikšturi, tad pirmā lieta, 898 00:48:19,840 --> 00:48:22,090 mēs vēlamies darīt, ir apskatīt tos nedaudz sarakstā. 899 00:48:22,090 --> 00:48:22,510 Jums? 900 00:48:22,510 --> 00:48:23,320 Vai jūs varētu man - 901 00:48:23,320 --> 00:48:26,460 >> Students: Ja iekavas vērtība kvadrātiekavas - 902 00:48:26,460 --> 00:48:30,450 >> Jason Hirschhorn: Ja apaļās vērtība kvadrātiekavas. 903 00:48:30,450 --> 00:48:33,210 >> STUDENTU: Ending dalīts ar 2. 904 00:48:33,210 --> 00:48:33,952 >> Jason Hirschhorn: Ending? 905 00:48:33,952 --> 00:48:35,280 >> STUDENTU: Es redzu problēmas ar jūsu - 906 00:48:35,280 --> 00:48:35,750 >> Jason Hirschhorn: OK. 907 00:48:35,750 --> 00:48:39,150 Nu, paskaties vidū. 908 00:48:39,150 --> 00:48:41,226 Kā mēs zinām, kas pa vidu ir? 909 00:48:41,226 --> 00:48:42,450 Jā. 910 00:48:42,450 --> 00:48:43,070 Tāpēc ļaujiet man izdzēst šo kodu. 911 00:48:43,070 --> 00:48:46,360 Kā mēs zinām, kas pa vidu ir? 912 00:48:46,360 --> 00:48:48,003 Kaut ko, ja jums ir sākums un beigās, kā jūs atrast 913 00:48:48,003 --> 00:48:48,876 vidū? 914 00:48:48,876 --> 00:48:49,590 >> STUDENTU: Tu vidēji. 915 00:48:49,590 --> 00:48:51,820 >> STUDENTU: Jūs pievienot tos kopā un pēc tam - 916 00:48:51,820 --> 00:48:53,150 >> Jason Hirschhorn: Pievienot tos kopā un pēc tam? 917 00:48:53,150 --> 00:48:54,090 >> STUDENTU: Un jūs vidēji. 918 00:48:54,090 --> 00:48:55,050 Sadalīt to ar 2. 919 00:48:55,050 --> 00:48:56,500 >> Jason Hirschhorn: Pievienot tos kopā un izdalot ar 2. 920 00:48:56,500 --> 00:48:59,400 Tāpēc int vidū ir vienāds? 921 00:48:59,400 --> 00:49:01,120 Tom, jūs varat dot to man? 922 00:49:01,120 --> 00:49:03,550 >> STUDENTU: Sākums plus beidzas - 923 00:49:03,550 --> 00:49:04,950 >> Jason Hirschhorn: sākums plus beidzas. 924 00:49:04,950 --> 00:49:06,880 >> STUDENTU: All, bracket, dalīts ar 2. 925 00:49:06,880 --> 00:49:10,940 >> Jason Hirschhorn: All, iekavās, dalīts ar 2. 926 00:49:10,940 --> 00:49:16,300 Lai dod man vidū par kaut ko, pareizi? 927 00:49:16,300 --> 00:49:18,980 >> STUDENTU: Jums arī vajadzēs noapaļot to uz augšu. 928 00:49:18,980 --> 00:49:19,990 >> Jason Hirschhorn: Ko jūs domāju, man ir nepieciešams noapaļot to uz augšu? 929 00:49:19,990 --> 00:49:20,400 >> [interposing BALSIS] 930 00:49:20,400 --> 00:49:24,520 >> STUDENTU: Jo, ja tas ir dīvaini numurs, tad tas ir tāpat kā - 931 00:49:24,520 --> 00:49:25,440 >> Jason Hirschhorn: Nu, OK. 932 00:49:25,440 --> 00:49:26,360 Lai es varētu noapaļot to uz augšu. 933 00:49:26,360 --> 00:49:33,350 Bet, ja tas ir nepāra skaitlis, 5, es varu ņemot 1 prom no vidus. 934 00:49:33,350 --> 00:49:35,665 Vai ja tas ir pat numuru, bet, kas ir labāks gadījums. 935 00:49:35,665 --> 00:49:39,600 Ja tas ir 4, mums ir tikai 4, es varu pieņemt Pirmais "vidējā", citēju, likt pēdiņas beigās vai 936 00:49:39,600 --> 00:49:41,760 otrais "vidējā" vienu. 937 00:49:41,760 --> 00:49:46,390 Nu varētu strādāt bināro meklēšanu, tāpēc man nav tiešām ir nepieciešams, lai ap to. 938 00:49:46,390 --> 00:49:48,640 Bet ir viena cita lieta, ko es ir nepieciešams, lai apskatīt šo līniju. 939 00:49:48,640 --> 00:49:50,530 Mēs, iespējams, nevar saprast tā vēl, bet mēs atgriezīsimies pie tā. 940 00:49:50,530 --> 00:49:53,200 Tāpēc, ka šī pozīcija faktiski joprojām nepieciešama viena cita lieta. 941 00:49:53,200 --> 00:49:55,990 >> Bet līdz šim, mēs esam rakstiski četras rindiņas kodu. 942 00:49:55,990 --> 00:49:58,120 Mēs esam ieguvuši savu sākumu un beigu marķieri. 943 00:49:58,120 --> 00:50:01,320 Mums ir mūsu, kamēr cilpa, kas kartes par tieši mūsu pseudocode. 944 00:50:01,320 --> 00:50:05,790 Mēs esam apskatot vidū, kas Maps tieši uz mūsu pseudocode. 945 00:50:05,790 --> 00:50:09,070 Es teiktu, ka tas iet uz vidu no saraksta, šī līnija kods. 946 00:50:09,070 --> 00:50:11,560 Un tad, kad mēs ejam uz vidu sarakstā, nākamā lieta, kas mums jādara, 947 00:50:11,560 --> 00:50:14,880 ir pārbaudīt, ja mūsu vērtība ir tur pseudocode mēs rakstījām iepriekš. 948 00:50:14,880 --> 00:50:17,100 >> Tātad, kā mēs pārbaudām, vai mūsu vērtības ir vidū saraksta? 949 00:50:17,100 --> 00:50:17,300 Jums. 950 00:50:17,300 --> 00:50:18,511 Kāpēc nav jums darīt? 951 00:50:18,511 --> 00:50:23,070 >> Students: Ja mūsu vērtība s ir vidū ir vienāds 952 00:50:23,070 --> 00:50:24,592 ko mēs noteikti - 953 00:50:24,592 --> 00:50:26,190 Es domāju vienāds vienāds ar - 954 00:50:26,190 --> 00:50:26,690 >> Jason Hirschhorn: It - 955 00:50:26,690 --> 00:50:27,940 OK. 956 00:50:27,940 --> 00:50:30,080 957 00:50:30,080 --> 00:50:32,170 >> STUDENTU: Es neesmu pārliecināts, ko mainīgais mēs meklējam 958 00:50:32,170 --> 00:50:32,850 lai gan, ir tāpēc, ka - 959 00:50:32,850 --> 00:50:33,330 >> [interposing BALSIS] 960 00:50:33,330 --> 00:50:34,520 >> STUDENTU: [nedzirdama]. 961 00:50:34,520 --> 00:50:35,060 >> Jason Hirschhorn: Tieši tā. 962 00:50:35,060 --> 00:50:37,260 Vienu funkciju deklarācijas mēs meklējam vērtību. 963 00:50:37,260 --> 00:50:39,760 Tāpēc mēs esam meklējot vērtības masīva vērtību. 964 00:50:39,760 --> 00:50:41,080 Tātad jūs esat tieši labi. 965 00:50:41,080 --> 00:50:45,040 Jums būs darīt, ja atvērtā paren vērtība kronšteins vidējā slēgts kronšteinu vienāds 966 00:50:45,040 --> 00:50:49,930 ir vienāds ar vērtību, un iekšā tur kas mums jādara? 967 00:50:49,930 --> 00:50:51,230 Ja mūsu vērtība ir tur, ko mums ir jādara? 968 00:50:51,230 --> 00:50:51,420 >> [interposing BALSIS] 969 00:50:51,420 --> 00:50:52,160 >> STUDENTU: Atgriešanās nulle. 970 00:50:52,160 --> 00:50:53,070 >> Jason Hirschhorn: Atgriešanās taisnība. 971 00:50:53,070 --> 00:50:54,790 >> STUDENTU: Atgriešanās taisnība. 972 00:50:54,790 --> 00:50:57,856 >> Jason Hirschhorn: Michael, ko tas līnija darīt? 973 00:50:57,856 --> 00:51:01,105 >> STUDENTU: [dzirdams] programma darbojas virziena, un tas ir beigusies, 974 00:51:01,105 --> 00:51:01,920 Jūs esat tas, ko jums ir jādara? 975 00:51:01,920 --> 00:51:03,030 >> Jason Hirschhorn: programmu, vai kas? 976 00:51:03,030 --> 00:51:03,700 Šādā gadījumā? 977 00:51:03,700 --> 00:51:04,210 >> STUDENTU: funkcija. 978 00:51:04,210 --> 00:51:05,170 >> Jason Hirschhorn: funkcija. 979 00:51:05,170 --> 00:51:08,420 Un tā, lai atgrieztos kāds sauc tas un piešķir tai vērtību, taisnība. 980 00:51:08,420 --> 00:51:09,890 Tieši labi. 981 00:51:09,890 --> 00:51:10,170 Galvenais. 982 00:51:10,170 --> 00:51:12,035 Kas ir atgriešanās tips un galvenais, Michael? 983 00:51:12,035 --> 00:51:16,480 984 00:51:16,480 --> 00:51:17,150 >> STUDENTU: int, vesels skaitlis? 985 00:51:17,150 --> 00:51:18,080 >> Jason Hirschhorn: int, tieši tā. 986 00:51:18,080 --> 00:51:18,680 Skaitlis. 987 00:51:18,680 --> 00:51:20,980 Tas bija tikai jautājums, lai pārliecinātos, ka jums puiši ir uz augšu no tā. 988 00:51:20,980 --> 00:51:24,250 Ko tas parasti atgriežas, ja viss strādā labi? 989 00:51:24,250 --> 00:51:24,520 >> STUDENTU: Zero. 990 00:51:24,520 --> 00:51:24,820 >> Jason Hirschhorn: Zero. 991 00:51:24,820 --> 00:51:25,430 Tieši labi. 992 00:51:25,430 --> 00:51:28,790 >> Students: Ja tas tikai atgriež patiess, nav informācijas tiek sniegta 993 00:51:28,790 --> 00:51:30,675 par to - 994 00:51:30,675 --> 00:51:34,040 Ak, tas ir tikai saprotams, ka tas vērtība ir iekšā masīvā. 995 00:51:34,040 --> 00:51:35,350 >> Jason Hirschhorn: Tieši tā. 996 00:51:35,350 --> 00:51:38,080 Šī programma nav sniegt informāciju par to, kur tieši vērtība. 997 00:51:38,080 --> 00:51:41,850 Tas ir tikai sakot, jā, mēs noskaidrojām tas vai nē, mēs neatradām to. 998 00:51:41,850 --> 00:51:42,990 Tātad, ja skaitlis atrasts, atgriezties true. 999 00:51:42,990 --> 00:51:45,500 Nu, patiesībā mēs tikko izdarījām, kas patiešām ātri ar šo vienu rindiņu kodu. 1000 00:51:45,500 --> 00:51:47,500 Tāpēc es pārvietot šo līniju pseudocode. 1001 00:51:47,500 --> 00:51:50,045 >> STUDENTU: Vai nav mums vajag lai mainītu masīvu? 1002 00:51:50,045 --> 00:51:52,830 Tai jābūt vērtībām, nevis vērtība, vai ne? 1003 00:51:52,830 --> 00:51:53,430 >> Jason Hirschhorn: Sorry. 1004 00:51:53,430 --> 00:51:54,010 Paldies. 1005 00:51:54,010 --> 00:51:54,800 >> STUDENTU: Jā. 1006 00:51:54,800 --> 00:51:55,850 >> Jason Hirschhorn: Šī līnija jābūt vērtībām. 1007 00:51:55,850 --> 00:51:57,150 Tieši labi. 1008 00:51:57,150 --> 00:51:57,920 OK. 1009 00:51:57,920 --> 00:51:59,170 Tātad mēs esam paskatījās vidū sarakstā. 1010 00:51:59,170 --> 00:52:00,790 Ja skaitlis konstatēts atgriešanās taisnība. 1011 00:52:00,790 --> 00:52:04,470 Turpinot ar mūsu pseudocode, ja vidū ir lielāks, meklēt pa kreisi. 1012 00:52:04,470 --> 00:52:09,640 Tāpēc man bija šeit, ja numurs augstāka, meklēt pa kreisi. 1013 00:52:09,640 --> 00:52:12,700 1014 00:52:12,700 --> 00:52:14,462 Konstantīns, jūs varat dot man šo rindiņu kodu? 1015 00:52:14,462 --> 00:52:17,240 1016 00:52:17,240 --> 00:52:23,520 >> Students: Ja vērtība vidu - 1017 00:52:23,520 --> 00:52:24,890 >> Jason Hirschhorn: Tātad, ja vērtība - 1018 00:52:24,890 --> 00:52:28,890 ja atklāta paren vērtības kronšteinu vidējā close bracket - 1019 00:52:28,890 --> 00:52:31,500 >> Students: ir mazāka nekā vērtība? 1020 00:52:31,500 --> 00:52:32,760 >> Jason Hirschhorn: Vai mazāk nekā. 1021 00:52:32,760 --> 00:52:33,800 >> STUDENTU: Mazāk nekā vērtība. 1022 00:52:33,800 --> 00:52:34,060 >> Jason Hirschhorn: vērtība. 1023 00:52:34,060 --> 00:52:35,310 Nu, patiesībā, jūs vēlaties, lai pārbaudiet, vai numurs - 1024 00:52:35,310 --> 00:52:38,310 1025 00:52:38,310 --> 00:52:38,490 Piedodiet. 1026 00:52:38,490 --> 00:52:39,140 Tas ir nedaudz mulsinoši. 1027 00:52:39,140 --> 00:52:43,920 Bet cits, ja numurs vidū saraksts ir lielāks. 1028 00:52:43,920 --> 00:52:45,170 >> STUDENTU: Ak, OK. 1029 00:52:45,170 --> 00:52:49,800 1030 00:52:49,800 --> 00:52:50,410 >> Jason Hirschhorn: Es mainīt. 1031 00:52:50,410 --> 00:52:55,060 Cits ja vidū ir lielāks, mēs vēlaties meklēt pa kreisi, OK? 1032 00:52:55,060 --> 00:52:57,310 Un ko mēs darām iekšā to, ja nosacījums? 1033 00:52:57,310 --> 00:53:03,660 1034 00:53:03,660 --> 00:53:07,510 >> STUDENTU: Vai es varu veikt nelielas izmaiņas nosacījums, mainīt to uz cits, ja? 1035 00:53:07,510 --> 00:53:08,380 >> Jason Hirschhorn: cits, ja? 1036 00:53:08,380 --> 00:53:09,270 OK. 1037 00:53:09,270 --> 00:53:12,840 Lai šis kods veiks apmēram tāds pats. 1038 00:53:12,840 --> 00:53:18,620 Bet jauka lieta par izmantojot, ja cits ja, kas cits, ja vai, kas cits, ja cits 1039 00:53:18,620 --> 00:53:22,320 nozīmē, ka tikai viens no tiem, kas notiek pie jāpārbauda, ​​ne visi trīs no tiem, 1040 00:53:22,320 --> 00:53:23,290 iespējams. 1041 00:53:23,290 --> 00:53:25,530 Un kas padara to mazliet nicer uz datoru, kas ir 1042 00:53:25,530 --> 00:53:26,670 rādīt savu programmu. 1043 00:53:26,670 --> 00:53:27,620 >> Tātad [? Konstantīns?] 1044 00:53:27,620 --> 00:53:31,330 mēs esam šo līniju iekšpusē, kas cits, ja vērtības, kronšteins vidū close kronšteins 1045 00:53:31,330 --> 00:53:32,260 ir lielāks par vērtību. 1046 00:53:32,260 --> 00:53:33,150 Kas mums jādara? 1047 00:53:33,150 --> 00:53:33,970 Mums ir nepieciešams, lai meklētu pa kreisi. 1048 00:53:33,970 --> 00:53:35,220 Kā mēs to darām? 1049 00:53:35,220 --> 00:53:46,960 1050 00:53:46,960 --> 00:53:48,720 Es esmu gatavojas sniegt jums sākums. 1051 00:53:48,720 --> 00:53:52,210 >> Mums ir šīs divas lietas, ko sauc sākas un beidzas. 1052 00:53:52,210 --> 00:53:57,340 Tātad, kas nepieciešams, lai notiktu sākumā? 1053 00:53:57,340 --> 00:53:59,640 Ja jūs vēlaties meklēt pa kreisi no sarakstu, mēs mūsu pašreizējo sākums. 1054 00:53:59,640 --> 00:54:01,080 Ko mums darīt? 1055 00:54:01,080 --> 00:54:04,220 >> STUDENTU: Mēs noteikti sākumu līdz vidum plus 1. 1056 00:54:04,220 --> 00:54:05,120 >> Jason Hirschhorn: Tātad, ja mēs esam meklējot pa kreisi? 1057 00:54:05,120 --> 00:54:06,250 >> STUDENTU: Atvainojiet, vidējā mīnuss - 1058 00:54:06,250 --> 00:54:11,310 lai beidzot būtu vidū mīnus 1 un sākumā - 1059 00:54:11,310 --> 00:54:12,450 >> Jason Hirschhorn: Un ko notiek sākumā? 1060 00:54:12,450 --> 00:54:13,210 >> Students: Tā paliek nemainīgs. 1061 00:54:13,210 --> 00:54:14,120 >> Jason Hirschhorn: So nozīme nemainās. 1062 00:54:14,120 --> 00:54:16,040 Ja mēs esam meklējot pa kreisi, mēs esam izmantojot tādu pašu sākumu - 1063 00:54:16,040 --> 00:54:16,860 tieši labi. 1064 00:54:16,860 --> 00:54:17,870 Un beidzas? 1065 00:54:17,870 --> 00:54:19,390 Atvainojiet, ko dara beidzas vienāds atkal? 1066 00:54:19,390 --> 00:54:20,750 >> STUDENTU: Middle mīnus 1. 1067 00:54:20,750 --> 00:54:21,620 >> Jason Hirschhorn: Middle mīnus 1. 1068 00:54:21,620 --> 00:54:23,470 Tagad, kāpēc mīnus 1, ne tikai vidū? 1069 00:54:23,470 --> 00:54:32,870 1070 00:54:32,870 --> 00:54:35,570 >> STUDENTU: vidū ir no attēlu, kas jau, jo mums bija 1071 00:54:35,570 --> 00:54:36,700 pārbaudījusi, ka tas ir no? 1072 00:54:36,700 --> 00:54:37,630 >> Jason Hirschhorn: Tas ir tieši labi. 1073 00:54:37,630 --> 00:54:38,580 Vidū ir no attēla. 1074 00:54:38,580 --> 00:54:39,800 Mēs jau pārbaudīts vidū. 1075 00:54:39,800 --> 00:54:44,730 Tāpēc mēs nevēlamies "pa vidu", citējot likt pēdiņas beigās, lai turpmāk būt 1076 00:54:44,730 --> 00:54:46,110 masīvs, ka mēs meklējam. 1077 00:54:46,110 --> 00:54:47,670 Tātad tas ir fantastiski. 1078 00:54:47,670 --> 00:54:50,670 >> Cits ja vērtības kronšteinu vidū ir lielāks nekā vērtība beidzas vienāds 1079 00:54:50,670 --> 00:54:51,920 vidējā mīnus 1. 1080 00:54:51,920 --> 00:54:55,060 1081 00:54:55,060 --> 00:54:57,340 Jeff, ko par šo pēdējā rindā? 1082 00:54:57,340 --> 00:54:58,590 >> STUDENTU: Else. 1083 00:54:58,590 --> 00:55:02,486 1084 00:55:02,486 --> 00:55:06,000 Values ​​vidū ir mazāka nekā vērtība? 1085 00:55:06,000 --> 00:55:07,570 >> Jason Hirschhorn: Mēs ņemšu jūs dodot man cits. 1086 00:55:07,570 --> 00:55:09,310 Tātad, ja tu nedod man - 1087 00:55:09,310 --> 00:55:12,270 >> STUDENTU: Tātad sākas būtu vidējā plus 1. 1088 00:55:12,270 --> 00:55:16,100 1089 00:55:16,100 --> 00:55:19,070 >> Jason Hirschhorn: sākums vienāds vidū plus 1, atkal par to pašu 1090 00:55:19,070 --> 00:55:20,820 iemesla dēļ, ka Constantine deva mums agrāk. 1091 00:55:20,820 --> 00:55:24,280 Un beigās, kurš nav devis man koda rindu vēl? 1092 00:55:24,280 --> 00:55:26,600 Atgriezties viltus, Aleha, ko mēs rakstām šeit? 1093 00:55:26,600 --> 00:55:28,590 >> STUDENTU: Atgriešanās nepatiesa. 1094 00:55:28,590 --> 00:55:29,320 >> Jason Hirschhorn: Atgriešanās nepatiesa. 1095 00:55:29,320 --> 00:55:33,340 Un mums tas ir jādara, jo, ja mēs nav atrast to, mums ir nepieciešams pateikt, ka mēs 1096 00:55:33,340 --> 00:55:34,080 neatrada to. 1097 00:55:34,080 --> 00:55:36,270 Un mēs teicām, mēs ejam, lai atgrieztos bool, tāpēc mums noteikti ir jāatgriežas 1098 00:55:36,270 --> 00:55:38,150 bool kaut kur. 1099 00:55:38,150 --> 00:55:42,590 >> Tā ļauj palaist šo kodu. 1100 00:55:42,590 --> 00:55:44,520 Es tiešām gatavojas - 1101 00:55:44,520 --> 00:55:45,930 tāpēc mēs esam terminālī. 1102 00:55:45,930 --> 00:55:47,230 Mēs notīrītu savu logu. 1103 00:55:47,230 --> 00:55:49,270 Veidosim visu. 1104 00:55:49,270 --> 00:55:50,340 Mēs atradām tur ir viena kļūda. 1105 00:55:50,340 --> 00:55:54,280 Tur ir kļūda līnijas 15, sagaidāms Semikolu beigās 1106 00:55:54,280 --> 00:55:54,890 deklarācija. 1107 00:55:54,890 --> 00:55:56,454 Tātad, ko es aizmirstu? 1108 00:55:56,454 --> 00:55:57,230 >> STUDENTU: Semikols. 1109 00:55:57,230 --> 00:56:00,200 >> Jason Hirschhorn: Semikols pa labi šeit. 1110 00:56:00,200 --> 00:56:00,950 Es domāju, ka bija Toma kodu. 1111 00:56:00,950 --> 00:56:01,870 Tātad Tom, [nedzirdama]. 1112 00:56:01,870 --> 00:56:03,120 Just kidding. 1113 00:56:03,120 --> 00:56:05,010 1114 00:56:05,010 --> 00:56:07,310 Darīsim darīt visu no jauna. 1115 00:56:07,310 --> 00:56:10,180 >> STUDENTU: Ko Dropbox katalogs mums būtu par šo? 1116 00:56:10,180 --> 00:56:11,345 >> Jason Hirschhorn: Tātad jūs varat vienkārši skatīties šo mazliet. 1117 00:56:11,345 --> 00:56:16,380 Bet atkal, ja jūs vēlaties, lai pārvietotu to kodu savā pset3 direktorijā, lai mēģinātu 1118 00:56:16,380 --> 00:56:17,050 it out, tas ir tas, ko es darīju. 1119 00:56:17,050 --> 00:56:18,600 Ja jūs pamanīsiet šeit - žēl, labs jautājums. 1120 00:56:18,600 --> 00:56:19,460 >> [? LS,?] 1121 00:56:19,460 --> 00:56:24,700 Man šeit find.c kodu No šīs nedēļas distro kodu. 1122 00:56:24,700 --> 00:56:26,300 Man ir helpers.h. 1123 00:56:26,300 --> 00:56:30,010 Man ir Make fails, ka es tiešām edited mazliet iekļaut šos jaunos 1124 00:56:30,010 --> 00:56:30,710 faili mēs esam rakstiski. 1125 00:56:30,710 --> 00:56:34,120 Visu šo kodeksa būs pieejama, nav sadales kodu, bet jaunā 1126 00:56:34,120 --> 00:56:39,510 Padara failu, jaunais helpers.h fails tiks būs pieejama internetā lejupielādei. 1127 00:56:39,510 --> 00:56:41,800 Atkal, tāpēc tie ir papildu kodus mēs esam. 1128 00:56:41,800 --> 00:56:46,130 >> Tātad, lai visiem, par šīs līnijas, padara atrast, binārā, burbulis izvēle - markas 1129 00:56:46,130 --> 00:56:50,930 visi trīs un apkopo par Tas izpildāmā koda atrast. 1130 00:56:50,930 --> 00:56:54,090 Tātad kopumā, mēs negribam taisni uz check50. 1131 00:56:54,090 --> 00:56:57,580 Mēs vēlamies, lai palaistu dažas pārbaudes par mūsu pašu. 1132 00:56:57,580 --> 00:57:11,750 Bet tikai, lai mēs varētu paātrināt šo mazliet, check50 2013 pset3.find pāries 1133 00:57:11,750 --> 00:57:14,630 in helpers.c-- mana slikti. 1134 00:57:14,630 --> 00:57:16,050 >> Man nav, ka tieši tagad. 1135 00:57:16,050 --> 00:57:20,670 Tātad, mēs esam patiešām gatavojas palaist kodu reāli. 1136 00:57:20,670 --> 00:57:23,570 Usage.find /, jūs zināt, ko tas nozīmē? 1137 00:57:23,570 --> 00:57:25,970 >> STUDENTU: Jums ir nepieciešams otru komandrindas par to. 1138 00:57:25,970 --> 00:57:26,980 >> Jason Hirschhorn: Man vajag Otrajā komandrindas. 1139 00:57:26,980 --> 00:57:30,640 Un vienu specifikāciju, man ir nepieciešams ievadīt, ko mēs meklējam. 1140 00:57:30,640 --> 00:57:33,750 Tātad, pieņemsim meklēt 42. 1141 00:57:33,750 --> 00:57:37,030 Mēs turpināsim to šķiroti, jo mēs nerakstīju kārtošanas funkcija vēl - 1142 00:57:37,030 --> 00:57:41,830 42, 43, 44. 1143 00:57:41,830 --> 00:57:46,240 >> Un kontroles D neatradu adatu siena kaudzē. 1144 00:57:46,240 --> 00:57:46,505 Tas ir slikti. 1145 00:57:46,505 --> 00:57:47,200 Tas noteikti ir tur. 1146 00:57:47,200 --> 00:57:48,090 Pamēģināsim kaut ko citu. 1147 00:57:48,090 --> 00:57:49,860 Varbūt tas ir tāpēc, ka man tā sākumā. 1148 00:57:49,860 --> 00:57:54,490 >> Darīsim 41, 42, 43. 1149 00:57:54,490 --> 00:57:55,012 Tur mēs ejam. 1150 00:57:55,012 --> 00:57:56,400 Tas atradis. 1151 00:57:56,400 --> 00:58:00,040 Palūkosimies uz to beigās, tagad, tikai lai mēs varētu būt pamatīga - 1152 00:58:00,040 --> 00:58:03,580 40, 41, 42. 1153 00:58:03,580 --> 00:58:05,760 Neatrada adatu. 1154 00:58:05,760 --> 00:58:07,550 Tāpēc es pieminēju šo agrāk. 1155 00:58:07,550 --> 00:58:08,980 Diemžēl, es zināju, ka tas kas notiks. 1156 00:58:08,980 --> 00:58:11,490 >> Bet pedagoģiskajiem mērķiem, tas ir labi, lai to izpētītu. 1157 00:58:11,490 --> 00:58:12,990 Tas nedarbojas. 1158 00:58:12,990 --> 00:58:16,020 Kaut kādu iemeslu dēļ, tas nevar atrast. 1159 00:58:16,020 --> 00:58:18,970 Mēs zinām, kas ir tur, bet mums nav atrast to. 1160 00:58:18,970 --> 00:58:24,140 Tātad viena lieta, ko mēs varētu darīt, ir iet cauri GDB to atrast, bet vai kāds, 1161 00:58:24,140 --> 00:58:27,850 bez iet caur gdb, ir sajūtu par to, kur mēs ieskrūvē up? 1162 00:58:27,850 --> 00:58:28,480 [? Madu? ?] 1163 00:58:28,480 --> 00:58:30,960 >> STUDENTU: Es domāju, ka tas varētu būt tad, kad beidzot ir vienāds ar sākuma, un tas ir 1164 00:58:30,960 --> 00:58:33,090 tikai vienu elementu sarakstu. 1165 00:58:33,090 --> 00:58:35,560 Tad tas vienkārši ignorē to, nevis faktiski tā pārbaudi. 1166 00:58:35,560 --> 00:58:36,940 >> Jason Hirschhorn: Tas ir tieši labi. 1167 00:58:36,940 --> 00:58:41,110 Kad beidzas vienāds sākumā, mēs vēl ir elements mūsu sarakstā? 1168 00:58:41,110 --> 00:58:42,480 >> STUDENTU: Jā. 1169 00:58:42,480 --> 00:58:45,450 >> Jason Hirschhorn: Jā, patiesībā, mēs ir viens un tikai viens elements. 1170 00:58:45,450 --> 00:58:50,500 Un tas, visticamāk, notiks, kad, vienu kodu mēs pārbaudīta, mēs esam 1171 00:58:50,500 --> 00:58:54,640 priekšējā siena kaudzē vai gals kaudzē. 1172 00:58:54,640 --> 00:58:56,000 Tas ir, ja sākums un beidzot būs vienāda 1173 00:58:56,000 --> 00:58:57,820 viens ar bināro meklēšanu. 1174 00:58:57,820 --> 00:59:01,440 Tātad šajos divos gadījumos, tas nav darbs, jo beidzot bija vienāda sākuma. 1175 00:59:01,440 --> 00:59:06,030 >> Bet, ja beidzot ir vienāds ar sākuma, tas savukārt cilpa izpildīt? 1176 00:59:06,030 --> 00:59:06,390 Tā nav. 1177 00:59:06,390 --> 00:59:08,660 Un mēs varētu būt jāpārbauda ka atkal caur gdb. 1178 00:59:08,660 --> 00:59:14,000 Tātad, kā mēs varam noteikt šo kodu, jo ja vienlaikus beidzot ir vienāds 1179 00:59:14,000 --> 00:59:16,070 sākuma, mēs arī vēlamies, lai šī kamēr cilpa, lai palaistu. 1180 00:59:16,070 --> 00:59:18,620 >> Tātad, ko noteikt mēs varam dot 18 rindā? 1181 00:59:18,620 --> 00:59:21,060 >> STUDENTU: [dzirdams] ir lielāka par vai vienāds ar. 1182 00:59:21,060 --> 00:59:21,700 >> Jason Hirschhorn: Tieši labi. 1183 00:59:21,700 --> 00:59:24,600 Kamēr beidzot ir lielāks nekā vai vienāds ar sākuma. 1184 00:59:24,600 --> 00:59:27,300 Tāpēc tagad, mēs pārliecināmies, lai iegūtu, ka stūra case beigās. 1185 00:59:27,300 --> 00:59:27,870 Un redzēsim. 1186 00:59:27,870 --> 00:59:29,560 Pieņemsim palaist šo vēl vienu reizi. 1187 00:59:29,560 --> 00:59:31,266 >> Veidosim visiem. 1188 00:59:31,266 --> 00:59:33,910 Atkal, jums ir tikai sekot līdzi šeit. 1189 00:59:33,910 --> 00:59:36,280 Atrast 41 šoreiz. 1190 00:59:36,280 --> 00:59:37,360 Tikai glabāt to konsekventi. 1191 00:59:37,360 --> 00:59:38,210 >> Atrast 42. 1192 00:59:38,210 --> 00:59:38,930 Palūkosimies uz to sākumā - 1193 00:59:38,930 --> 00:59:41,630 42, 43, 44. 1194 00:59:41,630 --> 00:59:42,860 Mēs atradām to. 1195 00:59:42,860 --> 00:59:47,710 Tāpēc, ka patiešām bija izmaiņas mums vajadzēja darīt. 1196 00:59:47,710 --> 00:59:51,090 >> Tas bija daudz kodēšanas mēs tikko bija, bināro meklēšanu. 1197 00:59:51,090 --> 00:59:55,760 Vai kāds ir kādi jautājumi, pirms Es pāriet līnijās mēs wrote 1198 00:59:55,760 --> 00:59:58,750 bināro meklēšanu vai kā mēs rakstainas , ko mēs neesam izdomāt? 1199 00:59:58,750 --> 01:00:01,900 1200 01:00:01,900 --> 01:00:06,270 Pirms mēs virzāmies tālāk, es arī vēlos norādīt out ka kopumā mēs samērot 1201 01:00:06,270 --> 01:00:09,300 mūsu pseido-kods viens viens uz mūsu kodu. 1202 01:00:09,300 --> 01:00:11,550 >> Mums tomēr ir, ka grūts lieta lai noskaidrotu, ar 1203 01:00:11,550 --> 01:00:12,890 sākas un beidzas. 1204 01:00:12,890 --> 01:00:17,380 Bet vēl jums nav izpētījuši, ka no jums būtu rakstīts diezgan daudz 1205 01:00:17,380 --> 01:00:20,740 identisks kods, izņemot šie top divas līnijas. 1206 01:00:20,740 --> 01:00:23,380 Un tad jūs būtu sapratuši, ja veicāt to pārbaudes un gadījumos, kas 1207 01:00:23,380 --> 01:00:24,840 jums ir nepieciešams kaut kas cits. 1208 01:00:24,840 --> 01:00:28,510 Tātad, pat ja Jums bija pēc mūsu pseido-koda līnija uz līniju, jūs esat 1209 01:00:28,510 --> 01:00:31,130 gotten visiem, bet divas rindiņas kodu jums nepieciešams rakstīt. 1210 01:00:31,130 --> 01:00:33,900 >> Un es gribētu būt gatavs derēt, ka jūs guys būtu viss, sapratu, ka no 1211 01:00:33,900 --> 01:00:37,940 diezgan ātri, kas jums nepieciešams, lai daži marķieri veida, kas tur, lai noskaidrotu 1212 01:00:37,940 --> 01:00:39,190 , kur jūs bijāt. 1213 01:00:39,190 --> 01:00:41,540 1214 01:00:41,540 --> 01:00:44,550 Tas atkal ir spēks darīt pseido-kodu pirms laika. 1215 01:00:44,550 --> 01:00:47,310 Tātad, mēs varam darīt loģiku, pirmkārt, un pēc tam mēs varam jāuztraucas par sintaksi. 1216 01:00:47,310 --> 01:00:51,470 >> Bija mums ir sajaukt par loģiku Mēģinot rakstīt šo kodu C, 1217 01:00:51,470 --> 01:00:53,110 mēs esam gotten visu messed up. 1218 01:00:53,110 --> 01:00:56,340 Un tad mēs gribētu būt uzdodot jautājumus par loģika un sintakse un meshing 1219 01:00:56,340 --> 01:00:57,320 tos visus kopā. 1220 01:00:57,320 --> 01:01:02,170 Un mēs esam gotten zaudējis , ko var ātri kļūt 1221 01:01:02,170 --> 01:01:04,000 ļoti sarežģīta problēma. 1222 01:01:04,000 --> 01:01:08,680 Tātad, pieņemsim pāriet tagad uz atlases veida. 1223 01:01:08,680 --> 01:01:10,760 >> Mums ir palikušas 20 minūtes. 1224 01:01:10,760 --> 01:01:14,130 Tāpēc man ir sajūta, ka mēs nebūsim spējīgi izietu cauri visiem atlases veida 1225 01:01:14,130 --> 01:01:15,940 un burbulis kārtošanas. 1226 01:01:15,940 --> 01:01:20,670 Bet ļaujiet mums vismaz mēģinājums lai pabeigtu atlases veida. 1227 01:01:20,670 --> 01:01:23,540 Tāpēc jāīsteno izvēli kārtot, izmantojot šādu funkciju deklarāciju. 1228 01:01:23,540 --> 01:01:27,530 >> Again, tas ir ņemts no problēma noteikti specifikāciju. 1229 01:01:27,530 --> 01:01:31,560 Int vērtības ir iekavās, ir masīvs veseli skaitļi. 1230 01:01:31,560 --> 01:01:33,490 Un int.n ir lielums šī masīva. 1231 01:01:33,490 --> 01:01:36,840 Atlases veida notiek kārtot šo masīvu. 1232 01:01:36,840 --> 01:01:43,580 >> Tāpēc par mūsu garīgo modeli izvēles kārtot, mēs pull - 1233 01:01:43,580 --> 01:01:47,720 pirmkārt, mēs iet cauri sarakstam pirmais laiku, atrast mazākais skaits, 1234 01:01:47,720 --> 01:01:52,860 nodot to sākumā, atrast otro mazākais skaitlis, ielieciet to 1235 01:01:52,860 --> 01:01:56,380 otro pozīciju, ja mēs gribam, lai Kārtot augošā secībā. 1236 01:01:56,380 --> 01:01:58,440 Es neesmu piespiežot jums rakstīt pseido-kods tiesības tagad. 1237 01:01:58,440 --> 01:02:01,350 >> Bet, pirms mēs to kodu, kā klases piecas minūtes, mēs rakstīt 1238 01:02:01,350 --> 01:02:03,550 pseido-koda tāpēc mums ir kāda jēga par to, kur mēs ejam. 1239 01:02:03,550 --> 01:02:05,630 Tāpēc mēģinājums rakstīt pseido kodu par savu. 1240 01:02:05,630 --> 01:02:08,610 Un tad mēģināt pārvērst, ka pseido-kodu uz kodu. 1241 01:02:08,610 --> 01:02:10,740 Mēs darīsim, ka grupa piecu minūšu laikā. 1242 01:02:10,740 --> 01:02:32,560 1243 01:02:32,560 --> 01:02:33,895 >> Un, protams, ļaujiet man zināt, ja Jums ir kādi jautājumi. 1244 01:02:33,895 --> 01:03:56,738 1245 01:03:56,738 --> 01:03:58,230 >> STUDENTU: Ka tā? 1246 01:03:58,230 --> 01:04:00,280 >> Jason Hirschhorn: redzēt, cik tālu jūs var saņemt vairāk divās minūtēs. 1247 01:04:00,280 --> 01:04:01,790 Es saprotu, jums nav varētu pabeigt. 1248 01:04:01,790 --> 01:04:03,050 Bet mēs iet pār to kā grupa. 1249 01:04:03,050 --> 01:04:57,830 1250 01:04:57,830 --> 01:05:00,630 >> Jūs visi kodēšanas tik [dzirdams], tāpēc es esmu žēl, lai apturētu to, ko jūs darāt. 1251 01:05:00,630 --> 01:05:02,530 Bet iesim cauri to kā grupa. 1252 01:05:02,530 --> 01:05:07,590 Un atkal, bināro meklēšanu, jums visiem dot man vienu, ja ne vairākas līnijas kodu. 1253 01:05:07,590 --> 01:05:08,530 Paldies par to. 1254 01:05:08,530 --> 01:05:11,730 Mēs ejam, lai darīt to pašu Šeit, kods kopā kā grupa. 1255 01:05:11,730 --> 01:05:15,170 >> Tātad izvēle kārtot - pieņemsim rakstiet daži ātri pseido-kodu. 1256 01:05:15,170 --> 01:05:20,380 Per mentālajā modelī, var kāds sniegt man pirmajā rindā pseido-kodu, lūdzu? 1257 01:05:20,380 --> 01:05:23,000 1258 01:05:23,000 --> 01:05:24,270 Ko es gribu darīt? 1259 01:05:24,270 --> 01:05:27,070 >> STUDENTU: Kamēr saraksts nedarbosies. 1260 01:05:27,070 --> 01:05:30,630 >> Jason Hirschhorn: OK, bet saraksts ir bojātas. 1261 01:05:30,630 --> 01:05:33,540 Un ko tu domā "ārpus pasūtījuma?" 1262 01:05:33,540 --> 01:05:34,960 >> STUDENTU: Kaut [dzirdams] 1263 01:05:34,960 --> 01:05:36,210 nav sakārtots. 1264 01:05:36,210 --> 01:05:38,460 1265 01:05:38,460 --> 01:05:40,290 >> Jason Hirschhorn: Kamēr saraksts ir bojātas, ko mēs darām? 1266 01:05:40,290 --> 01:05:44,200 Dodiet man otrajā rindā, lūdzu, Marcus. 1267 01:05:44,200 --> 01:05:47,186 >> STUDENTU: Tāpēc atrast nākamais mazākais skaitlis. 1268 01:05:47,186 --> 01:05:49,000 Tas tiks atkāpi. 1269 01:05:49,000 --> 01:05:55,140 >> Jason Hirschhorn: Tāpēc atrast nākamais mazākais skaitlis. 1270 01:05:55,140 --> 01:05:56,460 Un tad kāds cits? 1271 01:05:56,460 --> 01:06:01,030 Pēc tam, kad mēs redzam, nākamais mazākais skaitlis, ko mēs darām? 1272 01:06:01,030 --> 01:06:03,010 Es esmu gatavojas teikt atrast mazākais skaitlis. 1273 01:06:03,010 --> 01:06:04,820 Tas ir tas, ko mēs vēlamies darīt. 1274 01:06:04,820 --> 01:06:06,210 >> Tāpēc atrast mazāko numuru. 1275 01:06:06,210 --> 01:06:08,061 Tad ko mēs darām? 1276 01:06:08,061 --> 01:06:09,480 >> STUDENTU: [dzirdams] uz sākumu. 1277 01:06:09,480 --> 01:06:10,680 >> Jason Hirschhorn: Sorry? 1278 01:06:10,680 --> 01:06:12,700 >> STUDENTU: Novietojiet to saraksta sākumā. 1279 01:06:12,700 --> 01:06:18,540 >> Jason Hirschhorn: Tātad novietojiet to sākums saraksta. 1280 01:06:18,540 --> 01:06:20,140 Un ko mēs darām, lai lieta , kas bija sākumā 1281 01:06:20,140 --> 01:06:20,830 no saraksta, labi? 1282 01:06:20,830 --> 01:06:21,910 Mēs pārrakstot kaut ko. 1283 01:06:21,910 --> 01:06:23,130 Tātad, ja mēs uzdodam šo? 1284 01:06:23,130 --> 01:06:24,120 Jā, Anna? 1285 01:06:24,120 --> 01:06:25,520 >> STUDENTU: Kur mazākais skaits bija? 1286 01:06:25,520 --> 01:06:32,530 >> Jason Hirshhorn: Tātad nodot sākumu no saraksta, kurā 1287 01:06:32,530 --> 01:06:35,180 mazākais skaits bija. 1288 01:06:35,180 --> 01:06:38,510 Tāpēc, kamēr saraksts ir bojātas, atrast mazākais skaitlis, to ievieto 1289 01:06:38,510 --> 01:06:40,630 sākums saraksta, ielieciet saraksta sākumā, kur 1290 01:06:40,630 --> 01:06:42,900 mazākais skaits bija. 1291 01:06:42,900 --> 01:06:45,780 Marcus, jūs varat pārfrāzēt šo līniju kamēr saraksts ir bojātas? 1292 01:06:45,780 --> 01:06:51,160 1293 01:06:51,160 --> 01:06:53,900 >> STUDENTU: Lai gan skaitļi nav sakārtoti? 1294 01:06:53,900 --> 01:06:55,920 >> Jason Hirshhorn: Labi, tāpēc, lai zina, ka skaitļi nav bijuši 1295 01:06:55,920 --> 01:06:58,670 sakārtoti, kas mums jādara? 1296 01:06:58,670 --> 01:07:00,640 Cik daudz mums ir nepieciešams, lai iet caur šo sarakstu? 1297 01:07:00,640 --> 01:07:09,650 >> STUDENTU: Tāpēc es domāju, cilpa, vai bet, kamēr pārbauda skaits ir mazāks 1298 01:07:09,650 --> 01:07:11,900 par garumu saraksta? 1299 01:07:11,900 --> 01:07:13,160 >> Jason Hirshhorn: OK, tas ir labi. 1300 01:07:13,160 --> 01:07:15,000 Es domāju, ka es misphrased mans jautājums slikti. 1301 01:07:15,000 --> 01:07:15,990 Man bija tikai mēģina nokļūt pie Mēs ejam, lai iet 1302 01:07:15,990 --> 01:07:17,580 cauri visam sarakstam. 1303 01:07:17,580 --> 01:07:20,490 Tātad, kamēr saraksts ir nedarbojas, man ir grūti karti. 1304 01:07:20,490 --> 01:07:24,940 Bet būtībā, tas ir kā Es par to domāju. 1305 01:07:24,940 --> 01:07:28,880 Iet cauri visam sarakstam, atrast mazākais skaitlis, to ievieto 1306 01:07:28,880 --> 01:07:30,130 sākums - faktiski, tev taisnība. 1307 01:07:30,130 --> 01:07:31,380 Palūkosimies uz viņiem abiem. 1308 01:07:31,380 --> 01:07:33,470 1309 01:07:33,470 --> 01:07:39,050 >> Tātad, kamēr saraksts ir bojātas, mēs jāiet cauri visam sarakstam 1310 01:07:39,050 --> 01:07:42,250 vienreiz atrast mazākais skaits, vieta tā sākumā saraksta, kas iesaiņota 1311 01:07:42,250 --> 01:07:45,430 sākums saraksta, kurā mazākais skaits ir, un tad, ja 1312 01:07:45,430 --> 01:07:47,460 sarakstā joprojām nedarbojas, mēs esam got iet caur šo 1313 01:07:47,460 --> 01:07:48,620 process atkal, vai ne? 1314 01:07:48,620 --> 01:07:51,610 Tas ir iemesls, kāpēc izvēle kārtot, Big-o Runtime atlases veida, kāds? 1315 01:07:51,610 --> 01:07:52,830 >> STUDENTU: n brusas. 1316 01:07:52,830 --> 01:07:53,590 >> Jason Hirshhorn: n brusas. 1317 01:07:53,590 --> 01:07:57,040 Tāpēc, ka, piemēram, Marcus un es tikko sapratu šeit, mēs esam nāksies 1318 01:07:57,040 --> 01:08:00,310 iet caur sarakstu sarakstu vairākas reizes. 1319 01:08:00,310 --> 01:08:03,420 Tā iet cauri kaut garums n n reižu skaitu 1320 01:08:03,420 --> 01:08:04,990 faktiski ir n brusas. 1321 01:08:04,990 --> 01:08:08,100 >> Tātad šī ir mūsu pseudocode. 1322 01:08:08,100 --> 01:08:09,360 Tas izskatās ļoti labi. 1323 01:08:09,360 --> 01:08:11,870 Vai kāds ir kādi jautājumi par pseudocode? 1324 01:08:11,870 --> 01:08:14,440 Jo patiesībā atlases veida vajadzētu droši vien nāk viens uz vienu, kodu no 1325 01:08:14,440 --> 01:08:14,980 pseudocode. 1326 01:08:14,980 --> 01:08:17,569 Tātad kādi jautājumi par loģika pseudocode? 1327 01:08:17,569 --> 01:08:18,819 Lūdzu, jautājiet to tagad. 1328 01:08:18,819 --> 01:08:22,609 1329 01:08:22,609 --> 01:08:25,379 >> Atlase kārtot - kamēr saraksts ir out kārtības, mēs ejam, lai iet caur to 1330 01:08:25,379 --> 01:08:27,529 un atrast mazāko katru reizi un nodot to priekšā. 1331 01:08:27,529 --> 01:08:33,470 Tātad, kamēr saraksts ir nedarbojas, var kāds man šo rindiņu kodu, kas 1332 01:08:33,470 --> 01:08:39,689 man nav devis līnijas kodu vēl, lūdzu? 1333 01:08:39,689 --> 01:08:40,939 Tas izklausās, ko? 1334 01:08:40,939 --> 01:08:43,669 1335 01:08:43,669 --> 01:08:44,649 >> STUDENTU: Tas ir cilpa. 1336 01:08:44,649 --> 01:08:45,830 >> Jason Hirshhorn: Tas izklausās patīk cilpa. 1337 01:08:45,830 --> 01:08:47,653 Labi, jūs varat sniegt man par cilpu? 1338 01:08:47,653 --> 01:08:48,925 Par - 1339 01:08:48,925 --> 01:08:50,219 >> STUDENTU: i ir vienāds ar 0. 1340 01:08:50,219 --> 01:08:52,705 >> Jason Hirshhorn: i vai - 1341 01:08:52,705 --> 01:08:55,111 ko mēs trūkst? 1342 01:08:55,111 --> 01:08:56,819 Kas notiek tieši šeit? 1343 01:08:56,819 --> 01:08:57,550 >> STUDENTU: Int. 1344 01:08:57,550 --> 01:08:59,270 >> Jason Hirshhorn: Tieši tā. 1345 01:08:59,270 --> 01:09:02,590 (Int i = 0, - 1346 01:09:02,590 --> 01:09:07,843 >> Students: i 01:09:09,319 >> Jason Hirshhorn: pavirši to, Jeff. 1348 01:09:09,319 --> 01:09:10,660 Mēs ejam cauri sarakstam, vai ne? 1349 01:09:10,660 --> 01:09:11,880 Mēs esam redzējuši šo kodu pirms. 1350 01:09:11,880 --> 01:09:12,850 Perfekta. 1351 01:09:12,850 --> 01:09:14,790 Tā ļauj īstenot mūsu cirtaini lencēm šeit. 1352 01:09:14,790 --> 01:09:17,859 Es esmu gatavojas īstenot dažus cirtaini bikšturi šeit. 1353 01:09:17,859 --> 01:09:21,660 >> Tāpēc, kamēr tas ir 0, mums ir jāiet izmantojot visu sarakstu. 1354 01:09:21,660 --> 01:09:26,612 Lai katru reizi, kad mēs ejam cauri sarakstam, ko mēs gribam, lai sekotu? 1355 01:09:26,612 --> 01:09:28,260 >> Students: Ja kāds mijmaiņas darījumi tiek veikti. 1356 01:09:28,260 --> 01:09:29,069 >> Jason Hirshhorn: Atrast mazākais skaitlis. 1357 01:09:29,069 --> 01:09:31,479 Lai mēs būtu iespējams izsekot mazākais skaitlis katru reizi. 1358 01:09:31,479 --> 01:09:34,590 Tāpēc līniju es varu darīt, lai sekotu ar vismazāko uzņēmumu skaitu? 1359 01:09:34,590 --> 01:09:37,720 Aleha, kā es varu saglabāt dziesmu kaut ko? 1360 01:09:37,720 --> 01:09:38,460 >> STUDENTU: Sākt jaunu mainīgo. 1361 01:09:38,460 --> 01:09:39,390 >> Jason Hirshhorn: Sākt jaunu mainīgo. 1362 01:09:39,390 --> 01:09:40,069 Tātad, pieņemsim izveidot mainīgo. 1363 01:09:40,069 --> 01:09:41,830 Kāda veida? 1364 01:09:41,830 --> 01:09:42,930 >> STUDENTU: Int. 1365 01:09:42,930 --> 01:09:43,710 >> Jason Hirshhorn: Int. 1366 01:09:43,710 --> 01:09:44,939 Sauksim to mazāko. 1367 01:09:44,939 --> 01:09:47,600 Un ko tas ir vienāds, ja Mēs esam tikko sākusies out? 1368 01:09:47,600 --> 01:09:48,910 Mēs neesam izgājuši cauri sarakstam vēl. 1369 01:09:48,910 --> 01:09:50,540 Mēs esam pirmajā daļā uzskaitīt mūsu pirmo reizi cauri. 1370 01:09:50,540 --> 01:09:51,930 Ko tas ir vienāds, mazākais skaitlis? 1371 01:09:51,930 --> 01:09:54,140 >> STUDENTU: noteiktajām vērtībām. 1372 01:09:54,140 --> 01:09:54,900 >> Jason Hirshhorn: noteiktajām vērtībām. 1373 01:09:54,900 --> 01:09:56,980 Tas izklausās tieši labi, vai ne? 1374 01:09:56,980 --> 01:09:59,590 Vismazāk sākumā ir vieta, kur mēs esam. 1375 01:09:59,590 --> 01:10:01,960 Tāpēc tagad mums ir mūsu mazākais, un mums ir nepieciešams iet cauri visam sarakstam un 1376 01:10:01,960 --> 01:10:05,080 salīdzināt šo mazākais viss pārējais. 1377 01:10:05,080 --> 01:10:08,150 Tāpēc mēs ejam cauri sarakstam atkal? 1378 01:10:08,150 --> 01:10:08,630 Michael? 1379 01:10:08,630 --> 01:10:10,000 >> STUDENTU: Jums ir nepieciešams, lai otru cilpu. 1380 01:10:10,000 --> 01:10:10,383 >> Jason Hirshhorn: Vēl viena cilpa. 1381 01:10:10,383 --> 01:10:11,276 Darīsim to. 1382 01:10:11,276 --> 01:10:12,540 Dodiet man kādu kodu. 1383 01:10:12,540 --> 01:10:13,790 >> STUDENTU: Par cilpa - 1384 01:10:13,790 --> 01:10:16,750 1385 01:10:16,750 --> 01:10:19,470 lai mazākais - 1386 01:10:19,470 --> 01:10:23,040 1387 01:10:23,040 --> 01:10:25,770 tikai int j, jūs varētu teikt? 1388 01:10:25,770 --> 01:10:31,150 = 0, tādas, ka - 1389 01:10:31,150 --> 01:10:34,014 1390 01:10:34,014 --> 01:10:35,710 >> Jason Hirshhorn: Nu, ja mēs gribam iet cauri visam sarakstam - 1391 01:10:35,710 --> 01:10:37,847 >> Students: j 01:10:42,140 1393 01:10:42,140 --> 01:10:42,405 >> Jason Hirshhorn: Fantastic. 1394 01:10:42,405 --> 01:10:46,100 Mēs ejam, lai iet cauri cilpa atkal. 1395 01:10:46,100 --> 01:10:51,380 Un kā mēs atrast mazākais skaitlis? 1396 01:10:51,380 --> 01:10:52,630 Tom? 1397 01:10:52,630 --> 01:10:54,570 1398 01:10:54,570 --> 01:11:00,520 Mums ir pašreizējā mazākais skaits, Tātad, kā mēs atrast jaunu mazākais? 1399 01:11:00,520 --> 01:11:07,200 >> STUDENTU: Mēs varam pārbaudīt, vai mazākā skaits mums ir lielāka nekā 1400 01:11:07,200 --> 01:11:09,040 vērtības kronšteins j. 1401 01:11:09,040 --> 01:11:14,740 >> Jason Hirshhorn: Tātad, ja mazākais pārsniedz vērtības nobīdi j. 1402 01:11:14,740 --> 01:11:19,350 Tātad, ja mūsu pašreizējā mazākais ir lielāks nekā - 1403 01:11:19,350 --> 01:11:21,770 Es esmu gatavojas pārvietot šīs divas līnijas kodu, kas tur par sekundi. 1404 01:11:21,770 --> 01:11:26,010 Jo pirms mums darīt jebkādu pārnešana, mēs jāiet cauri visam sarakstam. 1405 01:11:26,010 --> 01:11:28,880 Tāpēc šis pseudocode būtu reāli ir ārpus, ka iekšējais uz cilpas. 1406 01:11:28,880 --> 01:11:30,390 Tā iet cauri visam sarakstam. 1407 01:11:30,390 --> 01:11:34,520 Ja mazākais ir lielāks nekā vērtībām j tad kādi? 1408 01:11:34,520 --> 01:11:37,830 >> STUDENTU: Tad mazākais vienāds vērtības j. 1409 01:11:37,830 --> 01:11:41,190 1410 01:11:41,190 --> 01:11:42,600 >> Jason Hirshhorn: Fantastic. 1411 01:11:42,600 --> 01:11:44,580 Viens ātrs jautājums - 1412 01:11:44,580 --> 01:11:47,236 Pirmo reizi mēs iet caur šo cilpu, i notiek, ir vienāds ar 0, j notiek 1413 01:11:47,236 --> 01:11:50,710 uz vienlīdzīgu 0, kad mēs šeit. 1414 01:11:50,710 --> 01:11:52,410 Tātad, mēs ejam, lai salīdzinātu numuru sevi. 1415 01:11:52,410 --> 01:11:53,660 Ir tas, ka efektīva? 1416 01:11:53,660 --> 01:11:57,260 1417 01:11:57,260 --> 01:11:58,390 Nē, tas nav īsti efektīva. 1418 01:11:58,390 --> 01:12:02,915 Tā nav mūsu j jādodas no 0 līdz n ikreiz? 1419 01:12:02,915 --> 01:12:06,310 Vai mēs vienmēr nepieciešams, lai pārbaudītu cauri visam sarakstam? 1420 01:12:06,310 --> 01:12:06,520 [Dzirdams]? 1421 01:12:06,520 --> 01:12:07,564 >> STUDENTU: Sākt ar i vietā. 1422 01:12:07,564 --> 01:12:09,405 >> Jason Hirshhorn: j Can sākt ar ko? 1423 01:12:09,405 --> 01:12:09,990 >> STUDENTU: i. 1424 01:12:09,990 --> 01:12:13,040 >> Jason Hirshhorn: j var sākt ar i. 1425 01:12:13,040 --> 01:12:18,840 Tāpēc tagad mēs salīdzinām sākuma ar vienu mēs esam par. 1426 01:12:18,840 --> 01:12:21,020 Bet pat tad, ir, ka efektīva, cik iespējams? 1427 01:12:21,020 --> 01:12:22,320 >> STUDENTU: i + 1. 1428 01:12:22,320 --> 01:12:25,420 >> Jason Hirshhorn: i + 1, šķiet, ir visefektīvākā, jo mēs 1429 01:12:25,420 --> 01:12:26,120 jau ir i. 1430 01:12:26,120 --> 01:12:28,100 Mēs esam norādot, ka mazākais rindā 15. 1431 01:12:28,100 --> 01:12:29,350 Mēs ejam, lai sāktu ar nākamais automātiski. 1432 01:12:29,350 --> 01:12:34,470 1433 01:12:34,470 --> 01:12:38,540 Tātad mēs iet cauri, lai cilpu. 1434 01:12:38,540 --> 01:12:39,620 Mēs iet caur katru reizi. 1435 01:12:39,620 --> 01:12:40,860 Mēs iet cauri vairākas reizes. 1436 01:12:40,860 --> 01:12:42,860 Tagad mēs esam gotten cauri šī iekšējā cilpa. 1437 01:12:42,860 --> 01:12:44,350 Mums ir vismazākā vērtība ietaupa. 1438 01:12:44,350 --> 01:12:46,045 Mums ir nepieciešams, lai tā būtu pēc saraksta sākumā. 1439 01:12:46,045 --> 01:12:48,390 Tātad, kā es varu novietot to saraksta sākumā? 1440 01:12:48,390 --> 01:12:51,290 1441 01:12:51,290 --> 01:12:55,926 Kas ir mainīgais, kas attiecas lai saraksta sākumā? 1442 01:12:55,926 --> 01:13:00,500 Mēs esam šajā ārpusē uz cilpas, lai to, kas attiecas uz 1443 01:13:00,500 --> 01:13:01,280 saraksta sākumā? 1444 01:13:01,280 --> 01:13:02,880 >> STUDENTU: noteiktajām vērtībām. 1445 01:13:02,880 --> 01:13:03,510 >> Jason Hirshhorn: Tieši labi. 1446 01:13:03,510 --> 01:13:04,650 Vērtības i ir sākums - 1447 01:13:04,650 --> 01:13:06,320 vai žēl, nevis sākums. 1448 01:13:06,320 --> 01:13:07,090 Tas bija mulsinoši. 1449 01:13:07,090 --> 01:13:11,620 Tas ir, ja mēs sākumā neatlasīti daļa no saraksta. 1450 01:13:11,620 --> 01:13:12,800 Tāpēc vērtības i. 1451 01:13:12,800 --> 01:13:14,050 Un kas tas ir vienāds? 1452 01:13:14,050 --> 01:13:15,925 1453 01:13:15,925 --> 01:13:17,326 >> STUDENTU: Mazākais. 1454 01:13:17,326 --> 01:13:18,862 >> Jason Hirshhorn Vērtības i ir vienāds, ko? 1455 01:13:18,862 --> 01:13:19,310 >> STUDENTU: Mazākais. 1456 01:13:19,310 --> 01:13:20,030 >> Jason Hirshhorn: Mazākais. 1457 01:13:20,030 --> 01:13:20,980 Tieši labi. 1458 01:13:20,980 --> 01:13:23,510 Tāpēc mēs esam ievietojot to sākumā saraksta, un tagad mums ir nepieciešams, lai 1459 01:13:23,510 --> 01:13:25,710 sākums saraksta, kurā mazākais skaits bija. 1460 01:13:25,710 --> 01:13:29,700 Tātad, kā es varu uzrakstīt, ja mazākais skaits bija? 1461 01:13:29,700 --> 01:13:31,670 Vērtības, ko? 1462 01:13:31,670 --> 01:13:33,170 >> STUDENTU: 0. 1463 01:13:33,170 --> 01:13:34,090 >> Jason Hirshhorn: mazais numurs ir pie 0? 1464 01:13:34,090 --> 01:13:35,340 >> STUDENTU: Jā. 1465 01:13:35,340 --> 01:13:38,680 1466 01:13:38,680 --> 01:13:39,910 >> Jason Hirshhorn: Ko darīt, ja mazākais skaits ir beigās 1467 01:13:39,910 --> 01:13:40,860 tas nešķiroti sarakstu? 1468 01:13:40,860 --> 01:13:42,460 >> STUDENTU: Atvainojiet, kāds bija jautājums? 1469 01:13:42,460 --> 01:13:44,020 >> Jason Hirshhorn: Kur ir mazākais skaitlis? 1470 01:13:44,020 --> 01:13:46,940 Mēs ņēmām mazākais un nodot to sākot ar šo līniju tieši šeit. 1471 01:13:46,940 --> 01:13:48,987 >> STUDENTU: Tas būtu uzglabāta daži - 1472 01:13:48,987 --> 01:13:50,510 >> STUDENT Vērtības j. 1473 01:13:50,510 --> 01:13:51,520 >> Jason Hirshhorn: Nu, tas ir ne vienmēr ir vērtības j. 1474 01:13:51,520 --> 01:13:54,100 Tas nav pat neeksistē šajā brīdī. 1475 01:13:54,100 --> 01:13:55,960 >> STUDENTU: Jums ir jādeklarē mainīgo agrāk un 1476 01:13:55,960 --> 01:13:58,230 tad uzdot to - 1477 01:13:58,230 --> 01:14:01,150 kad jūs atradīsiet mazākais skaits, piešķirt indeksu šo numuru, lai 1478 01:14:01,150 --> 01:14:02,480 daži mainīgais vai kaut kas tamlīdzīgs. 1479 01:14:02,480 --> 01:14:04,790 >> Jason Hirshhorn: Līdz ar to var jūs sakāt, ka atkal? 1480 01:14:04,790 --> 01:14:08,390 >> STUDENTU: Tātad, ja jums ir deklarēta int mazākais, jums vajadzētu atzīt, int 1481 01:14:08,390 --> 01:14:10,750 mazākais rādītājs = i, vai kaut kā tā. 1482 01:14:10,750 --> 01:14:13,280 >> Jason Hirshhorn: Tātad, kur es int mazākais, es ne tikai sekot 1483 01:14:13,280 --> 01:14:16,150 no lieluma, bet vietām. 1484 01:14:16,150 --> 01:14:20,850 int smallest_location = šajā gadījumā, mēs tikai man. 1485 01:14:20,850 --> 01:14:22,390 Mums ir nepieciešams zināt, kur tas ir. 1486 01:14:22,390 --> 01:14:26,820 Mēs got beigām kodu, un mēs sapratām, mums nebija ne jausmas, kur tas bija. 1487 01:14:26,820 --> 01:14:29,810 Un tā atkal, mēs esam kartēšana šo par 00:59. 1488 01:14:29,810 --> 01:14:32,890 Jūs puiši kodēšanas šo par savu gribu iespējams iegūt vienu un to pašu problēmu. 1489 01:14:32,890 --> 01:14:34,130 Kā heck es varu atrast to? 1490 01:14:34,130 --> 01:14:36,720 Un tad tu saproti, pagaidiet, es ir nepieciešams, lai izsekotu tā. 1491 01:14:36,720 --> 01:14:38,500 >> Tātad, ja mazākais ir lielāks nekā vērtības j. 1492 01:14:38,500 --> 01:14:39,740 Mēs noteikti mazākais ir vienāds ar vērtību j. 1493 01:14:39,740 --> 01:14:42,090 Kas vēl mums ir jāmaina? 1494 01:14:42,090 --> 01:14:43,710 Constantin, ko vēl darīt mums ir jāmaina? 1495 01:14:43,710 --> 01:14:44,560 >> STUDENTU: vieta. 1496 01:14:44,560 --> 01:14:45,270 >> Jason Hirshhorn: Tieši tā. 1497 01:14:45,270 --> 01:14:46,925 Tāpēc man šo līniju kodu. 1498 01:14:46,925 --> 01:14:53,310 >> STUDENTU: smallest_location = j. 1499 01:14:53,310 --> 01:14:54,790 >> Jason Hirshhorn: Tieši tā. 1500 01:14:54,790 --> 01:14:58,210 Un tad uz leju beigās, ja mēs gribam, lai ielieciet sākumu saraksta, kurā 1501 01:14:58,210 --> 01:15:00,790 mazākais skaits bija, cik Vai mēs atsaucamies uz to, kur 1502 01:15:00,790 --> 01:15:02,200 mazākais skaits bija? 1503 01:15:02,200 --> 01:15:03,580 Marcus? 1504 01:15:03,580 --> 01:15:08,530 >> STUDENTU: mazākais skaits bija atrodas mazākā vietā. 1505 01:15:08,530 --> 01:15:12,230 >> Jason Hirshhorn: Tātad vērtībām smallest_location. 1506 01:15:12,230 --> 01:15:14,700 Un ko mēs ieliekam tur? 1507 01:15:14,700 --> 01:15:17,600 Gada sākums sarakstu, kas ir kas? 1508 01:15:17,600 --> 01:15:19,710 >> STUDENTU: Nu, mēs īsti nezinām vairs, jo mēs pārrakstīja. 1509 01:15:19,710 --> 01:15:23,250 Tāpēc tas ir samainīti vietām no šīm divām līnijām? 1510 01:15:23,250 --> 01:15:26,110 Ja jūs slēdzis šos divus līnijas apkārt. 1511 01:15:26,110 --> 01:15:30,740 >> Jason Hirshhorn: Labi, tāpēc mums nav vairs, jo mēs esam reset līnija 1512 01:15:30,740 --> 01:15:31,960 Pirms vērtībām i uz vismazāko. 1513 01:15:31,960 --> 01:15:33,810 Tāpēc mēs zaudējām šo sākotnējo vērtību. 1514 01:15:33,810 --> 01:15:37,350 Tātad, jūs teicāt, swap šīs divas līnijas. 1515 01:15:37,350 --> 01:15:41,780 Tātad tagad nodot sākumu saraksta kur mazākais skaits bija. 1516 01:15:41,780 --> 01:15:47,060 Tāpēc smallest_location vienāds vērtības i. 1517 01:15:47,060 --> 01:15:51,310 Kas virzās sākumā šajā neatlasīti daļa no saraksta 1518 01:15:51,310 --> 01:15:52,090 mazākais vietu. 1519 01:15:52,090 --> 01:15:54,860 Un pēc tam uz vērtībām, es, mēs esam pārvietojas ka mazākais skaitlis. 1520 01:15:54,860 --> 01:15:57,450 >> Vai tas ir jēga, kāpēc mēs bija jāveic šo swap? 1521 01:15:57,450 --> 01:15:59,650 Mēs būtu pārrakstīti šo vērtību - Vēl viena lieta, jūs, iespējams, būs 1522 01:15:59,650 --> 01:16:02,740 izpētījuši, un konstatēja IKP. 1523 01:16:02,740 --> 01:16:05,310 Tāpēc mēs esam parūpējušies par visi pseudocode. 1524 01:16:05,310 --> 01:16:10,935 Vai ir kaut kas cits, mēs nepieciešams, lai rakstītu šeit? 1525 01:16:10,935 --> 01:16:14,911 Vai kāds domā par kaut ko? 1526 01:16:14,911 --> 01:16:16,180 >> STUDENTU: Kā jūs zināt, Kad tas ir izdarīts? 1527 01:16:16,180 --> 01:16:17,680 >> Jason Hirshhorn: Kā mēs zināt, kad mēs esam darījuši? 1528 01:16:17,680 --> 01:16:18,890 Liels jautājums. 1529 01:16:18,890 --> 01:16:21,684 Tātad, kā mēs zinām, kad mēs esam darījuši. 1530 01:16:21,684 --> 01:16:24,720 >> STUDENTU: Izveidot mainīgo, lai saglabātu skaits un, ja tur ir swap, kas ir vai nav 1531 01:16:24,720 --> 01:16:27,810 un iet caur caurlaide. 1532 01:16:27,810 --> 01:16:30,180 >> Jason Hirshhorn: OK. 1533 01:16:30,180 --> 01:16:31,800 Kas varētu strādāt burbulis veida. 1534 01:16:31,800 --> 01:16:35,210 Bet atlases veida, ja mums nav veikt mijmaiņas, kas var tikai 1535 01:16:35,210 --> 01:16:38,670 jo mazākā vērtība ir tajā tās pareizo vietu. 1536 01:16:38,670 --> 01:16:41,240 Mums, iespējams, ir saraksts 1, 2, 4, 3. 1537 01:16:41,240 --> 01:16:42,830 Otro reizi cauri mēs nebūs nekādas mijmaiņas darījumus. 1538 01:16:42,830 --> 01:16:47,260 Mēs būsim uz numuru 2, bet mēs joprojām ir nepieciešams, lai saglabātu turpinās. 1539 01:16:47,260 --> 01:16:49,390 Tāpēc mums ir nepieciešams, lai sekotu, kad mēs esam darījuši, vai arī mēs vienkārši gribam iet 1540 01:16:49,390 --> 01:16:50,640 līdz brīdim, kad tas ir pabeigts? 1541 01:16:50,640 --> 01:16:54,098 1542 01:16:54,098 --> 01:16:56,740 >> STUDENTU: Mēs varam tikai iet līdz brīdim, kad tas ir pabeigts. 1543 01:16:56,740 --> 01:16:58,090 >> Jason Hirshhorn: Mēs varam tikai iet, līdz tas ir pabeigts. 1544 01:16:58,090 --> 01:17:01,720 Burbulis veida, jūs esat tieši labi, Jeff un Aleha, ar savu risinājumu - 1545 01:17:01,720 --> 01:17:04,990 tas ir liels, lai izsekot, cik daudz mijmaiņa veicāt, jo burbulis 1546 01:17:04,990 --> 01:17:07,920 kārtot, ja jūs faktiski nav nekādas mijmaiņas darījumi, jūs esat darīts, un jūs varat varbūt samazināt savu 1547 01:17:07,920 --> 01:17:09,000 Problēma leju mazliet. 1548 01:17:09,000 --> 01:17:11,440 Bet atlases veida, jūs esat patiešām got iet līdz beigām 1549 01:17:11,440 --> 01:17:14,940 uzskaitīt katru reizi apkārt. 1550 01:17:14,940 --> 01:17:16,200 >> Tātad tas, ka. 1551 01:17:16,200 --> 01:17:18,530 Mums ir palikušas divas minūtes. 1552 01:17:18,530 --> 01:17:21,560 Veidosim visiem. 1553 01:17:21,560 --> 01:17:24,340 Ļaujiet man tikai atvērt atrast šeit un padarīt pārliecināts, ka es esmu patiešām aicinot uz augšu - 1554 01:17:24,340 --> 01:17:25,610 Es neesmu aicinot burbulis veida. 1555 01:17:25,610 --> 01:17:29,230 Pieņemsim mainīt uz atlases veida. 1556 01:17:29,230 --> 01:17:31,060 darīt visu. / atrast. 1557 01:17:31,060 --> 01:17:32,360 Let 's uzzināt 42. 1558 01:17:32,360 --> 01:17:38,110 Šoreiz mēs gatavojamies nodot nešķiroti sarakstā, jo tas būtu jāsašķiro 1559 01:17:38,110 --> 01:17:43,790 pirmkārt, vienu atrast kodu - būtu jāsašķiro Pirmais, izmantojot mūsu šķirošanas funkciju un pēc tam 1560 01:17:43,790 --> 01:17:44,995 meklēt kaut ko. 1561 01:17:44,995 --> 01:17:46,245 Īkšķus ikvienam. 1562 01:17:46,245 --> 01:17:48,530 1563 01:17:48,530 --> 01:17:49,370 >> Ak, mans Dievs. 1564 01:17:49,370 --> 01:17:50,800 Paga, mana sirds pukstēja. 1565 01:17:50,800 --> 01:17:52,320 Tātad tas ir pareizs. 1566 01:17:52,320 --> 01:17:57,270 Patiesībā, ja mums bija tas vairāk plaši, kodu, cik vien varu 1567 01:17:57,270 --> 01:17:59,280 pateikt, ir pilnīgi pareizs. 1568 01:17:59,280 --> 01:18:02,150 Ir daži ieteikumi Man būtu jums. 1569 01:18:02,150 --> 01:18:06,215 Piemēram, 15 un 16 šķiet mazliet lieks. 1570 01:18:06,215 --> 01:18:09,450 Šķiet, tāpat kā jums nav obligāti nepieciešams, lai saglabātu gan tos. 1571 01:18:09,450 --> 01:18:12,790 Ja Jums ir mazākais atrašanās vietu, jums var viegli atrast mazāko vērtību 1572 01:18:12,790 --> 01:18:14,750 vienkārši ierakstot vērtības i. 1573 01:18:14,750 --> 01:18:18,100 >> Tātad, ja es būtu šķirošanas savu kodu, kas es patiesībā būs, es būtu 1574 01:18:18,100 --> 01:18:21,160 iespējams pacelties punktu, ja ietverts gan no šiem, jo ​​jums 1575 01:18:21,160 --> 01:18:22,670 nav nepieciešams gan no tiem. 1576 01:18:22,670 --> 01:18:25,400 Ja jums ir vietā, jūs varat ir ļoti viegli iegūt vērtību. 1577 01:18:25,400 --> 01:18:27,520 Un šķiet mazliet dīvaini uzglabāt gan no tiem. 1578 01:18:27,520 --> 01:18:31,070 Varbūt nav pat veikt punktu, bet protams, komentēt, ka tas ir iespējams 1579 01:18:31,070 --> 01:18:32,670 nav stilistisko izvēle jums ir nepieciešams veikt. 1580 01:18:32,670 --> 01:18:35,290 Protams, kods vēl iet ļoti labi. 1581 01:18:35,290 --> 01:18:36,860 >> Tāpēc diemžēl mēs neesam nokļūt burbulis veida. 1582 01:18:36,860 --> 01:18:37,940 Es atvainojos par to. 1583 01:18:37,940 --> 01:18:39,135 Mēs to darījām finiša atlases veida. 1584 01:18:39,135 --> 01:18:41,450 Vai kāds ir kādi gala jautājumi par atlases veida? 1585 01:18:41,450 --> 01:18:44,320 1586 01:18:44,320 --> 01:18:47,690 >> Labi, pirms mēs galvu ārā, es gribu jums atvērt savu Chrome pārlūku. 1587 01:18:47,690 --> 01:18:54,340 Žēl, ka bija tikai kliedzošs plug viena veida interneta pārlūku. 1588 01:18:54,340 --> 01:18:57,770 Jūs varat atvērt jebkura veida pārlūku, bet tas droši vien būs Chrome. 1589 01:18:57,770 --> 01:19:01,250 Un doties uz šo tīmekļa vietnē - 1590 01:19:01,250 --> 01:19:06,410 sayat.me/cs50. 1591 01:19:06,410 --> 01:19:07,685 Ja jūs neesat rakstīt datorā tieši tagad, jūs esat skaidri 1592 01:19:07,685 --> 01:19:10,210 to nedarīšu, Tom. 1593 01:19:10,210 --> 01:19:12,870 >> Un, lūdzu, dariet to pa labi tagad vai nākamajā stundā - 1594 01:19:12,870 --> 01:19:14,260 sniegt man atsauksmes. 1595 01:19:14,260 --> 01:19:15,660 Tas ir tikai divi sadaļā. 1596 01:19:15,660 --> 01:19:18,060 Mums ir daudz vairāk kopā, tāpēc es ir daudz vietas, lai uzlabotu. 1597 01:19:18,060 --> 01:19:19,620 Es, cerams, arī bija dažas lietas labi. 1598 01:19:19,620 --> 01:19:22,160 Tātad jūs varat darīt man justies visi slikti, bet, ja Jūs arī vēlaties, lai dotu man smaidiņu 1599 01:19:22,160 --> 01:19:24,250 sejas, es saprotu, ka, kā labi. 1600 01:19:24,250 --> 01:19:25,330 Aizpildīt, ka iekšā 1601 01:19:25,330 --> 01:19:28,210 >> Un ar vienu minūti pa kreisi, tas bija nedēļas trīs. 1602 01:19:28,210 --> 01:19:30,750 Es stāvēt ārā mazliet Ja jums ir kādi jautājumi. 1603 01:19:30,750 --> 01:19:32,220 Es redzu, ka jūs guys lekciju rīt. 1604 01:19:32,220 --> 01:19:34,742