1 00:00:00,000 --> 00:00:06,370 2 00:00:06,370 --> 00:00:08,150 >> ЈАСОН Хирсцххорн: Добродошли до недеље три, сви. 3 00:00:08,150 --> 00:00:11,650 Имамо посла, али узбудљив секција пред нама. 4 00:00:11,650 --> 00:00:17,010 Дакле, прво, зато што смо направили неке помак са курса, али ми и даље 5 00:00:17,010 --> 00:00:20,570 су много учења да се уради, ја сам ће показати да сте неке ресурсе 6 00:00:20,570 --> 00:00:24,160 који би требало да докажу да буде невероватно као корисна не само прићи ваше 7 00:00:24,160 --> 00:00:28,130 проблем поставља, али и дигест све материјал смо вам момци у 8 00:00:28,130 --> 00:00:30,800 предавања и шорц и секција. 9 00:00:30,800 --> 00:00:34,790 >> Онда ћемо да проведемо првих 20 25 минута за одељак иде преко 10 00:00:34,790 --> 00:00:38,630 ГДБ, које може или не може имати користи у овом тренутку, али је 11 00:00:38,630 --> 00:00:42,570 невероватно корисна алатка која ће да вам помогне да отклањања грешака у програмима. 12 00:00:42,570 --> 00:00:46,060 Многи од вас су можда користили у принтф средњи вашег програма да схватим 13 00:00:46,060 --> 00:00:47,430 шта променљива износио. 14 00:00:47,430 --> 00:00:52,060 ГДБ је чак и боље него принтф и не зајебеш своју шифру, јер вам 15 00:00:52,060 --> 00:00:53,320 покрените га на извршну датотеку. 16 00:00:53,320 --> 00:00:56,500 Тако ћемо ићи преко 10 најкориснији команде што је потребно за ГДБ, а ми смо 17 00:00:56,500 --> 00:01:00,540 да идем на вежбе заједно тако у проблему сет три и изван, ви 18 00:01:00,540 --> 00:01:03,320 могу да користе да помогну ГДБ дебуг ваши програми. 19 00:01:03,320 --> 00:01:06,420 И на крају, ми ћемо ићи преко неке сортирање и претраживање алгоритме 20 00:01:06,420 --> 00:01:10,590 да сте видели у предавању, а ми смо ће заправо број, не само 21 00:01:10,590 --> 00:01:17,360 Псеудокод, али код бинарни претрагу, балон врста, и избор врста. 22 00:01:17,360 --> 00:01:20,090 >> Дакле, прво, желим да одем над ресурсима. 23 00:01:20,090 --> 00:01:23,530 То је обиман списак, и то је мањи фонт јер сам имао много тога да 24 00:01:23,530 --> 00:01:24,390 стане овде. 25 00:01:24,390 --> 00:01:26,950 Али то ће вам помоћи не само, опет, са проблемом сетовима и 26 00:01:26,950 --> 00:01:30,760 варе информације сте научили, али дефинитивно, доћи квиз време, то ће 27 00:01:30,760 --> 00:01:32,130 бити невероватно корисно. 28 00:01:32,130 --> 00:01:34,700 Дакле, прво, предавање примећује. 29 00:01:34,700 --> 00:01:39,480 Ако одете на цс50.нет/лецтурес и дођите до специфичног недеље и дана, 30 00:01:39,480 --> 00:01:43,120 видећете да постоје белешке за сваки предавања, која није само 31 00:01:43,120 --> 00:01:47,250 транскрипт, али едитед верзија шта је покривен у предавању са кодом 32 00:01:47,250 --> 00:01:49,610 исечака и друге корисне ситнице. 33 00:01:49,610 --> 00:01:52,220 Топло препоручујем иде преко оне. 34 00:01:52,220 --> 00:01:55,340 И онда као, ту је изворни код доступан из сваког предавања. 35 00:01:55,340 --> 00:02:00,050 И опет, ови слајдови ће такође бити доступан онлине на цс50.нет/сецтионс 36 00:02:00,050 --> 00:02:01,480 ово вече. 37 00:02:01,480 --> 00:02:06,860 >> Дакле, други су бермуде сваке недеље да покривају теме, обично 5 до 15 38 00:02:06,860 --> 00:02:08,090 минута у дужини. 39 00:02:08,090 --> 00:02:12,310 И они надамо ће вам дати велики прајмер на различите теме. 40 00:02:12,310 --> 00:02:12,870 Треће - 41 00:02:12,870 --> 00:02:16,370 и ово је потпуно нови ово године - је студи.цс50.нет. 42 00:02:16,370 --> 00:02:20,110 Ако нисте одјављена, ја Топло препоручујем да то урадите. 43 00:02:20,110 --> 00:02:21,100 Добијате да изаберете тему. 44 00:02:21,100 --> 00:02:23,040 Имамо десетине тема на тамо. 45 00:02:23,040 --> 00:02:24,770 Тако, на пример, можете одабрати функције. 46 00:02:24,770 --> 00:02:27,270 То вам даје неке слајдове и белешке о функцијама. 47 00:02:27,270 --> 00:02:31,190 То су заправо слајдови који подгрупа се подстичу да користе током нашег 48 00:02:31,190 --> 00:02:32,710 презентације у одељку. 49 00:02:32,710 --> 00:02:35,040 Ту је и савети и трикови за бављење са функције, а ту је 50 00:02:35,040 --> 00:02:37,290 пракса проблеми које помажу радите са функцијама. 51 00:02:37,290 --> 00:02:41,500 Ми вам такође дати линкове на кратко функције и времена које функције 52 00:02:41,500 --> 00:02:42,750 су дошли у предавању. 53 00:02:42,750 --> 00:02:46,550 Дакле студи.цс50.нет, потпуно нови ово године, фантастичан ресурс. 54 00:02:46,550 --> 00:02:52,180 >> Даље, имам човека који је за кориснике команда коју можете да покренете на 55 00:02:52,180 --> 00:02:52,770 командне линије. 56 00:02:52,770 --> 00:02:57,880 Дакле, ако имате било каквих питања у вези команда, на пример, Ранд, које смо 57 00:02:57,880 --> 00:03:00,900 наишао је прошле недеље током секцији и ви вероватно сте наишли на 58 00:03:00,900 --> 00:03:05,380 твој проблем сет када пролази кроз генерише код, али ако упишете човека 59 00:03:05,380 --> 00:03:09,980 Ранд, добићете страницу која говори вам све о ранда. 60 00:03:09,980 --> 00:03:14,040 То вам даје оно што је потребно, параметри што је потребно, као и повратак 61 00:03:14,040 --> 00:03:16,530 Тип и кратак опис те функције. 62 00:03:16,530 --> 00:03:17,500 >> Дакле, проверите ранда. 63 00:03:17,500 --> 00:03:22,270 То може бити мало развучен и збуњујуће, па понекад сматрају да 64 00:03:22,270 --> 00:03:26,150 једноставно Гооглинг оно што желим да знам је најбољи начин да се пронађе одговор. 65 00:03:26,150 --> 00:03:27,940 Тако вежбају са Гоогле. 66 00:03:27,940 --> 00:03:28,600 Набавите добар у Гоогле. 67 00:03:28,600 --> 00:03:30,600 То ће постати ваш најбољи пријатељ. 68 00:03:30,600 --> 00:03:34,300 >> Као и Гоогле, ако не можете да пронађете на Гоогле, цс50.нет/дисцусс, то је 69 00:03:34,300 --> 00:03:35,550 Форум. 70 00:03:35,550 --> 00:03:39,390 Шансе су, ако имате питање, један од твојих 700 + вршњацима има да 71 00:03:39,390 --> 00:03:42,110 питање и можда питао већ у расправљати 72 00:03:42,110 --> 00:03:43,540 форуми и да је одговорио. 73 00:03:43,540 --> 00:03:48,130 Дакле, ако имате питање или заједничку имате питање које мислите 74 00:03:48,130 --> 00:03:52,300 Можда други људи можда налетети на, проверите цс50.нет/дисцусс. 75 00:03:52,300 --> 00:03:55,450 >> Коначно, последња два, ако желите да разговарају са право људско биће, канцеларије 76 00:03:55,450 --> 00:03:57,770 сати од понедељка до петка. 77 00:03:57,770 --> 00:04:00,850 Ту је ОнЛине радно време за проширење студенте. 78 00:04:00,850 --> 00:04:04,370 И на крају, али свакако не и најмање важно, ми, знак узвика. 79 00:04:04,370 --> 00:04:05,960 Ви сви имате мој контакт информације. 80 00:04:05,960 --> 00:04:11,940 Ако вам нешто треба, молим те никад оклевајте да ме контактирате. 81 00:04:11,940 --> 00:04:14,020 Увек слободно то урадите. 82 00:04:14,020 --> 00:04:17,490 Врло мало од вас су ме додао на Гцхат, тако да је био разочаравајући, 83 00:04:17,490 --> 00:04:20,410 али надамо се да ће се променити између овај и следећи одељак. 84 00:04:20,410 --> 00:04:22,105 Сва питања до сада о ресурсима? 85 00:04:22,105 --> 00:04:25,670 86 00:04:25,670 --> 00:04:27,450 Сјајно. 87 00:04:27,450 --> 00:04:34,280 >> Коначно, још један утикач за повратне информације, саиат.ме/цс50. 88 00:04:34,280 --> 00:04:37,050 Можете ми дати анонимно повратне о томе како ја радим. 89 00:04:37,050 --> 00:04:38,320 То је заиста корисно прошле недеље. 90 00:04:38,320 --> 00:04:41,890 Имам пар коментара од вас одмах после секција, плус из 91 00:04:41,890 --> 00:04:44,750 остали студенти који га гледали током недеље, и то 92 00:04:44,750 --> 00:04:46,830 је невероватно корисно. 93 00:04:46,830 --> 00:04:50,250 Ја ћу покушати и ограничи своју употребу реч "слатко", али ја ћу показати мој 94 00:04:50,250 --> 00:04:52,410 ентузијазам и узбуђење на друге начине. 95 00:04:52,410 --> 00:04:56,550 Али било је и других додатних суштинске повратне спреге, 96 00:04:56,550 --> 00:04:57,600 оба плусевима и троугао. 97 00:04:57,600 --> 00:05:00,480 Зато молим, ја вас момци дати повратну информацију на вашим проблематичним сетовима. 98 00:05:00,480 --> 00:05:01,790 Слободно ми дају повратне на мом наставе. 99 00:05:01,790 --> 00:05:04,010 Ја сам овде због вас. 100 00:05:04,010 --> 00:05:05,270 >> Сјајно. 101 00:05:05,270 --> 00:05:07,020 То је све што имам за Први део. 102 00:05:07,020 --> 00:05:08,565 Да ли неко има било питања до сада? 103 00:05:08,565 --> 00:05:12,370 104 00:05:12,370 --> 00:05:14,640 И ја имам напомену за контролни центар. 105 00:05:14,640 --> 00:05:21,200 Ектенсион ученици су ме поруком кажу да не добијају никакву аудио, 106 00:05:21,200 --> 00:05:23,870 али то је ван моје моћи да се поправи. 107 00:05:23,870 --> 00:05:25,280 Дакле, надамо се, да добије решен ускоро. 108 00:05:25,280 --> 00:05:28,850 Ако гледаш на мрежи, здраво, али ти не можеш да ме чујеш. 109 00:05:28,850 --> 00:05:33,860 >> Дакле, прво, идемо да иде преко ГДБ. 110 00:05:33,860 --> 00:05:37,100 ГДБ, као што сам раније наговестио, је отклањање грешака алат 111 00:05:37,100 --> 00:05:39,040 много боље него принтф. 112 00:05:39,040 --> 00:05:44,700 Дакле, да почнемо са гдб, момци, ако желите да отворите свој апарат 113 00:05:44,700 --> 00:05:49,070 и да фајл који сам е-поштом на вас раније - овај фајл ће такође бити 114 00:05:49,070 --> 00:05:51,940 доступан онлине на мало - 115 00:05:51,940 --> 00:05:55,700 и рун гдб. / име датотеке. 116 00:05:55,700 --> 00:05:58,580 Прво, наравно, морате да састави филе јер ГДБ само ради на 117 00:05:58,580 --> 00:05:59,890 извршне датотеке. 118 00:05:59,890 --> 00:06:02,300 >> Али ако сте икада желели да покренете ГДБ, прва ствар коју урадите, 119 00:06:02,300 --> 00:06:04,550 наиђете гдб. / Цезара. 120 00:06:04,550 --> 00:06:08,340 Дакле, то је назив програма ми смо да идем са њим одмах. 121 00:06:08,340 --> 00:06:12,810 Зато ћу да пишем направити Цезара, који ће ми дати извршну датотеку 122 00:06:12,810 --> 00:06:14,100 овде означени зеленом бојом. 123 00:06:14,100 --> 00:06:19,250 А онда ћу да покренете ГДБ. / Цесар. 124 00:06:19,250 --> 00:06:19,810 >> И ето га. 125 00:06:19,810 --> 00:06:24,540 Видиш да имамо неки текст ми говори о верзији ГДБ, дајући ми 126 00:06:24,540 --> 00:06:27,570 неке информације гаранција, а онда ћемо имају линију БДП, која изгледа врста 127 00:06:27,570 --> 00:06:29,350 од свиђа наш линији командне линије, али видиш да је отворен 128 00:06:29,350 --> 00:06:32,510 Парен, гдб, блиски заграда. 129 00:06:32,510 --> 00:06:36,520 Пре него што наставимо и дебуг овај фајл који сам послао на све вас, хајде да погледамо 130 00:06:36,520 --> 00:06:40,220 неке корисне команде, тако да имамо осећај од чега ћемо да покрије. 131 00:06:40,220 --> 00:06:45,060 >> Ове команде су овде наведени у поредак у којем сам углавном их користе. 132 00:06:45,060 --> 00:06:50,230 Тако почнем свој програм приказују БМП. / Назив програма, 133 00:06:50,230 --> 00:06:51,360 у овом случају, Цезар. 134 00:06:51,360 --> 00:06:57,430 И онда прва ствар коју урадим 99,9% времена је тип пауза значи. 135 00:06:57,430 --> 00:06:59,070 То поставља брејк на главни. 136 00:06:59,070 --> 00:07:03,260 У суштини, шта радиш тамо је Програм ће зауставити на 137 00:07:03,260 --> 00:07:06,100 Главни тако да можете почети испитивање јој линију по линија,, уместо да све 138 00:07:06,100 --> 00:07:07,040 пут кроз. 139 00:07:07,040 --> 00:07:09,730 Можете прекинути на различитим тачкама у ваш код, али главни је генерално 140 00:07:09,730 --> 00:07:11,870 добро место за почетак. 141 00:07:11,870 --> 00:07:14,840 >> Следећи команда трчим је покренути. 142 00:07:14,840 --> 00:07:17,400 То покреће програм који ради, и ако је потребно да унесете командну линију 143 00:07:17,400 --> 00:07:19,090 аргументи, онда се покрене ту команду. 144 00:07:19,090 --> 00:07:20,500 Покрени са аргументима. 145 00:07:20,500 --> 00:07:25,000 Дакле, пошто смо се иде преко верзију од Ц, који је програм ви 146 00:07:25,000 --> 00:07:26,160 написао за псет два - 147 00:07:26,160 --> 00:07:29,880 ово, наравно, има неке грешке у њој да надамо се да ћемо наћи - 148 00:07:29,880 --> 00:07:32,810 ћемо покренути серију са неком командом лине аргументе јер Цезар, 149 00:07:32,810 --> 00:07:34,860 као ви знате по проблему сет спецификација, узима неки 150 00:07:34,860 --> 00:07:36,380 аргументе командне линије. 151 00:07:36,380 --> 00:07:40,000 >> Следећих неколико команди, следећа један се заправо зове следећи. 152 00:07:40,000 --> 00:07:42,470 Тај неко узме ти линију по линију кроз програм. 153 00:07:42,470 --> 00:07:45,800 Дакле, ударање н онда Ентер вас води до следеће линије, извршавање 154 00:07:45,800 --> 00:07:46,880 претходна линија. 155 00:07:46,880 --> 00:07:49,440 Корак вас води не само до следећи ред, али то 156 00:07:49,440 --> 00:07:51,070 Потребно вам унутар функције. 157 00:07:51,070 --> 00:07:54,310 Дакле, ако сте написали функцију у Ваш број или ако желите да истражите 158 00:07:54,310 --> 00:07:57,820 до и, на пример, можете да удари с, и уместо да иде у следећи ред 159 00:07:57,820 --> 00:08:02,390 фајл који идете кроз права сада, ви ћете заправо корак у 160 00:08:02,390 --> 00:08:04,670 ова функција и видети свој код. 161 00:08:04,670 --> 00:08:12,300 >> Листа показује, у врло корисник пријатан формату, на 10-ак линија око 162 00:08:12,300 --> 00:08:14,940 где се тренутно налазите у вашем коду тако да у ствари можете видети датотеку 163 00:08:14,940 --> 00:08:17,810 уместо да замене уназад и назад између различитих ставова. 164 00:08:17,810 --> 00:08:21,890 Штампа је као принтф, као што само име говори. 165 00:08:21,890 --> 00:08:24,020 То вам показује какав је једнако променљива. 166 00:08:24,020 --> 00:08:25,870 >> Инфо мештани је заиста корисно. 167 00:08:25,870 --> 00:08:27,740 То је посебна верзија печати. 168 00:08:27,740 --> 00:08:31,770 Инфо мештани вам показује све локалне варијабле, штампа их све за тебе 169 00:08:31,770 --> 00:08:33,380 који су тренутно доступни. 170 00:08:33,380 --> 00:08:36,360 Па ја уопште, уместо да одштампате четири варијабле које сам ја 171 00:08:36,360 --> 00:08:39,929 занима ако сам у за петље, за пример, ја само пишем инфо мештани, 172 00:08:39,929 --> 00:08:43,470 и то ме шта је мој бројач и показати једнако, као и низа који сам 173 00:08:43,470 --> 00:08:45,130 ради на једнакима. 174 00:08:45,130 --> 00:08:47,530 >> Коначно, наставите. 175 00:08:47,530 --> 00:08:49,300 Куцање паузу вам стане у тренутку распада. 176 00:08:49,300 --> 00:08:51,380 Можете ходати кроз линије по линија са следећи корак и. 177 00:08:51,380 --> 00:08:55,640 Наставити покрене програм на ваш следећи бреак поен или до окончања ако 178 00:08:55,640 --> 00:08:57,180 нема више бреак бодова. 179 00:08:57,180 --> 00:09:00,060 Онемогућавање уклања брејк ако вам одлучио пауза на главни је 180 00:09:00,060 --> 00:09:01,890 неприкладан, желите да поставите је негде другде. 181 00:09:01,890 --> 00:09:05,090 И коначно к, отказ, добија од ГДБ. 182 00:09:05,090 --> 00:09:10,784 >> Дакле овај програм,. / Цезар, идемо да погледате сада и ми 183 00:09:10,784 --> 00:09:13,490 намеравате да користите ГДБ да пронађе грешке у овом програму. 184 00:09:13,490 --> 00:09:18,110 Трчао сам овај програм раније са Проверите 50, а ја имам једну мрштење. 185 00:09:18,110 --> 00:09:22,310 Све је постојао, он саставио, то донела много тестова, али за 186 00:09:22,310 --> 00:09:27,950 неки разлог, то није прошао пети Тест, окретање БАРФОО, све капе, у 187 00:09:27,950 --> 00:09:33,350 Е-Д-У-И-Р-Р, сви капе, користећи три као кључ. 188 00:09:33,350 --> 00:09:34,090 Био сам врло близу. 189 00:09:34,090 --> 00:09:35,410 Сишао сам по једно слово. 190 00:09:35,410 --> 00:09:37,340 Дакле, постоји нека мала грешка у овде. 191 00:09:37,340 --> 00:09:38,070 Погледао сам кроз мој код. 192 00:09:38,070 --> 00:09:38,850 Нисам могао да схватим. 193 00:09:38,850 --> 00:09:41,740 Надамо се, ви можете да ми помогнете схватим шта ово буба је. 194 00:09:41,740 --> 00:09:44,610 >> Дакле, то је грешка смо у потрази за. 195 00:09:44,610 --> 00:09:46,090 Идемо у ГДБ. 196 00:09:46,090 --> 00:09:51,100 Опет, ја сам покренути ГДБ. / Цезара, па сад смо у ГДБ. 197 00:09:51,100 --> 00:09:54,290 А шта је први ствар коју треба да урадим? 198 00:09:54,290 --> 00:09:56,680 Управо сам ушао ГДБ. 199 00:09:56,680 --> 00:10:00,316 Нека ми неко дати добар команда за улазак. 200 00:10:00,316 --> 00:10:01,140 >> СТУДЕНТСКА: Бреак главни. 201 00:10:01,140 --> 00:10:01,800 >> ЈАСОН Хирсцххорн: Пауза главни. 202 00:10:01,800 --> 00:10:02,900 Фантастично. 203 00:10:02,900 --> 00:10:03,560 Хајде да куцате да унутра 204 00:10:03,560 --> 00:10:06,390 Ви можете гледати овде или пратите заједно на својим рачунарима. 205 00:10:06,390 --> 00:10:09,410 Бреак главни, и видећете Пауза тачка је постављена на - 206 00:10:09,410 --> 00:10:12,340 то ми даје неку чудну меморијску адресу, и то ми даје број реда. 207 00:10:12,340 --> 00:10:15,310 Ако бих да се осврнем на овај фајл, Ја бих схватити да је главни 208 00:10:15,310 --> 00:10:17,700 догодило на линији 21. 209 00:10:17,700 --> 00:10:18,950 Шта би требало да следећи покренути? 210 00:10:18,950 --> 00:10:22,970 211 00:10:22,970 --> 00:10:25,060 Да ли је мој програм ради? 212 00:10:25,060 --> 00:10:25,650 Не. 213 00:10:25,650 --> 00:10:27,175 Дакле, шта би требало да раде следећи? 214 00:10:27,175 --> 00:10:27,520 >> СТУДЕНТСКИ: Рун. 215 00:10:27,520 --> 00:10:28,050 >> ЈАСОН Хирсцххорн: Рун. 216 00:10:28,050 --> 00:10:30,760 Да ли да само Рун Рун, или треба Да додам неке друге ствари у? 217 00:10:30,760 --> 00:10:31,960 >> СТУДЕНТСКА: Покрени са аргументом. 218 00:10:31,960 --> 00:10:33,320 >> ЈАСОН Хирсцххорн: Покрени са команда аргументи. 219 00:10:33,320 --> 00:10:36,420 А пошто сам дебуггинг веома специфичан случај, ја треба да уђе да 220 00:10:36,420 --> 00:10:37,120 Аргумент командне линије. 221 00:10:37,120 --> 00:10:42,290 Дакле, ја ћу то покренути три, што је, опет, излаз сам добио од 50 Цхецк. 222 00:10:42,290 --> 00:10:44,240 Покретање програма. 223 00:10:44,240 --> 00:10:45,420 Ми идемо кроз неколико линија. 224 00:10:45,420 --> 00:10:47,700 Сада ћете видети да смо на линији 21. 225 00:10:47,700 --> 00:10:49,200 Како да знам да смо на линији 21? 226 00:10:49,200 --> 00:10:52,170 Јер, ако се осврнемо на лево мог прозора терминала, тамо 227 00:10:52,170 --> 00:10:53,120 пише линију 21. 228 00:10:53,120 --> 00:10:57,010 И то ми даје, заправо, код који је на линији 21. 229 00:10:57,010 --> 00:10:58,440 Тако сам погрешио раније. 230 00:10:58,440 --> 00:10:59,770 Главни није заправо на линији 21. 231 00:10:59,770 --> 00:11:02,000 Главни је пар редова изнад 21. 232 00:11:02,000 --> 00:11:04,300 Али на линији 21, који је где смо разбијање. 233 00:11:04,300 --> 00:11:06,280 Ова линија кода има још није извршена. 234 00:11:06,280 --> 00:11:06,890 То је важно. 235 00:11:06,890 --> 00:11:09,120 Линија видиш има не још није извршена. 236 00:11:09,120 --> 00:11:12,650 То је следећа линија кода сте у вези да изврши. 237 00:11:12,650 --> 00:11:15,860 >> Дакле, следећи ред, као ви сте вероватно упознати са, је ово 238 00:11:15,860 --> 00:11:20,070 проверу услов да видим да ли имам унели аргумент командне линије. 239 00:11:20,070 --> 00:11:22,140 И да ја, шта је друго део који иде? 240 00:11:22,140 --> 00:11:23,457 Шта је до и? 241 00:11:23,457 --> 00:11:24,950 >> СТУДЕНТСКА: Промена је на цео број. 242 00:11:24,950 --> 00:11:25,450 >> ЈАСОН Хирсцххорн: Извините? 243 00:11:25,450 --> 00:11:27,400 >> СТУДЕНТСКА: Мења Аргумент на цео број. 244 00:11:27,400 --> 00:11:30,890 >> ЈАСОН Хирсцххорн: Значи да сам мења АРГ В1 из ниске у цео број. 245 00:11:30,890 --> 00:11:32,140 И онда шта се то проверава? 246 00:11:32,140 --> 00:11:35,414 247 00:11:35,414 --> 00:11:37,112 >> СТУДЕНТСКА: Ако постоји други командна линија аргумент, осим 248 00:11:37,112 --> 00:11:38,100 покретање програма. 249 00:11:38,100 --> 00:11:39,460 >> ЈАСОН Хирсцххорн: А шта је друга половина ове 250 00:11:39,460 --> 00:11:41,220 Проверу Булова израз? 251 00:11:41,220 --> 00:11:42,540 Овај део овде, до и? 252 00:11:42,540 --> 00:11:44,080 >> СТУДЕНТСКА: Ако је негативан. 253 00:11:44,080 --> 00:11:45,380 >> ЈАСОН Хирсцххорн: Упућивање сигурни шта? 254 00:11:45,380 --> 00:11:47,120 >> СТУДЕНТСКА: Макинг сигурни да је, у ствари, позитивна. 255 00:11:47,120 --> 00:11:47,650 >> ЈАСОН Хирсцххорн: Управо тако. 256 00:11:47,650 --> 00:11:50,600 Ово проверава да види да ли је то негативан, а ако је негативан, ја 257 00:11:50,600 --> 00:11:53,220 имају осећај следећу линију моћ се ми виче на корисника. 258 00:11:53,220 --> 00:11:55,930 Па хајде да удари крај да изврши ову линију. 259 00:11:55,930 --> 00:11:59,925 Ми не видимо ту линију коју сте момци можда очекује да види да виче на 260 00:11:59,925 --> 00:12:03,030 корисник, а затим враћају, јер ова линија није погубити. 261 00:12:03,030 --> 00:12:03,840 Ушао сам 3. 262 00:12:03,840 --> 00:12:06,860 Па ја нисам, у ствари, унесите два команду линија аргумената, и 3 је 263 00:12:06,860 --> 00:12:07,610 већа од нуле. 264 00:12:07,610 --> 00:12:09,950 Дакле, видели смо ту линију, погубљен ми, али нисмо корак 265 00:12:09,950 --> 00:12:11,300 унутар уколико стању. 266 00:12:11,300 --> 00:12:17,060 >> Тако сада, поред, видим ја постављање ИНТ тастер једнако да ја арг в1. 267 00:12:17,060 --> 00:12:18,840 Дакле, то је моје стварање променљиву кључ. 268 00:12:18,840 --> 00:12:22,450 Дакле, ако сам одштампате кључ сада, јер који вам омогућава да видите 269 00:12:22,450 --> 00:12:26,040 вредност у променљивој, кључ једнака 47. 270 00:12:26,040 --> 00:12:28,810 То је чудно, али наравно, то је зато што нема 271 00:12:28,810 --> 00:12:30,490 погубљен још ту линију. 272 00:12:30,490 --> 00:12:35,880 Тако да сада, ако сам погодио Н, изврши ту линију, и урадити кључ штампе, тастер ће износити 3, 273 00:12:35,880 --> 00:12:37,740 што је оно што очекујемо да се једнака. 274 00:12:37,740 --> 00:12:41,170 >> Дакле, опет, у ГДБ, на тебе ред Видим да још увек нисте погубљен. 275 00:12:41,170 --> 00:12:44,850 Морате да притиснете Н или С или број од других команди у ствари 276 00:12:44,850 --> 00:12:46,610 извршава ту линију. 277 00:12:46,610 --> 00:12:47,380 Штампање кључ. 278 00:12:47,380 --> 00:12:48,280 Кључни је на 3. 279 00:12:48,280 --> 00:12:49,750 До сада, тако добро. 280 00:12:49,750 --> 00:12:51,000 Стринг је обичан текст. 281 00:12:51,000 --> 00:12:52,270 Хајде да изврши ту линију. 282 00:12:52,270 --> 00:12:53,970 Идем низ од корисника. 283 00:12:53,970 --> 00:12:58,690 >> Да видимо у мом Цхецк 50, ја унесите БАРФОО све капе, тако 284 00:12:58,690 --> 00:13:01,330 то је оно што ћу ући. 285 00:13:01,330 --> 00:13:07,300 Ако ја сада одштампали обичан текст. 286 00:13:07,300 --> 00:13:08,610 Видећете једнак је стринг. 287 00:13:08,610 --> 00:13:11,100 То ми даје неки други чудан хексадецималном број, али то ради у 288 00:13:11,100 --> 00:13:13,620 Чињеница рећи да је мој стринг БАРФОО. 289 00:13:13,620 --> 00:13:19,308 Да сам хтео да видим шта кључ износи на ова тачка, како бих могао да проверим кључ? 290 00:13:19,308 --> 00:13:20,710 >> СТУДЕНТСКА: Штампа кључ. 291 00:13:20,710 --> 00:13:22,010 >> ЈАСОН Хирсцххорн: Штампа кључ, тачно. 292 00:13:22,010 --> 00:13:23,260 И заиста, постоји пречица. 293 00:13:23,260 --> 00:13:25,910 Ако се уморите од куцања принт, можете само укуцати стр. 294 00:13:25,910 --> 00:13:28,340 Дакле, стр тастер ради исти ствар. 295 00:13:28,340 --> 00:13:29,730 И опет, ја видим то је једнако 3. 296 00:13:29,730 --> 00:13:34,760 >> Ако сам желео да сазнам шта обоје тастер и БАРФОО износила истовремено 297 00:13:34,760 --> 00:13:37,215 али сам био уморан од куцања сваке један од појединачно, ја 298 00:13:37,215 --> 00:13:38,590 да откуцате инфо локалце. 299 00:13:38,590 --> 00:13:41,170 То ми даје кључне износи 3. 300 00:13:41,170 --> 00:13:42,500 Чист текст једнако БАРФОО. 301 00:13:42,500 --> 00:13:45,265 То ми даје те две чудне ствари на врху, то променљива и и 302 00:13:45,265 --> 00:13:46,590 ово променљива н. 303 00:13:46,590 --> 00:13:48,460 >> Они су заправо постојеће у мом главном програму. 304 00:13:48,460 --> 00:13:51,280 Нисмо их још наишао, али као преглед, они 305 00:13:51,280 --> 00:13:52,880 постоји у мом за петљу. 306 00:13:52,880 --> 00:13:55,360 Тако сада, они су једнаки неки чудан бројеве, јер нису били 307 00:13:55,360 --> 00:13:58,300 иницијализован још, али они и даље постоје у меморији, тако да они само сет 308 00:13:58,300 --> 00:14:00,220 до неке вредности за смеће. 309 00:14:00,220 --> 00:14:02,890 Али ми не видимо кључ у равници текст тамо. 310 00:14:02,890 --> 00:14:06,390 >> Зато ћу да изврши ову линију, линија 34, за петље. 311 00:14:06,390 --> 00:14:08,220 Идемо да скочи у за петљу од удара н. 312 00:14:08,220 --> 00:14:10,050 И ми смо унутра за петље. 313 00:14:10,050 --> 00:14:11,360 Ми смо у нашој првој провери. 314 00:14:11,360 --> 00:14:14,300 И опет, ово би требало да изгледају некако познато, јер је то био 315 00:14:14,300 --> 00:14:18,080 Цезар програм који је написан, али опет, има неку врсту грешке. 316 00:14:18,080 --> 00:14:21,940 >> И сад ако ја урадим инфо мештана, јер сам унутра да за петљу, видећете 317 00:14:21,940 --> 00:14:23,900 да сам једнако нули, као што очекујемо. 318 00:14:23,900 --> 00:14:26,820 То је оно што смо га поставили на и иницијализована је да се у за петље. 319 00:14:26,820 --> 00:14:27,560 н једнако 6. 320 00:14:27,560 --> 00:14:30,700 То има смисла, јер смо поставили то на стрлен за обичан текст. 321 00:14:30,700 --> 00:14:34,270 Зато ја волим да радим инфо локалце или принт на променљиву често да се уверите да 322 00:14:34,270 --> 00:14:36,370 све је увек оно Ја очекујем да једнака. 323 00:14:36,370 --> 00:14:39,800 У овом случају, све је шта ја очекујем да једнака. 324 00:14:39,800 --> 00:14:41,850 >> Почнимо креће кроз ово за петљу. 325 00:14:41,850 --> 00:14:45,715 Ја сам на ред је ред 36, ако обичан текст и је већи од и обичан 326 00:14:45,715 --> 00:14:48,540 текст и је мања од или једнака з. 327 00:14:48,540 --> 00:14:51,880 Знам да мој проблем није са мој први писмо, то је са другом писму. 328 00:14:51,880 --> 00:14:56,290 Ако се осврнемо на Цхецк 50, Б иде Е казном. 329 00:14:56,290 --> 00:14:59,010 Узимам А и остављајући га као , не мења на Д. Со 330 00:14:59,010 --> 00:15:00,200 нешто није у реду са друго слово. 331 00:15:00,200 --> 00:15:01,640 Зато ћу да се крећу тамо за секунду. 332 00:15:01,640 --> 00:15:06,030 >> Али ако ја нисам хтео да проверим шта равницу Текст сам износио у овом конкретном 333 00:15:06,030 --> 00:15:07,760 случај, мислим да би требало да буде шта? 334 00:15:07,760 --> 00:15:10,980 Шта би требало да обичан текст сам равно у ово Први круг кроз за петљу? 335 00:15:10,980 --> 00:15:14,046 336 00:15:14,046 --> 00:15:15,110 >> СТУДЕНТСКА: Нула? 337 00:15:15,110 --> 00:15:16,510 >> ЈАСОН Хирсцххорн: Чист текст И? 338 00:15:16,510 --> 00:15:21,180 Дакле, требало би да буде главни Б. И, наравно, једнака нули, али обичан текст 339 00:15:21,180 --> 00:15:25,600 носач нула затворена заграда једнак Б јер жице, као што смо видели прошле недеље, 340 00:15:25,600 --> 00:15:28,650 су низ, па ми смо све Први знак тога. 341 00:15:28,650 --> 00:15:34,960 Па опет, ако сам штампати обичан текст Ја, ја, у ствари, добити карактер 342 00:15:34,960 --> 00:15:36,560 Б. И то је уредан, зар не? 343 00:15:36,560 --> 00:15:40,380 Не заправо имају чистог текста И. То није једна од варијабли сам постављеним 344 00:15:40,380 --> 00:15:42,950 или иницијализован, али можете да одштампате се мноштво ствари 345 00:15:42,950 --> 00:15:45,640 ако желите да. 346 00:15:45,640 --> 00:15:47,340 >> Али да идемо путем. 347 00:15:47,340 --> 00:15:50,050 Ако обичан текст сам већи од А и обичан текст И је мања или једнака 348 00:15:50,050 --> 00:15:53,290 З, који јасно је истина, јер имамо капитал Б. ћу да покренете 349 00:15:53,290 --> 00:15:54,230 неке команде на њему. 350 00:15:54,230 --> 00:15:58,530 Видели смо да је математику прошле недеље, па ћемо узети здраво за готово да то ради 351 00:15:58,530 --> 00:16:00,900 право према Цхецк 50. 352 00:16:00,900 --> 00:16:03,720 >> Ови цурли протеза, први показао да сам излазак ако 353 00:16:03,720 --> 00:16:07,030 услов, други је показао да сам излазак за петљу. 354 00:16:07,030 --> 00:16:10,400 И тако сад кад сам ударио Даље, видећемо вратили смо се на си за петљу поново. 355 00:16:10,400 --> 00:16:11,970 Идемо кроз за петљу поново. 356 00:16:11,970 --> 00:16:18,110 Хајде да заправо корак у секунди итерација петље за и врсти 357 00:16:18,110 --> 00:16:20,520 инфо мештани. 358 00:16:20,520 --> 00:16:22,190 >> Дакле, ми смо у другој итерацији за наше петље. 359 00:16:22,190 --> 00:16:24,530 Ја једнак 1, који очекујемо. 360 00:16:24,530 --> 00:16:26,650 Н једнака 6, који очекујемо. 361 00:16:26,650 --> 00:16:28,810 Кључ једнако 3, који очекујемо. 362 00:16:28,810 --> 00:16:32,625 И обичан текст, видећете, једнако ЕАРФОО сада, не више, јер БАРФОО 363 00:16:32,625 --> 00:16:37,930 у нашем претходном итерацији, Б је промењен у престоници Е. Дакле, ми смо о томе 364 00:16:37,930 --> 00:16:40,040 да ће наићи на проблем, па ово је место где ћемо 365 00:16:40,040 --> 00:16:41,130 зароните у дебаговање. 366 00:16:41,130 --> 00:16:43,365 Али, да ли неко има било каква питања о томе шта смо урадили до сада? 367 00:16:43,365 --> 00:16:46,770 368 00:16:46,770 --> 00:16:47,910 Фантастично. 369 00:16:47,910 --> 00:16:52,710 >> Дакле, ми смо о томе да се изврши ово ако стање, обичан текст конзола сам затворен 370 00:16:52,710 --> 00:16:57,500 носач већи од А и обичан текст ја мање од или једнако З. Али пре 371 00:16:57,500 --> 00:17:00,450 Ја улазим у то, јер то је место где Знам да моја грешка је, ја желим да истакнем 372 00:17:00,450 --> 00:17:06,859 од чистог текста И. Тако хајде да стави отисак напоље. 373 00:17:06,859 --> 00:17:12,020 То се једнак карактера А, тако да изгледа тако далеко, све је добро и добро. 374 00:17:12,020 --> 00:17:14,740 >> Тако да очекујем ову линију по мом логике, ова линија би требало да буде истина. 375 00:17:14,740 --> 00:17:16,099 То је велико слово. 376 00:17:16,099 --> 00:17:20,599 Али, ако сам погодио Н, ми схватамо да ово линија, у ствари, није извршавала. 377 00:17:20,599 --> 00:17:22,609 Скочио сам до иф. 378 00:17:22,609 --> 00:17:25,460 Зашто се то десило? 379 00:17:25,460 --> 00:17:27,480 >> СТУДЕНТСКА: Зато што имате стање од чистог текста већа 380 00:17:27,480 --> 00:17:29,130 него, не једнак или већи од. 381 00:17:29,130 --> 00:17:32,260 >> ЈАСОН Хирсцххорн: Па имао сам чисти текст И је већи од, није већи 382 00:17:32,260 --> 00:17:32,850 од или једнако. 383 00:17:32,850 --> 00:17:38,130 Дакле јасно, капитал није активирати уколико овај услов, а ми смо урадили 384 00:17:38,130 --> 00:17:40,520 не закорачите у њега, а ми смо урадили не потребну промену. 385 00:17:40,520 --> 00:17:41,360 Дакле, то је то, заправо. 386 00:17:41,360 --> 00:17:42,920 Ја схватио своју грешку. 387 00:17:42,920 --> 00:17:46,775 Могао бих да се вратим у моју изворној датотеци, промените га, и ажурирати га и 388 00:17:46,775 --> 00:17:47,855 покрените Цхецк 50 поново. 389 00:17:47,855 --> 00:17:52,590 >> Али, видећемо, само за педагогија је саке, ако ја наставим. 390 00:17:52,590 --> 00:17:59,580 Иначе, ако не извршава ни, али шта уместо тога једнако је команда 391 00:17:59,580 --> 00:18:00,500 да се не мења. 392 00:18:00,500 --> 00:18:04,840 Дакле, то није променило уопште, и ако ја принт чисти текст овде, видећемо идемо 393 00:18:04,840 --> 00:18:08,250 кроз то за петљу није, у ствари, променити тај други лик уопште. 394 00:18:08,250 --> 00:18:09,600 То је још увек главни А. 395 00:18:09,600 --> 00:18:12,690 >> Па опет, дебуггед смо нашу грешку. 396 00:18:12,690 --> 00:18:17,380 Схватили смо да постоји нека логика недостаје. 397 00:18:17,380 --> 00:18:20,590 И ми смо га дебуггед испред времена пре заправо извршава ту линију, 398 00:18:20,590 --> 00:18:24,320 али ти би приметили имали смо само Даље ударио и скок на друго да ако, 399 00:18:24,320 --> 00:18:26,710 то значи да, ако је услов није истина. 400 00:18:26,710 --> 00:18:29,550 Ми не, у ствари, добити Резултат који смо очекивали. 401 00:18:29,550 --> 00:18:33,240 Онда смо се могло затражи, имао ми није био толико мудар, да погледате 402 00:18:33,240 --> 00:18:38,510 да ако стање и провери да ли, у ствари, наш услов треба да процени да 403 00:18:38,510 --> 00:18:41,150 тачно у тренутном контексту. 404 00:18:41,150 --> 00:18:42,880 >> То је све за отклањање грешака у овај програм. 405 00:18:42,880 --> 00:18:45,340 Да ли ико има било каквих питања? 406 00:18:45,340 --> 00:18:50,486 Шта команда могла да удари на отказ ГДБ? 407 00:18:50,486 --> 00:18:53,900 П: А онда ћу бити затражено, отказ у сваком случају? 408 00:18:53,900 --> 00:18:54,390 Да или не. 409 00:18:54,390 --> 00:18:58,440 Ја ћу погодити да, и ја ћу се престати ГДБ. 410 00:18:58,440 --> 00:19:00,860 >> Дакле, то је био брз прајмер за ГДБ. 411 00:19:00,860 --> 00:19:03,430 Заправо, у реалном сценарију, Урадио сам то у радног времена. 412 00:19:03,430 --> 00:19:06,710 Ја ГДБед ово тачан програм на Радно време са студентом. 413 00:19:06,710 --> 00:19:12,410 А ако се вратимо у команди смо видели пре, користили смо бреак маин, прво 414 00:19:12,410 --> 00:19:13,190 ствар коју смо урадили. 415 00:19:13,190 --> 00:19:16,060 Користили смо трку са аргументе командне линије, Друга ствар коју смо урадили. 416 00:19:16,060 --> 00:19:18,520 Ми поред половних много да се креће нас преко линије. 417 00:19:18,520 --> 00:19:20,310 И опет, кратка верзија од следећа је н. 418 00:19:20,310 --> 00:19:22,920 То је у заградама у сиво на слајду. 419 00:19:22,920 --> 00:19:28,590 >> Нисмо користили корак, али нисмо нужно морају да за овај случај. 420 00:19:28,590 --> 00:19:32,150 Али можемо га користити у мало касније данас ако смо отклањање грешака, за 421 00:19:32,150 --> 00:19:36,500 пример, бинарни претраживање када бинарни претраживање се назива у посебан 422 00:19:36,500 --> 00:19:38,200 функција, али ту је нека грешка са њом. 423 00:19:38,200 --> 00:19:40,440 Ми ћемо желети да ступи у позив на бинарну претрагу и 424 00:19:40,440 --> 00:19:41,840 заправо то дебуг. 425 00:19:41,840 --> 00:19:45,130 Листа нисмо користили ни јер смо имали добар смисао нашег кода, али ако ја 426 00:19:45,130 --> 00:19:48,420 да ли желите да добијете осећај шта сам код била око, ја само могу да користим листу. 427 00:19:48,420 --> 00:19:50,310 >> Принт смо користили, инфо мештана смо користили. 428 00:19:50,310 --> 00:19:53,260 Наставите да нам не треба користити у овом случај, нити да ли морамо да користимо 429 00:19:53,260 --> 00:19:55,060 онемогућити, али смо урадили употреба отказ. 430 00:19:55,060 --> 00:19:57,850 Опет, ови 10 команде, вежбају их. 431 00:19:57,850 --> 00:20:00,770 Ако разумете ове команде 10, требало би да буде постављен за отклањање грешака било 432 00:20:00,770 --> 00:20:02,525 издаје са ГДБ. 433 00:20:02,525 --> 00:20:05,230 434 00:20:05,230 --> 00:20:08,420 >> Дакле, ми смо о томе да се иде на, опет, да Срж секције данас, иде преко 435 00:20:08,420 --> 00:20:09,720 ово сортирање и претраживање алгоритми. 436 00:20:09,720 --> 00:20:14,075 Пре него што то урадите, опет, било каква питања, коментари, забринутост за ГДБ? 437 00:20:14,075 --> 00:20:16,750 438 00:20:16,750 --> 00:20:20,960 Тако се сви ће користити ГДБ уместо иф? 439 00:20:20,960 --> 00:20:24,550 Дакле сви, ради недоглед а, сви климају главом право 440 00:20:24,550 --> 00:20:27,400 сада, па ћу вас видети на радног времена и сви ће вас подгрупа и видети 441 00:20:27,400 --> 00:20:29,460 они ће рећи, покажи ми како се користи ГДБ, а ви ћете бити у могућности 442 00:20:29,460 --> 00:20:31,240 да им покажем, зар не? 443 00:20:31,240 --> 00:20:31,760 Врста? 444 00:20:31,760 --> 00:20:32,640 Можда надамо. 445 00:20:32,640 --> 00:20:33,670 Цоол. 446 00:20:33,670 --> 00:20:35,790 >> Тако ћемо да се креће у сортирање и претраживање. 447 00:20:35,790 --> 00:20:40,710 Видећете имам списак већ сортираних за нас, али то не иде 448 00:20:40,710 --> 00:20:42,220 да буде случај увек. 449 00:20:42,220 --> 00:20:49,170 Дакле, у проблему сет спецификација за Проблем сет три, имате шортс 450 00:20:49,170 --> 00:20:51,410 који можете гледати, и то је заправо тражи од вас да гледате те гаће. 451 00:20:51,410 --> 00:20:55,090 Такође, у предавању прошле недеље, отишли ​​смо преко Многе од тих алгоритама, тако да сам 452 00:20:55,090 --> 00:20:59,150 неће да проводе време у класи иде изнова ових алгоритама или цртеж 453 00:20:59,150 --> 00:21:01,130 слике за како ове алгоритми раде. 454 00:21:01,130 --> 00:21:04,030 Опет, да информације можете поново сат предавање, или да информације 455 00:21:04,030 --> 00:21:08,570 је изузетно заробљен на шорцу за ове претраге, све 456 00:21:08,570 --> 00:21:10,920 који су доступни на цс50.нет. 457 00:21:10,920 --> 00:21:14,200 >> Дакле, уместо, шта ћемо да урадите је писати ове програме. 458 00:21:14,200 --> 00:21:18,190 Имамо осећај, ментални модел, како они раде, па шта ћемо 459 00:21:18,190 --> 00:21:20,210 да урадите је да их кодира за стварно. 460 00:21:20,210 --> 00:21:23,430 Идемо да ту ментални модел, та слика, ако хоћете, у 461 00:21:23,430 --> 00:21:24,960 Стварни број. 462 00:21:24,960 --> 00:21:28,460 А ако сте били мало збуњени или магловита на менталном моделу, ја тотално 463 00:21:28,460 --> 00:21:28,770 разумети. 464 00:21:28,770 --> 00:21:30,540 >> Ми заправо не иде у скок кодекса одмах. 465 00:21:30,540 --> 00:21:36,030 Дакле, док је овај брз у овом слајду пита да кодирају бинарну претрагу, и 466 00:21:36,030 --> 00:21:39,470 заправо, итеративни верзија бинарни претрагу, прва ствар коју сам 467 00:21:39,470 --> 00:21:42,370 Заиста желим да урадите је да напиши нешто Псеудокод. 468 00:21:42,370 --> 00:21:47,020 Дакле, ви имате овај ментални модел како бинарни претрагу радови. 469 00:21:47,020 --> 00:21:50,060 Извадите лист папира ако имате један лако доступна, или отвори 470 00:21:50,060 --> 00:21:52,520 текст едитор, и ја бих сви да пишу. 471 00:21:52,520 --> 00:21:57,470 Узмите четири минута да напише Псеудокод за бинарну претрагу. 472 00:21:57,470 --> 00:21:58,990 >> Опет, мислим да о том менталном моделу. 473 00:21:58,990 --> 00:22:01,980 Ја ћу доћи око ако имате питања и можемо извући слику напоље. 474 00:22:01,980 --> 00:22:06,220 Али прво, пре него што почнемо програмирање, Волео бих да пишем 475 00:22:06,220 --> 00:22:09,920 Псеудокод за бинарну претрагу тако када смо зароните у, имамо неке правац као 476 00:22:09,920 --> 00:22:12,110 где смо требали да кренемо. 477 00:22:12,110 --> 00:22:15,330 >> СТУДЕНТСКА: Можемо претпоставити низ Вредности које добијамо већ сортирани? 478 00:22:15,330 --> 00:22:17,960 >> ЈАСОН Хирсцххорн: Дакле, за бинарну претрагу на посао - одлично питање - ви 479 00:22:17,960 --> 00:22:20,970 узети у сортирана низ вредности. 480 00:22:20,970 --> 00:22:22,290 Тако претпоставити да ће радити. 481 00:22:22,290 --> 00:22:23,480 Ми ћемо се вратити на овај слајд. 482 00:22:23,480 --> 00:22:27,220 Видећете у љубичастој функцији Декларација је боол инт бинари_сеарцх 483 00:22:27,220 --> 00:22:29,230 вредност, инт вредности, инт н. 484 00:22:29,230 --> 00:22:32,910 То би требало да изгледа познато ако сте већ пришао или стечен ваше 485 00:22:32,910 --> 00:22:34,580 руке прљаве са сетом проблема. 486 00:22:34,580 --> 00:22:35,910 >> Али то је твоја изјава функција. 487 00:22:35,910 --> 00:22:39,080 Опет, не би требало да брину о толико у овом тренутку. 488 00:22:39,080 --> 00:22:43,660 Оно што ја заиста желим да урадите је да Четири минута до Псеудокод бинарни 489 00:22:43,660 --> 00:22:46,380 тражи, а онда ћемо ићи преко тога као група. 490 00:22:46,380 --> 00:22:47,500 И ја ћу доћи око. 491 00:22:47,500 --> 00:22:49,590 Уколико имате питања, осећају слободно да подигне руку. 492 00:22:49,590 --> 00:25:07,110 493 00:25:07,110 --> 00:25:09,680 >> Зашто не узмеш још два минута завршити у Псеудокод? 494 00:25:09,680 --> 00:25:13,690 495 00:25:13,690 --> 00:25:15,820 Знам да ово може изгледати смешно да трошимо толико времена на 496 00:25:15,820 --> 00:25:20,350 нешто што није чак ни ствари у Ц, а посебно за ове више 497 00:25:20,350 --> 00:25:24,030 изазовних алгоритми и проблема сетови које морамо да схватимо, 498 00:25:24,030 --> 00:25:27,210 са почетком у Псеудокод не забрињава о синтакси, само бриге о 499 00:25:27,210 --> 00:25:29,150 логика, је невероватно корисно. 500 00:25:29,150 --> 00:25:32,720 И на тај начин, ви не решава два невероватно тешки проблеми одједном. 501 00:25:32,720 --> 00:25:35,390 Ти само фокусирајући се на логици, а онда се преселите у синтакси. 502 00:25:35,390 --> 00:25:59,960 503 00:25:59,960 --> 00:26:01,385 >> У реду. 504 00:26:01,385 --> 00:26:03,680 Почнимо иде кроз Псеудокод. 505 00:26:03,680 --> 00:26:05,380 Писао сам овде, бинарни претраживање Псеудокод. 506 00:26:05,380 --> 00:26:07,360 Ми ћемо писати ово на укрцавање заједно. 507 00:26:07,360 --> 00:26:10,040 Или ћу га написати, а ви ћете дати ја сам упутства треба. 508 00:26:10,040 --> 00:26:15,010 Дакле, може ли неко да ми дају први линија псеудокоду ви 509 00:26:15,010 --> 00:26:18,350 написао за бинарну претрагу? 510 00:26:18,350 --> 00:26:20,258 Да, Ени? 511 00:26:20,258 --> 00:26:22,698 >> СТУДЕНТСКА: Док дужина листа је већа од нуле. 512 00:26:22,698 --> 00:26:26,114 513 00:26:26,114 --> 00:26:34,880 >> ЈАСОН Хирсцххорн: Док дужина листе већи од нуле. 514 00:26:34,880 --> 00:26:38,810 И опет, видимо неки Ц-лоокинг синтаксичких ствари овде. 515 00:26:38,810 --> 00:26:41,550 Али већина је на енглеском језику. 516 00:26:41,550 --> 00:26:43,980 Да ли неко има било какву линију су ставили пре тога у свом псеудо-код? 517 00:26:43,980 --> 00:26:47,280 518 00:26:47,280 --> 00:26:50,210 >> СТУДЕНТСКА: Гет низ од поредани бројева. 519 00:26:50,210 --> 00:26:53,600 >> ЈАСОН Хирсцххорн: Ви сте написали "добити низ бројева сортираних. "По 520 00:26:53,600 --> 00:26:56,140 Функција декларација, ми ћемо бити доношење низ бројева сортираних. 521 00:26:56,140 --> 00:26:57,280 >> СТУДЕНТСКА: [ИНАУДИБЛЕ]. 522 00:26:57,280 --> 00:26:59,030 >> ЈАСОН Хирсцххорн: Па ћемо имати то. 523 00:26:59,030 --> 00:27:01,820 Али да, ако нисмо имали да ми би требало да сортирате наш низ 524 00:27:01,820 --> 00:27:04,850 бројеве, јер бинарни претрагу ради само на сортираних низова. 525 00:27:04,850 --> 00:27:11,300 Дакле, док дужина листе једнака нули, ја сам ће ставити у неким заграда 526 00:27:11,300 --> 00:27:15,420 да изгледа мало висе као Али, док је Ц, изгледа да мапирају на 527 00:27:15,420 --> 00:27:19,550 док петље, тако да унутар овог времена петља шта нам је потребно да 528 00:27:19,550 --> 00:27:22,000 учинити за бинарну претрагу? 529 00:27:22,000 --> 00:27:25,530 >> Неко други ко није ми дао одговорите још али ко је ово написао? 530 00:27:25,530 --> 00:27:31,750 531 00:27:31,750 --> 00:27:33,320 >> СТУДЕНТСКА: Иди на средини листе. 532 00:27:33,320 --> 00:27:33,980 >> ЈАСОН Хирсцххорн: Томе. 533 00:27:33,980 --> 00:27:35,230 Иди на средини листе. 534 00:27:35,230 --> 00:27:43,290 535 00:27:43,290 --> 00:27:45,530 И додатно питање, шта да радимо кад смо на 536 00:27:45,530 --> 00:27:46,870 средини листе? 537 00:27:46,870 --> 00:27:49,310 >> СТУДЕНТСКА: Да ли чек да ли је то број тражите. 538 00:27:49,310 --> 00:27:50,120 >> ЈАСОН Хирсцххорн: Одлично. 539 00:27:50,120 --> 00:28:05,500 Иди на средини листе и проверите ако наша вредност је тамо - 540 00:28:05,500 --> 00:28:06,515 фантастично. 541 00:28:06,515 --> 00:28:10,460 Да ли је ико имао ништа друго то је било другачије од овога? 542 00:28:10,460 --> 00:28:11,210 То је потпуно тачно. 543 00:28:11,210 --> 00:28:13,800 >> Прва ствар коју радимо у бинарном претрагу се ићи на средини листе и 544 00:28:13,800 --> 00:28:15,870 проверите да ли је наша вредност је тамо. 545 00:28:15,870 --> 00:28:19,682 Тако да претпостављам да ли је наша вредност тамо, шта да радимо? 546 00:28:19,682 --> 00:28:21,610 >> СТУДЕНТСКА: Враћамо нули [ИНАУДИБЛЕ]. 547 00:28:21,610 --> 00:28:23,400 >> ЈАСОН Хирсцххорн: Да, ако наш вредност је тамо, ми смо га нашли. 548 00:28:23,400 --> 00:28:27,950 Дакле, можемо рећи неки начин, међутим ово Функција је дефинисана, можемо рећи кориснику 549 00:28:27,950 --> 00:28:28,520 смо га нашли. 550 00:28:28,520 --> 00:28:30,950 Ако је нема, мада, то је где то постаје лукав. 551 00:28:30,950 --> 00:28:35,120 Дакле, ако је нема, неко ко је радио на бинарну претрагу или 552 00:28:35,120 --> 00:28:36,830 је идеју сада, шта да радимо? 553 00:28:36,830 --> 00:28:37,830 >> СТУДЕНТСКИ: Питање. 554 00:28:37,830 --> 00:28:38,100 >> ЈАСОН Хирсцххорн: Да? 555 00:28:38,100 --> 00:28:39,920 >> СТУДЕНТСКА: Да ли је низ већ сортиран? 556 00:28:39,920 --> 00:28:42,200 >> ЈАСОН Хирсцххорн: Да, ми смо под претпоставком низ је већ сортиран. 557 00:28:42,200 --> 00:28:46,480 >> СТУДЕНТСКА: Па онда морате да проверите да ли вредност коју видите је већи од 558 00:28:46,480 --> 00:28:51,745 вредност коју желите, можете да преместите до средине другу половину. 559 00:28:51,745 --> 00:28:54,110 >> ЈАСОН Хирсцххорн: Дакле, ако средина листа је већа него што смо 560 00:28:54,110 --> 00:28:57,440 траже, онда ми шта? 561 00:28:57,440 --> 00:28:58,320 Прелазимо где? 562 00:28:58,320 --> 00:29:01,400 >> СТУДЕНТСКА: Желите да пређете на половина листе са 563 00:29:01,400 --> 00:29:02,780 Бројеви ниже од тога. 564 00:29:02,780 --> 00:29:04,460 >> ЈАСОН Хирсцххорн: Па ми ћемо позовите да лево. 565 00:29:04,460 --> 00:29:15,435 Дакле, ако је средњи већа, можемо претрагу лева половина листе. 566 00:29:15,435 --> 00:29:20,620 567 00:29:20,620 --> 00:29:22,980 И онда по претрази, што Не мислим тако претрагу? 568 00:29:22,980 --> 00:29:24,010 >> СТУДЕНТСКА: [ИНАУДИБЛЕ]. 569 00:29:24,010 --> 00:29:24,410 >> ЈАСОН Хирсцххорн: Идемо на средини. 570 00:29:24,410 --> 00:29:25,740 Ми заправо поновити ову ствар. 571 00:29:25,740 --> 00:29:29,210 Враћамо кроз нашу вхиле. 572 00:29:29,210 --> 00:29:31,480 Даћу вам последњи - 573 00:29:31,480 --> 00:29:39,047 друго, ако је, средњи је мање него што ми, шта ми овде радимо? 574 00:29:39,047 --> 00:29:40,360 >> СТУДЕНТСКА: Идите на десно. 575 00:29:40,360 --> 00:29:41,610 >> ЈАСОН Хирсцххорн: Тражи право. 576 00:29:41,610 --> 00:29:47,440 577 00:29:47,440 --> 00:29:51,710 Ово изгледа добро, али да ли неко има било шта да ми можда недостаје или 578 00:29:51,710 --> 00:29:53,200 све остало што сте ставили у псеудо-коду? 579 00:29:53,200 --> 00:29:57,080 580 00:29:57,080 --> 00:29:58,410 Дакле, то је оно што имамо сада. 581 00:29:58,410 --> 00:30:00,960 Док дужина листе је већа од нуле, да ћемо ићи 582 00:30:00,960 --> 00:30:03,220 на средини листе и проверите да ли је наша вредност је тамо. 583 00:30:03,220 --> 00:30:06,970 >> Ако средњи већа, ми ћемо Претраживач лево, друго ако је средњи 584 00:30:06,970 --> 00:30:09,230 мање, идемо да тражи право. 585 00:30:09,230 --> 00:30:14,430 Тако да смо сви имали мало упознати са термини које користимо у рачунарству 586 00:30:14,430 --> 00:30:15,550 и алата имамо. 587 00:30:15,550 --> 00:30:18,300 Али ви ћете приметити већ смо били говорећи на енглеском језику, али смо 588 00:30:18,300 --> 00:30:24,790 Многе ствари које се чинило да мапира на алати имамо у нашој кодирања комплет алата. 589 00:30:24,790 --> 00:30:27,210 Дакле, право искључити слепи миш, нисмо ће заправо кодирати још. 590 00:30:27,210 --> 00:30:33,300 >> Шта ми овде видимо на енглеском да мапе на ствари које можемо писати у Ц? 591 00:30:33,300 --> 00:30:34,560 >> СТУДЕНТСКИ: Док. 592 00:30:34,560 --> 00:30:35,320 >> ЈАСОН Хирсцххорн: Док. 593 00:30:35,320 --> 00:30:40,610 Дакле, ово док овде мапе на оно? 594 00:30:40,610 --> 00:30:42,630 >> СТУДЕНТСКА: док петља. 595 00:30:42,630 --> 00:30:43,200 >> ЈАСОН Хирсцххорн: док петља? 596 00:30:43,200 --> 00:30:44,540 Или можда, више уопште, петља. 597 00:30:44,540 --> 00:30:46,260 Желимо да урадимо нешто изнова и изнова. 598 00:30:46,260 --> 00:30:49,050 Дакле, идемо да код петљу. 599 00:30:49,050 --> 00:30:51,640 А ми већ знамо, јер смо урадили ово пар пута и ми 600 00:30:51,640 --> 00:30:54,180 има доста примера тамо, како заправо да пишу 601 00:30:54,180 --> 00:30:55,310 овај индекс за петљу. 602 00:30:55,310 --> 00:30:56,160 Тако да би требало да буде прилично лако. 603 00:30:56,160 --> 00:30:58,070 Ми би требало да буде у могућности да се то почео прилично брзо. 604 00:30:58,070 --> 00:31:01,830 >> Шта још видимо овде? 605 00:31:01,830 --> 00:31:06,820 Које друге структуре синтакси, ствари да смо упознати са у Ц, радимо 606 00:31:06,820 --> 00:31:09,790 већ имају осећај Басед офф речи које смо користили? 607 00:31:09,790 --> 00:31:10,830 Да, Ана? 608 00:31:10,830 --> 00:31:11,360 [ИНАУДИБЛЕ] 609 00:31:11,360 --> 00:31:12,990 Само се шалим. 610 00:31:12,990 --> 00:31:13,540 Ана, само напред. 611 00:31:13,540 --> 00:31:14,530 >> СТУДЕНТСКА: Ако и друго. 612 00:31:14,530 --> 00:31:16,260 >> ЈАСОН Хирсцххорн: Ако и друго - овде. 613 00:31:16,260 --> 00:31:18,840 Па шта они изгледају? 614 00:31:18,840 --> 00:31:20,420 >> СТУДЕНТСКА: ако други изјава. 615 00:31:20,420 --> 00:31:21,560 >> ЈАСОН Хирсцххорн: Да, услови, зар не? 616 00:31:21,560 --> 00:31:24,650 Дакле, вероватно ћете морати да пишу неке услове. 617 00:31:24,650 --> 00:31:31,185 И опет, иако можда збуњујуће на Прво, ми смо генерално имају смисла сада 618 00:31:31,185 --> 00:31:34,010 како да пишу и услови синтакса за услове. 619 00:31:34,010 --> 00:31:36,850 А ако то не урадимо, ми смо само погледати синтакса за услове, исечете и налепите 620 00:31:36,850 --> 00:31:39,950 да, зато што смо ми знамо треба овде услов. 621 00:31:39,950 --> 00:31:44,910 Све друге ствари које видимо ту карту на ствари које треба да урадите можда у Ц? 622 00:31:44,910 --> 00:31:48,312 623 00:31:48,312 --> 00:31:48,960 Да, Алеха? 624 00:31:48,960 --> 00:31:50,370 >> СТУДЕНТСКА: То може бити очигледно, од само проверавам да ли 625 00:31:50,370 --> 00:31:51,990 вредност једнака нешто. 626 00:31:51,990 --> 00:31:54,578 >> ЈАСОН Хирсцххорн: Па како ћемо проверити и - тако идите на средини листе 627 00:31:54,578 --> 00:31:55,610 и проверите да ли је наша вредност је тамо? 628 00:31:55,610 --> 00:31:56,570 Како то да урадимо у Ц? 629 00:31:56,570 --> 00:31:58,450 Шта је синтакса за то? 630 00:31:58,450 --> 00:31:59,235 >> СТУДЕНТСКИ: Једнако, једнако. 631 00:31:59,235 --> 00:32:00,650 >> ЈАСОН Хирсцххорн: Једнако, једнако. 632 00:32:00,650 --> 00:32:03,540 Дакле, ово је вероватно ће провера бити једнаки, једнаки. 633 00:32:03,540 --> 00:32:04,510 Тако ћемо знати морамо да негде. 634 00:32:04,510 --> 00:32:07,510 И заиста, само у писању, видимо те друге ствари. 635 00:32:07,510 --> 00:32:11,400 Ми ћемо морати да урадимо нешто поређење оператери тамо - 636 00:32:11,400 --> 00:32:12,010 фантастично. 637 00:32:12,010 --> 00:32:14,980 Тако да заправо изгледа, од стране и велики, нисмо написао 638 00:32:14,980 --> 00:32:16,390 Реч Ц кода још. 639 00:32:16,390 --> 00:32:20,610 Али имамо ментални модел доле преко тих предавања и шорц. 640 00:32:20,610 --> 00:32:22,350 >> Написали смо псеудо-код као група. 641 00:32:22,350 --> 00:32:27,110 И већ имамо 80% ако не и 90% од онога што је потребно да урадите. 642 00:32:27,110 --> 00:32:28,550 Сада, само треба да се код то, што је опет, је 643 00:32:28,550 --> 00:32:30,110 не-тривијалан проблем који треба решити. 644 00:32:30,110 --> 00:32:31,890 Али барем смо заглавили на логици. 645 00:32:31,890 --> 00:32:38,040 Барем сада када идемо на радног времена, Ја могу да кажем, ја знам шта ми треба 646 00:32:38,040 --> 00:32:40,160 да уради, али да ли можете да подсети ми од синтаксе? 647 00:32:40,160 --> 00:32:42,940 Или чак и ако радно време су гужве, те Да ли Гоогле за синтаксу, а 648 00:32:42,940 --> 00:32:45,040 него се заглави на логици. 649 00:32:45,040 --> 00:32:48,570 >> И опет, уместо да покушавају да реше логика и синтаксе проблеми све 650 00:32:48,570 --> 00:32:51,900 одједном, често је много боље да се бреак та два хард проблема ван у 651 00:32:51,900 --> 00:32:58,280 два управљати они и учинити псеудо-код, а затим код у Ц 652 00:32:58,280 --> 00:33:00,620 Дакле, хајде да видимо шта сам урадио за Псеудо-код испред времена. 653 00:33:00,620 --> 00:33:04,060 >> Док дужина листе је већа од нуле, погледајте средини 654 00:33:04,060 --> 00:33:05,090 листе. 655 00:33:05,090 --> 00:33:09,610 Ако број пронађених вратио истина, друго ако број већи, претрага лево. 656 00:33:09,610 --> 00:33:13,200 Друго, ако број мањи, претрага десно, ретурн фалсе. 657 00:33:13,200 --> 00:33:18,710 Тако да изгледа готово идентично ако не скоро идентичан ономе што смо написали. 658 00:33:18,710 --> 00:33:23,030 Заправо, Томе, шта сте прво рекли, разбијање на средини листе и ако 659 00:33:23,030 --> 00:33:24,880 број нашао у две изјаве је заправо оно што сам урадио. 660 00:33:24,880 --> 00:33:25,507 >> Ја сам их у комбинацији тамо. 661 00:33:25,507 --> 00:33:27,100 Требао сам слушао ти први пут. 662 00:33:27,100 --> 00:33:30,640 Дакле, да је псеудо-код имамо. 663 00:33:30,640 --> 00:33:35,060 Ако желите да сада, извини, иди назад на наш иницијални проблем. 664 00:33:35,060 --> 00:33:37,780 Идемо код бинари.ц. 665 00:33:37,780 --> 00:33:40,870 Дакле спроведе итеративан верзију бинарни претраживање користећи следеће 666 00:33:40,870 --> 00:33:42,420 Функција декларација. 667 00:33:42,420 --> 00:33:44,550 >> И не треба да копирате то доле још увек. 668 00:33:44,550 --> 00:33:49,470 Ја стварно ћу да отворим горе десно овде бинари.ц. 669 00:33:49,470 --> 00:33:52,880 Дакле, ту је декларација функција у средини екрана. 670 00:33:52,880 --> 00:33:57,570 И видећете да је псеудо-код од на моје стране, али готово идентичан 671 00:33:57,570 --> 00:33:59,740 на шта смо писали, и ставио у за вас. 672 00:33:59,740 --> 00:34:06,010 Па сад, хајде да пет минута да код ове функције. 673 00:34:06,010 --> 00:34:08,199 >> А опет, ако имате било каквих питања, подигне руку, јави ми, ја ћу 674 00:34:08,199 --> 00:34:08,710 доци. 675 00:34:08,710 --> 00:34:09,800 >> СТУДЕНТСКА: [ИНАУДИБЛЕ]. 676 00:34:09,800 --> 00:34:12,380 >> ЈАСОН Хирсцххорн: Па сам узео бинарну дефиниција претрагу на 677 00:34:12,380 --> 00:34:14,429 врх, на линији 12. 678 00:34:14,429 --> 00:34:16,429 То је оно што ја имам за моју слајд. 679 00:34:16,429 --> 00:34:20,940 И онда све то псеудо-код Управо сам копирате и налепите из слајду, 680 00:34:20,940 --> 00:34:22,190 Псеудо-код слајд. 681 00:34:22,190 --> 00:35:22,830 682 00:35:22,830 --> 00:35:26,786 Ја још увек не чујем [ИНАУДИБЛЕ]. 683 00:35:26,786 --> 00:37:13,010 684 00:37:13,010 --> 00:37:15,820 >> Дакле, ако сте завршили имплементација, ја желим да га провери. 685 00:37:15,820 --> 00:37:19,410 Ја вам поштом на хелперс.х датотеку раније у овој класи. 686 00:37:19,410 --> 00:37:22,360 И то ће бити доступан онлине, као и за преузимање за људе који гледају 687 00:37:22,360 --> 00:37:24,750 овај одељак пут одложено. 688 00:37:24,750 --> 00:37:29,350 И ја само користио генерички дистрибуцију Код из псет3. 689 00:37:29,350 --> 00:37:34,590 Зато сам узео финд.Ц, користим хелперс.х фајл пре него хелперс.х датотеке 690 00:37:34,590 --> 00:37:36,280 који је дат у коду за дистрибуцију. 691 00:37:36,280 --> 00:37:39,310 >> И морао сам да још једну промену у финд.Ц него позивање једноставно 692 00:37:39,310 --> 00:37:42,770 претраживање, позовите бинари_сеарцх. 693 00:37:42,770 --> 00:37:49,080 Дакле, ако желите да тестирате свој код, Знам да је то начин да се то уради. 694 00:37:49,080 --> 00:37:52,530 У ствари, када ћемо бити покренут овај код сада, само сам направио копију 695 00:37:52,530 --> 00:37:59,820 мој псет3 именик, опет, заменили напоље помагачи фајлова и онда су то 696 00:37:59,820 --> 00:38:04,695 променити у финд.Ц да позове бинари_сеарцх него једноставно претраживање. 697 00:38:04,695 --> 00:40:08,620 698 00:40:08,620 --> 00:40:09,120 >> ЈАСОН Хирсцххорн: Да. 699 00:40:09,120 --> 00:40:11,258 Имате питање? 700 00:40:11,258 --> 00:40:12,150 >> СТУДЕНТСКИ: Нема везе. 701 00:40:12,150 --> 00:40:12,600 >> ЈАСОН Хирсцххорн: Без бриге. 702 00:40:12,600 --> 00:40:13,370 Па, хајде да почнемо. 703 00:40:13,370 --> 00:40:15,090 Ми ћемо ово кодира као група. 704 00:40:15,090 --> 00:40:16,050 Једна друга напомена. 705 00:40:16,050 --> 00:40:20,600 Опет, ово је, могу лако бити замењени у за Проблем поставио три. 706 00:40:20,600 --> 00:40:25,530 Имам хелперс.х фајл који, радије од хелперс.х смо дали, 707 00:40:25,530 --> 00:40:28,560 изјављује бинарну претрагу, мехур врста, и избор врста. 708 00:40:28,560 --> 00:40:37,400 И у финд.ц ћете приметити на линији, шта је то, линија 68, зовемо бинарну 709 00:40:37,400 --> 00:40:39,160 Претраживач него претрагу. 710 00:40:39,160 --> 00:40:42,930 Дакле, опет, код који је на располагању мрежи или код који сте 711 00:40:42,930 --> 00:40:46,590 креирање сада могу лако замењени у за П сет 3 да га провери. 712 00:40:46,590 --> 00:40:50,620 >> Али прво, хајде да кодирају бинарну претрагу. 713 00:40:50,620 --> 00:40:53,690 Наша декларација функција, ми врати боол. 714 00:40:53,690 --> 00:40:55,810 Ми се цео број зове вредност. 715 00:40:55,810 --> 00:40:59,285 Ми се низ целих бројева под називом вредности, и узмемо је н 716 00:40:59,285 --> 00:41:00,850 величина низа. 717 00:41:00,850 --> 00:41:05,640 На линији 10, овде, ја имам оштар укључују стдбоол.х. 718 00:41:05,640 --> 00:41:07,360 Да ли неко зна зашто је то тамо? 719 00:41:07,360 --> 00:41:12,180 720 00:41:12,180 --> 00:41:16,600 Дакле, шта то линија кода радим? 721 00:41:16,600 --> 00:41:19,880 >> СТУДЕНТСКА: То вам омогућава да користите тип боол повратка. 722 00:41:19,880 --> 00:41:20,350 >> ЈАСОН Хирсцххорн: Управо тако. 723 00:41:20,350 --> 00:41:22,300 >> СТУДЕНТСКА: Или да је библиотека која омогућава да користите тип боол повратка. 724 00:41:22,300 --> 00:41:27,590 >> ЈАСОН Хирсцххорн: Тако оштар укључују стдбоол.х линија ми даје неке 725 00:41:27,590 --> 00:41:31,340 дефиниције и декларације за ствари да сам дозволио да се користе у 726 00:41:31,340 --> 00:41:32,400 ово библиотека. 727 00:41:32,400 --> 00:41:36,570 Дакле, међу онима каже да постоји овај тип се зове инт, а то може бити 728 00:41:36,570 --> 00:41:37,750 истинити или лажни. 729 00:41:37,750 --> 00:41:39,010 Дакле, то је оно што та линија ради. 730 00:41:39,010 --> 00:41:41,680 А ако ја нисам имао ту линију, ја бих добити у невољи за писање ово 731 00:41:41,680 --> 00:41:43,520 реч овде, боол, тамо. 732 00:41:43,520 --> 00:41:44,140 Тачно у праву. 733 00:41:44,140 --> 00:41:46,430 Тако ми треба да се у овом коду. 734 00:41:46,430 --> 00:41:47,690 У реду. 735 00:41:47,690 --> 00:41:51,860 Дакле ово, опет, је итеративан верзија, не рекурзивни један. 736 00:41:51,860 --> 00:41:53,820 Дакле, хајде да почнемо. 737 00:41:53,820 --> 00:41:56,200 >> Почнимо са ова прва линија псеудо кода. 738 00:41:56,200 --> 00:41:58,770 И надамо се, хоћемо - или не надамо. 739 00:41:58,770 --> 00:42:00,530 Идемо да идемо по соби. 740 00:42:00,530 --> 00:42:05,110 Ми ћемо ићи линију по линију, а ја ћу помоћи схватите линију која нам је потребна 741 00:42:05,110 --> 00:42:06,310 на прво писати. 742 00:42:06,310 --> 00:42:10,550 Дакле, док дужина листе је већа од нуле. 743 00:42:10,550 --> 00:42:12,680 Почнимо у предњем. 744 00:42:12,680 --> 00:42:15,190 Која линија треба да пишем овде, у коду? 745 00:42:15,190 --> 00:42:19,470 >> СТУДЕНТСКА: Док заграда н је већи од 0. 746 00:42:19,470 --> 00:42:21,900 >> ЈАСОН Хирсцххорн: Док н је одличан од 0. 747 00:42:21,900 --> 00:42:26,550 Тако је н величина листе, а ми проверавамо да ли - 748 00:42:26,550 --> 00:42:26,800 >> [изнео ГЛАСОВИ] 749 00:42:26,800 --> 00:42:27,660 >> ЈАСОН Хирсцххорн: - Извини? 750 00:42:27,660 --> 00:42:29,360 >> СТУДЕНТСКА: Како знамо да је н је величина листе? 751 00:42:29,360 --> 00:42:29,690 >> ЈАСОН Хирсцххорн: Извини. 752 00:42:29,690 --> 00:42:34,690 По спецификацији псет, претрага и врста функционише потребно је да напишете, 753 00:42:34,690 --> 00:42:36,230 н је величина листе. 754 00:42:36,230 --> 00:42:37,710 Заборавио сам да објасним да овде. 755 00:42:37,710 --> 00:42:41,310 Али да. н је величина листа, у овом случају. 756 00:42:41,310 --> 00:42:44,740 Дакле, док је н веће од 0. 757 00:42:44,740 --> 00:42:45,580 У реду. 758 00:42:45,580 --> 00:42:50,090 То се може показати мало проблематично мада, ако ствари крену даље. 759 00:42:50,090 --> 00:42:54,510 Зато ћемо наставити да знамо величина листе током ове 760 00:42:54,510 --> 00:43:06,640 функција, али кажу ми кренути са низом од 5 целих бројева. 761 00:43:06,640 --> 00:43:08,950 И ми идемо путем и ми смо сада је сведен на 762 00:43:08,950 --> 00:43:10,310 низ целих бројева 2. 763 00:43:10,310 --> 00:43:12,160 Која 2 цела броја је то? 764 00:43:12,160 --> 00:43:15,895 Величина је 2 сада да желимо да погледајте, али који је то 2? 765 00:43:15,895 --> 00:43:17,720 Да ли то има смисла, то питање? 766 00:43:17,720 --> 00:43:18,020 >> У реду. 767 00:43:18,020 --> 00:43:19,120 Ја ћу га питати поново. 768 00:43:19,120 --> 00:43:26,640 Тако да смо кренути са овим низом 5 цели бројеви, и н износи 5, зар не? 769 00:43:26,640 --> 00:43:28,050 Ми ћемо покренути кроз овде. 770 00:43:28,050 --> 00:43:31,560 вероватно ћемо променити величину, право, како ствари иду даље. 771 00:43:31,560 --> 00:43:32,700 Што је оно што ми кажемо да желимо да урадимо. 772 00:43:32,700 --> 00:43:34,150 Ми не желимо да претражујете пун ствар поново. 773 00:43:34,150 --> 00:43:35,480 Тако да смо га променити на 2. 774 00:43:35,480 --> 00:43:36,970 Ми узимамо пола листа који је чудно. 775 00:43:36,970 --> 00:43:38,800 Дакле, само пицк 2. 776 00:43:38,800 --> 00:43:40,590 Тако да сада н једнак 2. 777 00:43:40,590 --> 00:43:42,780 Извињавам се за сиромашне суво брисање маркера. 778 00:43:42,780 --> 00:43:43,080 Зар не? 779 00:43:43,080 --> 00:43:45,670 И ми смо у потрази кроз листу поново са листом величине 2. 780 00:43:45,670 --> 00:43:48,580 Па, наш низ је још од величине 5. 781 00:43:48,580 --> 00:43:51,920 Ми кажемо да желимо само тражи 2 места у њему. 782 00:43:51,920 --> 00:43:53,590 Дакле, које 2 тачке су они? 783 00:43:53,590 --> 00:43:57,640 784 00:43:57,640 --> 00:43:58,815 >> Да ли то смисла? 785 00:43:58,815 --> 00:44:00,290 Да ли су они оставили су 2 тачке? 786 00:44:00,290 --> 00:44:01,940 Да ли су они прави 2 тачке? 787 00:44:01,940 --> 00:44:03,540 Да ли су они средњи 2 тачке? 788 00:44:03,540 --> 00:44:06,350 Ми смо сломљена проблем доле, али ми заправо не знам који део 789 00:44:06,350 --> 00:44:11,600 Проблем још увек гледамо, само тако што ове 2 променљиве. 790 00:44:11,600 --> 00:44:16,450 Зато нам је потребно мало више онда, док је н већи од 0. 791 00:44:16,450 --> 00:44:21,410 Морамо да знамо где да н је у нашем стварном низу. 792 00:44:21,410 --> 00:44:26,660 >> Дакле, да ли неко има променити ову линију? 793 00:44:26,660 --> 00:44:27,970 Већина ове линије је савршено исправна. 794 00:44:27,970 --> 00:44:29,170 Да ли постоји још један додатак? 795 00:44:29,170 --> 00:44:32,510 Можемо заменимо за нешто из н у чине ову линију мало боље? 796 00:44:32,510 --> 00:44:32,865 Хм? 797 00:44:32,865 --> 00:44:38,040 >> СТУДЕНТСКА: Можете ли иницијализује променљиву као дужине до н који ће онда да се користи 798 00:44:38,040 --> 00:44:39,600 касније у функцији? 799 00:44:39,600 --> 00:44:42,060 >> ЈАСОН Хирсцххорн: Па иницијализацију променљиве дужине за Н, 800 00:44:42,060 --> 00:44:42,900 и ми користимо то касније? 801 00:44:42,900 --> 00:44:47,070 Али онда смо једноставно ажурирати дужину и ми још увек наилазе на овај проблем, где смо 802 00:44:47,070 --> 00:44:51,180 смањи дужину нашег проблема, али ми никада где знамо, заправо, 803 00:44:51,180 --> 00:44:52,510 да дужина мапе на. 804 00:44:52,510 --> 00:44:54,790 >> СТУДЕНТСКА: Зар то неће догодити касније, када ви кажете, тражи лево, 805 00:44:54,790 --> 00:44:55,746 тражи у праву? 806 00:44:55,746 --> 00:44:57,640 Ти ћеш ићи на другачији области вашег - 807 00:44:57,640 --> 00:44:59,110 >> ЈАСОН Хирсцххорн: Идемо да идемо до области, али како да знамо 808 00:44:59,110 --> 00:45:01,150 који су да иду у? 809 00:45:01,150 --> 00:45:03,800 Ако имамо само низ и ово н, како да знамо где да 810 00:45:03,800 --> 00:45:05,050 идите у низу. 811 00:45:05,050 --> 00:45:05,900 У задњем, зар не? 812 00:45:05,900 --> 00:45:07,507 >> СТУДЕНТСКА: Да ли имате, као, нижи везан и горња граница променљива или 813 00:45:07,507 --> 00:45:08,586 тако нешто? 814 00:45:08,586 --> 00:45:09,060 >> ЈАСОН Хирсцххорн: У реду. 815 00:45:09,060 --> 00:45:10,780 Дакле, ово је још једна идеја. 816 00:45:10,780 --> 00:45:13,490 Уместо само праћење величина, ми пратите ниже и 817 00:45:13,490 --> 00:45:14,770 горња граница променљива. 818 00:45:14,770 --> 00:45:17,840 Па како рачунамо величину од доњу границу и горњу границу? 819 00:45:17,840 --> 00:45:18,520 >> [изнео ГЛАСОВИ] 820 00:45:18,520 --> 00:45:19,710 >> ЈАСОН Хирсцххорн: Одузимање. 821 00:45:19,710 --> 00:45:23,650 И такође праћење нижи везан и горња граница да нас обавестите, 822 00:45:23,650 --> 00:45:26,215 смо у потрази ово двоје? 823 00:45:26,215 --> 00:45:28,220 Да ли смо у потрази ово двоје овде? 824 00:45:28,220 --> 00:45:29,540 Да ли смо у потрази средњи два? 825 00:45:29,540 --> 00:45:32,810 Вероватно не средњи два, јер ово, у ствари, бинарно претраживање. 826 00:45:32,810 --> 00:45:37,320 Али сада ћемо бити у могућности да добије величину, али и границе низа. 827 00:45:37,320 --> 00:45:40,020 У суштини, ако имамо дива именик, ми смо га рип на пола. 828 00:45:40,020 --> 00:45:42,990 Ми сада знамо где да мањи именик је. 829 00:45:42,990 --> 00:45:45,260 Али ми нисмо заправо изврсно телефонски именик на пола. 830 00:45:45,260 --> 00:45:48,570 Још увек треба да зна где нове границе наше проблема. 831 00:45:48,570 --> 00:45:51,645 Да ли неко има било каква питања о томе? 832 00:45:51,645 --> 00:45:52,440 Да? 833 00:45:52,440 --> 00:45:56,020 >> СТУДЕНТСКА: Да ли то ради креирањем променљива, ја, да ли онда само схифт 834 00:45:56,020 --> 00:46:00,770 положај у односу на своје ја тренутни положај, а дужина, н? 835 00:46:00,770 --> 00:46:01,710 >> ЈАСОН Хирсцххорн: А шта је ја? 836 00:46:01,710 --> 00:46:04,110 >> СТУДЕНТСКА: Као што сам као нека врста - 837 00:46:04,110 --> 00:46:08,040 Као да би иницијализујете сам да буде средњи положај низа. 838 00:46:08,040 --> 00:46:12,540 А онда, ако је вредност на позицији сам у средина низа у утврђено да 839 00:46:12,540 --> 00:46:17,870 бити мања од вредности коју треба, ја сада постаје дужина низа, плус 840 00:46:17,870 --> 00:46:19,215 вредност И подељен са 2. 841 00:46:19,215 --> 00:46:20,270 Као, види, ти И смена - 842 00:46:20,270 --> 00:46:20,770 >> ЈАСОН Хирсцххорн: Тачно. 843 00:46:20,770 --> 00:46:21,165 >> СТУДЕНАТА: - до - 844 00:46:21,165 --> 00:46:24,010 >> ЈАСОН Хирсцххорн: Па ја сам скоро позитивно да ће радити. 845 00:46:24,010 --> 00:46:26,800 Али поента је, потребно је двоје делови информација овде. 846 00:46:26,800 --> 00:46:30,050 Можете то урадити са почетка и краја, или можете да урадите са величином, а затим 847 00:46:30,050 --> 00:46:31,060 неки маркер. 848 00:46:31,060 --> 00:46:32,630 Али ти не треба два комада информација овде. 849 00:46:32,630 --> 00:46:34,160 Ви не можете да добијете тако са само једном. 850 00:46:34,160 --> 00:46:35,830 Да ли то има смисла? 851 00:46:35,830 --> 00:46:39,560 >> Тако ћемо ићи кроз, и ћемо да радимо [ИНАУДИБЛЕ] 852 00:46:39,560 --> 00:46:41,330 и створити неке маркере. 853 00:46:41,330 --> 00:46:42,690 Па шта ви пишете у вашем коду? 854 00:46:42,690 --> 00:46:46,190 >> СТУДЕНТСКА: Управо сам рекао кам граница један је једнак 0. 855 00:46:46,190 --> 00:46:47,790 >> ЈАСОН Хирсцххорн: Назовимо да инт, почиње. 856 00:46:47,790 --> 00:46:49,140 >> СТУДЕНТСКИ: У реду. 857 00:46:49,140 --> 00:46:50,590 >> ЈАСОН Хирсцххорн: То има више смисла за мене. 858 00:46:50,590 --> 00:46:51,670 А? 859 00:46:51,670 --> 00:46:54,340 >> СТУДЕНТСКА: Рекао сам, претпостављам, инт завршава. 860 00:46:54,340 --> 00:46:55,870 >> ЈАСОН Хирсцххорн: инт завршава. 861 00:46:55,870 --> 00:46:57,640 >> СТУДЕНТСКА: Претпостављам, Н минус 1, или нешто слично. 862 00:46:57,640 --> 00:46:59,100 Као, последњи елемент. 863 00:46:59,100 --> 00:47:02,310 >> ЈАСОН Хирсцххорн: Па ви сте написали, инт почев једнакима 0, зарезом, и инт 864 00:47:02,310 --> 00:47:04,320 Крај једнако н минус 1, зарез. 865 00:47:04,320 --> 00:47:06,850 Па у суштини, шта радимо овде, 0 прву позицију. 866 00:47:06,850 --> 00:47:09,570 И као што знамо у низовима, они не иду до н, они иду и до минус 1 н. 867 00:47:09,570 --> 00:47:11,110 Дакле, имамо неке границе нашег низа. 868 00:47:11,110 --> 00:47:15,730 А ови почетни границе се деси да буде почетне границе нашег проблема. 869 00:47:15,730 --> 00:47:16,640 У реду. 870 00:47:16,640 --> 00:47:19,200 Дакле, то звучи добро. 871 00:47:19,200 --> 00:47:22,380 Онда, ако се вратимо на овој линији, док дужина листе је већи од 0, 872 00:47:22,380 --> 00:47:24,752 шта, уместо н, треба ставимо овде? 873 00:47:24,752 --> 00:47:28,820 >> СТУДЕНТСКА: Напишите завршава минус почетак. 874 00:47:28,820 --> 00:47:34,780 >> ЈАСОН Хирсцххорн: Док се завршава минус почетак је већи од 0? 875 00:47:34,780 --> 00:47:35,480 У реду. 876 00:47:35,480 --> 00:47:37,730 И ми смо могли, ако бисмо желели да учинити да мало лепше, шта 877 00:47:37,730 --> 00:47:38,980 друго могли да урадимо? 878 00:47:38,980 --> 00:47:41,650 879 00:47:41,650 --> 00:47:43,412 Ако бисмо хтели да чисте ово код горе мало? 880 00:47:43,412 --> 00:47:46,716 881 00:47:46,716 --> 00:47:48,180 Како можемо да се ослободимо 0? 882 00:47:48,180 --> 00:47:51,560 883 00:47:51,560 --> 00:47:52,690 Ово је само питање стила. 884 00:47:52,690 --> 00:47:53,690 То је тачно управо сада. 885 00:47:53,690 --> 00:47:54,870 >> СТУДЕНТСКА: Ендинг не једнак почетак? 886 00:47:54,870 --> 00:47:55,740 >> ЈАСОН Хирсцххорн: Можемо да урадимо шта? 887 00:47:55,740 --> 00:47:56,730 >> [изнео ГЛАСОВИ] 888 00:47:56,730 --> 00:47:57,330 >> СТУДЕНТСКА: Ендинг је већи? 889 00:47:57,330 --> 00:47:57,720 >> ЈАСОН Хирсцххорн: Да. 890 00:47:57,720 --> 00:48:01,110 Ми само да урадимо док се завршава је већи од почетка. 891 00:48:01,110 --> 00:48:03,580 Право. 892 00:48:03,580 --> 00:48:06,240 Смо додали почиње на другој страни тога, и ми смо добили ослободити од 0. 893 00:48:06,240 --> 00:48:08,000 Дакле, ово само изгледа мало чистији. 894 00:48:08,000 --> 00:48:08,990 У реду. 895 00:48:08,990 --> 00:48:11,460 Дакле, док дужина листе је 0, писали смо да, иако је већа завршава 896 00:48:11,460 --> 00:48:12,240 него почетак. 897 00:48:12,240 --> 00:48:19,840 Идемо да стави у наша потребно витичасте заграде, а затим прва ствар 898 00:48:19,840 --> 00:48:22,090 желимо да урадимо је да погледате их у малој листи. 899 00:48:22,090 --> 00:48:22,510 Ви? 900 00:48:22,510 --> 00:48:23,320 Можете ли ми дати - 901 00:48:23,320 --> 00:48:26,460 >> СТУДЕНТСКА: Ако заграда вредност квадрат носач - 902 00:48:26,460 --> 00:48:30,450 >> ЈАСОН Хирсцххорн: Ако заграда вредност средња заграда. 903 00:48:30,450 --> 00:48:33,210 >> СТУДЕНТСКА: Ендинг подељен са 2. 904 00:48:33,210 --> 00:48:33,952 >> ЈАСОН Хирсцххорн: Ендинг? 905 00:48:33,952 --> 00:48:35,280 >> СТУДЕНТСКА: Видим проблем са вашим - 906 00:48:35,280 --> 00:48:35,750 >> ЈАСОН Хирсцххорн: У реду. 907 00:48:35,750 --> 00:48:39,150 Па, погледајте средини. 908 00:48:39,150 --> 00:48:41,226 Како знамо шта је средњи? 909 00:48:41,226 --> 00:48:42,450 Да. 910 00:48:42,450 --> 00:48:43,070 Дакле, дозволите ми избрисати тај код. 911 00:48:43,070 --> 00:48:46,360 Како знамо шта је средњи? 912 00:48:46,360 --> 00:48:48,003 У свему, када имате почетак и крај, како наћи 913 00:48:48,003 --> 00:48:48,876 средњи? 914 00:48:48,876 --> 00:48:49,590 >> СТУДЕНТСКА: Ви просек. 915 00:48:49,590 --> 00:48:51,820 >> СТУДЕНТСКА: Можете их додати заједно и онда - 916 00:48:51,820 --> 00:48:53,150 >> ЈАСОН Хирсцххорн: их Адд заједно и онда? 917 00:48:53,150 --> 00:48:54,090 >> СТУДЕНТСКА: А ти просек. 918 00:48:54,090 --> 00:48:55,050 Поделите га са 2. 919 00:48:55,050 --> 00:48:56,500 >> ЈАСОН Хирсцххорн: их Адд заједно и подели са 2.. 920 00:48:56,500 --> 00:48:59,400 Дакле, Инт средњи једнако? 921 00:48:59,400 --> 00:49:01,120 Томе, можете га даш? 922 00:49:01,120 --> 00:49:03,550 >> СТУДЕНТСКА: Почев плус ендинг - 923 00:49:03,550 --> 00:49:04,950 >> ЈАСОН Хирсцххорн: Почетак плус завршава. 924 00:49:04,950 --> 00:49:06,880 >> СТУДЕНТСКИ: Све, носач, подељен са 2. 925 00:49:06,880 --> 00:49:10,940 >> ЈАСОН Хирсцххорн: Све, у загради, подељен са 2. 926 00:49:10,940 --> 00:49:16,300 Тако да ми даје средину ништа, исправи? 927 00:49:16,300 --> 00:49:18,980 >> СТУДЕНТСКА: Такође је потребно да се заокружи. 928 00:49:18,980 --> 00:49:19,990 >> ЈАСОН Хирсцххорн: Шта радиш Мислим, морам да га заокружи? 929 00:49:19,990 --> 00:49:20,400 >> [изнео ГЛАСОВИ] 930 00:49:20,400 --> 00:49:24,520 >> СТУДЕНТСКА: Јер ако је непаран број, онда је то као - 931 00:49:24,520 --> 00:49:25,440 >> ЈАСОН Хирсцххорн: Па, у реду. 932 00:49:25,440 --> 00:49:26,360 Тако сам могао да заокружи. 933 00:49:26,360 --> 00:49:33,350 Али ако је непаран број, 5, могу узимање 1 далеко од средине. 934 00:49:33,350 --> 00:49:35,665 Или ако је паран број, а, да је бољи случај. 935 00:49:35,665 --> 00:49:39,600 Ако је 4, имамо само 4, ја могу да Први "средњи", цитат, завршен цитат или 936 00:49:39,600 --> 00:49:41,760 Други "средњи" један. 937 00:49:41,760 --> 00:49:46,390 Или ће радити за бинарну претрагу, па ја стварно не треба да га заокружите. 938 00:49:46,390 --> 00:49:48,640 Али постоји једна друга ствар Потребно је да погледате ову линију. 939 00:49:48,640 --> 00:49:50,530 Ми можда не схватају још, али ћемо се вратити на то. 940 00:49:50,530 --> 00:49:53,200 Пошто ова линија заправо још треба још једну ствар. 941 00:49:53,200 --> 00:49:55,990 >> Али до сада, ми смо написали четири линије кода. 942 00:49:55,990 --> 00:49:58,120 Имамо нашу почетак и завршава маркере. 943 00:49:58,120 --> 00:50:01,320 Имамо вхиле, који мапира на директно на нашем псеудокоду. 944 00:50:01,320 --> 00:50:05,790 Гледамо у средини која мапира директно на наше псеудокоду. 945 00:50:05,790 --> 00:50:09,070 Ја бих рекао ово иде у средину листе, ова линија кода. 946 00:50:09,070 --> 00:50:11,560 А онда, кад идемо на средини листа, следећа ствар коју треба да урадите 947 00:50:11,560 --> 00:50:14,880 се провери да ли је наша вредност је ту за Псеудокод смо писали раније. 948 00:50:14,880 --> 00:50:17,100 >> Па како да проверите да ли је наша вредност је на средини листе? 949 00:50:17,100 --> 00:50:17,300 Ти. 950 00:50:17,300 --> 00:50:18,511 Зашто не урадите ово? 951 00:50:18,511 --> 00:50:23,070 >> СТУДЕНТСКА: Ако је наша вредност је у средини је једнака 952 00:50:23,070 --> 00:50:24,592 шта год ми сет - 953 00:50:24,592 --> 00:50:26,190 Мислим једнака једнака - 954 00:50:26,190 --> 00:50:26,690 >> ЈАСОН Хирсцххорн: То - 955 00:50:26,690 --> 00:50:27,940 У реду. 956 00:50:27,940 --> 00:50:30,080 957 00:50:30,080 --> 00:50:32,170 >> СТУДЕНТСКА: Нисам сигуран шта променљива гледамо 958 00:50:32,170 --> 00:50:32,850 за мада, јер је - 959 00:50:32,850 --> 00:50:33,330 >> [изнео ГЛАСОВИ] 960 00:50:33,330 --> 00:50:34,520 >> СТУДЕНТСКА: [ИНАУДИБЛЕ]. 961 00:50:34,520 --> 00:50:35,060 >> ЈАСОН Хирсцххорн: Управо тако. 962 00:50:35,060 --> 00:50:37,260 По декларацији функције, ми смо у потрази за вредношћу. 963 00:50:37,260 --> 00:50:39,760 Дакле, ми смо у потрази за вредношћу у низ вредности. 964 00:50:39,760 --> 00:50:41,080 Дакле, ти си потпуно у праву. 965 00:50:41,080 --> 00:50:45,040 Ви ћете урадити, ако отворена заграда вредност конзола средњи затворен носач екуалс 966 00:50:45,040 --> 00:50:49,930 једнака вредности, а унутра шта треба да радимо? 967 00:50:49,930 --> 00:50:51,230 Ако наша вредност је тамо, шта Не морамо да урадимо? 968 00:50:51,230 --> 00:50:51,420 >> [изнео ГЛАСОВИ] 969 00:50:51,420 --> 00:50:52,160 >> СТУДЕНТСКА: Повратак нула. 970 00:50:52,160 --> 00:50:53,070 >> ЈАСОН Хирсцххорн: Повратак истина. 971 00:50:53,070 --> 00:50:54,790 >> СТУДЕНТСКА: Повратак истина. 972 00:50:54,790 --> 00:50:57,856 >> ЈАСОН Хирсцххорн: Мајкл, шта то линија уради? 973 00:50:57,856 --> 00:51:01,105 >> СТУДЕНТСКА: [ИНАУДИБЛЕ] програм покренути њен курс, а то је више, а 974 00:51:01,105 --> 00:51:01,920 Ви сте оно што је потребно да урадите? 975 00:51:01,920 --> 00:51:03,030 >> ЈАСОН Хирсцххорн: Програм или шта? 976 00:51:03,030 --> 00:51:03,700 У овом случају? 977 00:51:03,700 --> 00:51:04,210 >> СТУДЕНТСКА: функција. 978 00:51:04,210 --> 00:51:05,170 >> ЈАСОН Хирсцххорн: функција. 979 00:51:05,170 --> 00:51:08,420 И тако, да се врати у шта год зове она и му дати вредност, истина. 980 00:51:08,420 --> 00:51:09,890 Тачно у праву. 981 00:51:09,890 --> 00:51:10,170 Главни. 982 00:51:10,170 --> 00:51:12,035 Шта је повратни тип од главни, Мајкл? 983 00:51:12,035 --> 00:51:16,480 984 00:51:16,480 --> 00:51:17,150 >> СТУДЕНТСКИ: инт, цео број? 985 00:51:17,150 --> 00:51:18,080 >> ЈАСОН Хирсцххорн: инт, тачно. 986 00:51:18,080 --> 00:51:18,680 Цео број. 987 00:51:18,680 --> 00:51:20,980 То је било само питање да се уверите момци су били на врху. 988 00:51:20,980 --> 00:51:24,250 Шта то обично врати, ако Све ствари су добро ради? 989 00:51:24,250 --> 00:51:24,520 >> СТУДЕНТСКИ: Нула. 990 00:51:24,520 --> 00:51:24,820 >> ЈАСОН Хирсцххорн: Нула. 991 00:51:24,820 --> 00:51:25,430 Тачно у праву. 992 00:51:25,430 --> 00:51:28,790 >> СТУДЕНТСКА: Ако је ово само враћа труе, нема информација се даје 993 00:51:28,790 --> 00:51:30,675 шта - 994 00:51:30,675 --> 00:51:34,040 Ох, ово је само рекао да је вредност је у низу. 995 00:51:34,040 --> 00:51:35,350 >> ЈАСОН Хирсцххорн: Управо тако. 996 00:51:35,350 --> 00:51:38,080 Овај програм се не дају информације где је тачно вредност. 997 00:51:38,080 --> 00:51:41,850 То говори само, да, нашли смо то, или не, нисмо га пронашли. 998 00:51:41,850 --> 00:51:42,990 Дакле, ако се број, вратите истина. 999 00:51:42,990 --> 00:51:45,500 Па, у ствари ми смо управо урадили да заиста брзо са том једном линијом кода. 1000 00:51:45,500 --> 00:51:47,500 Па ја ћу да пређем ту линију псеудокоду. 1001 00:51:47,500 --> 00:51:50,045 >> СТУДЕНТСКА: Не треба нам да промени низ? 1002 00:51:50,045 --> 00:51:52,830 То би требало да буду вредности, а не вредности, зар не? 1003 00:51:52,830 --> 00:51:53,430 >> ЈАСОН Хирсцххорн: Извини. 1004 00:51:53,430 --> 00:51:54,010 Хвала. 1005 00:51:54,010 --> 00:51:54,800 >> СТУДЕНТСКИ: Да. 1006 00:51:54,800 --> 00:51:55,850 >> ЈАСОН Хирсцххорн: Ова линија треба да буду вредности. 1007 00:51:55,850 --> 00:51:57,150 Тачно у праву. 1008 00:51:57,150 --> 00:51:57,920 У реду. 1009 00:51:57,920 --> 00:51:59,170 Дакле, ми смо гледали по средњем листе. 1010 00:51:59,170 --> 00:52:00,790 Ако број пронађених повратак истина. 1011 00:52:00,790 --> 00:52:04,470 Настављајући са нашим псеудокоду, ако средњи је већа, претрага лево. 1012 00:52:04,470 --> 00:52:09,640 Тако да сам имао овде, ако број виши, претрага лево. 1013 00:52:09,640 --> 00:52:12,700 1014 00:52:12,700 --> 00:52:14,462 Константин, можете ли дати ми ова линија кода? 1015 00:52:14,462 --> 00:52:17,240 1016 00:52:17,240 --> 00:52:23,520 >> СТУДЕНТСКА: Ако вредност средину - 1017 00:52:23,520 --> 00:52:24,890 >> ЈАСОН Хирсцххорн: Па ако вредност - 1018 00:52:24,890 --> 00:52:28,890 ако отворено парен вредности брацкет средњи затвори конзола - 1019 00:52:28,890 --> 00:52:31,500 >> СТУДЕНТСКА: Да ли је мања од вредности? 1020 00:52:31,500 --> 00:52:32,760 >> ЈАСОН Хирсцххорн: Да ли је мање него. 1021 00:52:32,760 --> 00:52:33,800 >> СТУДЕНТСКА: Мање од вредности. 1022 00:52:33,800 --> 00:52:34,060 >> ЈАСОН Хирсцххорн: Вредност. 1023 00:52:34,060 --> 00:52:35,310 Па, у ствари, желите да проверите да ли је број - 1024 00:52:35,310 --> 00:52:38,310 1025 00:52:38,310 --> 00:52:38,490 Извините. 1026 00:52:38,490 --> 00:52:39,140 Ово је мало збуњујуће. 1027 00:52:39,140 --> 00:52:43,920 Али, још ако је број у средина листе је већа. 1028 00:52:43,920 --> 00:52:45,170 >> СТУДЕНТСКИ: О, у реду. 1029 00:52:45,170 --> 00:52:49,800 1030 00:52:49,800 --> 00:52:50,410 >> ЈАСОН Хирсцххорн: Ја ћу то променити. 1031 00:52:50,410 --> 00:52:55,060 Друго, ако је средњи виши, ми желите да претражите лево, у реду? 1032 00:52:55,060 --> 00:52:57,310 А шта да радимо унутра ово ако услов? 1033 00:52:57,310 --> 00:53:03,660 1034 00:53:03,660 --> 00:53:07,510 >> СТУДЕНТСКА: Могу ли направити малу измену услов, то променити иф? 1035 00:53:07,510 --> 00:53:08,380 >> ЈАСОН Хирсцххорн: иф? 1036 00:53:08,380 --> 00:53:09,270 У реду. 1037 00:53:09,270 --> 00:53:12,840 Дакле, овај код ће извршити отприлике исти. 1038 00:53:12,840 --> 00:53:18,620 Али лепа ствар у вези са коришћењем ако, друго ако, иф или ако, иф, друго 1039 00:53:18,620 --> 00:53:22,320 значи да је само један од оних ће да се провери, не сва тројица, 1040 00:53:22,320 --> 00:53:23,290 потенцијално. 1041 00:53:23,290 --> 00:53:25,530 И да се мало чини лепше на рачунару који је 1042 00:53:25,530 --> 00:53:26,670 покренете програм. 1043 00:53:26,670 --> 00:53:27,620 >> Па [? Константин,?] 1044 00:53:27,620 --> 00:53:31,330 ми смо у овој линији, иф вредности, носач средњи затвори заграда 1045 00:53:31,330 --> 00:53:32,260 је већа од вредности. 1046 00:53:32,260 --> 00:53:33,150 Шта треба да урадимо? 1047 00:53:33,150 --> 00:53:33,970 Ми треба да тражи лево. 1048 00:53:33,970 --> 00:53:35,220 Како то да урадимо? 1049 00:53:35,220 --> 00:53:46,960 1050 00:53:46,960 --> 00:53:48,720 Ја ћу вам дати почетак. 1051 00:53:48,720 --> 00:53:52,210 >> Имамо ове две ствари се зову почиње и завршава. 1052 00:53:52,210 --> 00:53:57,340 Дакле, шта треба да се деси на почетак? 1053 00:53:57,340 --> 00:53:59,640 Ако желите да претражите лево од листа, добијамо наш тренутни почетак. 1054 00:53:59,640 --> 00:54:01,080 Шта ми је потребно да то урадите? 1055 00:54:01,080 --> 00:54:04,220 >> СТУДЕНТСКА: Ми сет почетак на средини плус 1. 1056 00:54:04,220 --> 00:54:05,120 >> ЈАСОН Хирсцххорн: Па ако смо претраживање лево? 1057 00:54:05,120 --> 00:54:06,250 >> СТУДЕНТСКИ: Извини, средњи минус - 1058 00:54:06,250 --> 00:54:11,310 па крај би био средњи минус 1 и почетак - 1059 00:54:11,310 --> 00:54:12,450 >> ЈАСОН Хирсцххорн: А шта дешава на почетку? 1060 00:54:12,450 --> 00:54:13,210 >> СТУДЕНТСКА: То остаје исти. 1061 00:54:13,210 --> 00:54:14,120 >> ЈАСОН Хирсцххорн: Па значење остаје исто. 1062 00:54:14,120 --> 00:54:16,040 Ако сте у потрази за лево, ми смо користећи исти почетак - 1063 00:54:16,040 --> 00:54:16,860 потпуно тачно. 1064 00:54:16,860 --> 00:54:17,870 А завршава? 1065 00:54:17,870 --> 00:54:19,390 Извини, шта завршава једнака опет? 1066 00:54:19,390 --> 00:54:20,750 >> СТУДЕНТСКА: Средњи минус 1. 1067 00:54:20,750 --> 00:54:21,620 >> ЈАСОН Хирсцххорн: Средњи минус 1. 1068 00:54:21,620 --> 00:54:23,470 Сада, зашто минус 1, не само средње? 1069 00:54:23,470 --> 00:54:32,870 1070 00:54:32,870 --> 00:54:35,570 >> СТУДЕНТСКА: средина је од слика већ, зато што смо имали 1071 00:54:35,570 --> 00:54:36,700 Проверио да је напоље? 1072 00:54:36,700 --> 00:54:37,630 >> ЈАСОН Хирсцххорн: То је потпуно тачно. 1073 00:54:37,630 --> 00:54:38,580 Средини је из слике. 1074 00:54:38,580 --> 00:54:39,800 Већ смо проверили у средину. 1075 00:54:39,800 --> 00:54:44,730 Дакле, ми не желимо "у средину," цитат завршен цитат, да настави да буде у 1076 00:54:44,730 --> 00:54:46,110 Низ да гледамо. 1077 00:54:46,110 --> 00:54:47,670 Дакле, ово је фантастично. 1078 00:54:47,670 --> 00:54:50,670 >> Друго, ако вредности носач средњи већи од вредности завршава екуалс 1079 00:54:50,670 --> 00:54:51,920 средњи минус 1. 1080 00:54:51,920 --> 00:54:55,060 1081 00:54:55,060 --> 00:54:57,340 Џеф, шта о овом последњем реду? 1082 00:54:57,340 --> 00:54:58,590 >> СТУДЕНТСКИ: Елсе. 1083 00:54:58,590 --> 00:55:02,486 1084 00:55:02,486 --> 00:55:06,000 Вредности средина је мања од вредности? 1085 00:55:06,000 --> 00:55:07,570 >> ЈАСОН Хирсцххорн: Ми ћемо Дајете ми друго. 1086 00:55:07,570 --> 00:55:09,310 Дакле, ако ми не дају - 1087 00:55:09,310 --> 00:55:12,270 >> СТУДЕНТСКА: Па онда почињу би средњи плус 1. 1088 00:55:12,270 --> 00:55:16,100 1089 00:55:16,100 --> 00:55:19,070 >> ЈАСОН Хирсцххорн: Почев једнаки средњи плус 1, опет, за исти 1090 00:55:19,070 --> 00:55:20,820 Разлог да је Константин Дао нам раније. 1091 00:55:20,820 --> 00:55:24,280 И на крају, који није дао ми линија кода још? 1092 00:55:24,280 --> 00:55:26,600 Повратак лажне, Алеха, шта ми овде писати? 1093 00:55:26,600 --> 00:55:28,590 >> СТУДЕНТСКА: Повратак лажна. 1094 00:55:28,590 --> 00:55:29,320 >> ЈАСОН Хирсцххорн: Повратак лажна. 1095 00:55:29,320 --> 00:55:33,340 И ми треба да урадимо, јер ако не нађемо, морамо да кажемо 1096 00:55:33,340 --> 00:55:34,080 нису га пронашли. 1097 00:55:34,080 --> 00:55:36,270 И ми смо рекли да ћемо да се врате воид, тако да дефинитивно треба да се врате 1098 00:55:36,270 --> 00:55:38,150 боол негде. 1099 00:55:38,150 --> 00:55:42,590 >> Дакле, хајде да овај код. 1100 00:55:42,590 --> 00:55:44,520 Ја стварно ћу - 1101 00:55:44,520 --> 00:55:45,930 па ми смо у терминалу. 1102 00:55:45,930 --> 00:55:47,230 Ми ћемо јасно наш прозор. 1103 00:55:47,230 --> 00:55:49,270 Хајде да се све. 1104 00:55:49,270 --> 00:55:50,340 Нашли смо ту једна грешка. 1105 00:55:50,340 --> 00:55:54,280 Постоји грешка на линији 15, очекује и зарез на крају 1106 00:55:54,280 --> 00:55:54,890 декларација. 1107 00:55:54,890 --> 00:55:56,454 Па шта сам заборавио? 1108 00:55:56,454 --> 00:55:57,230 >> СТУДЕНТСКИ: зарез. 1109 00:55:57,230 --> 00:56:00,200 >> ЈАСОН Хирсцххорн: зарез у праву овде. 1110 00:56:00,200 --> 00:56:00,950 Мислим да је била Томова код. 1111 00:56:00,950 --> 00:56:01,870 Дакле Томе, [ИНАУДИБЛЕ]. 1112 00:56:01,870 --> 00:56:03,120 Само се шалим. 1113 00:56:03,120 --> 00:56:05,010 1114 00:56:05,010 --> 00:56:07,310 Хајде немој да све поново. 1115 00:56:07,310 --> 00:56:10,180 >> СТУДЕНТСКА: Шта Дропбок директоријум треба да буде у за то? 1116 00:56:10,180 --> 00:56:11,345 >> ЈАСОН Хирсцххорн: Дакле, ви можете само гледају за овај део. 1117 00:56:11,345 --> 00:56:16,380 Али опет, ако сте желели да преместите ово код у свој директоријум псет3 да покуша 1118 00:56:16,380 --> 00:56:17,050 то се, то је оно што сам урадио. 1119 00:56:17,050 --> 00:56:18,600 Ако ћете приметити овде - Жао ми је, добро питање. 1120 00:56:18,600 --> 00:56:19,460 >> [? ЛС,?] 1121 00:56:19,460 --> 00:56:24,700 Ја имам овде код финд.ц од дистро кода овонедељном. 1122 00:56:24,700 --> 00:56:26,300 Имам хелперс.х. 1123 00:56:26,300 --> 00:56:30,010 Имам Маке фајл који сам заправо едитед мало да уврсти ове нове 1124 00:56:30,010 --> 00:56:30,710 фајлови пишемо. 1125 00:56:30,710 --> 00:56:34,120 Све те кода ће бити на располагању, не дистрибуција код, али нова 1126 00:56:34,120 --> 00:56:39,510 Направите датотеку, нови фајл ће хелперс.х бити доступан на мрежи за преузимање. 1127 00:56:39,510 --> 00:56:41,800 Опет, тако да они који су ектра кодови имамо. 1128 00:56:41,800 --> 00:56:46,130 >> Тако би сви, по овој линији, чини наћи, бинарни, мехур избор - марки 1129 00:56:46,130 --> 00:56:50,930 сва тројица и саставља у ово извршни код налаз. 1130 00:56:50,930 --> 00:56:54,090 Дакле генерално, ми не желимо да право на цхецк50. 1131 00:56:54,090 --> 00:56:57,580 Ми желимо да урадимо неке тестове сами. 1132 00:56:57,580 --> 00:57:11,750 Али само тако можемо да убрзамо овај мало, цхецк50 2013 псет3.финд ће проћи 1133 00:57:11,750 --> 00:57:14,630 у хелперс.ц-- моја лоша. 1134 00:57:14,630 --> 00:57:16,050 >> Немам то одмах. 1135 00:57:16,050 --> 00:57:20,670 Дакле, ми у ствари идемо на покренути код за реал. 1136 00:57:20,670 --> 00:57:23,570 Усаге.финд /, ви знате шта то значи? 1137 00:57:23,570 --> 00:57:25,970 >> СТУДЕНТСКА: Треба мало командне линије на њему. 1138 00:57:25,970 --> 00:57:26,980 >> ЈАСОН Хирсцххорн: Морам Друга команда линија. 1139 00:57:26,980 --> 00:57:30,640 И по спецификацији, морам да унесете оно што ми тражимо. 1140 00:57:30,640 --> 00:57:33,750 Па хајде да погледамо за 42. 1141 00:57:33,750 --> 00:57:37,030 Ми ћемо га задржати у сортиран, јер смо ниси писао још сортирања функцију - 1142 00:57:37,030 --> 00:57:41,830 42, 43, 44. 1143 00:57:41,830 --> 00:57:46,240 >> И Контрола Д није нашао иглу у пласту сена. 1144 00:57:46,240 --> 00:57:46,505 То је лоше. 1145 00:57:46,505 --> 00:57:47,200 То је дефинитивно ту. 1146 00:57:47,200 --> 00:57:48,090 Хајде да пробамо нешто друго. 1147 00:57:48,090 --> 00:57:49,860 Можда је то зато што сам ставио то на почетку. 1148 00:57:49,860 --> 00:57:54,490 >> Хајде да урадимо 41, 42, 43. 1149 00:57:54,490 --> 00:57:55,012 Тамо идемо. 1150 00:57:55,012 --> 00:57:56,400 Она га нашао. 1151 00:57:56,400 --> 00:58:00,040 Хајде да га ставите на крају сада, само тако да можемо бити темељан - 1152 00:58:00,040 --> 00:58:03,580 40, 41, 42. 1153 00:58:03,580 --> 00:58:05,760 Нисте пронашли иглу. 1154 00:58:05,760 --> 00:58:07,550 Па сам споменуо то раније. 1155 00:58:07,550 --> 00:58:08,980 Нажалост, знао сам ово ће се десити. 1156 00:58:08,980 --> 00:58:11,490 >> Али за педагошке сврхе, добро је да га истражују. 1157 00:58:11,490 --> 00:58:12,990 То не иде. 1158 00:58:12,990 --> 00:58:16,020 Из неког разлога, то не може да га пронађе. 1159 00:58:16,020 --> 00:58:18,970 Ми знамо шта је унутра, али нисмо га проналажење. 1160 00:58:18,970 --> 00:58:24,140 Дакле, једна ствар коју можемо да урадимо је да прође кроз ГДБ да га пронађу, али да ли неко, 1161 00:58:24,140 --> 00:58:27,850 без проласка кроз ГДБ, имају осећај где смо забрљали? 1162 00:58:27,850 --> 00:58:28,480 [? Маду? ?] 1163 00:58:28,480 --> 00:58:30,960 >> СТУДЕНТСКА: Мислим да је то можда када се завршава је једнак почетак, и то је 1164 00:58:30,960 --> 00:58:33,090 само један списак елемената. 1165 00:58:33,090 --> 00:58:35,560 Онда је само то игнорише, уместо од стварно га провере. 1166 00:58:35,560 --> 00:58:36,940 >> ЈАСОН Хирсцххорн: То је потпуно тачно. 1167 00:58:36,940 --> 00:58:41,110 Када крај једнако почетак, радимо и даље имају елемент у нашој листи? 1168 00:58:41,110 --> 00:58:42,480 >> СТУДЕНТСКИ: Да. 1169 00:58:42,480 --> 00:58:45,450 >> ЈАСОН Хирсцххорн: Да, у ствари, ми смо има један и само један елемент. 1170 00:58:45,450 --> 00:58:50,500 И то ће се највероватније догодити када, по коду који смо тестирали, ми смо у 1171 00:58:50,500 --> 00:58:54,640 Предњи део пласту сена или на крај пласту сена. 1172 00:58:54,640 --> 00:58:56,000 То је место где и почетак крај ће једнак 1173 00:58:56,000 --> 00:58:57,820 један, уз бинарну претрагу. 1174 00:58:57,820 --> 00:59:01,440 Дакле, у овим случајевима није успело, јер завршава била једнака почетак. 1175 00:59:01,440 --> 00:59:06,030 >> Али, ако се завршава једнак почетак, ово док петља изврши? 1176 00:59:06,030 --> 00:59:06,390 Она не. 1177 00:59:06,390 --> 00:59:08,660 А могли смо проверили да опет преко ГДБ. 1178 00:59:08,660 --> 00:59:14,000 Дакле, како можемо поправити овај код, јер када је док завршава једнак 1179 00:59:14,000 --> 00:59:16,070 почетак, ми такође желимо ово док петља да ради. 1180 00:59:16,070 --> 00:59:18,620 >> Дакле, шта може поправити правимо на линију 18? 1181 00:59:18,620 --> 00:59:21,060 >> СТУДЕНТСКА: [ИНАУДИБЛЕ] је већа од или једнако. 1182 00:59:21,060 --> 00:59:21,700 >> ЈАСОН Хирсцххорн: Управо тако. 1183 00:59:21,700 --> 00:59:24,600 Док је крај је већа од или једнако почетак. 1184 00:59:24,600 --> 00:59:27,300 Дакле, сада, ми смо се уверили да је кутак случај на крају. 1185 00:59:27,300 --> 00:59:27,870 И хајде да видимо. 1186 00:59:27,870 --> 00:59:29,560 Хајде да ово још једном. 1187 00:59:29,560 --> 00:59:31,266 >> Хајде да сви. 1188 00:59:31,266 --> 00:59:33,910 Опет, ви ћете морати да се само пратите овде. 1189 00:59:33,910 --> 00:59:36,280 Пронађи 41. овај пут. 1190 00:59:36,280 --> 00:59:37,360 Само га држи доследан. 1191 00:59:37,360 --> 00:59:38,210 >> Финд 42. 1192 00:59:38,210 --> 00:59:38,930 Хајде да га ставите на почетку - 1193 00:59:38,930 --> 00:59:41,630 42, 43, 44. 1194 00:59:41,630 --> 00:59:42,860 Нашли смо га. 1195 00:59:42,860 --> 00:59:47,710 Дакле, то је заиста промена нам је потребно да би. 1196 00:59:47,710 --> 00:59:51,090 >> То је било доста кодирања смо Управо јесам, бинарни претраживање. 1197 00:59:51,090 --> 00:59:55,760 Да ли неко има било каква питања пре Идемо даље у линијама смо писали у 1198 00:59:55,760 --> 00:59:58,750 бинарни претраживање или како смо схватили шта нисмо схватити? 1199 00:59:58,750 --> 01:00:01,900 1200 01:00:01,900 --> 01:00:06,270 Пре него што кренемо даље, ја такође желим да истакнем су да се и велики, ми мапиран 1201 01:00:06,270 --> 01:00:09,300 наша псеудо-код један до један на нашем коду. 1202 01:00:09,300 --> 01:00:11,550 >> Ми имао ту лукав ствар да схватим са 1203 01:00:11,550 --> 01:00:12,890 почиње и завршава. 1204 01:00:12,890 --> 01:00:17,380 Али се не схватио, ви би написали прилично 1205 01:00:17,380 --> 01:00:20,740 идентични код, осим те две линије. топ 1206 01:00:20,740 --> 01:00:23,380 И онда би схватио када да си успео у чековима и предметима који 1207 01:00:23,380 --> 01:00:24,840 ти треба нешто друго. 1208 01:00:24,840 --> 01:00:28,510 Дакле, чак и ако сте пратили наше Псеудо-код линија на линији, ви би сте 1209 01:00:28,510 --> 01:00:31,130 стечен све али две линије код који је потребно да пишем. 1210 01:00:31,130 --> 01:00:33,900 >> И ја бих био спреман да се кладим да ви би све то схватио 1211 01:00:33,900 --> 01:00:37,940 прилично брзо, да ли је потребно да се стави неки маркер тамо да схватим 1212 01:00:37,940 --> 01:00:39,190 где сте били. 1213 01:00:39,190 --> 01:00:41,540 1214 01:00:41,540 --> 01:00:44,550 То опет, је моћ ради Псеудо-код испред времена. 1215 01:00:44,550 --> 01:00:47,310 Дакле, можемо да урадимо прво логику, а затим можемо бринути о синтакси. 1216 01:00:47,310 --> 01:00:51,470 >> Да смо били збуњени о логици док је покушавао да напише овај код у Ц, 1217 01:00:51,470 --> 01:00:53,110 бисмо стекли све збркано. 1218 01:00:53,110 --> 01:00:56,340 А онда бисмо се постављају питања о логика и синтакса и усклађивања 1219 01:00:56,340 --> 01:00:57,320 сви они заједно. 1220 01:00:57,320 --> 01:01:02,170 И ми би се изгубио у оно брзо може постати 1221 01:01:02,170 --> 01:01:04,000 веома тежак проблем. 1222 01:01:04,000 --> 01:01:08,680 Дакле, хајде да идемо даље у избор врсте. 1223 01:01:08,680 --> 01:01:10,760 >> Имамо 20 минута. 1224 01:01:10,760 --> 01:01:14,130 Дакле, имам осећај да неће моћи да се кроз све селекције врсте 1225 01:01:14,130 --> 01:01:15,940 и балон врста. 1226 01:01:15,940 --> 01:01:20,670 Али, хајде да бар покушај да завршите избор врсте. 1227 01:01:20,670 --> 01:01:23,540 Дакле спроведе избор врста користећи Следећи функцију декларацију. 1228 01:01:23,540 --> 01:01:27,530 >> Опет, ово се узима из Проблем сет спецификација. 1229 01:01:27,530 --> 01:01:31,560 Инт вредности је заграда, јесте низ целих бројева. 1230 01:01:31,560 --> 01:01:33,490 И инт.н је величина тог низа. 1231 01:01:33,490 --> 01:01:36,840 Избор врста иде да сортирате овај низ. 1232 01:01:36,840 --> 01:01:43,580 >> Дакле, по нашем менталном моделу селекције врста, ми повући - 1233 01:01:43,580 --> 01:01:47,720 Прво, ми идемо кроз листу први време, наћи најмањи број, 1234 01:01:47,720 --> 01:01:52,860 стави га на почетку, наћи други Најмањи број, ставите га у 1235 01:01:52,860 --> 01:01:56,380 Друга позиција ако желимо да Сортирај у растућем редоследу. 1236 01:01:56,380 --> 01:01:58,440 Ја не терам да пишете Псеудо-код одмах. 1237 01:01:58,440 --> 01:02:01,350 >> Али пре него што радимо код као класа у пет минута, ми ћемо писати 1238 01:02:01,350 --> 01:02:03,550 Псеудо-код тако да имамо неки смисао од куда идемо. 1239 01:02:03,550 --> 01:02:05,630 Дакле, покушај да се напише псеудо-код сами. 1240 01:02:05,630 --> 01:02:08,610 А онда покушавају да се окрену да Псеудо-код у коду. 1241 01:02:08,610 --> 01:02:10,740 Ми ћемо учинити да као група за пет минута. 1242 01:02:10,740 --> 01:02:32,560 1243 01:02:32,560 --> 01:02:33,895 >> И наравно, јавите ми ако имате било каквих питања. 1244 01:02:33,895 --> 01:03:56,738 1245 01:03:56,738 --> 01:03:58,230 >> СТУДЕНТСКА: То је? 1246 01:03:58,230 --> 01:04:00,280 >> ЈАСОН Хирсцххорн: Погледајте колико далеко си може добити у више од два минута. 1247 01:04:00,280 --> 01:04:01,790 Ја разумем да нећеш бити у стању да заврши. 1248 01:04:01,790 --> 01:04:03,050 Али, ми ћемо ићи преко овог као група. 1249 01:04:03,050 --> 01:04:57,830 1250 01:04:57,830 --> 01:05:00,630 >> Сви сте тако кодирање [ИНАУДИБЛЕ], тако да сам жао да паузирате шта радиш. 1251 01:05:00,630 --> 01:05:02,530 Али, идемо кроз ово као група. 1252 01:05:02,530 --> 01:05:07,590 И опет, бинарни претраживање, можете дати све ја један ако не и више линија кода. 1253 01:05:07,590 --> 01:05:08,530 Хвала вам на томе. 1254 01:05:08,530 --> 01:05:11,730 Ми ћемо урадити исту ствар овде, код заједно као група. 1255 01:05:11,730 --> 01:05:15,170 >> Дакле, избор врста - хајде да напишем неки брз псеудо-кода. 1256 01:05:15,170 --> 01:05:20,380 По менталном моделу, може ли ми неко дати прва линија псеудо-кода, молим вас? 1257 01:05:20,380 --> 01:05:23,000 1258 01:05:23,000 --> 01:05:24,270 Шта желим да урадим? 1259 01:05:24,270 --> 01:05:27,070 >> СТУДЕНТСКА: Док листа је у квару. 1260 01:05:27,070 --> 01:05:30,630 >> ЈАСОН Хирсцххорн: У реду, док листа је у квару. 1261 01:05:30,630 --> 01:05:33,540 А шта ти мислиш "не ради?" 1262 01:05:33,540 --> 01:05:34,960 >> СТУДЕНТСКА: Док [ИНАУДИБЛЕ] 1263 01:05:34,960 --> 01:05:36,210 није сортирана. 1264 01:05:36,210 --> 01:05:38,460 1265 01:05:38,460 --> 01:05:40,290 >> ЈАСОН Хирсцххорн: Док листа је у квару, шта да радимо? 1266 01:05:40,290 --> 01:05:44,200 Дај ми другу линију, молим, Маркус. 1267 01:05:44,200 --> 01:05:47,186 >> СТУДЕНТСКА: Значи наћи следећи Најмањи број. 1268 01:05:47,186 --> 01:05:49,000 Ово ће бити увучен. 1269 01:05:49,000 --> 01:05:55,140 >> ЈАСОН Хирсцххорн: Па наћи следећи најмањи број. 1270 01:05:55,140 --> 01:05:56,460 И онда неко други? 1271 01:05:56,460 --> 01:06:01,030 Када смо пронашли следећи најмањи број, шта да радимо? 1272 01:06:01,030 --> 01:06:03,010 Идем да кажем наћи Најмањи број. 1273 01:06:03,010 --> 01:06:04,820 То је оно што желимо да урадимо. 1274 01:06:04,820 --> 01:06:06,210 >> Дакле, наћи најмањи број. 1275 01:06:06,210 --> 01:06:08,061 Шта онда да радимо? 1276 01:06:08,061 --> 01:06:09,480 >> СТУДЕНТСКА: [ИНАУДИБЛЕ] за почетак. 1277 01:06:09,480 --> 01:06:10,680 >> ЈАСОН Хирсцххорн: Извините? 1278 01:06:10,680 --> 01:06:12,700 >> СТУДЕНТСКА: Поставите га у почетак листе. 1279 01:06:12,700 --> 01:06:18,540 >> ЈАСОН Хирсцххорн: Тако је поставите у почетак листе. 1280 01:06:18,540 --> 01:06:20,140 А шта ћемо да радимо на ствари који је био у почетку 1281 01:06:20,140 --> 01:06:20,830 листе, зар не? 1282 01:06:20,830 --> 01:06:21,910 Ми смо замене нешто. 1283 01:06:21,910 --> 01:06:23,130 Па где смо ставили то? 1284 01:06:23,130 --> 01:06:24,120 Да, Ана? 1285 01:06:24,120 --> 01:06:25,520 >> СТУДЕНТСКА: Где најмањи број је био? 1286 01:06:25,520 --> 01:06:32,530 >> ЈАСОН Хирсххорн: Па ставио почетак листе где 1287 01:06:32,530 --> 01:06:35,180 Најмањи број је. 1288 01:06:35,180 --> 01:06:38,510 Дакле, док је списак од реда, наћи Најмањи број, ставите га у 1289 01:06:38,510 --> 01:06:40,630 почетак листе, ставити почетак листе где 1290 01:06:40,630 --> 01:06:42,900 Најмањи број је. 1291 01:06:42,900 --> 01:06:45,780 Маркус, да ли преформулисати ову линију док је списак од реда? 1292 01:06:45,780 --> 01:06:51,160 1293 01:06:51,160 --> 01:06:53,900 >> СТУДЕНТСКА: Док су бројеви нису сортирани? 1294 01:06:53,900 --> 01:06:55,920 >> ЈАСОН Хирсххорн: У реду, тако да би Знам да су бројеви нису били 1295 01:06:55,920 --> 01:06:58,670 сортирају, шта ми треба да урадимо? 1296 01:06:58,670 --> 01:07:00,640 Колико нам је потребно да идите кроз ту листу? 1297 01:07:00,640 --> 01:07:09,650 >> СТУДЕНТСКА: Па претпостављам за петљу, или док, док је број проверен је мање 1298 01:07:09,650 --> 01:07:11,900 од дужине листе? 1299 01:07:11,900 --> 01:07:13,160 >> ЈАСОН Хирсххорн: У реду, то је добро. 1300 01:07:13,160 --> 01:07:15,000 Мислим да миспхрасед моје питање слабо. 1301 01:07:15,000 --> 01:07:15,990 Само сам покушавао да добије на ћемо морати да иде 1302 01:07:15,990 --> 01:07:17,580 кроз целу листу. 1303 01:07:17,580 --> 01:07:20,490 Дакле, док је списак од реда, за мене, тешко је карту на. 1304 01:07:20,490 --> 01:07:24,940 Али у основи, то је начин Мислим да о овоме. 1305 01:07:24,940 --> 01:07:28,880 Идите кроз целу листу, наћи Најмањи број, ставите га у 1306 01:07:28,880 --> 01:07:30,130 почетак - заправо, у праву си. 1307 01:07:30,130 --> 01:07:31,380 Хајде да их обоје ставио. 1308 01:07:31,380 --> 01:07:33,470 1309 01:07:33,470 --> 01:07:39,050 >> Дакле, док је списак од реда, ми Потребно је да прође кроз целу листу 1310 01:07:39,050 --> 01:07:42,250 једном, наћи најмањи број, место она у почетку листе, ставити 1311 01:07:42,250 --> 01:07:45,430 почетак листу где Најмањи број је, а онда ако 1312 01:07:45,430 --> 01:07:47,460 списак је и даље ван функције, ми смо Морам да идем кроз ово 1313 01:07:47,460 --> 01:07:48,620 процес поново, зар не? 1314 01:07:48,620 --> 01:07:51,610 Зато избор врсте, Биг-О Рунтиме од селекције врсте, било ко? 1315 01:07:51,610 --> 01:07:52,830 >> СТУДЕНТСКА: н на квадрат. 1316 01:07:52,830 --> 01:07:53,590 >> ЈАСОН Хирсххорн: н на квадрат. 1317 01:07:53,590 --> 01:07:57,040 Јер као Марцус и сам схватио овде, ми ћемо морати да 1318 01:07:57,040 --> 01:08:00,310 идите кроз листу листе број пута. 1319 01:08:00,310 --> 01:08:03,420 Тако ће кроз нешто од Дужина н н број пута 1320 01:08:03,420 --> 01:08:04,990 је у ствари, н квадрат. 1321 01:08:04,990 --> 01:08:08,100 >> Дакле, ово је наша Псеудокод. 1322 01:08:08,100 --> 01:08:09,360 Ово изгледа веома добро. 1323 01:08:09,360 --> 01:08:11,870 Да ли неко има било каква питања о псеудокоду? 1324 01:08:11,870 --> 01:08:14,440 Јер заправо избор врста треба вероватно доћи један на један, код из 1325 01:08:14,440 --> 01:08:14,980 Псеудокод. 1326 01:08:14,980 --> 01:08:17,569 Тако да било питања о логика псеудокоду? 1327 01:08:17,569 --> 01:08:18,819 Молимо питајте га сада. 1328 01:08:18,819 --> 01:08:22,609 1329 01:08:22,609 --> 01:08:25,379 >> Избор врста - док је листа од реда, ми ћемо ићи кроз њу 1330 01:08:25,379 --> 01:08:27,529 и наћи најмањи сваки пут и ставио га у предњем. 1331 01:08:27,529 --> 01:08:33,470 Дакле, док је списак од реда, може неко ми ту линију кода који 1332 01:08:33,470 --> 01:08:39,689 није ми дао линију кода ипак, молим те? 1333 01:08:39,689 --> 01:08:40,939 Звучи као шта? 1334 01:08:40,939 --> 01:08:43,669 1335 01:08:43,669 --> 01:08:44,649 >> СТУДЕНТСКА: То је за петљу. 1336 01:08:44,649 --> 01:08:45,830 >> ЈАСОН Хирсххорн: То звучи лике за петљу. 1337 01:08:45,830 --> 01:08:47,653 У реду, можеш ли ми дати за петљу? 1338 01:08:47,653 --> 01:08:48,925 За - 1339 01:08:48,925 --> 01:08:50,219 >> СТУДЕНТСКА: Ја износи 0.. 1340 01:08:50,219 --> 01:08:52,705 >> ЈАСОН Хирсххорн: ја или - 1341 01:08:52,705 --> 01:08:55,111 шта недостаје? 1342 01:08:55,111 --> 01:08:56,819 Шта се овде? 1343 01:08:56,819 --> 01:08:57,550 >> СТУДЕНТСКИ: Инт. 1344 01:08:57,550 --> 01:08:59,270 >> ЈАСОН Хирсххорн: Управо тако. 1345 01:08:59,270 --> 01:09:02,590 (Инт и = 0; - 1346 01:09:02,590 --> 01:09:07,843 >> СТУДЕНТСКА: и <н; и + +). 1347 01:09:07,843 --> 01:09:09,319 >> ЈАСОН Хирсххорн: то Забијен, Џеф. 1348 01:09:09,319 --> 01:09:10,660 Идемо кроз листу, зар не? 1349 01:09:10,660 --> 01:09:11,880 Видели смо то код раније. 1350 01:09:11,880 --> 01:09:12,850 Савршено. 1351 01:09:12,850 --> 01:09:14,790 Дакле, хајде да ставимо витичасте заграде овде. 1352 01:09:14,790 --> 01:09:17,859 Ја ћу да ставим неке цурли протеза овде. 1353 01:09:17,859 --> 01:09:21,660 >> Дакле, док је 0, морамо да идемо кроз целу листу. 1354 01:09:21,660 --> 01:09:26,612 Дакле, сваки пут идемо кроз листу, шта желимо да пратите? 1355 01:09:26,612 --> 01:09:28,260 >> СТУДЕНТСКА: Ако се праве неке свопови. 1356 01:09:28,260 --> 01:09:29,069 >> ЈАСОН Хирсххорн: Финд Најмањи број. 1357 01:09:29,069 --> 01:09:31,479 Дакле, ми смо вероватно треба да водите евиденцију о Најмањи број сваки пут. 1358 01:09:31,479 --> 01:09:34,590 Тако линија могу да урадим да пратите од најмањег броја? 1359 01:09:34,590 --> 01:09:37,720 Алеха, како могу задржати нумера нечега? 1360 01:09:37,720 --> 01:09:38,460 >> СТУДЕНТСКА: Започните нову променљиву. 1361 01:09:38,460 --> 01:09:39,390 >> ЈАСОН Хирсххорн: Започните нову променљиву. 1362 01:09:39,390 --> 01:09:40,069 Дакле, хајде да креирамо променљиву. 1363 01:09:40,069 --> 01:09:41,830 Који тип? 1364 01:09:41,830 --> 01:09:42,930 >> СТУДЕНТСКИ: Инт. 1365 01:09:42,930 --> 01:09:43,710 >> ЈАСОН Хирсххорн: Инт. 1366 01:09:43,710 --> 01:09:44,939 Назовимо то најмањи. 1367 01:09:44,939 --> 01:09:47,600 А шта је једнак када ми тек почиње? 1368 01:09:47,600 --> 01:09:48,910 Нисмо прошли кроз листу још. 1369 01:09:48,910 --> 01:09:50,540 Ми смо у првом делу лист наш први пут кроз. 1370 01:09:50,540 --> 01:09:51,930 Шта је једнак, Најмањи број? 1371 01:09:51,930 --> 01:09:54,140 >> СТУДЕНТСКА: Вредности и. 1372 01:09:54,140 --> 01:09:54,900 >> ЈАСОН Хирсххорн: Вредности и. 1373 01:09:54,900 --> 01:09:56,980 То звучи баш у праву, зар не? 1374 01:09:56,980 --> 01:09:59,590 Најмањи број на почетку је где смо. 1375 01:09:59,590 --> 01:10:01,960 Тако да сада имамо наш најмањи, а ми треба да прође кроз целу листу и 1376 01:10:01,960 --> 01:10:05,080 упоредите овај најмањи за све остало. 1377 01:10:05,080 --> 01:10:08,150 Дакле, идемо кроз листу опет? 1378 01:10:08,150 --> 01:10:08,630 Мајкл? 1379 01:10:08,630 --> 01:10:10,000 >> СТУДЕНТСКА: Треба да се направи други за петљу. 1380 01:10:10,000 --> 01:10:10,383 >> ЈАСОН Хирсххорн: Још један за петљу. 1381 01:10:10,383 --> 01:10:11,276 Хајде да то урадимо. 1382 01:10:11,276 --> 01:10:12,540 Дај ми неки код. 1383 01:10:12,540 --> 01:10:13,790 >> СТУДЕНТСКА: За петље - 1384 01:10:13,790 --> 01:10:16,750 1385 01:10:16,750 --> 01:10:19,470 за најмањи - 1386 01:10:19,470 --> 01:10:23,040 1387 01:10:23,040 --> 01:10:25,770 Само Ј, можеш ли рећи? 1388 01:10:25,770 --> 01:10:31,150 = 0, тако да - 1389 01:10:31,150 --> 01:10:34,014 1390 01:10:34,014 --> 01:10:35,710 >> ЈАСОН Хирсххорн: Па, ако желимо да прође кроз целу листу - 1391 01:10:35,710 --> 01:10:37,847 >> СТУДЕНТСКА: ј <н, ј + +). 1392 01:10:37,847 --> 01:10:42,140 1393 01:10:42,140 --> 01:10:42,405 >> ЈАСОН Хирсххорн: Фантастично. 1394 01:10:42,405 --> 01:10:46,100 Идемо да идемо кроз за петљу поново. 1395 01:10:46,100 --> 01:10:51,380 И како да нађемо Најмањи број? 1396 01:10:51,380 --> 01:10:52,630 Томе? 1397 01:10:52,630 --> 01:10:54,570 1398 01:10:54,570 --> 01:11:00,520 Имамо тренутни најмањи број, па како да пронађете нови најмањи? 1399 01:11:00,520 --> 01:11:07,200 >> СТУДЕНТСКА: Можемо проверити да ли је најмањи број имамо већи од 1400 01:11:07,200 --> 01:11:09,040 вредности носећег ј. 1401 01:11:09,040 --> 01:11:14,740 >> ЈАСОН Хирсххорн: Дакле, ако је најмања већи од вредности носача ј. 1402 01:11:14,740 --> 01:11:19,350 Дакле, ако је наш тренутни најмањи је већи од - 1403 01:11:19,350 --> 01:11:21,770 Ја ћу прећи ове две линије кода тамо за секунду. 1404 01:11:21,770 --> 01:11:26,010 Зато пре него што урадите било замене, ми Потребно је да прође кроз целу листу. 1405 01:11:26,010 --> 01:11:28,880 Дакле, ово би заправо Псеудокод бити напољу да унутрашњи за петљу. 1406 01:11:28,880 --> 01:11:30,390 Тако прође кроз целу листу. 1407 01:11:30,390 --> 01:11:34,520 Ако је најмањи већи од Вредности ј шта онда? 1408 01:11:34,520 --> 01:11:37,830 >> СТУДЕНТСКА: Онда најмањи једнака вредности ј. 1409 01:11:37,830 --> 01:11:41,190 1410 01:11:41,190 --> 01:11:42,600 >> ЈАСОН Хирсххорн: Фантастично. 1411 01:11:42,600 --> 01:11:44,580 Једно брзо питање - 1412 01:11:44,580 --> 01:11:47,236 Први пут идемо кроз ову петљу, ја ће једнака 0, ј иде 1413 01:11:47,236 --> 01:11:50,710 као једнака 0 када стигнемо овде. 1414 01:11:50,710 --> 01:11:52,410 Тако ћемо се поређењем број на себи. 1415 01:11:52,410 --> 01:11:53,660 Да ли је то ефикасан? 1416 01:11:53,660 --> 01:11:57,260 1417 01:11:57,260 --> 01:11:58,390 Не, то није стварно ефикасан. 1418 01:11:58,390 --> 01:12:02,915 Тако се наша ј треба да иде од 0 до н сваки пут? 1419 01:12:02,915 --> 01:12:06,310 Да ли увек треба да проверите кроз целу листу? 1420 01:12:06,310 --> 01:12:06,520 [ИНАУДИБЛЕ]? 1421 01:12:06,520 --> 01:12:07,564 >> СТУДЕНТСКА: уместо Почните са И. 1422 01:12:07,564 --> 01:12:09,405 >> ЈАСОН Хирсххорн: ј канта почети са чим? 1423 01:12:09,405 --> 01:12:09,990 >> СТУДЕНТСКИ: Ја. 1424 01:12:09,990 --> 01:12:13,040 >> ЈАСОН Хирсххорн: ј може да почне са и. 1425 01:12:13,040 --> 01:12:18,840 Тако да сада упоредимо са почетком са једним смо на. 1426 01:12:18,840 --> 01:12:21,020 Али чак и тада, јесте да као ефикасан као могуће? 1427 01:12:21,020 --> 01:12:22,320 >> СТУДЕНТСКА: и + 1. 1428 01:12:22,320 --> 01:12:25,420 >> ЈАСОН Хирсххорн: и + 1 изгледа да најефикаснији, јер смо 1429 01:12:25,420 --> 01:12:26,120 већ имам. 1430 01:12:26,120 --> 01:12:28,100 Ми наводећи да као Најмањи у линији 15. 1431 01:12:28,100 --> 01:12:29,350 Ми ћемо почети са Следећи аутоматски. 1432 01:12:29,350 --> 01:12:34,470 1433 01:12:34,470 --> 01:12:38,540 Дакле, идемо кроз фор петљу. 1434 01:12:38,540 --> 01:12:39,620 Ми ћемо проћи кроз сваки пут. 1435 01:12:39,620 --> 01:12:40,860 Ми ћемо проћи кроз више пута. 1436 01:12:40,860 --> 01:12:42,860 Сада смо стекли кроз овај унутрашњи за петљу. 1437 01:12:42,860 --> 01:12:44,350 Имамо најнижу вредност спашава. 1438 01:12:44,350 --> 01:12:46,045 Ми треба да га ставите на почетак листе. 1439 01:12:46,045 --> 01:12:48,390 Па како да га поставите на почетак листе? 1440 01:12:48,390 --> 01:12:51,290 1441 01:12:51,290 --> 01:12:55,926 Шта је променљива која се односи до почетка листе? 1442 01:12:55,926 --> 01:13:00,500 Ми смо у овом споља за петљу, па шта односи 1443 01:13:00,500 --> 01:13:01,280 почетак листе? 1444 01:13:01,280 --> 01:13:02,880 >> СТУДЕНТСКА: Вредности и. 1445 01:13:02,880 --> 01:13:03,510 >> ЈАСОН Хирсххорн: Управо тако. 1446 01:13:03,510 --> 01:13:04,650 Вредности и је почетак - 1447 01:13:04,650 --> 01:13:06,320 или ми је, не почетак. 1448 01:13:06,320 --> 01:13:07,090 То је збуњујуће. 1449 01:13:07,090 --> 01:13:11,620 То је где смо у почетку некласификовани део листе. 1450 01:13:11,620 --> 01:13:12,800 Тако сам вредности. 1451 01:13:12,800 --> 01:13:14,050 А шта то једнако? 1452 01:13:14,050 --> 01:13:15,925 1453 01:13:15,925 --> 01:13:17,326 >> СТУДЕНТСКИ: Најмањи. 1454 01:13:17,326 --> 01:13:18,862 >> ЈАСОН Хирсххорн: Вредности и једнако шта? 1455 01:13:18,862 --> 01:13:19,310 >> СТУДЕНТСКИ: Најмањи. 1456 01:13:19,310 --> 01:13:20,030 >> ЈАСОН Хирсххорн: Најмањи. 1457 01:13:20,030 --> 01:13:20,980 Тачно у праву. 1458 01:13:20,980 --> 01:13:23,510 Дакле, ми смо га ставља на почетку листе, а сада морамо да се стави 1459 01:13:23,510 --> 01:13:25,710 почетак листе где најмањи број био. 1460 01:13:25,710 --> 01:13:29,700 Па како да напишем где Најмањи број је био? 1461 01:13:29,700 --> 01:13:31,670 Вредности шта? 1462 01:13:31,670 --> 01:13:33,170 >> СТУДЕНТСКИ: 0. 1463 01:13:33,170 --> 01:13:34,090 >> ЈАСОН Хирсххорн: мали број је на 0? 1464 01:13:34,090 --> 01:13:35,340 >> СТУДЕНТСКИ: Да. 1465 01:13:35,340 --> 01:13:38,680 1466 01:13:38,680 --> 01:13:39,910 >> ЈАСОН Хирсххорн: Шта ако најмањи број је био на крају 1467 01:13:39,910 --> 01:13:40,860 ово некласификовани списак? 1468 01:13:40,860 --> 01:13:42,460 >> СТУДЕНТСКИ: Извините, шта је било питање? 1469 01:13:42,460 --> 01:13:44,020 >> ЈАСОН Хирсххорн: Где је Најмањи број? 1470 01:13:44,020 --> 01:13:46,940 Узели смо најмањи и стави га на почиње, са ове линије овде. 1471 01:13:46,940 --> 01:13:48,987 >> СТУДЕНТСКА: То би требало да имају су ускладиштени у неким - 1472 01:13:48,987 --> 01:13:50,510 >> СТУДЕНТСКА: Вредности ј. 1473 01:13:50,510 --> 01:13:51,520 >> ЈАСОН Хирсххорн: Па, то је не нужно вредности ј. 1474 01:13:51,520 --> 01:13:54,100 То чак и не постоји у овом тренутку. 1475 01:13:54,100 --> 01:13:55,960 >> СТУДЕНТСКА: Морате да се изјасни променљива и раније 1476 01:13:55,960 --> 01:13:58,230 затим га доделите - 1477 01:13:58,230 --> 01:14:01,150 када пронађете најмањи број, доделити индекс тог броја за 1478 01:14:01,150 --> 01:14:02,480 нека променљива или тако нешто. 1479 01:14:02,480 --> 01:14:04,790 >> ЈАСОН Хирсххорн: Па могу Ви кажете да поново? 1480 01:14:04,790 --> 01:14:08,390 >> СТУДЕНТСКА: Па где сте прогласили инт Најмањи, такође би требало да прогласи инт 1481 01:14:08,390 --> 01:14:10,750 Најмањи индекс = и, или тако нешто. 1482 01:14:10,750 --> 01:14:13,280 >> ЈАСОН Хирсххорн: Па где ја инт Најмањи, ја треба да не само да пратите 1483 01:14:13,280 --> 01:14:16,150 од вредности, али локацији. 1484 01:14:16,150 --> 01:14:20,850 инт смаллест_лоцатион = у овом случај, ми ћемо само до и. 1485 01:14:20,850 --> 01:14:22,390 Морамо да знамо где је. 1486 01:14:22,390 --> 01:14:26,820 Имамо до краја кода, и ми схватили смо имали појма где је то било. 1487 01:14:26,820 --> 01:14:29,810 И тако опет, ми смо мапирање ово на један на један. 1488 01:14:29,810 --> 01:14:32,890 Ви кодирања ово на свом вољи вероватно доћи до истог проблема. 1489 01:14:32,890 --> 01:14:34,130 Како се сад да га нађем? 1490 01:14:34,130 --> 01:14:36,720 И онда схватиш, чекај, ја треба да пратите да. 1491 01:14:36,720 --> 01:14:38,500 >> Дакле, ако је најмања већи од вредности ј. 1492 01:14:38,500 --> 01:14:39,740 Поставили смо најмањи једнака вредности ј. 1493 01:14:39,740 --> 01:14:42,090 Шта још треба да промените? 1494 01:14:42,090 --> 01:14:43,710 Константин, шта друго урадити морамо да променимо? 1495 01:14:43,710 --> 01:14:44,560 >> СТУДЕНТСКА: локација. 1496 01:14:44,560 --> 01:14:45,270 >> ЈАСОН Хирсххорн: Управо тако. 1497 01:14:45,270 --> 01:14:46,925 Дакле, дајте ми ту линију у коду. 1498 01:14:46,925 --> 01:14:53,310 >> СТУДЕНТСКА: смаллест_лоцатион = ј. 1499 01:14:53,310 --> 01:14:54,790 >> ЈАСОН Хирсххорн: Управо тако. 1500 01:14:54,790 --> 01:14:58,210 А онда доле на крају, ако желимо да стави почетак листе где 1501 01:14:58,210 --> 01:15:00,790 Најмањи број је био, како Не мислимо да тамо где 1502 01:15:00,790 --> 01:15:02,200 Најмањи број је био? 1503 01:15:02,200 --> 01:15:03,580 Маркус? 1504 01:15:03,580 --> 01:15:08,530 >> СТУДЕНТСКА: Најмањи број је био налази на најмањем месту. 1505 01:15:08,530 --> 01:15:12,230 >> ЈАСОН Хирсххорн: Дакле, у вредности смаллест_лоцатион. 1506 01:15:12,230 --> 01:15:14,700 И шта ми ту ставили? 1507 01:15:14,700 --> 01:15:17,600 Почетак листа, шта је то? 1508 01:15:17,600 --> 01:15:19,710 >> СТУДЕНТСКИ: Па, ми не знамо више јер смо овервроте. 1509 01:15:19,710 --> 01:15:23,250 Дакле, то је заменили места од те две линије? 1510 01:15:23,250 --> 01:15:26,110 Ако пребаците око те две линије. 1511 01:15:26,110 --> 01:15:30,740 >> ЈАСОН Хирсххорн: У реду, тако да не више, јер смо ресетовање линију 1512 01:15:30,740 --> 01:15:31,960 пре вредностима сам да најмањи. 1513 01:15:31,960 --> 01:15:33,810 Дакле, ми смо изгубили ту почетну вредност. 1514 01:15:33,810 --> 01:15:37,350 Дакле, рекли сте своп ове две линије. 1515 01:15:37,350 --> 01:15:41,780 Тако сада стави почетак листе где је најмањи број био. 1516 01:15:41,780 --> 01:15:47,060 Дакле смаллест_лоцатион једнака вредности ја. 1517 01:15:47,060 --> 01:15:51,310 То креће почетком овог некласификовани део листе 1518 01:15:51,310 --> 01:15:52,090 Најмањи локација. 1519 01:15:52,090 --> 01:15:54,860 А онда у вредности ја се селимо да најмањи број. 1520 01:15:54,860 --> 01:15:57,450 >> Да ли то има смисла зашто ми морала је да изврши ту замену? 1521 01:15:57,450 --> 01:15:59,650 Ми би преписани ту вредност - још једна ствар коју вероватно не бих имао 1522 01:15:59,650 --> 01:16:02,740 схватио и пронашао у БДП. 1523 01:16:02,740 --> 01:16:05,310 Тако смо збринути све Псеудокод. 1524 01:16:05,310 --> 01:16:10,935 Има ли још нешто што Потребно је да напишете овде? 1525 01:16:10,935 --> 01:16:14,911 Да ли неко мисли о било чему? 1526 01:16:14,911 --> 01:16:16,180 >> СТУДЕНТСКА: Како знаш кад завршиш? 1527 01:16:16,180 --> 01:16:17,680 >> ЈАСОН Хирсххорн: Како ми радимо Знам кад смо урадили? 1528 01:16:17,680 --> 01:16:18,890 Сјајно питање. 1529 01:16:18,890 --> 01:16:21,684 Дакле, како да знамо када смо урадили. 1530 01:16:21,684 --> 01:16:24,720 >> СТУДЕНТСКА: Креирање променљиву да задржи цоунт од, ако постоји замена направљен или не 1531 01:16:24,720 --> 01:16:27,810 и проћи кроз пролаз. 1532 01:16:27,810 --> 01:16:30,180 >> ЈАСОН Хирсххорн: У реду. 1533 01:16:30,180 --> 01:16:31,800 То би радити у балон врсте. 1534 01:16:31,800 --> 01:16:35,210 Али за избор врсте, ако ми не урадимо направи замену, која би могла бити само 1535 01:16:35,210 --> 01:16:38,670 јер је најмања вредност је у њој њено право место. 1536 01:16:38,670 --> 01:16:41,240 Можда имамо списак 1, 2, 4, 3. 1537 01:16:41,240 --> 01:16:42,830 Други пут кроз ми неће правити никакве свопови. 1538 01:16:42,830 --> 01:16:47,260 Ми ћемо бити на броју 2, али ми ћемо и даље треба да се настави. 1539 01:16:47,260 --> 01:16:49,390 Зато нам је потребно да пратите када смо урадили, или ми само желимо да идемо 1540 01:16:49,390 --> 01:16:50,640 док се то не заврши? 1541 01:16:50,640 --> 01:16:54,098 1542 01:16:54,098 --> 01:16:56,740 >> СТУДЕНТСКА: Можемо да идемо док се не заврши. 1543 01:16:56,740 --> 01:16:58,090 >> ЈАСОН Хирсххорн: Можемо само иди док се ово не заврши. 1544 01:16:58,090 --> 01:17:01,720 У балон врсте, ти си баш у праву, Џеф и Алеха, са решењем - 1545 01:17:01,720 --> 01:17:04,990 то је велика да пратите колико свопови сте направили, јер у мехуру 1546 01:17:04,990 --> 01:17:07,920 врста, ако радите у ствари правимо свопови, завршите и ви можда можете смањити свој 1547 01:17:07,920 --> 01:17:09,000 Проблем доле мало. 1548 01:17:09,000 --> 01:17:11,440 Али за избор врсте, ти си стварно Морам да идем до краја 1549 01:17:11,440 --> 01:17:14,940 навести сваки пут око. 1550 01:17:14,940 --> 01:17:16,200 >> Дакле, ово је то. 1551 01:17:16,200 --> 01:17:18,530 Имамо два минута. 1552 01:17:18,530 --> 01:17:21,560 Хајде да сви. 1553 01:17:21,560 --> 01:17:24,340 Дозволите ми да овде и отворено Пронађи направити Сигуран сам, у ствари, зове се - 1554 01:17:24,340 --> 01:17:25,610 Ја не зовем балон врсте. 1555 01:17:25,610 --> 01:17:29,230 Хајде да променимо ово у избор врсте. 1556 01:17:29,230 --> 01:17:31,060 учинити све. / наћи. 1557 01:17:31,060 --> 01:17:32,360 Хајде да нађемо 42. 1558 01:17:32,360 --> 01:17:38,110 Овај пут ћемо проћи некласификовани листа, јер је требало да сортирате 1559 01:17:38,110 --> 01:17:43,790 Прво, по пронађене код - треба да сортирате Први користећи наш сортирања функцију и затим 1560 01:17:43,790 --> 01:17:44,995 тражити нешто. 1561 01:17:44,995 --> 01:17:46,245 Држим палчеве свима. 1562 01:17:46,245 --> 01:17:48,530 1563 01:17:48,530 --> 01:17:49,370 >> О мој боже. 1564 01:17:49,370 --> 01:17:50,800 Опа, моје срце је куцало. 1565 01:17:50,800 --> 01:17:52,320 Дакле, то је тачно. 1566 01:17:52,320 --> 01:17:57,270 У ствари, ако ми ран то више екстензивно, код, колико ја могу 1567 01:17:57,270 --> 01:17:59,280 реци, је савршено тачно. 1568 01:17:59,280 --> 01:18:02,150 Постоје неки предлози Ја бих за тебе. 1569 01:18:02,150 --> 01:18:06,215 На пример, 15 и 16 изгледа мало сувишан. 1570 01:18:06,215 --> 01:18:09,450 Чини се као да не нужно Потребно је да сачувате како оне. 1571 01:18:09,450 --> 01:18:12,790 Уколико имате најмањи локацију, те може лако да пронађете најмању вредност од 1572 01:18:12,790 --> 01:18:14,750 само куцањем вредности и. 1573 01:18:14,750 --> 01:18:18,100 >> Дакле, ако би требало да буде оцењивања свој код, који ћу у ствари бити, ја бих 1574 01:18:18,100 --> 01:18:21,160 вероватно скинути поен ако укључена оба од њих, јер вам 1575 01:18:21,160 --> 01:18:22,670 не треба оба од ових. 1576 01:18:22,670 --> 01:18:25,400 Ако имате локацију, можете врло лако добити вредност. 1577 01:18:25,400 --> 01:18:27,520 И чини се мало чудно за складиштење обоје. 1578 01:18:27,520 --> 01:18:31,070 Можда чак и не узети бод, али Свакако да је то цоммент можда 1579 01:18:31,070 --> 01:18:32,670 не стилска избор морате да направите. 1580 01:18:32,670 --> 01:18:35,290 Наравно, и даље код ради савршено добро. 1581 01:18:35,290 --> 01:18:36,860 >> Дакле, нажалост нисмо доћи до буббле врсте. 1582 01:18:36,860 --> 01:18:37,940 Жао ми је због тога. 1583 01:18:37,940 --> 01:18:39,135 Урадили смо завршити избор врсте. 1584 01:18:39,135 --> 01:18:41,450 Да ли неко има било какве коначне питања око одабира врсте? 1585 01:18:41,450 --> 01:18:44,320 1586 01:18:44,320 --> 01:18:47,690 >> У реду, пре него што кренемо, ја ти желим да отвори свој Цхроме претраживач. 1587 01:18:47,690 --> 01:18:54,340 Извини, то је било само флагрантно утикач за једну врсту интернет претраживача. 1588 01:18:54,340 --> 01:18:57,770 Можете отворити било који тип претраживача, али вероватно ће бити Цхроме. 1589 01:18:57,770 --> 01:19:01,250 И идите на овом сајту следећем - 1590 01:19:01,250 --> 01:19:06,410 саиат.ме/цс50. 1591 01:19:06,410 --> 01:19:07,685 Ако не куцате на рачунару сада, ви сте јасно 1592 01:19:07,685 --> 01:19:10,210 не ради, Томе. 1593 01:19:10,210 --> 01:19:12,870 >> И молим вас урадите то било у реду сада или у наредних сат времена - 1594 01:19:12,870 --> 01:19:14,260 дајте ми неке повратне информације. 1595 01:19:14,260 --> 01:19:15,660 Ово је само секција два. 1596 01:19:15,660 --> 01:19:18,060 Имамо много више заједно, па сам имају много простора за побољшање. 1597 01:19:18,060 --> 01:19:19,620 Ја надамо такође урадио неке ствари добро. 1598 01:19:19,620 --> 01:19:22,160 Тако да можете да се осећам све лоше, али ако такође желите да ми дају смешак 1599 01:19:22,160 --> 01:19:24,250 лице, ја бих захвалан да као добро. 1600 01:19:24,250 --> 01:19:25,330 Попуните да унутра 1601 01:19:25,330 --> 01:19:28,210 >> И са један минут, то је било три недеље. 1602 01:19:28,210 --> 01:19:30,750 Ја ћу стајати напољу за мало ако имате било каквих питања. 1603 01:19:30,750 --> 01:19:32,220 Ја ћу вас видети у предавање сутра. 1604 01:19:32,220 --> 01:19:34,742