>> ЈАСОН Хирсцххорн: Добродошли до недеље три, сви.
Имамо посла, али узбудљив секција пред нама.
Дакле, прво, зато што смо направили неке помак са курса, али ми и даље
су много учења да се уради, ја сам ће показати да сте неке ресурсе
који би требало да докажу да буде невероватно као корисна не само прићи ваше
проблем поставља, али и дигест све материјал смо вам момци у
предавања и шорц и секција.
>> Онда ћемо да проведемо првих 20 25 минута за одељак иде преко
ГДБ, које може или не може имати користи у овом тренутку, али је
невероватно корисна алатка која ће да вам помогне да отклањања грешака у програмима.
Многи од вас су можда користили у принтф средњи вашег програма да схватим
шта променљива износио.
ГДБ је чак и боље него принтф и не зајебеш своју шифру, јер вам
покрените га на извршну датотеку.
Тако ћемо ићи преко 10 најкориснији команде што је потребно за ГДБ, а ми смо
да идем на вежбе заједно тако у проблему сет три и изван, ви
могу да користе да помогну ГДБ дебуг ваши програми.
И на крају, ми ћемо ићи преко неке сортирање и претраживање алгоритме
да сте видели у предавању, а ми смо ће заправо број, не само
Псеудокод, али код бинарни претрагу, балон врста, и избор врста.
>> Дакле, прво, желим да одем над ресурсима.
То је обиман списак, и то је мањи фонт јер сам имао много тога да
стане овде.
Али то ће вам помоћи не само, опет, са проблемом сетовима и
варе информације сте научили, али дефинитивно, доћи квиз време, то ће
бити невероватно корисно.
Дакле, прво, предавање примећује.
Ако одете на цс50.нет/лецтурес и дођите до специфичног недеље и дана,
видећете да постоје белешке за сваки предавања, која није само
транскрипт, али едитед верзија шта је покривен у предавању са кодом
исечака и друге корисне ситнице.
Топло препоручујем иде преко оне.
И онда као, ту је изворни код доступан из сваког предавања.
И опет, ови слајдови ће такође бити доступан онлине на цс50.нет/сецтионс
ово вече.
>> Дакле, други су бермуде сваке недеље да покривају теме, обично 5 до 15
минута у дужини.
И они надамо ће вам дати велики прајмер на различите теме.
Треће -
и ово је потпуно нови ово године - је студи.цс50.нет.
Ако нисте одјављена, ја Топло препоручујем да то урадите.
Добијате да изаберете тему.
Имамо десетине тема на тамо.
Тако, на пример, можете одабрати функције.
То вам даје неке слајдове и белешке о функцијама.
То су заправо слајдови који подгрупа се подстичу да користе током нашег
презентације у одељку.
Ту је и савети и трикови за бављење са функције, а ту је
пракса проблеми које помажу радите са функцијама.
Ми вам такође дати линкове на кратко функције и времена које функције
су дошли у предавању.
Дакле студи.цс50.нет, потпуно нови ово године, фантастичан ресурс.
>> Даље, имам човека који је за кориснике команда коју можете да покренете на
командне линије.
Дакле, ако имате било каквих питања у вези команда, на пример, Ранд, које смо
наишао је прошле недеље током секцији и ви вероватно сте наишли на
твој проблем сет када пролази кроз генерише код, али ако упишете човека
Ранд, добићете страницу која говори вам све о ранда.
То вам даје оно што је потребно, параметри што је потребно, као и повратак
Тип и кратак опис те функције.
>> Дакле, проверите ранда.
То може бити мало развучен и збуњујуће, па понекад сматрају да
једноставно Гооглинг оно што желим да знам је најбољи начин да се пронађе одговор.
Тако вежбају са Гоогле.
Набавите добар у Гоогле.
То ће постати ваш најбољи пријатељ.
>> Као и Гоогле, ако не можете да пронађете на Гоогле, цс50.нет/дисцусс, то је
Форум.
Шансе су, ако имате питање, један од твојих 700 + вршњацима има да
питање и можда питао већ у расправљати
форуми и да је одговорио.
Дакле, ако имате питање или заједничку имате питање које мислите
Можда други људи можда налетети на, проверите цс50.нет/дисцусс.
>> Коначно, последња два, ако желите да разговарају са право људско биће, канцеларије
сати од понедељка до петка.
Ту је ОнЛине радно време за проширење студенте.
И на крају, али свакако не и најмање важно, ми, знак узвика.
Ви сви имате мој контакт информације.
Ако вам нешто треба, молим те никад оклевајте да ме контактирате.
Увек слободно то урадите.
Врло мало од вас су ме додао на Гцхат, тако да је био разочаравајући,
али надамо се да ће се променити између овај и следећи одељак.
Сва питања до сада о ресурсима?
Сјајно.
>> Коначно, још један утикач за повратне информације, саиат.ме/цс50.
Можете ми дати анонимно повратне о томе како ја радим.
То је заиста корисно прошле недеље.
Имам пар коментара од вас одмах после секција, плус из
остали студенти који га гледали током недеље, и то
је невероватно корисно.
Ја ћу покушати и ограничи своју употребу реч "слатко", али ја ћу показати мој
ентузијазам и узбуђење на друге начине.
Али било је и других додатних суштинске повратне спреге,
оба плусевима и троугао.
Зато молим, ја вас момци дати повратну информацију на вашим проблематичним сетовима.
Слободно ми дају повратне на мом наставе.
Ја сам овде због вас.
>> Сјајно.
То је све што имам за Први део.
Да ли неко има било питања до сада?
И ја имам напомену за контролни центар.
Ектенсион ученици су ме поруком кажу да не добијају никакву аудио,
али то је ван моје моћи да се поправи.
Дакле, надамо се, да добије решен ускоро.
Ако гледаш на мрежи, здраво, али ти не можеш да ме чујеш.
>> Дакле, прво, идемо да иде преко ГДБ.
ГДБ, као што сам раније наговестио, је отклањање грешака алат
много боље него принтф.
Дакле, да почнемо са гдб, момци, ако желите да отворите свој апарат
и да фајл који сам е-поштом на вас раније - овај фајл ће такође бити
доступан онлине на мало -
и рун гдб. / име датотеке.
Прво, наравно, морате да састави филе јер ГДБ само ради на
извршне датотеке.
>> Али ако сте икада желели да покренете ГДБ, прва ствар коју урадите,
наиђете гдб. / Цезара.
Дакле, то је назив програма ми смо да идем са њим одмах.
Зато ћу да пишем направити Цезара, који ће ми дати извршну датотеку
овде означени зеленом бојом.
А онда ћу да покренете ГДБ. / Цесар.
>> И ето га.
Видиш да имамо неки текст ми говори о верзији ГДБ, дајући ми
неке информације гаранција, а онда ћемо имају линију БДП, која изгледа врста
од свиђа наш линији командне линије, али видиш да је отворен
Парен, гдб, блиски заграда.
Пре него што наставимо и дебуг овај фајл који сам послао на све вас, хајде да погледамо
неке корисне команде, тако да имамо осећај од чега ћемо да покрије.
>> Ове команде су овде наведени у поредак у којем сам углавном их користе.
Тако почнем свој програм приказују БМП. / Назив програма,
у овом случају, Цезар.
И онда прва ствар коју урадим 99,9% времена је тип пауза значи.
То поставља брејк на главни.
У суштини, шта радиш тамо је Програм ће зауставити на
Главни тако да можете почети испитивање јој линију по линија,, уместо да све
пут кроз.
Можете прекинути на различитим тачкама у ваш код, али главни је генерално
добро место за почетак.
>> Следећи команда трчим је покренути.
То покреће програм који ради, и ако је потребно да унесете командну линију
аргументи, онда се покрене ту команду.
Покрени са аргументима.
Дакле, пошто смо се иде преко верзију од Ц, који је програм ви
написао за псет два -
ово, наравно, има неке грешке у њој да надамо се да ћемо наћи -
ћемо покренути серију са неком командом лине аргументе јер Цезар,
као ви знате по проблему сет спецификација, узима неки
аргументе командне линије.
>> Следећих неколико команди, следећа један се заправо зове следећи.
Тај неко узме ти линију по линију кроз програм.
Дакле, ударање н онда Ентер вас води до следеће линије, извршавање
претходна линија.
Корак вас води не само до следећи ред, али то
Потребно вам унутар функције.
Дакле, ако сте написали функцију у Ваш број или ако желите да истражите
до и, на пример, можете да удари с, и уместо да иде у следећи ред
фајл који идете кроз права сада, ви ћете заправо корак у
ова функција и видети свој код.
>> Листа показује, у врло корисник пријатан формату, на 10-ак линија око
где се тренутно налазите у вашем коду тако да у ствари можете видети датотеку
уместо да замене уназад и назад између различитих ставова.
Штампа је као принтф, као што само име говори.
То вам показује какав је једнако променљива.
>> Инфо мештани је заиста корисно.
То је посебна верзија печати.
Инфо мештани вам показује све локалне варијабле, штампа их све за тебе
који су тренутно доступни.
Па ја уопште, уместо да одштампате четири варијабле које сам ја
занима ако сам у за петље, за пример, ја само пишем инфо мештани,
и то ме шта је мој бројач и показати једнако, као и низа који сам
ради на једнакима.
>> Коначно, наставите.
Куцање паузу вам стане у тренутку распада.
Можете ходати кроз линије по линија са следећи корак и.
Наставити покрене програм на ваш следећи бреак поен или до окончања ако
нема више бреак бодова.
Онемогућавање уклања брејк ако вам одлучио пауза на главни је
неприкладан, желите да поставите је негде другде.
И коначно к, отказ, добија од ГДБ.
>> Дакле овај програм,. / Цезар, идемо да погледате сада и ми
намеравате да користите ГДБ да пронађе грешке у овом програму.
Трчао сам овај програм раније са Проверите 50, а ја имам једну мрштење.
Све је постојао, он саставио, то донела много тестова, али за
неки разлог, то није прошао пети Тест, окретање БАРФОО, све капе, у
Е-Д-У-И-Р-Р, сви капе, користећи три као кључ.
Био сам врло близу.
Сишао сам по једно слово.
Дакле, постоји нека мала грешка у овде.
Погледао сам кроз мој код.
Нисам могао да схватим.
Надамо се, ви можете да ми помогнете схватим шта ово буба је.
>> Дакле, то је грешка смо у потрази за.
Идемо у ГДБ.
Опет, ја сам покренути ГДБ. / Цезара, па сад смо у ГДБ.
А шта је први ствар коју треба да урадим?
Управо сам ушао ГДБ.
Нека ми неко дати добар команда за улазак.
>> СТУДЕНТСКА: Бреак главни.
>> ЈАСОН Хирсцххорн: Пауза главни.
Фантастично.
Хајде да куцате да унутра
Ви можете гледати овде или пратите заједно на својим рачунарима.
Бреак главни, и видећете Пауза тачка је постављена на -
то ми даје неку чудну меморијску адресу, и то ми даје број реда.
Ако бих да се осврнем на овај фајл, Ја бих схватити да је главни
догодило на линији 21.
Шта би требало да следећи покренути?
Да ли је мој програм ради?
Не.
Дакле, шта би требало да раде следећи?
>> СТУДЕНТСКИ: Рун.
>> ЈАСОН Хирсцххорн: Рун.
Да ли да само Рун Рун, или треба Да додам неке друге ствари у?
>> СТУДЕНТСКА: Покрени са аргументом.
>> ЈАСОН Хирсцххорн: Покрени са команда аргументи.
А пошто сам дебуггинг веома специфичан случај, ја треба да уђе да
Аргумент командне линије.
Дакле, ја ћу то покренути три, што је, опет, излаз сам добио од 50 Цхецк.
Покретање програма.
Ми идемо кроз неколико линија.
Сада ћете видети да смо на линији 21.
Како да знам да смо на линији 21?
Јер, ако се осврнемо на лево мог прозора терминала, тамо
пише линију 21.
И то ми даје, заправо, код који је на линији 21.
Тако сам погрешио раније.
Главни није заправо на линији 21.
Главни је пар редова изнад 21.
Али на линији 21, који је где смо разбијање.
Ова линија кода има још није извршена.
То је важно.
Линија видиш има не још није извршена.
То је следећа линија кода сте у вези да изврши.
>> Дакле, следећи ред, као ви сте вероватно упознати са, је ово
проверу услов да видим да ли имам унели аргумент командне линије.
И да ја, шта је друго део који иде?
Шта је до и?
>> СТУДЕНТСКА: Промена је на цео број.
>> ЈАСОН Хирсцххорн: Извините?
>> СТУДЕНТСКА: Мења Аргумент на цео број.
>> ЈАСОН Хирсцххорн: Значи да сам мења АРГ В1 из ниске у цео број.
И онда шта се то проверава?
>> СТУДЕНТСКА: Ако постоји други командна линија аргумент, осим
покретање програма.
>> ЈАСОН Хирсцххорн: А шта је друга половина ове
Проверу Булова израз?
Овај део овде, до и?
>> СТУДЕНТСКА: Ако је негативан.
>> ЈАСОН Хирсцххорн: Упућивање сигурни шта?
>> СТУДЕНТСКА: Макинг сигурни да је, у ствари, позитивна.
>> ЈАСОН Хирсцххорн: Управо тако.
Ово проверава да види да ли је то негативан, а ако је негативан, ја
имају осећај следећу линију моћ се ми виче на корисника.
Па хајде да удари крај да изврши ову линију.
Ми не видимо ту линију коју сте момци можда очекује да види да виче на
корисник, а затим враћају, јер ова линија није погубити.
Ушао сам 3.
Па ја нисам, у ствари, унесите два команду линија аргумената, и 3 је
већа од нуле.
Дакле, видели смо ту линију, погубљен ми, али нисмо корак
унутар уколико стању.
>> Тако сада, поред, видим ја постављање ИНТ тастер једнако да ја арг в1.
Дакле, то је моје стварање променљиву кључ.
Дакле, ако сам одштампате кључ сада, јер који вам омогућава да видите
вредност у променљивој, кључ једнака 47.
То је чудно, али наравно, то је зато што нема
погубљен још ту линију.
Тако да сада, ако сам погодио Н, изврши ту линију, и урадити кључ штампе, тастер ће износити 3,
што је оно што очекујемо да се једнака.
>> Дакле, опет, у ГДБ, на тебе ред Видим да још увек нисте погубљен.
Морате да притиснете Н или С или број од других команди у ствари
извршава ту линију.
Штампање кључ.
Кључни је на 3.
До сада, тако добро.
Стринг је обичан текст.
Хајде да изврши ту линију.
Идем низ од корисника.
>> Да видимо у мом Цхецк 50, ја унесите БАРФОО све капе, тако
то је оно што ћу ући.
Ако ја сада одштампали обичан текст.
Видећете једнак је стринг.
То ми даје неки други чудан хексадецималном број, али то ради у
Чињеница рећи да је мој стринг БАРФОО.
Да сам хтео да видим шта кључ износи на ова тачка, како бих могао да проверим кључ?
>> СТУДЕНТСКА: Штампа кључ.
>> ЈАСОН Хирсцххорн: Штампа кључ, тачно.
И заиста, постоји пречица.
Ако се уморите од куцања принт, можете само укуцати стр.
Дакле, стр тастер ради исти ствар.
И опет, ја видим то је једнако 3.
>> Ако сам желео да сазнам шта обоје тастер и БАРФОО износила истовремено
али сам био уморан од куцања сваке један од појединачно, ја
да откуцате инфо локалце.
То ми даје кључне износи 3.
Чист текст једнако БАРФОО.
То ми даје те две чудне ствари на врху, то променљива и и
ово променљива н.
>> Они су заправо постојеће у мом главном програму.
Нисмо их још наишао, али као преглед, они
постоји у мом за петљу.
Тако сада, они су једнаки неки чудан бројеве, јер нису били
иницијализован још, али они и даље постоје у меморији, тако да они само сет
до неке вредности за смеће.
Али ми не видимо кључ у равници текст тамо.
>> Зато ћу да изврши ову линију, линија 34, за петље.
Идемо да скочи у за петљу од удара н.
И ми смо унутра за петље.
Ми смо у нашој првој провери.
И опет, ово би требало да изгледају некако познато, јер је то био
Цезар програм који је написан, али опет, има неку врсту грешке.
>> И сад ако ја урадим инфо мештана, јер сам унутра да за петљу, видећете
да сам једнако нули, као што очекујемо.
То је оно што смо га поставили на и иницијализована је да се у за петље.
н једнако 6.
То има смисла, јер смо поставили то на стрлен за обичан текст.
Зато ја волим да радим инфо локалце или принт на променљиву често да се уверите да
све је увек оно Ја очекујем да једнака.
У овом случају, све је шта ја очекујем да једнака.
>> Почнимо креће кроз ово за петљу.
Ја сам на ред је ред 36, ако обичан текст и је већи од и обичан
текст и је мања од или једнака з.
Знам да мој проблем није са мој први писмо, то је са другом писму.
Ако се осврнемо на Цхецк 50, Б иде Е казном.
Узимам А и остављајући га као , не мења на Д. Со
нешто није у реду са друго слово.
Зато ћу да се крећу тамо за секунду.
>> Али ако ја нисам хтео да проверим шта равницу Текст сам износио у овом конкретном
случај, мислим да би требало да буде шта?
Шта би требало да обичан текст сам равно у ово Први круг кроз за петљу?
>> СТУДЕНТСКА: Нула?
>> ЈАСОН Хирсцххорн: Чист текст И?
Дакле, требало би да буде главни Б. И, наравно, једнака нули, али обичан текст
носач нула затворена заграда једнак Б јер жице, као што смо видели прошле недеље,
су низ, па ми смо све Први знак тога.
Па опет, ако сам штампати обичан текст Ја, ја, у ствари, добити карактер
Б. И то је уредан, зар не?
Не заправо имају чистог текста И. То није једна од варијабли сам постављеним
или иницијализован, али можете да одштампате се мноштво ствари
ако желите да.
>> Али да идемо путем.
Ако обичан текст сам већи од А и обичан текст И је мања или једнака
З, који јасно је истина, јер имамо капитал Б. ћу да покренете
неке команде на њему.
Видели смо да је математику прошле недеље, па ћемо узети здраво за готово да то ради
право према Цхецк 50.
>> Ови цурли протеза, први показао да сам излазак ако
услов, други је показао да сам излазак за петљу.
И тако сад кад сам ударио Даље, видећемо вратили смо се на си за петљу поново.
Идемо кроз за петљу поново.
Хајде да заправо корак у секунди итерација петље за и врсти
инфо мештани.
>> Дакле, ми смо у другој итерацији за наше петље.
Ја једнак 1, који очекујемо.
Н једнака 6, који очекујемо.
Кључ једнако 3, који очекујемо.
И обичан текст, видећете, једнако ЕАРФОО сада, не више, јер БАРФОО
у нашем претходном итерацији, Б је промењен у престоници Е. Дакле, ми смо о томе
да ће наићи на проблем, па ово је место где ћемо
зароните у дебаговање.
Али, да ли неко има било каква питања о томе шта смо урадили до сада?
Фантастично.
>> Дакле, ми смо о томе да се изврши ово ако стање, обичан текст конзола сам затворен
носач већи од А и обичан текст ја мање од или једнако З. Али пре
Ја улазим у то, јер то је место где Знам да моја грешка је, ја желим да истакнем
од чистог текста И. Тако хајде да стави отисак напоље.
То се једнак карактера А, тако да изгледа тако далеко, све је добро и добро.
>> Тако да очекујем ову линију по мом логике, ова линија би требало да буде истина.
То је велико слово.
Али, ако сам погодио Н, ми схватамо да ово линија, у ствари, није извршавала.
Скочио сам до иф.
Зашто се то десило?
>> СТУДЕНТСКА: Зато што имате стање од чистог текста већа
него, не једнак или већи од.
>> ЈАСОН Хирсцххорн: Па имао сам чисти текст И је већи од, није већи
од или једнако.
Дакле јасно, капитал није активирати уколико овај услов, а ми смо урадили
не закорачите у њега, а ми смо урадили не потребну промену.
Дакле, то је то, заправо.
Ја схватио своју грешку.
Могао бих да се вратим у моју изворној датотеци, промените га, и ажурирати га и
покрените Цхецк 50 поново.
>> Али, видећемо, само за педагогија је саке, ако ја наставим.
Иначе, ако не извршава ни, али шта уместо тога једнако је команда
да се не мења.
Дакле, то није променило уопште, и ако ја принт чисти текст овде, видећемо идемо
кроз то за петљу није, у ствари, променити тај други лик уопште.
То је још увек главни А.
>> Па опет, дебуггед смо нашу грешку.
Схватили смо да постоји нека логика недостаје.
И ми смо га дебуггед испред времена пре заправо извршава ту линију,
али ти би приметили имали смо само Даље ударио и скок на друго да ако,
то значи да, ако је услов није истина.
Ми не, у ствари, добити Резултат који смо очекивали.
Онда смо се могло затражи, имао ми није био толико мудар, да погледате
да ако стање и провери да ли, у ствари, наш услов треба да процени да
тачно у тренутном контексту.
>> То је све за отклањање грешака у овај програм.
Да ли ико има било каквих питања?
Шта команда могла да удари на отказ ГДБ?
П: А онда ћу бити затражено, отказ у сваком случају?
Да или не.
Ја ћу погодити да, и ја ћу се престати ГДБ.
>> Дакле, то је био брз прајмер за ГДБ.
Заправо, у реалном сценарију, Урадио сам то у радног времена.
Ја ГДБед ово тачан програм на Радно време са студентом.
А ако се вратимо у команди смо видели пре, користили смо бреак маин, прво
ствар коју смо урадили.
Користили смо трку са аргументе командне линије, Друга ствар коју смо урадили.
Ми поред половних много да се креће нас преко линије.
И опет, кратка верзија од следећа је н.
То је у заградама у сиво на слајду.
>> Нисмо користили корак, али нисмо нужно морају да за овај случај.
Али можемо га користити у мало касније данас ако смо отклањање грешака, за
пример, бинарни претраживање када бинарни претраживање се назива у посебан
функција, али ту је нека грешка са њом.
Ми ћемо желети да ступи у позив на бинарну претрагу и
заправо то дебуг.
Листа нисмо користили ни јер смо имали добар смисао нашег кода, али ако ја
да ли желите да добијете осећај шта сам код била око, ја само могу да користим листу.
>> Принт смо користили, инфо мештана смо користили.
Наставите да нам не треба користити у овом случај, нити да ли морамо да користимо
онемогућити, али смо урадили употреба отказ.
Опет, ови 10 команде, вежбају их.
Ако разумете ове команде 10, требало би да буде постављен за отклањање грешака било
издаје са ГДБ.
>> Дакле, ми смо о томе да се иде на, опет, да Срж секције данас, иде преко
ово сортирање и претраживање алгоритми.
Пре него што то урадите, опет, било каква питања, коментари, забринутост за ГДБ?
Тако се сви ће користити ГДБ уместо иф?
Дакле сви, ради недоглед а, сви климају главом право
сада, па ћу вас видети на радног времена и сви ће вас подгрупа и видети
они ће рећи, покажи ми како се користи ГДБ, а ви ћете бити у могућности
да им покажем, зар не?
Врста?
Можда надамо.
Цоол.
>> Тако ћемо да се креће у сортирање и претраживање.
Видећете имам списак већ сортираних за нас, али то не иде
да буде случај увек.
Дакле, у проблему сет спецификација за Проблем сет три, имате шортс
који можете гледати, и то је заправо тражи од вас да гледате те гаће.
Такође, у предавању прошле недеље, отишли ​​смо преко Многе од тих алгоритама, тако да сам
неће да проводе време у класи иде изнова ових алгоритама или цртеж
слике за како ове алгоритми раде.
Опет, да информације можете поново сат предавање, или да информације
је изузетно заробљен на шорцу за ове претраге, све
који су доступни на цс50.нет.
>> Дакле, уместо, шта ћемо да урадите је писати ове програме.
Имамо осећај, ментални модел, како они раде, па шта ћемо
да урадите је да их кодира за стварно.
Идемо да ту ментални модел, та слика, ако хоћете, у
Стварни број.
А ако сте били мало збуњени или магловита на менталном моделу, ја тотално
разумети.
>> Ми заправо не иде у скок кодекса одмах.
Дакле, док је овај брз у овом слајду пита да кодирају бинарну претрагу, и
заправо, итеративни верзија бинарни претрагу, прва ствар коју сам
Заиста желим да урадите је да напиши нешто Псеудокод.
Дакле, ви имате овај ментални модел како бинарни претрагу радови.
Извадите лист папира ако имате један лако доступна, или отвори
текст едитор, и ја бих сви да пишу.
Узмите четири минута да напише Псеудокод за бинарну претрагу.
>> Опет, мислим да о том менталном моделу.
Ја ћу доћи око ако имате питања и можемо извући слику напоље.
Али прво, пре него што почнемо програмирање, Волео бих да пишем
Псеудокод за бинарну претрагу тако када смо зароните у, имамо неке правац као
где смо требали да кренемо.
>> СТУДЕНТСКА: Можемо претпоставити низ Вредности које добијамо већ сортирани?
>> ЈАСОН Хирсцххорн: Дакле, за бинарну претрагу на посао - одлично питање - ви
узети у сортирана низ вредности.
Тако претпоставити да ће радити.
Ми ћемо се вратити на овај слајд.
Видећете у љубичастој функцији Декларација је боол инт бинари_сеарцх
вредност, инт вредности, инт н.
То би требало да изгледа познато ако сте већ пришао или стечен ваше
руке прљаве са сетом проблема.
>> Али то је твоја изјава функција.
Опет, не би требало да брину о толико у овом тренутку.
Оно што ја заиста желим да урадите је да Четири минута до Псеудокод бинарни
тражи, а онда ћемо ићи преко тога као група.
И ја ћу доћи око.
Уколико имате питања, осећају слободно да подигне руку.
>> Зашто не узмеш још два минута завршити у Псеудокод?
Знам да ово може изгледати смешно да трошимо толико времена на
нешто што није чак ни ствари у Ц, а посебно за ове више
изазовних алгоритми и проблема сетови које морамо да схватимо,
са почетком у Псеудокод не забрињава о синтакси, само бриге о
логика, је невероватно корисно.
И на тај начин, ви не решава два невероватно тешки проблеми одједном.
Ти само фокусирајући се на логици, а онда се преселите у синтакси.
>> У реду.
Почнимо иде кроз Псеудокод.
Писао сам овде, бинарни претраживање Псеудокод.
Ми ћемо писати ово на укрцавање заједно.
Или ћу га написати, а ви ћете дати ја сам упутства треба.
Дакле, може ли неко да ми дају први линија псеудокоду ви
написао за бинарну претрагу?
Да, Ени?
>> СТУДЕНТСКА: Док дужина листа је већа од нуле.
>> ЈАСОН Хирсцххорн: Док дужина листе већи од нуле.
И опет, видимо неки Ц-лоокинг синтаксичких ствари овде.
Али већина је на енглеском језику.
Да ли неко има било какву линију су ставили пре тога у свом псеудо-код?
>> СТУДЕНТСКА: Гет низ од поредани бројева.
>> ЈАСОН Хирсцххорн: Ви сте написали "добити низ бројева сортираних. "По
Функција декларација, ми ћемо бити доношење низ бројева сортираних.
>> СТУДЕНТСКА: [ИНАУДИБЛЕ].
>> ЈАСОН Хирсцххорн: Па ћемо имати то.
Али да, ако нисмо имали да ми би требало да сортирате наш низ
бројеве, јер бинарни претрагу ради само на сортираних низова.
Дакле, док дужина листе једнака нули, ја сам ће ставити у неким заграда
да изгледа мало висе као Али, док је Ц, изгледа да мапирају на
док петље, тако да унутар овог времена петља шта нам је потребно да
учинити за бинарну претрагу?
>> Неко други ко није ми дао одговорите још али ко је ово написао?
>> СТУДЕНТСКА: Иди на средини листе.
>> ЈАСОН Хирсцххорн: Томе.
Иди на средини листе.
И додатно питање, шта да радимо кад смо на
средини листе?
>> СТУДЕНТСКА: Да ли чек да ли је то број тражите.
>> ЈАСОН Хирсцххорн: Одлично.
Иди на средини листе и проверите ако наша вредност је тамо -
фантастично.
Да ли је ико имао ништа друго то је било другачије од овога?
То је потпуно тачно.
>> Прва ствар коју радимо у бинарном претрагу се ићи на средини листе и
проверите да ли је наша вредност је тамо.
Тако да претпостављам да ли је наша вредност тамо, шта да радимо?
>> СТУДЕНТСКА: Враћамо нули [ИНАУДИБЛЕ].
>> ЈАСОН Хирсцххорн: Да, ако наш вредност је тамо, ми смо га нашли.
Дакле, можемо рећи неки начин, међутим ово Функција је дефинисана, можемо рећи кориснику
смо га нашли.
Ако је нема, мада, то је где то постаје лукав.
Дакле, ако је нема, неко ко је радио на бинарну претрагу или
је идеју сада, шта да радимо?
>> СТУДЕНТСКИ: Питање.
>> ЈАСОН Хирсцххорн: Да?
>> СТУДЕНТСКА: Да ли је низ већ сортиран?
>> ЈАСОН Хирсцххорн: Да, ми смо под претпоставком низ је већ сортиран.
>> СТУДЕНТСКА: Па онда морате да проверите да ли вредност коју видите је већи од
вредност коју желите, можете да преместите до средине другу половину.
>> ЈАСОН Хирсцххорн: Дакле, ако средина листа је већа него што смо
траже, онда ми шта?
Прелазимо где?
>> СТУДЕНТСКА: Желите да пређете на половина листе са
Бројеви ниже од тога.
>> ЈАСОН Хирсцххорн: Па ми ћемо позовите да лево.
Дакле, ако је средњи већа, можемо претрагу лева половина листе.
И онда по претрази, што Не мислим тако претрагу?
>> СТУДЕНТСКА: [ИНАУДИБЛЕ].
>> ЈАСОН Хирсцххорн: Идемо на средини.
Ми заправо поновити ову ствар.
Враћамо кроз нашу вхиле.
Даћу вам последњи -
друго, ако је, средњи је мање него што ми, шта ми овде радимо?
>> СТУДЕНТСКА: Идите на десно.
>> ЈАСОН Хирсцххорн: Тражи право.
Ово изгледа добро, али да ли неко има било шта да ми можда недостаје или
све остало што сте ставили у псеудо-коду?
Дакле, то је оно што имамо сада.
Док дужина листе је већа од нуле, да ћемо ићи
на средини листе и проверите да ли је наша вредност је тамо.
>> Ако средњи већа, ми ћемо Претраживач лево, друго ако је средњи
мање, идемо да тражи право.
Тако да смо сви имали мало упознати са термини које користимо у рачунарству
и алата имамо.
Али ви ћете приметити већ смо били говорећи на енглеском језику, али смо
Многе ствари које се чинило да мапира на алати имамо у нашој кодирања комплет алата.
Дакле, право искључити слепи миш, нисмо ће заправо кодирати још.
>> Шта ми овде видимо на енглеском да мапе на ствари које можемо писати у Ц?
>> СТУДЕНТСКИ: Док.
>> ЈАСОН Хирсцххорн: Док.
Дакле, ово док овде мапе на оно?
>> СТУДЕНТСКА: док петља.
>> ЈАСОН Хирсцххорн: док петља?
Или можда, више уопште, петља.
Желимо да урадимо нешто изнова и изнова.
Дакле, идемо да код петљу.
А ми већ знамо, јер смо урадили ово пар пута и ми
има доста примера тамо, како заправо да пишу
овај индекс за петљу.
Тако да би требало да буде прилично лако.
Ми би требало да буде у могућности да се то почео прилично брзо.
>> Шта још видимо овде?
Које друге структуре синтакси, ствари да смо упознати са у Ц, радимо
већ имају осећај Басед офф речи које смо користили?
Да, Ана?
[ИНАУДИБЛЕ]
Само се шалим.
Ана, само напред.
>> СТУДЕНТСКА: Ако и друго.
>> ЈАСОН Хирсцххорн: Ако и друго - овде.
Па шта они изгледају?
>> СТУДЕНТСКА: ако други изјава.
>> ЈАСОН Хирсцххорн: Да, услови, зар не?
Дакле, вероватно ћете морати да пишу неке услове.
И опет, иако можда збуњујуће на Прво, ми смо генерално имају смисла сада
како да пишу и услови синтакса за услове.
А ако то не урадимо, ми смо само погледати синтакса за услове, исечете и налепите
да, зато што смо ми знамо треба овде услов.
Све друге ствари које видимо ту карту на ствари које треба да урадите можда у Ц?
Да, Алеха?
>> СТУДЕНТСКА: То може бити очигледно, од само проверавам да ли
вредност једнака нешто.
>> ЈАСОН Хирсцххорн: Па како ћемо проверити и - тако идите на средини листе
и проверите да ли је наша вредност је тамо?
Како то да урадимо у Ц?
Шта је синтакса за то?
>> СТУДЕНТСКИ: Једнако, једнако.
>> ЈАСОН Хирсцххорн: Једнако, једнако.
Дакле, ово је вероватно ће провера бити једнаки, једнаки.
Тако ћемо знати морамо да негде.
И заиста, само у писању, видимо те друге ствари.
Ми ћемо морати да урадимо нешто поређење оператери тамо -
фантастично.
Тако да заправо изгледа, од стране и велики, нисмо написао
Реч Ц кода још.
Али имамо ментални модел доле преко тих предавања и шорц.
>> Написали смо псеудо-код као група.
И већ имамо 80% ако не и 90% од онога што је потребно да урадите.
Сада, само треба да се код то, што је опет, је
не-тривијалан проблем који треба решити.
Али барем смо заглавили на логици.
Барем сада када идемо на радног времена, Ја могу да кажем, ја знам шта ми треба
да уради, али да ли можете да подсети ми од синтаксе?
Или чак и ако радно време су гужве, те Да ли Гоогле за синтаксу, а
него се заглави на логици.
>> И опет, уместо да покушавају да реше логика и синтаксе проблеми све
одједном, често је много боље да се бреак та два хард проблема ван у
два управљати они и учинити псеудо-код, а затим код у Ц
Дакле, хајде да видимо шта сам урадио за Псеудо-код испред времена.
>> Док дужина листе је већа од нуле, погледајте средини
листе.
Ако број пронађених вратио истина, друго ако број већи, претрага лево.
Друго, ако број мањи, претрага десно, ретурн фалсе.
Тако да изгледа готово идентично ако не скоро идентичан ономе што смо написали.
Заправо, Томе, шта сте прво рекли, разбијање на средини листе и ако
број нашао у две изјаве је заправо оно што сам урадио.
>> Ја сам их у комбинацији тамо.
Требао сам слушао ти први пут.
Дакле, да је псеудо-код имамо.
Ако желите да сада, извини, иди назад на наш иницијални проблем.
Идемо код бинари.ц.
Дакле спроведе итеративан верзију бинарни претраживање користећи следеће
Функција декларација.
>> И не треба да копирате то доле још увек.
Ја стварно ћу да отворим горе десно овде бинари.ц.
Дакле, ту је декларација функција у средини екрана.
И видећете да је псеудо-код од на моје стране, али готово идентичан
на шта смо писали, и ставио у за вас.
Па сад, хајде да пет минута да код ове функције.
>> А опет, ако имате било каквих питања, подигне руку, јави ми, ја ћу
доци.
>> СТУДЕНТСКА: [ИНАУДИБЛЕ].
>> ЈАСОН Хирсцххорн: Па сам узео бинарну дефиниција претрагу на
врх, на линији 12.
То је оно што ја имам за моју слајд.
И онда све то псеудо-код Управо сам копирате и налепите из слајду,
Псеудо-код слајд.
Ја још увек не чујем [ИНАУДИБЛЕ].
>> Дакле, ако сте завршили имплементација, ја желим да га провери.
Ја вам поштом на хелперс.х датотеку раније у овој класи.
И то ће бити доступан онлине, као и за преузимање за људе који гледају
овај одељак пут одложено.
И ја само користио генерички дистрибуцију Код из псет3.
Зато сам узео финд.Ц, користим хелперс.х фајл пре него хелперс.х датотеке
који је дат у коду за дистрибуцију.
>> И морао сам да још једну промену у финд.Ц него позивање једноставно
претраживање, позовите бинари_сеарцх.
Дакле, ако желите да тестирате свој код, Знам да је то начин да се то уради.
У ствари, када ћемо бити покренут овај код сада, само сам направио копију
мој псет3 именик, опет, заменили напоље помагачи фајлова и онда су то
променити у финд.Ц да позове бинари_сеарцх него једноставно претраживање.
>> ЈАСОН Хирсцххорн: Да.
Имате питање?
>> СТУДЕНТСКИ: Нема везе.
>> ЈАСОН Хирсцххорн: Без бриге.
Па, хајде да почнемо.
Ми ћемо ово кодира као група.
Једна друга напомена.
Опет, ово је, могу лако бити замењени у за Проблем поставио три.
Имам хелперс.х фајл који, радије од хелперс.х смо дали,
изјављује бинарну претрагу, мехур врста, и избор врста.
И у финд.ц ћете приметити на линији, шта је то, линија 68, зовемо бинарну
Претраживач него претрагу.
Дакле, опет, код који је на располагању мрежи или код који сте
креирање сада могу лако замењени у за П сет 3 да га провери.
>> Али прво, хајде да кодирају бинарну претрагу.
Наша декларација функција, ми врати боол.
Ми се цео број зове вредност.
Ми се низ целих бројева под називом вредности, и узмемо је н
величина низа.
На линији 10, овде, ја имам оштар укључују стдбоол.х.
Да ли неко зна зашто је то тамо?
Дакле, шта то линија кода радим?
>> СТУДЕНТСКА: То вам омогућава да користите тип боол повратка.
>> ЈАСОН Хирсцххорн: Управо тако.
>> СТУДЕНТСКА: Или да је библиотека која омогућава да користите тип боол повратка.
>> ЈАСОН Хирсцххорн: Тако оштар укључују стдбоол.х линија ми даје неке
дефиниције и декларације за ствари да сам дозволио да се користе у
ово библиотека.
Дакле, међу онима каже да постоји овај тип се зове инт, а то може бити
истинити или лажни.
Дакле, то је оно што та линија ради.
А ако ја нисам имао ту линију, ја бих добити у невољи за писање ово
реч овде, боол, тамо.
Тачно у праву.
Тако ми треба да се у овом коду.
У реду.
Дакле ово, опет, је итеративан верзија, не рекурзивни један.
Дакле, хајде да почнемо.
>> Почнимо са ова прва линија псеудо кода.
И надамо се, хоћемо - или не надамо.
Идемо да идемо по соби.
Ми ћемо ићи линију по линију, а ја ћу помоћи схватите линију која нам је потребна
на прво писати.
Дакле, док дужина листе је већа од нуле.
Почнимо у предњем.
Која линија треба да пишем овде, у коду?
>> СТУДЕНТСКА: Док заграда н је већи од 0.
>> ЈАСОН Хирсцххорн: Док н је одличан од 0.
Тако је н величина листе, а ми проверавамо да ли -
>> [изнео ГЛАСОВИ]
>> ЈАСОН Хирсцххорн: - Извини?
>> СТУДЕНТСКА: Како знамо да је н је величина листе?
>> ЈАСОН Хирсцххорн: Извини.
По спецификацији псет, претрага и врста функционише потребно је да напишете,
н је величина листе.
Заборавио сам да објасним да овде.
Али да. н је величина листа, у овом случају.
Дакле, док је н веће од 0.
У реду.
То се може показати мало проблематично мада, ако ствари крену даље.
Зато ћемо наставити да знамо величина листе током ове
функција, али кажу ми кренути са низом од 5 целих бројева.
И ми идемо путем и ми смо сада је сведен на
низ целих бројева 2.
Која 2 цела броја је то?
Величина је 2 сада да желимо да погледајте, али који је то 2?
Да ли то има смисла, то питање?
>> У реду.
Ја ћу га питати поново.
Тако да смо кренути са овим низом 5 цели бројеви, и н износи 5, зар не?
Ми ћемо покренути кроз овде.
вероватно ћемо променити величину, право, како ствари иду даље.
Што је оно што ми кажемо да желимо да урадимо.
Ми не желимо да претражујете пун ствар поново.
Тако да смо га променити на 2.
Ми узимамо пола листа који је чудно.
Дакле, само пицк 2.
Тако да сада н једнак 2.
Извињавам се за сиромашне суво брисање маркера.
Зар не?
И ми смо у потрази кроз листу поново са листом величине 2.
Па, наш низ је још од величине 5.
Ми кажемо да желимо само тражи 2 места у њему.
Дакле, које 2 тачке су они?
>> Да ли то смисла?
Да ли су они оставили су 2 тачке?
Да ли су они прави 2 тачке?
Да ли су они средњи 2 тачке?
Ми смо сломљена проблем доле, али ми заправо не знам који део
Проблем још увек гледамо, само тако што ове 2 променљиве.
Зато нам је потребно мало више онда, док је н већи од 0.
Морамо да знамо где да н је у нашем стварном низу.
>> Дакле, да ли неко има променити ову линију?
Већина ове линије је савршено исправна.
Да ли постоји још један додатак?
Можемо заменимо за нешто из н у чине ову линију мало боље?
Хм?
>> СТУДЕНТСКА: Можете ли иницијализује променљиву као дужине до н који ће онда да се користи
касније у функцији?
>> ЈАСОН Хирсцххорн: Па иницијализацију променљиве дужине за Н,
и ми користимо то касније?
Али онда смо једноставно ажурирати дужину и ми још увек наилазе на овај проблем, где смо
смањи дужину нашег проблема, али ми никада где знамо, заправо,
да дужина мапе на.
>> СТУДЕНТСКА: Зар то неће догодити касније, када ви кажете, тражи лево,
тражи у праву?
Ти ћеш ићи на другачији области вашег -
>> ЈАСОН Хирсцххорн: Идемо да идемо до области, али како да знамо
који су да иду у?
Ако имамо само низ и ово н, како да знамо где да
идите у низу.
У задњем, зар не?
>> СТУДЕНТСКА: Да ли имате, као, нижи везан и горња граница променљива или
тако нешто?
>> ЈАСОН Хирсцххорн: У реду.
Дакле, ово је још једна идеја.
Уместо само праћење величина, ми пратите ниже и
горња граница променљива.
Па како рачунамо величину од доњу границу и горњу границу?
>> [изнео ГЛАСОВИ]
>> ЈАСОН Хирсцххорн: Одузимање.
И такође праћење нижи везан и горња граница да нас обавестите,
смо у потрази ово двоје?
Да ли смо у потрази ово двоје овде?
Да ли смо у потрази средњи два?
Вероватно не средњи два, јер ово, у ствари, бинарно претраживање.
Али сада ћемо бити у могућности да добије величину, али и границе низа.
У суштини, ако имамо дива именик, ми смо га рип на пола.
Ми сада знамо где да мањи именик је.
Али ми нисмо заправо изврсно телефонски именик на пола.
Још увек треба да зна где нове границе наше проблема.
Да ли неко има било каква питања о томе?
Да?
>> СТУДЕНТСКА: Да ли то ради креирањем променљива, ја, да ли онда само схифт
положај у односу на своје ја тренутни положај, а дужина, н?
>> ЈАСОН Хирсцххорн: А шта је ја?
>> СТУДЕНТСКА: Као што сам као нека врста -
Као да би иницијализујете сам да буде средњи положај низа.
А онда, ако је вредност на позицији сам у средина низа у утврђено да
бити мања од вредности коју треба, ја сада постаје дужина низа, плус
вредност И подељен са 2.
Као, види, ти И смена -
>> ЈАСОН Хирсцххорн: Тачно.
>> СТУДЕНАТА: - до -
>> ЈАСОН Хирсцххорн: Па ја сам скоро позитивно да ће радити.
Али поента је, потребно је двоје делови информација овде.
Можете то урадити са почетка и краја, или можете да урадите са величином, а затим
неки маркер.
Али ти не треба два комада информација овде.
Ви не можете да добијете тако са само једном.
Да ли то има смисла?
>> Тако ћемо ићи кроз, и ћемо да радимо [ИНАУДИБЛЕ]
и створити неке маркере.
Па шта ви пишете у вашем коду?
>> СТУДЕНТСКА: Управо сам рекао кам граница један је једнак 0.
>> ЈАСОН Хирсцххорн: Назовимо да инт, почиње.
>> СТУДЕНТСКИ: У реду.
>> ЈАСОН Хирсцххорн: То има више смисла за мене.
А?
>> СТУДЕНТСКА: Рекао сам, претпостављам, инт завршава.
>> ЈАСОН Хирсцххорн: инт завршава.
>> СТУДЕНТСКА: Претпостављам, Н минус 1, или нешто слично.
Као, последњи елемент.
>> ЈАСОН Хирсцххорн: Па ви сте написали, инт почев једнакима 0, зарезом, и инт
Крај једнако н минус 1, зарез.
Па у суштини, шта радимо овде, 0 прву позицију.
И као што знамо у низовима, они не иду до н, они иду и до минус 1 н.
Дакле, имамо неке границе нашег низа.
А ови почетни границе се деси да буде почетне границе нашег проблема.
У реду.
Дакле, то звучи добро.
Онда, ако се вратимо на овој линији, док дужина листе је већи од 0,
шта, уместо н, треба ставимо овде?
>> СТУДЕНТСКА: Напишите завршава минус почетак.
>> ЈАСОН Хирсцххорн: Док се завршава минус почетак је већи од 0?
У реду.
И ми смо могли, ако бисмо желели да учинити да мало лепше, шта
друго могли да урадимо?
Ако бисмо хтели да чисте ово код горе мало?
Како можемо да се ослободимо 0?
Ово је само питање стила.
То је тачно управо сада.
>> СТУДЕНТСКА: Ендинг не једнак почетак?
>> ЈАСОН Хирсцххорн: Можемо да урадимо шта?
>> [изнео ГЛАСОВИ]
>> СТУДЕНТСКА: Ендинг је већи?
>> ЈАСОН Хирсцххорн: Да.
Ми само да урадимо док се завршава је већи од почетка.
Право.
Смо додали почиње на другој страни тога, и ми смо добили ослободити од 0.
Дакле, ово само изгледа мало чистији.
У реду.
Дакле, док дужина листе је 0, писали смо да, иако је већа завршава
него почетак.
Идемо да стави у наша потребно витичасте заграде, а затим прва ствар
желимо да урадимо је да погледате их у малој листи.
Ви?
Можете ли ми дати -
>> СТУДЕНТСКА: Ако заграда вредност квадрат носач -
>> ЈАСОН Хирсцххорн: Ако заграда вредност средња заграда.
>> СТУДЕНТСКА: Ендинг подељен са 2.
>> ЈАСОН Хирсцххорн: Ендинг?
>> СТУДЕНТСКА: Видим проблем са вашим -
>> ЈАСОН Хирсцххорн: У реду.
Па, погледајте средини.
Како знамо шта је средњи?
Да.
Дакле, дозволите ми избрисати тај код.
Како знамо шта је средњи?
У свему, када имате почетак и крај, како наћи
средњи?
>> СТУДЕНТСКА: Ви просек.
>> СТУДЕНТСКА: Можете их додати заједно и онда -
>> ЈАСОН Хирсцххорн: их Адд заједно и онда?
>> СТУДЕНТСКА: А ти просек.
Поделите га са 2.
>> ЈАСОН Хирсцххорн: их Адд заједно и подели са 2..
Дакле, Инт средњи једнако?
Томе, можете га даш?
>> СТУДЕНТСКА: Почев плус ендинг -
>> ЈАСОН Хирсцххорн: Почетак плус завршава.
>> СТУДЕНТСКИ: Све, носач, подељен са 2.
>> ЈАСОН Хирсцххорн: Све, у загради, подељен са 2.
Тако да ми даје средину ништа, исправи?
>> СТУДЕНТСКА: Такође је потребно да се заокружи.
>> ЈАСОН Хирсцххорн: Шта радиш Мислим, морам да га заокружи?
>> [изнео ГЛАСОВИ]
>> СТУДЕНТСКА: Јер ако је непаран број, онда је то као -
>> ЈАСОН Хирсцххорн: Па, у реду.
Тако сам могао да заокружи.
Али ако је непаран број, 5, могу узимање 1 далеко од средине.
Или ако је паран број, а, да је бољи случај.
Ако је 4, имамо само 4, ја могу да Први "средњи", цитат, завршен цитат или
Други "средњи" један.
Или ће радити за бинарну претрагу, па ја стварно не треба да га заокружите.
Али постоји једна друга ствар Потребно је да погледате ову линију.
Ми можда не схватају још, али ћемо се вратити на то.
Пошто ова линија заправо још треба још једну ствар.
>> Али до сада, ми смо написали четири линије кода.
Имамо нашу почетак и завршава маркере.
Имамо вхиле, који мапира на директно на нашем псеудокоду.
Гледамо у средини која мапира директно на наше псеудокоду.
Ја бих рекао ово иде у средину листе, ова линија кода.
А онда, кад идемо на средини листа, следећа ствар коју треба да урадите
се провери да ли је наша вредност је ту за Псеудокод смо писали раније.
>> Па како да проверите да ли је наша вредност је на средини листе?
Ти.
Зашто не урадите ово?
>> СТУДЕНТСКА: Ако је наша вредност је у средини је једнака
шта год ми сет -
Мислим једнака једнака -
>> ЈАСОН Хирсцххорн: То -
У реду.
>> СТУДЕНТСКА: Нисам сигуран шта променљива гледамо
за мада, јер је -
>> [изнео ГЛАСОВИ]
>> СТУДЕНТСКА: [ИНАУДИБЛЕ].
>> ЈАСОН Хирсцххорн: Управо тако.
По декларацији функције, ми смо у потрази за вредношћу.
Дакле, ми смо у потрази за вредношћу у низ вредности.
Дакле, ти си потпуно у праву.
Ви ћете урадити, ако отворена заграда вредност конзола средњи затворен носач екуалс
једнака вредности, а унутра шта треба да радимо?
Ако наша вредност је тамо, шта Не морамо да урадимо?
>> [изнео ГЛАСОВИ]
>> СТУДЕНТСКА: Повратак нула.
>> ЈАСОН Хирсцххорн: Повратак истина.
>> СТУДЕНТСКА: Повратак истина.
>> ЈАСОН Хирсцххорн: Мајкл, шта то линија уради?
>> СТУДЕНТСКА: [ИНАУДИБЛЕ] програм покренути њен курс, а то је више, а
Ви сте оно што је потребно да урадите?
>> ЈАСОН Хирсцххорн: Програм или шта?
У овом случају?
>> СТУДЕНТСКА: функција.
>> ЈАСОН Хирсцххорн: функција.
И тако, да се врати у шта год зове она и му дати вредност, истина.
Тачно у праву.
Главни.
Шта је повратни тип од главни, Мајкл?
>> СТУДЕНТСКИ: инт, цео број?
>> ЈАСОН Хирсцххорн: инт, тачно.
Цео број.
То је било само питање да се уверите момци су били на врху.
Шта то обично врати, ако Све ствари су добро ради?
>> СТУДЕНТСКИ: Нула.
>> ЈАСОН Хирсцххорн: Нула.
Тачно у праву.
>> СТУДЕНТСКА: Ако је ово само враћа труе, нема информација се даје
шта -
Ох, ово је само рекао да је вредност је у низу.
>> ЈАСОН Хирсцххорн: Управо тако.
Овај програм се не дају информације где је тачно вредност.
То говори само, да, нашли смо то, или не, нисмо га пронашли.
Дакле, ако се број, вратите истина.
Па, у ствари ми смо управо урадили да заиста брзо са том једном линијом кода.
Па ја ћу да пређем ту линију псеудокоду.
>> СТУДЕНТСКА: Не треба нам да промени низ?
То би требало да буду вредности, а не вредности, зар не?
>> ЈАСОН Хирсцххорн: Извини.
Хвала.
>> СТУДЕНТСКИ: Да.
>> ЈАСОН Хирсцххорн: Ова линија треба да буду вредности.
Тачно у праву.
У реду.
Дакле, ми смо гледали по средњем листе.
Ако број пронађених повратак истина.
Настављајући са нашим псеудокоду, ако средњи је већа, претрага лево.
Тако да сам имао овде, ако број виши, претрага лево.
Константин, можете ли дати ми ова линија кода?
>> СТУДЕНТСКА: Ако вредност средину -
>> ЈАСОН Хирсцххорн: Па ако вредност -
ако отворено парен вредности брацкет средњи затвори конзола -
>> СТУДЕНТСКА: Да ли је мања од вредности?
>> ЈАСОН Хирсцххорн: Да ли је мање него.
>> СТУДЕНТСКА: Мање од вредности.
>> ЈАСОН Хирсцххорн: Вредност.
Па, у ствари, желите да проверите да ли је број -
Извините.
Ово је мало збуњујуће.
Али, још ако је број у средина листе је већа.
>> СТУДЕНТСКИ: О, у реду.
>> ЈАСОН Хирсцххорн: Ја ћу то променити.
Друго, ако је средњи виши, ми желите да претражите лево, у реду?
А шта да радимо унутра ово ако услов?
>> СТУДЕНТСКА: Могу ли направити малу измену услов, то променити иф?
>> ЈАСОН Хирсцххорн: иф?
У реду.
Дакле, овај код ће извршити отприлике исти.
Али лепа ствар у вези са коришћењем ако, друго ако, иф или ако, иф, друго
значи да је само један од оних ће да се провери, не сва тројица,
потенцијално.
И да се мало чини лепше на рачунару који је
покренете програм.
>> Па [? Константин,?]
ми смо у овој линији, иф вредности, носач средњи затвори заграда
је већа од вредности.
Шта треба да урадимо?
Ми треба да тражи лево.
Како то да урадимо?
Ја ћу вам дати почетак.
>> Имамо ове две ствари се зову почиње и завршава.
Дакле, шта треба да се деси на почетак?
Ако желите да претражите лево од листа, добијамо наш тренутни почетак.
Шта ми је потребно да то урадите?
>> СТУДЕНТСКА: Ми сет почетак на средини плус 1.
>> ЈАСОН Хирсцххорн: Па ако смо претраживање лево?
>> СТУДЕНТСКИ: Извини, средњи минус -
па крај би био средњи минус 1 и почетак -
>> ЈАСОН Хирсцххорн: А шта дешава на почетку?
>> СТУДЕНТСКА: То остаје исти.
>> ЈАСОН Хирсцххорн: Па значење остаје исто.
Ако сте у потрази за лево, ми смо користећи исти почетак -
потпуно тачно.
А завршава?
Извини, шта завршава једнака опет?
>> СТУДЕНТСКА: Средњи минус 1.
>> ЈАСОН Хирсцххорн: Средњи минус 1.
Сада, зашто минус 1, не само средње?
>> СТУДЕНТСКА: средина је од слика већ, зато што смо имали
Проверио да је напоље?
>> ЈАСОН Хирсцххорн: То је потпуно тачно.
Средини је из слике.
Већ смо проверили у средину.
Дакле, ми не желимо "у средину," цитат завршен цитат, да настави да буде у
Низ да гледамо.
Дакле, ово је фантастично.
>> Друго, ако вредности носач средњи већи од вредности завршава екуалс
средњи минус 1.
Џеф, шта о овом последњем реду?
>> СТУДЕНТСКИ: Елсе.
Вредности средина је мања од вредности?
>> ЈАСОН Хирсцххорн: Ми ћемо Дајете ми друго.
Дакле, ако ми не дају -
>> СТУДЕНТСКА: Па онда почињу би средњи плус 1.
>> ЈАСОН Хирсцххорн: Почев једнаки средњи плус 1, опет, за исти
Разлог да је Константин Дао нам раније.
И на крају, који није дао ми линија кода још?
Повратак лажне, Алеха, шта ми овде писати?
>> СТУДЕНТСКА: Повратак лажна.
>> ЈАСОН Хирсцххорн: Повратак лажна.
И ми треба да урадимо, јер ако не нађемо, морамо да кажемо
нису га пронашли.
И ми смо рекли да ћемо да се врате воид, тако да дефинитивно треба да се врате
боол негде.
>> Дакле, хајде да овај код.
Ја стварно ћу -
па ми смо у терминалу.
Ми ћемо јасно наш прозор.
Хајде да се све.
Нашли смо ту једна грешка.
Постоји грешка на линији 15, очекује и зарез на крају
декларација.
Па шта сам заборавио?
>> СТУДЕНТСКИ: зарез.
>> ЈАСОН Хирсцххорн: зарез у праву овде.
Мислим да је била Томова код.
Дакле Томе, [ИНАУДИБЛЕ].
Само се шалим.
Хајде немој да све поново.
>> СТУДЕНТСКА: Шта Дропбок директоријум треба да буде у за то?
>> ЈАСОН Хирсцххорн: Дакле, ви можете само гледају за овај део.
Али опет, ако сте желели да преместите ово код у свој директоријум псет3 да покуша
то се, то је оно што сам урадио.
Ако ћете приметити овде - Жао ми је, добро питање.
>> [? ЛС,?]
Ја имам овде код финд.ц од дистро кода овонедељном.
Имам хелперс.х.
Имам Маке фајл који сам заправо едитед мало да уврсти ове нове
фајлови пишемо.
Све те кода ће бити на располагању, не дистрибуција код, али нова
Направите датотеку, нови фајл ће хелперс.х бити доступан на мрежи за преузимање.
Опет, тако да они који су ектра кодови имамо.
>> Тако би сви, по овој линији, чини наћи, бинарни, мехур избор - марки
сва тројица и саставља у ово извршни код налаз.
Дакле генерално, ми не желимо да право на цхецк50.
Ми желимо да урадимо неке тестове сами.
Али само тако можемо да убрзамо овај мало, цхецк50 2013 псет3.финд ће проћи
у хелперс.ц-- моја лоша.
>> Немам то одмах.
Дакле, ми у ствари идемо на покренути код за реал.
Усаге.финд /, ви знате шта то значи?
>> СТУДЕНТСКА: Треба мало командне линије на њему.
>> ЈАСОН Хирсцххорн: Морам Друга команда линија.
И по спецификацији, морам да унесете оно што ми тражимо.
Па хајде да погледамо за 42.
Ми ћемо га задржати у сортиран, јер смо ниси писао још сортирања функцију -
42, 43, 44.
>> И Контрола Д није нашао иглу у пласту сена.
То је лоше.
То је дефинитивно ту.
Хајде да пробамо нешто друго.
Можда је то зато што сам ставио то на почетку.
>> Хајде да урадимо 41, 42, 43.
Тамо идемо.
Она га нашао.
Хајде да га ставите на крају сада, само тако да можемо бити темељан -
40, 41, 42.
Нисте пронашли иглу.
Па сам споменуо то раније.
Нажалост, знао сам ово ће се десити.
>> Али за педагошке сврхе, добро је да га истражују.
То не иде.
Из неког разлога, то не може да га пронађе.
Ми знамо шта је унутра, али нисмо га проналажење.
Дакле, једна ствар коју можемо да урадимо је да прође кроз ГДБ да га пронађу, али да ли неко,
без проласка кроз ГДБ, имају осећај где смо забрљали?
[? Маду? ?]
>> СТУДЕНТСКА: Мислим да је то можда када се завршава је једнак почетак, и то је
само један списак елемената.
Онда је само то игнорише, уместо од стварно га провере.
>> ЈАСОН Хирсцххорн: То је потпуно тачно.
Када крај једнако почетак, радимо и даље имају елемент у нашој листи?
>> СТУДЕНТСКИ: Да.
>> ЈАСОН Хирсцххорн: Да, у ствари, ми смо има један и само један елемент.
И то ће се највероватније догодити када, по коду који смо тестирали, ми смо у
Предњи део пласту сена или на крај пласту сена.
То је место где и почетак крај ће једнак
један, уз бинарну претрагу.
Дакле, у овим случајевима није успело, јер завршава била једнака почетак.
>> Али, ако се завршава једнак почетак, ово док петља изврши?
Она не.
А могли смо проверили да опет преко ГДБ.
Дакле, како можемо поправити овај код, јер када је док завршава једнак
почетак, ми такође желимо ово док петља да ради.
>> Дакле, шта може поправити правимо на линију 18?
>> СТУДЕНТСКА: [ИНАУДИБЛЕ] је већа од или једнако.
>> ЈАСОН Хирсцххорн: Управо тако.
Док је крај је већа од или једнако почетак.
Дакле, сада, ми смо се уверили да је кутак случај на крају.
И хајде да видимо.
Хајде да ово још једном.
>> Хајде да сви.
Опет, ви ћете морати да се само пратите овде.
Пронађи 41. овај пут.
Само га држи доследан.
>> Финд 42.
Хајде да га ставите на почетку -
42, 43, 44.
Нашли смо га.
Дакле, то је заиста промена нам је потребно да би.
>> То је било доста кодирања смо Управо јесам, бинарни претраживање.
Да ли неко има било каква питања пре Идемо даље у линијама смо писали у
бинарни претраживање или како смо схватили шта нисмо схватити?
Пре него што кренемо даље, ја такође желим да истакнем су да се и велики, ми мапиран
наша псеудо-код један до један на нашем коду.
>> Ми имао ту лукав ствар да схватим са
почиње и завршава.
Али се не схватио, ви би написали прилично
идентични код, осим те две линије. топ
И онда би схватио када да си успео у чековима и предметима који
ти треба нешто друго.
Дакле, чак и ако сте пратили наше Псеудо-код линија на линији, ви би сте
стечен све али две линије код који је потребно да пишем.
>> И ја бих био спреман да се кладим да ви би све то схватио
прилично брзо, да ли је потребно да се стави неки маркер тамо да схватим
где сте били.
То опет, је моћ ради Псеудо-код испред времена.
Дакле, можемо да урадимо прво логику, а затим можемо бринути о синтакси.
>> Да смо били збуњени о логици док је покушавао да напише овај код у Ц,
бисмо стекли све збркано.
А онда бисмо се постављају питања о логика и синтакса и усклађивања
сви они заједно.
И ми би се изгубио у оно брзо може постати
веома тежак проблем.
Дакле, хајде да идемо даље у избор врсте.
>> Имамо 20 минута.
Дакле, имам осећај да неће моћи да се кроз све селекције врсте
и балон врста.
Али, хајде да бар покушај да завршите избор врсте.
Дакле спроведе избор врста користећи Следећи функцију декларацију.
>> Опет, ово се узима из Проблем сет спецификација.
Инт вредности је заграда, јесте низ целих бројева.
И инт.н је величина тог низа.
Избор врста иде да сортирате овај низ.
>> Дакле, по нашем менталном моделу селекције врста, ми повући -
Прво, ми идемо кроз листу први време, наћи најмањи број,
стави га на почетку, наћи други Најмањи број, ставите га у
Друга позиција ако желимо да Сортирај у растућем редоследу.
Ја не терам да пишете Псеудо-код одмах.
>> Али пре него што радимо код као класа у пет минута, ми ћемо писати
Псеудо-код тако да имамо неки смисао од куда идемо.
Дакле, покушај да се напише псеудо-код сами.
А онда покушавају да се окрену да Псеудо-код у коду.
Ми ћемо учинити да као група за пет минута.
>> И наравно, јавите ми ако имате било каквих питања.
>> СТУДЕНТСКА: То је?
>> ЈАСОН Хирсцххорн: Погледајте колико далеко си може добити у више од два минута.
Ја разумем да нећеш бити у стању да заврши.
Али, ми ћемо ићи преко овог као група.
>> Сви сте тако кодирање [ИНАУДИБЛЕ], тако да сам жао да паузирате шта радиш.
Али, идемо кроз ово као група.
И опет, бинарни претраживање, можете дати све ја један ако не и више линија кода.
Хвала вам на томе.
Ми ћемо урадити исту ствар овде, код заједно као група.
>> Дакле, избор врста - хајде да напишем неки брз псеудо-кода.
По менталном моделу, може ли ми неко дати прва линија псеудо-кода, молим вас?
Шта желим да урадим?
>> СТУДЕНТСКА: Док листа је у квару.
>> ЈАСОН Хирсцххорн: У реду, док листа је у квару.
А шта ти мислиш "не ради?"
>> СТУДЕНТСКА: Док [ИНАУДИБЛЕ]
није сортирана.
>> ЈАСОН Хирсцххорн: Док листа је у квару, шта да радимо?
Дај ми другу линију, молим, Маркус.
>> СТУДЕНТСКА: Значи наћи следећи Најмањи број.
Ово ће бити увучен.
>> ЈАСОН Хирсцххорн: Па наћи следећи најмањи број.
И онда неко други?
Када смо пронашли следећи најмањи број, шта да радимо?
Идем да кажем наћи Најмањи број.
То је оно што желимо да урадимо.
>> Дакле, наћи најмањи број.
Шта онда да радимо?
>> СТУДЕНТСКА: [ИНАУДИБЛЕ] за почетак.
>> ЈАСОН Хирсцххорн: Извините?
>> СТУДЕНТСКА: Поставите га у почетак листе.
>> ЈАСОН Хирсцххорн: Тако је поставите у почетак листе.
А шта ћемо да радимо на ствари који је био у почетку
листе, зар не?
Ми смо замене нешто.
Па где смо ставили то?
Да, Ана?
>> СТУДЕНТСКА: Где најмањи број је био?
>> ЈАСОН Хирсххорн: Па ставио почетак листе где
Најмањи број је.
Дакле, док је списак од реда, наћи Најмањи број, ставите га у
почетак листе, ставити почетак листе где
Најмањи број је.
Маркус, да ли преформулисати ову линију док је списак од реда?
>> СТУДЕНТСКА: Док су бројеви нису сортирани?
>> ЈАСОН Хирсххорн: У реду, тако да би Знам да су бројеви нису били
сортирају, шта ми треба да урадимо?
Колико нам је потребно да идите кроз ту листу?
>> СТУДЕНТСКА: Па претпостављам за петљу, или док, док је број проверен је мање
од дужине листе?
>> ЈАСОН Хирсххорн: У реду, то је добро.
Мислим да миспхрасед моје питање слабо.
Само сам покушавао да добије на ћемо морати да иде
кроз целу листу.
Дакле, док је списак од реда, за мене, тешко је карту на.
Али у основи, то је начин Мислим да о овоме.
Идите кроз целу листу, наћи Најмањи број, ставите га у
почетак - заправо, у праву си.
Хајде да их обоје ставио.
>> Дакле, док је списак од реда, ми Потребно је да прође кроз целу листу
једном, наћи најмањи број, место она у почетку листе, ставити
почетак листу где Најмањи број је, а онда ако
списак је и даље ван функције, ми смо Морам да идем кроз ово
процес поново, зар не?
Зато избор врсте, Биг-О Рунтиме од селекције врсте, било ко?
>> СТУДЕНТСКА: н на квадрат.
>> ЈАСОН Хирсххорн: н на квадрат.
Јер као Марцус и сам схватио овде, ми ћемо морати да
идите кроз листу листе број пута.
Тако ће кроз нешто од Дужина н н број пута
је у ствари, н квадрат.
>> Дакле, ово је наша Псеудокод.
Ово изгледа веома добро.
Да ли неко има било каква питања о псеудокоду?
Јер заправо избор врста треба вероватно доћи један на један, код из
Псеудокод.
Тако да било питања о логика псеудокоду?
Молимо питајте га сада.
>> Избор врста - док је листа од реда, ми ћемо ићи кроз њу
и наћи најмањи сваки пут и ставио га у предњем.
Дакле, док је списак од реда, може неко ми ту линију кода који
није ми дао линију кода ипак, молим те?
Звучи као шта?
>> СТУДЕНТСКА: То је за петљу.
>> ЈАСОН Хирсххорн: То звучи лике за петљу.
У реду, можеш ли ми дати за петљу?
За -
>> СТУДЕНТСКА: Ја износи 0..
>> ЈАСОН Хирсххорн: ја или -
шта недостаје?
Шта се овде?
>> СТУДЕНТСКИ: Инт.
>> ЈАСОН Хирсххорн: Управо тако.
(Инт и = 0; -
>> СТУДЕНТСКА: и <н; и + +).
>> ЈАСОН Хирсххорн: то Забијен, Џеф.
Идемо кроз листу, зар не?
Видели смо то код раније.
Савршено.
Дакле, хајде да ставимо витичасте заграде овде.
Ја ћу да ставим неке цурли протеза овде.
>> Дакле, док је 0, морамо да идемо кроз целу листу.
Дакле, сваки пут идемо кроз листу, шта желимо да пратите?
>> СТУДЕНТСКА: Ако се праве неке свопови.
>> ЈАСОН Хирсххорн: Финд Најмањи број.
Дакле, ми смо вероватно треба да водите евиденцију о Најмањи број сваки пут.
Тако линија могу да урадим да пратите од најмањег броја?
Алеха, како могу задржати нумера нечега?
>> СТУДЕНТСКА: Започните нову променљиву.
>> ЈАСОН Хирсххорн: Започните нову променљиву.
Дакле, хајде да креирамо променљиву.
Који тип?
>> СТУДЕНТСКИ: Инт.
>> ЈАСОН Хирсххорн: Инт.
Назовимо то најмањи.
А шта је једнак када ми тек почиње?
Нисмо прошли кроз листу још.
Ми смо у првом делу лист наш први пут кроз.
Шта је једнак, Најмањи број?
>> СТУДЕНТСКА: Вредности и.
>> ЈАСОН Хирсххорн: Вредности и.
То звучи баш у праву, зар не?
Најмањи број на почетку је где смо.
Тако да сада имамо наш најмањи, а ми треба да прође кроз целу листу и
упоредите овај најмањи за све остало.
Дакле, идемо кроз листу опет?
Мајкл?
>> СТУДЕНТСКА: Треба да се направи други за петљу.
>> ЈАСОН Хирсххорн: Још један за петљу.
Хајде да то урадимо.
Дај ми неки код.
>> СТУДЕНТСКА: За петље -
за најмањи -
Само Ј, можеш ли рећи?
= 0, тако да -
>> ЈАСОН Хирсххорн: Па, ако желимо да прође кроз целу листу -
>> СТУДЕНТСКА: ј <н, ј + +).
>> ЈАСОН Хирсххорн: Фантастично.
Идемо да идемо кроз за петљу поново.
И како да нађемо Најмањи број?
Томе?
Имамо тренутни најмањи број, па како да пронађете нови најмањи?
>> СТУДЕНТСКА: Можемо проверити да ли је најмањи број имамо већи од
вредности носећег ј.
>> ЈАСОН Хирсххорн: Дакле, ако је најмања већи од вредности носача ј.
Дакле, ако је наш тренутни најмањи је већи од -
Ја ћу прећи ове две линије кода тамо за секунду.
Зато пре него што урадите било замене, ми Потребно је да прође кроз целу листу.
Дакле, ово би заправо Псеудокод бити напољу да унутрашњи за петљу.
Тако прође кроз целу листу.
Ако је најмањи већи од Вредности ј шта онда?
>> СТУДЕНТСКА: Онда најмањи једнака вредности ј.
>> ЈАСОН Хирсххорн: Фантастично.
Једно брзо питање -
Први пут идемо кроз ову петљу, ја ће једнака 0, ј иде
као једнака 0 када стигнемо овде.
Тако ћемо се поређењем број на себи.
Да ли је то ефикасан?
Не, то није стварно ефикасан.
Тако се наша ј треба да иде од 0 до н сваки пут?
Да ли увек треба да проверите кроз целу листу?
[ИНАУДИБЛЕ]?
>> СТУДЕНТСКА: уместо Почните са И.
>> ЈАСОН Хирсххорн: ј канта почети са чим?
>> СТУДЕНТСКИ: Ја.
>> ЈАСОН Хирсххорн: ј може да почне са и.
Тако да сада упоредимо са почетком са једним смо на.
Али чак и тада, јесте да као ефикасан као могуће?
>> СТУДЕНТСКА: и + 1.
>> ЈАСОН Хирсххорн: и + 1 изгледа да најефикаснији, јер смо
већ имам.
Ми наводећи да као Најмањи у линији 15.
Ми ћемо почети са Следећи аутоматски.
Дакле, идемо кроз фор петљу.
Ми ћемо проћи кроз сваки пут.
Ми ћемо проћи кроз више пута.
Сада смо стекли кроз овај унутрашњи за петљу.
Имамо најнижу вредност спашава.
Ми треба да га ставите на почетак листе.
Па како да га поставите на почетак листе?
Шта је променљива која се односи до почетка листе?
Ми смо у овом споља за петљу, па шта односи
почетак листе?
>> СТУДЕНТСКА: Вредности и.
>> ЈАСОН Хирсххорн: Управо тако.
Вредности и је почетак -
или ми је, не почетак.
То је збуњујуће.
То је где смо у почетку некласификовани део листе.
Тако сам вредности.
А шта то једнако?
>> СТУДЕНТСКИ: Најмањи.
>> ЈАСОН Хирсххорн: Вредности и једнако шта?
>> СТУДЕНТСКИ: Најмањи.
>> ЈАСОН Хирсххорн: Најмањи.
Тачно у праву.
Дакле, ми смо га ставља на почетку листе, а сада морамо да се стави
почетак листе где најмањи број био.
Па како да напишем где Најмањи број је био?
Вредности шта?
>> СТУДЕНТСКИ: 0.
>> ЈАСОН Хирсххорн: мали број је на 0?
>> СТУДЕНТСКИ: Да.
>> ЈАСОН Хирсххорн: Шта ако најмањи број је био на крају
ово некласификовани списак?
>> СТУДЕНТСКИ: Извините, шта је било питање?
>> ЈАСОН Хирсххорн: Где је Најмањи број?
Узели смо најмањи и стави га на почиње, са ове линије овде.
>> СТУДЕНТСКА: То би требало да имају су ускладиштени у неким -
>> СТУДЕНТСКА: Вредности ј.
>> ЈАСОН Хирсххорн: Па, то је не нужно вредности ј.
То чак и не постоји у овом тренутку.
>> СТУДЕНТСКА: Морате да се изјасни променљива и раније
затим га доделите -
када пронађете најмањи број, доделити индекс тог броја за
нека променљива или тако нешто.
>> ЈАСОН Хирсххорн: Па могу Ви кажете да поново?
>> СТУДЕНТСКА: Па где сте прогласили инт Најмањи, такође би требало да прогласи инт
Најмањи индекс = и, или тако нешто.
>> ЈАСОН Хирсххорн: Па где ја инт Најмањи, ја треба да не само да пратите
од вредности, али локацији.
инт смаллест_лоцатион = у овом случај, ми ћемо само до и.
Морамо да знамо где је.
Имамо до краја кода, и ми схватили смо имали појма где је то било.
И тако опет, ми смо мапирање ово на један на један.
Ви кодирања ово на свом вољи вероватно доћи до истог проблема.
Како се сад да га нађем?
И онда схватиш, чекај, ја треба да пратите да.
>> Дакле, ако је најмања већи од вредности ј.
Поставили смо најмањи једнака вредности ј.
Шта још треба да промените?
Константин, шта друго урадити морамо да променимо?
>> СТУДЕНТСКА: локација.
>> ЈАСОН Хирсххорн: Управо тако.
Дакле, дајте ми ту линију у коду.
>> СТУДЕНТСКА: смаллест_лоцатион = ј.
>> ЈАСОН Хирсххорн: Управо тако.
А онда доле на крају, ако желимо да стави почетак листе где
Најмањи број је био, како Не мислимо да тамо где
Најмањи број је био?
Маркус?
>> СТУДЕНТСКА: Најмањи број је био налази на најмањем месту.
>> ЈАСОН Хирсххорн: Дакле, у вредности смаллест_лоцатион.
И шта ми ту ставили?
Почетак листа, шта је то?
>> СТУДЕНТСКИ: Па, ми не знамо више јер смо овервроте.
Дакле, то је заменили места од те две линије?
Ако пребаците око те две линије.
>> ЈАСОН Хирсххорн: У реду, тако да не више, јер смо ресетовање линију
пре вредностима сам да најмањи.
Дакле, ми смо изгубили ту почетну вредност.
Дакле, рекли сте своп ове две линије.
Тако сада стави почетак листе где је најмањи број био.
Дакле смаллест_лоцатион једнака вредности ја.
То креће почетком овог некласификовани део листе
Најмањи локација.
А онда у вредности ја се селимо да најмањи број.
>> Да ли то има смисла зашто ми морала је да изврши ту замену?
Ми би преписани ту вредност - још једна ствар коју вероватно не бих имао
схватио и пронашао у БДП.
Тако смо збринути све Псеудокод.
Има ли још нешто што Потребно је да напишете овде?
Да ли неко мисли о било чему?
>> СТУДЕНТСКА: Како знаш кад завршиш?
>> ЈАСОН Хирсххорн: Како ми радимо Знам кад смо урадили?
Сјајно питање.
Дакле, како да знамо када смо урадили.
>> СТУДЕНТСКА: Креирање променљиву да задржи цоунт од, ако постоји замена направљен или не
и проћи кроз пролаз.
>> ЈАСОН Хирсххорн: У реду.
То би радити у балон врсте.
Али за избор врсте, ако ми не урадимо направи замену, која би могла бити само
јер је најмања вредност је у њој њено право место.
Можда имамо списак 1, 2, 4, 3.
Други пут кроз ми неће правити никакве свопови.
Ми ћемо бити на броју 2, али ми ћемо и даље треба да се настави.
Зато нам је потребно да пратите када смо урадили, или ми само желимо да идемо
док се то не заврши?
>> СТУДЕНТСКА: Можемо да идемо док се не заврши.
>> ЈАСОН Хирсххорн: Можемо само иди док се ово не заврши.
У балон врсте, ти си баш у праву, Џеф и Алеха, са решењем -
то је велика да пратите колико свопови сте направили, јер у мехуру
врста, ако радите у ствари правимо свопови, завршите и ви можда можете смањити свој
Проблем доле мало.
Али за избор врсте, ти си стварно Морам да идем до краја
навести сваки пут око.
>> Дакле, ово је то.
Имамо два минута.
Хајде да сви.
Дозволите ми да овде и отворено Пронађи направити Сигуран сам, у ствари, зове се -
Ја не зовем балон врсте.
Хајде да променимо ово у избор врсте.
учинити све. / наћи.
Хајде да нађемо 42.
Овај пут ћемо проћи некласификовани листа, јер је требало да сортирате
Прво, по пронађене код - треба да сортирате Први користећи наш сортирања функцију и затим
тражити нешто.
Држим палчеве свима.
>> О мој боже.
Опа, моје срце је куцало.
Дакле, то је тачно.
У ствари, ако ми ран то више екстензивно, код, колико ја могу
реци, је савршено тачно.
Постоје неки предлози Ја бих за тебе.
На пример, 15 и 16 изгледа мало сувишан.
Чини се као да не нужно Потребно је да сачувате како оне.
Уколико имате најмањи локацију, те може лако да пронађете најмању вредност од
само куцањем вредности и.
>> Дакле, ако би требало да буде оцењивања свој код, који ћу у ствари бити, ја бих
вероватно скинути поен ако укључена оба од њих, јер вам
не треба оба од ових.
Ако имате локацију, можете врло лако добити вредност.
И чини се мало чудно за складиштење обоје.
Можда чак и не узети бод, али Свакако да је то цоммент можда
не стилска избор морате да направите.
Наравно, и даље код ради савршено добро.
>> Дакле, нажалост нисмо доћи до буббле врсте.
Жао ми је због тога.
Урадили смо завршити избор врсте.
Да ли неко има било какве коначне питања око одабира врсте?
>> У реду, пре него што кренемо, ја ти желим да отвори свој Цхроме претраживач.
Извини, то је било само флагрантно утикач за једну врсту интернет претраживача.
Можете отворити било који тип претраживача, али вероватно ће бити Цхроме.
И идите на овом сајту следећем -
саиат.ме/цс50.
Ако не куцате на рачунару сада, ви сте јасно
не ради, Томе.
>> И молим вас урадите то било у реду сада или у наредних сат времена -
дајте ми неке повратне информације.
Ово је само секција два.
Имамо много више заједно, па сам имају много простора за побољшање.
Ја надамо такође урадио неке ствари добро.
Тако да можете да се осећам све лоше, али ако такође желите да ми дају смешак
лице, ја бих захвалан да као добро.
Попуните да унутра
>> И са један минут, то је било три недеље.
Ја ћу стајати напољу за мало ако имате било каквих питања.
Ја ћу вас видети у предавање сутра.