JASON Hirschhorn: Sveiki į savaitę tris, visi. Mes turime užimtas, bet įdomu skyrius prieš mus. Taigi, pirmiausia, nes mes padarėme kai Headway su žinoma, bet mes vis dar buvo mokymosi daug liko padaryti, aš ketinu parodyti jums, vaikinai, kai išteklius kad turėtų pasirodyti neįtikėtinai naudinga, nes jūs ne tik kreiptis į savo problema nustato, bet ir virškinti visus medžiagos, kurias mes jums vaikinai paskaitos ir šortai ir sekcija. Tada mes ketiname išleisti pirmąjį 20 25 minučių trukmės skyriuje vyksta per GDB, kurios gali arba negali būti naudojami šiuo metu, bet tai yra neįtikėtinai naudingas įrankis, kad bus padėti jums derinti savo programas. Jūsų daug gali naudoti printf į viduryje savo programą išsiaiškinti , kas sudarė kintamasis. GDB yra net geriau nei printf ir nėra susukti savo kodą, nes jums ją paleisti vykdomąjį failą. Taigi mes pereiti per 10 labiausiai naudinga komandas jums reikia GDB, ir mes Išvykstate pratybose kartu, į problemą nustatyti tris ir už jos ribų, jums galima naudoti GDB padėti perprogramuoti jūsų programas. Ir pagaliau, mes ketiname eiti per kai rūšiavimo ir paieškos algoritmai kad matei paskaitą, ir mes esame vyksta iš tikrųjų kodas, o ne tik Pseudocode, bet kodas dvejetainis paieškos, burbulas rūšiuoti ir atranka rūšiuoti. Taigi, pirmiausia, noriu eiti daugiau išteklių. Tai išsamus sąrašas, ir tai Sumažinti šriftą, nes turėjau daug tinka čia. Bet tai bus ne tik padėti jums, vėl su problema rinkinių ir virškinti informacijos sužinojau, bet tikrai, ateis laikas, viktorina, tai bus būti neįtikėtinai naudinga. Taigi, pirmiausia, paskaita pažymi. Jeigu jūs einate į cs50.net/lectures ir pereikite prie konkrečios savaitės dieną pamatysite, kad yra raštas kiekvieno paskaitą, kuri yra ne tik stenograma, bet redagavo versija kas buvo aptarta paskaitos, kurios kodas fragmentai ir kitos naudingos smulkmenos. Aš labai rekomenduoju vyksta per juos. Ir tada taip, ten kodo gauti iš kiekvienos paskaitos. Ir vėl, šios skaidrės, taip pat bus rasti internete adresu cs50.net/sections šį vakarą. Taigi antrasis yra šortai kiekvieną savaitę, kad apima tokias temas, paprastai 5 iki 15 minučių ilgio. Ir tie, tikiuosi jums duos puikus gruntas įvairiomis temomis. Trečia - ir tai yra visiškai naujas tai metų - tai study.cs50.net. Jei neturite patikrinti jį, aš labai rekomenduojame, kad jūs padaryti. Jūs gaunate pasirinkti temą. Mes turime daugybę temų ten. Taigi, pavyzdžiui, galima pasirinkti funkcijas. Jis suteikia jums keletą skaidres ir atkreipia dėmesį į funkcijų. Tai yra iš tikrųjų skaidres, kad TFS yra skatinami naudotis per mūsų pristatymus skyriuje. Taip pat patarimai ir gudrybės prekyba su funkcijų, ir ten praktikos problemos, kurios padeda dirbate su funkcijomis. Mes taip pat suteikti jums nuorodos į trumpas funkcijos ir laikai, kad funkcijos turi sugalvoti paskaita. Taigi study.cs50.net, visiškai naujas tai metais, fantastinis išteklių. Be to, aš turiu žmogų, kuris yra vadovas komandą, kurią galima paleisti komandinės eilutės. Taigi, jei turite kokių nors klausimų apie komandą, pavyzdžiui, randas, kurį mes skyriuje metu susidūrė praėjusią savaitę ir jūs tikriausiai susiduriama jūsų problema nustatyti, kai išgyvena generuoti kodą, bet jei įvesite vyro randas, gausite puslapį, jums pasakys viską apie randas. Jis suteikia jums tai, ko reikia, parametrai nedarytų, taip pat grąžinimas tipas ir trumpas aprašymas tos funkcijos. Taigi patikrinti randas. Tai gali būti tiek žodinis ir paini, todėl kartais man atrodo, kad tiesiog "Google" paiešką, ką aš noriu žinoti, Geriausias būdas rasti atsakymą. Taigi praktiškai su "Google". Gauti gerai "Google". Jis taps jūsų geriausias draugas. Taip pat "Google", jei jūs negalite rasti "Google", cs50.net/discuss, tai diskusijų forumas. Yra tikimybė, kad jei turite klausimą, savo 700 + bendraamžiais taip pat, kad klausimas ir gali būti paprašyta tai jau aptarti forumai ir jį atsakyti. Taigi, jei turite klausimų ar bendro turite klausimų, kad jūs manote gal kiti žmonės gali paleisti į, patikrinti cs50.net/discuss. Galiausiai paskutiniai du, jei norite pasikalbėti su tikru žmogumi, biuro valandos nuo pirmadienio iki penktadienio. Yra taip pat lankosi darbo valandos Išplėtimo studentams. Ir paskutinis, bet tikrai ne mažiau, man, šauktukas. Jūs visi turite savo kontaktinę informaciją. Jeigu jums reikia ką nors, prašom niekada nedvejodami susisiekite su manimi. Visada nedvejodami padaryti. Labai nedaugelis iš jūsų, kurie laiko mane ant gchat, kad buvo nuviliantis, bet tikiuosi, kad bus pakeisti nuo tai ir kitame skyriuje. Turite klausimų iki šiol dėl lėšų? Didysis. Galiausiai, dar vienas kištukas grįžtamasis ryšys, sayat.me/cs50. Jūs galite man duoti anoniminius atsiliepimus apie tai, kaip aš darau. Tai buvo tikrai naudinga praėjusią savaitę. Aš turiu keletą pastabų pora iš jūsų vaikinai iš karto po skyrių, taip pat iš kiti studentai, kurie jį stebėjo per savaitę, ir tai buvo neįtikėtinai naudinga. Aš einu bandyti ir apriboti savo gebėjimą naudotis Žodis "saldus", bet aš jums parodysiu, mano entuziazmo ir jaudulio kitais būdais. Bet ten buvo kita papildoma esminiai Atsiliepimai, pliusus ir delta. Taigi, prašome, aš duodu jums, vaikinai atsiliepimus savo problemines rinkinių. Nesivaržykite man atsiliepimus mano mokymo. Aš čia jums vaikinai. Didysis. Tai yra viskas, ką aš turėti Pirmame skyriuje. Ar kas nors turi bet klausimai iki šiol? Ir turiu pastabą valdymo centras. Prailginimo studentai messaged man sakydamas, jie negauna jokių garso, bet tai iš mano galios nustatyti. Taigi tikiuosi, kad gauna netrukus išspręsta. Jei jūs žiūrite internete, hi, , bet jūs negalite išgirsti mane. Taigi, pirmiausia, mes ketiname eiti per GDB. GDB, kaip aš užsiminė anksčiau, yra derinimo priemonė daug geriau nei printf. Taigi, norint pradėti dirbti su GDB, vaikinai, jei norite atverti savo prietaisą ir imtis failą, kad aš jums atsiųstoje anksčiau - tai failas, taip pat bus galima rasti internete šiek tiek - ir paleisti GDB. / failo pavadinimas. Pirmiausia, žinoma, jūs turite surinkti failą nes GDB veikia tik paleidþiamieji failai. Bet jei kada nors norėsite pradėti GDB, pirmas dalykas, kurį jūs darote, paleisti GDB. / ciesorių ". Štai programos Užtenka vardas ketina eiti su juo dabar. Taigi, aš ruošiuosi rašyti, kad Cezaris, kuris duos man vykdomąjį failą čia paryškinamas žalia. Ir tada aš ruošiuosi paleisti GDB. / Cesar. Ir ten jūs einate. Matote, mes turime kai tekstas sako man apie GDB versija, kad suteikėte man kai informacija apie garantiją, ir tada mes turi BVP eilutę, kuri atrodo tarsi panašaus mūsų komandų eilutės eilutę bet matote ji atvira paren, GDB, artimi skliaustas. Prieš mes ir toliau derinti šį failą kad aš išsiųstas jums visiems, pažvelkime keletas naudingų komandų, todėl mes turime jausmą ką mes ketiname padengti. Šios komandos yra išvardyti čia tvarka, pagal kurią aš paprastai juos naudoti. Taigi aš pradedu savo programą veikia GBD. / Programos pavadinimas, šiuo atveju, Cezaris. Ir tada pirmas dalykas, aš 99,9% laiko yra tipo pertraukėlė reiškia. , Kuris nustato pertraukos tašką pagrindinis. Iš esmės, ką jūs darote yra yra programa ketina sustoti pagrindinis, todėl jūs galite pradėti nagrinėti jai liniją kiekvieną eilutę, o ne rodyti visus kelią. Jūs galite sulaužyti skirtingu jūsų kodas, bet pagrindinis yra paprastai gera vieta pradėti. Kitą komandą paleisti yra paleisti. Kuris prasideda programa veikia, ir jei turite įvesti į komandų eilutę argumentai, galite naudoti ją, kad komandą. Pradėti su argumentais. Taigi, kadangi mes ketiname per versiją C, kuris yra programa vaikinai rašė pset dviejų - tai vienas, žinoma, turi keletą klaidų jame, kad tikiuosi rasite - mes ketiname paleisti paleisti su kai komandą eilutės argumentai, nes Cezaris, kaip jus vaikinai žino, už problemos nustatyti spec, trunka keletą komandų eilutės argumentai. Ateinančius porą komandų, kitą viena yra iš tikrųjų vadinamas kitą. Tai vienas pateksite pagal kiekvieną eilutę per savo programą. Taigi pataikyti n paspauskite Enter nukelia į kitą eilutę, vykdymas ankstesnė eilutė. Žingsnis yra ne tik jums kitą eilutę, bet jis nukelia viduje funkcijas. Taigi, jei jūs turite raštu į funkciją Jūsų kodas arba, jei norite ieškoti I, pavyzdžiui, galite paspausti s ir , o ne eiti į kitą eilutę failą, kad jūs ketinate per dešinę dabar jūs iš tikrųjų žingsnis į ši funkcija ir pamatyti savo kodą. Sąrašas rodo jums, kad labai patogi formato, 10 ar panašiai linijos aplink kur šiuo metu yra Jūsų kodas kad jūs iš tikrųjų galite pamatyti failą užuot apsikeitimo atgal pirmyn tarp skirtingų nuomonių. Spausdinti lyg printf, kaip rodo jo pavadinimas. Tai rodo, ką kintamasis lygus. Info vietiniai yra tikrai naudinga. Tai speciali versija spausdinti. Info vietiniai rodo visus vietos kintamieji, spausdina juos visus jums kad šiuo metu nėra. Taigi, aš paprastai, užuot atspausdinti keturis kintamuosius, kad aš įdomu, jei aš už linijos, ir Pavyzdžiui, aš tiesiog parašyti info juodus, ir jis bus parodyti man, ką mano skaitiklis i lygios, taip pat masyvas, kad aš dirba lygių. Galiausiai, ir toliau. Rašyti pertraukos sustoja jums ne pertrauka taško. Galite pasivaikščioti linijos linija su naujos ir žingsnio. Toliau eina programos į kitą pertrauka taško arba iki užbaigimo, jei nėra daugiau pertraukos taškus. Išjungti pašalina pertraukos taškų, jei jums nusprendė ne pagrindinis pertrauka buvo netinka, norite jį kažkur kitur. Ir pagaliau q mesti rūkyti, gauna iš GDB. Taigi ši programa. / Cezario, mes ketiname ieškoti per dabar ir mes ketinate naudoti GDB rasti Šioje programoje klaidų. Išbėgau šią programą anksčiau, Patikrinkite 50, ir aš vieną raukytis. Viskas jis egzistavo, ji parengta, ji išlaikė bandymus daug, bet tam tikrų priežasčių, jis nepriėmė penktadalį testas, tekinimo BARFOO, visi dangteliai, į El-D-U-aš-R-R, visi dangteliai, naudojant tris kaip raktas. Aš turiu gana arti. Gavau viena raide. Taigi, čia yra keletas maža klaida čia. Aš mačiau per savo kodą. Aš negalėjau suprasti jį. Tikimės, kad jūs vaikinai gali man padėti išsiaiškinti, kas tai yra klaida. Štai klaida mes ieško. Pereikime į GDB. Vėlgi, aš paleisti GDB. / Cezaris todėl dabar mes į GDB. Ir kas pirmas ką aš turėčiau daryti? Aš ką tik atvyko GDB. Kažkas man geras komanda patekti. STUDENTAS: Break pagrindinis. JASON Hirschhorn: Break pagrindinis. Mobiliesiems telefonams. Leiskite tipo, kad in Vaikinai gali žiūrėti čia arba sekite kartu kompiuteriuose. Break pagrindinis, ir pamatysite, pertrauka taškas buvo nustatytas - jis suteikia man keistai atminties adresą, ir ji taip pat suteikia man eilutės numerį. Jei aš būčiau atsigręžti į šį failą, Norėčiau suprasti, kad dažniausiai atsitiko on line 21. Ką turėčiau paleisti kitą? Ar mano programa veikia? Ne. Taigi, ką turėčiau veikti toliau? STUDENTAS: Pradėti. JASON Hirschhorn: Pradėti. Jei aš tiesiog paleisti paleisti, arba turėtų Pridėti keletą kitų dalykų? STUDENTAS: Pradėti su argumentais. JASON Hirschhorn: Pradėti su komandų argumentai. O kadangi aš derinti labai specifinė atveju, reikia įvesti, kad komandinės eilutės argumentas. Taigi aš tai paleisti trys, kurie, vėlgi, išėjimo aš gavau iš Išvykimas 50. Pradedant programą. Mes einame per eilučių pora. Dabar jūs pamatysite, kad mes internete 21. Kaip man žinoti, kad mes on line 21? Nes jei jūs žiūrite į kairę mano terminalo lange, ten ji sako liniją 21. Ir tai suteikia man, iš tikrųjų, kodas, kuris yra eilutėje 21. Taigi aš misspoke anksčiau. Pagrindinis nėra faktiškai eilutėje 21. Main linijų pora virš 21. Bet eilutėje 21, tai kur mes trūkinėja. Šis kodo eilutę turi nėra įvykdytas. Tai labai svarbu. Linija matote yra ne buvo įvykdytas dar. Štai kitą eilutę kodo Jūs ruošiatės vykdyti. Taigi kitą eilutę, kaip jūs vaikinai tikriausiai, susipažinę su, tai yra sąlyga patikrinti, pamatyti, jei aš turiu Prasidėjo komandų eilutės argumentas. Ir I, kas antra dalis, kad tai? Kas yra, kad i? STUDENTAS: Pakeitus jį iki sveikojo skaičiaus. JASON Hirschhorn: Atsiprašome? STUDENTAS: Tai keičiasi argumentas iki sveikojo skaičiaus. JASON Hirschhorn: Taigi, kad aš keičia arg v1 iš eilutės iki sveikojo skaičiaus. Ir tada kas tai patikrinti? STUDENTAS: Jei yra antra komandinės eilutės argumentas, be paleisti programą. JASON Hirschhorn: Ir kas antrąjį pusmetį šis Būlio išraiška tikrinti? Ši dalis čia, kad i? STUDENTAS: Jei jis neigiamas. JASON Hirschhorn: Užtikrinti, ką? STUDENTAS: Užtikrinti, kad yra, tiesą sakant, teigiamas. JASON Hirschhorn: Būtent. Tai patikrinti, pamatyti, jei ji neigiamas, o jei ji neigiama, aš Toks jausmas kitą linija gali būti mane šaukiantį vartotojui. Taigi leiskite nukentėjo pabaigos vykdyti šią eilutę. Mes nematome, kad linijos, kad jūs vaikinai gal tikėjosi pamatyti šaukiantį vartotojo ir tada grįžti, nes ši eilutė nevykdė. Įvedžiau 3. Taigi, aš, tiesą sakant, įveskite du komandą eilutės argumentai, o 3 yra didesnė už nulį. Taigi mes matėme tą liniją, mes atlikti, bet mes ne žingsnis viduje, jei būklės. Taigi dabar, šalia, matau aš nustatymo LC raktas Lygu-i arg v1. Taigi, kad man sukurti kintamą klavišą. Taigi, jei aš spausdinti klavišą dabar, nes , kuri leidžia jums pamatyti, vertė viduje kintamasis, raktas lygu 47. Tai keista, bet, žinoma, tai todėl, kad aš ne įvykdė tą liniją dar. Taigi dabar, jei I hit n vykdyti šią liniją, ir padaryti spausdinimo klavišą, raktas bus lygus 3, o tai, ką mes tikimės, kad ji lygi. Taigi, dar kartą, GDB, linijos jums see you nebuvo įvykdytas dar. Jūs turite paspausti N arba S arba skaičių Kitų komandų iš tikrųjų vykdyti šią liniją. Spausdinti raktas. Pagrindiniai At 3. Kol kas viskas gerai. Styginių yra paprastas tekstas. Leiskite vykdyti šią liniją. Gaunu eilutę iš vartotojo. Pažiūrėkime mano Išvykimas 50, aš įveskite BARFOO visas ribas, todėl kad tai, ką aš įvesti. Jei aš dabar spausdinti paprastą tekstą. Pamatysite tai prilygsta eilutę. Ji suteikia man kitą keistą šešioliktainis skaičius, bet ji tai daro Tai, kad mano eilutė BARFOO. Jei aš norėjau pamatyti, kas svarbiausia sudarė ne šis punktas, kaip galėčiau patikrinti raktas? STUDENTAS: Spausdinti raktas. JASON Hirschhorn: Spausdinti raktas, tiksliai. Ir iš tikrųjų, yra mobilioji nuoroda. Jei jums nusibodo rašyti spausdinti, Jūs galite tiesiog įveskite psl. Taigi p raktas nėra tas pats dalykas. Ir vėl, matau, ji lygi 3. Jei aš norėjau sužinoti, ką abu klavišą ir BARFOO sudarė tuo pačiu metu bet aš pavargau rašyti kiekvieną vienas iš individualiai, aš gali įvesti info vietiniai. Tai suteikia man svarbiausius lygu 3. Paprastas tekstas Lygu BARFOO. Ji taip pat suteikia man šiuos du keistus dalykus viršuje, šis kintamasis i ir Šis kintamasis n. Tie, kurie iš tikrųjų esama mano pagrindinės programos. Mes dar susiduriama juos, bet kaip peržiūrėti, tie egzistuoja mano už linijos. Taigi dabar, jie yra lygūs kažkokiam keistam numerius, nes jie nebuvo inicijuoti dar, bet jie vis dar egzistuoja atmintyje, todėl jie tiesiog nustatyti tam tikru šiukšlių vertę. Bet mes pamatyti raktą paprastas tekstą tiesiai ten. Taigi, aš ruošiuosi atlikti šią eilutę, 34 eilutė, už kilpos. Mes ketiname pereiti į už linijos pataikyti n. Ir mes viduje už linijos. Mes per savo pirmąjį patikrinimą. Ir vėl, jie turi tarsi atrodo susipažinęs su jumis, nes tai buvo Cezaris programa, kuri buvo parašyta, bet vėl turi tam tikrą klaidą rūšiuoti. Ir dabar, jei aš info vietiniai, nes aš viduje, kad už linijos, pamatysite kad i lygi nuliui, kaip mes tikimės. Štai ką mes nustatome jį ir inicializuoti jį į už linijos. n yra lygu 6. Tai taip pat turi prasmę, nes mes nustatome jį paprasto teksto strlen. Taigi, aš norėčiau padaryti info vietiniai arba spausdinti kintamasis dažnai įsitikinti, kad viskas visada yra kas Tikiuosi, kad ji lygi. Šiuo atveju, viskas yra ką aš tikėtis, kad ji lygi. Taigi, pradėkime juda per tai už linijos. Linijos aš apie tai 36 eilutės, jei paprastas teksto i yra didesnis nei paprasto ir teksto i yra mažesnė arba lygi z. Aš žinau, mano problema yra ne su mano pirmasis laiškas, tai su antruoju laišku. Jei pažvelgsime atgal Išvykimas 50 B eina į E bauda. Aš vartojate A ir palikti ją , o ne jį pakeisti D. Taigi kažkas negerai su antras laiškas. Taigi, aš ruošiuosi pereiti ten per sekundę. Bet jei aš noriu patikrinti ką lyguma tekstas Aš neprilygo tai ypač atveju, aš manau, kad turėtų būti, ką? Ką reikėtų paprasto teksto Aš prilygti šioje pirmasis turas per for ciklas? STUDENTAS: nulis? JASON Hirschhorn: Paprastas tekstas I? Todėl ji turėtų būti kapitalo B. Aš, žinoma, lygi nuliui, bet paprasto teksto laikiklis nulis uždara laikiklis lygu B nes stygos, kaip matėme praeitą savaitę, yra masyvas, todėl mes vis Pirmasis simbolis nuo to. Taigi dar kartą, jei aš atspausdinti paprastą tekstą Aš, aš, tiesą sakant, gauti simbolį B. Ir tai tvarkingas, tiesa? Aš ne iš tikrųjų turėti paprastojo teksto I Tai nėra vienas iš kintamųjų Aš nustatytų arba inicijuoti, bet jūs galite spausdinti iš daugybės dalykų jei norite. Bet leiskite judėti. Jei teksto man yra didesnis nei A ir teksto man yra mažesnė arba lygi Z, kuris aiškiai yra tiesa, nes mes turime kapitalas B. aš ruošiuosi paleisti kai komanda jį. Mes matėme, kad matematika praėjusią savaitę, todėl mes laikyti savaime suprantamu dalyku, kad jis veikia teisė pagal Patikrinkite 50. Šie garbanotas petnešos, pirmasis parodė, kad man buvo išeinant, jei sąlyga, antrasis parodė kad aš išeinant už linijos. Ir todėl dabar, kai aš paspauskite Next, matysime mes grįžome ne už linijos dar kartą. Mes ketiname per už linijos dar kartą. Leiskite tikrųjų žingsnis į sekundę pasikartojančių už linijos ir tipo info vietiniai. Taigi mes į antrosios iteracijos mūsų už kilpos. Aš lygus 1, o mes tikimės. N lygu 6, kurį mes tikimės. Pagrindiniai lygu 3, kurį mes tikimės. Ir teksto, pamatysite lygu EARFOO dabar, o ne BARFOO nebėra, nes mūsų ankstesnės iteracijos, B buvo pakeistas į kapitalo E. Taigi mes apie susidurti su problema, todėl ši kur mes ketiname pasinerti į derinimo. Bet ar kas nors turi kokių nors klausimų, apie tai, ką mes padarėme iki šiol? Mobiliesiems telefonams. Taigi mes ruošiamės atlikti tai, jei sąlyga, teksto laikiklis aš uždarytas laikiklis didesnis nei A ir teksto aš mažesnė arba lygi iki Z. Bet prieš Aš einu į tą, nes tai yra, kai Aš žinau, mano klaida, aš noriu atkreipti iš paprasto teksto I Taigi tegul įdėti atsispausdinti. Ji lygi charakterį, kad atrodo taip toli, kad viskas yra gerai ir gerai. Taigi, aš tikiuosi, kad ši linija per savo logika, ši linija turėtų būti tiesa. Tai didžioji raidė. Bet jei aš paspauskite n, mes suprantame, kad tai linija, tiesą sakant, nebuvo įvykdyti. Aš šoktelėjo žemyn else if. Kodėl tai atsitiko? STUDENTAS: Kadangi jūs turite savo būklės paprasto teksto yra didesnis nei, lygus ar didesnis už. JASON Hirschhorn: Taigi, aš turėjau paprastą tekstą I yra didesnis nei, ne daugiau viršytų arba būtų lygios. Taigi aišku, kapitalas nebuvo sukelti tai, jei sąlyga, ir mes padarėme ne žingsnis į ją, ir mes padarėme ne padaryti būtinus pamainą. Štai jis, iš tikrųjų. Aš raštuotas, mano klaida. Galėčiau grįžti į savo šaltinio failo, jį pakeisti, ir ją atnaujinti ir paleiskite Tikrinti 50 kartą. Bet mes pamatysime, tik pedagogika s sake, jei aš nesustoti. Else if nevykdo arba, bet kas vietoj Lygu yra komanda tai nekeičia. Taigi jis nepasikeitė, ir jei aš spausdinti teksto čia matysime vyksta per, kad kilpa nebuvo, tiesą sakant, pakeisti, kad antrą simbolį visiems. Jis vis dar sostinė A. Taigi dar kartą, mes debugowany mūsų klaida. Mes supratome, kad ten buvo kai logika trūksta. Ir mes debugowany jį iš anksto prieš Realiai vykdančių ta linija, bet jūs pastebėjote turėjo mes tiesiog paspauskite Next ir pereiti į, kad kitas, jei tai reiškia, kad jei sąlyga buvo netiesa. Mes ne iš tikrųjų gauti rezultatas tikėjomės. Taigi mes galėjo paraginti, turėjo mes nebuvo toks sumanus, pažvelgti į kad jei sąlyga ir patikrinti, ar, tiesą sakant, mūsų sąlyga turėtų įvertinti, kad tiesa, dabartinėmis aplinkybėmis. Štai ir viskas derinti šią programą. Ar kas nors turi kokių nors klausimų? Kas komanda galėčiau nukentėjo mesti GDB? Q. Ir tada aš būsite paraginti, mesti vistiek? Taip ar ne. Aš nukentėjo taip, ir aš mečiau GDB. Taigi, tai buvo greitas gruntas GDB. Tiesą sakant, realioje scenarijų Aš tai ne darbo valandomis. Aš GDBed būtent šią programą darbo valandos su studentu. Ir jei mes einame atgal į komandas mes matėme anksčiau, mes naudojome pertraukos Main, pirmasis dalykas, mes padarėme. Mes naudojome paleisti su komandinės eilutės argumentai, Antras dalykas, mes padarėme. Mes naudojome kitą daug judėti mums per linijas. Ir vėl trumpa versija Kito yra n. Kad skliausteliuose yra pilkas skaidrę. Mes nesinaudojo žingsnį, tačiau mes ne būtinai reikia šiuo atveju. Tačiau mes galime jį naudoti šiek tiek vėliau šiandien, jei mes derinimo, dėl Pavyzdžiui, dvejetainis paieškos, kai dvejetainis paieška vadinama atskira funkcija, tačiau ten kai su juo klaida. Mes ketiname norite žingsnis į dvejetainis paieškos skambučių ir faktiškai derinti jį. Sąrašas mes nesinaudojo arba, nes mes turėjome geras jausmas mūsų kodą, bet jei aš dar nori gauti ką kodas I jausmą buvo aplink, galėčiau tiesiog naudoti sąrašą. Spausdinti mes panaudojome, info vietiniai Mes naudojome. Toliau mes nereikėjo naudoti šį atveju nei jūs, nei mes turime naudoti išjungti, tačiau mes padarėme naudojimas mesti. Vėlgi, šie 10 komandos, praktiškai juos. Jei jūs suprantate, šių 10 komandų, jums turėtų būti nustatyta derinimo bet išduoti su GDB. Taigi mes ruošiamės eiti, vėl į esmė skyriuje šiandien vyksta per jų rūšiavimo ir paieškos algoritmai. Prieš tai padaryti, vėl kokių nors klausimų, komentarai, rūpesčiai dėl GDB? Taigi yra visi ketinate naudoti GDB, o ne printf? Taigi visi, amžinai meilės, visi yra linksi savo pagrindinę teisę dabar, kad aš pamatysiu jus darbo valandomis ir visi TFS pamatys jus ir jie pasakys, parodyk man, kaip naudoti GDB, ir jūs galėsite parodyti jiems, tiesa? Rūšies? Gal tikiuosi. Cool. Taigi, mes ketiname perkelti į rūšiavimą ir paiešką. Pamatysite Turiu sąrašą jau rūšiuojamos mums, bet kad nesiruošia būti atvejis visada. Taigi problema nustatyti specifikacija problema nustatyti trys, turite šortai kad jūs galite žiūrėti, ir ji iš tikrųjų kviečia Jus žiūrėti šiuos šortus. Taip pat paskaitos, praeitą savaitę, mes nuėjome per Šių algoritmų daug, todėl aš nesiruošia praleisti laiką klasėje vyksta per šių algoritmų dar kartą arba brėžinys Paveikslėliai kaip šie algoritmai dirbti. Vėlgi, kad informacija, kurią gali iš naujo žiūrėti paskaita, arba kad informacija yra užfiksuotas išskirtinai dėl šortai šie paieškos, visi kurie yra prieinami cs50.net. Taigi, vietoj to, ką mes ketiname padaryti, tai parašyti šias programas. Mes turime jausmą, psichikos modelį, kaip jie dirba, ir tt, ką mes ketiname padaryti, tai koduoti juos reali. Mes ketiname įjungti, kad psichikos modelį, kad vaizdas, jei norite, į tikrasis kodas. Ir jei buvo šiek tiek supainioti, arba miglotos dėl psichikos modelis, aš visiškai suprasti. Mes iš tikrųjų ketiname peršokti į kodo iš karto. Taigi, nors tai greitai šioje skaidrėje prašo jums koduoti binarinę paiešką, ir iš tikrųjų, kartotinis versija Dvejetainė paieška, pirmas dalykas, kurį aš tikrai noriu padaryti, tai parašyti keletą Pseudocode. Taigi jūs turite tai psichikos modelį kaip dvejetainis paieškos darbai. Išimkite popieriaus lapą, jei turite vienas lengvai prieinama, ar atverti teksto redaktoriumi, ir aš norėčiau visiems rašyti. Paimkite keturių minučių rašyti Pseudocode už dvejetainėje paiešką. Vėlgi, manau, apie tai, kad psichikos modelį. Ateisiu aplink, jei turite klausimų, ir mes galime padaryti nuotrauką iš. Bet pirmiausia, prieš pradedant programavimą, Norėčiau rašyti Pseudocode naudojant dvejetainį paieškos todėl, kai mes nardyti, mes turime tam tikrą kryptį, kaip kur turėtume galvą. STUDENTAS: Ar mes galime prisiimti masyvas vertės mes gauname jau rūšiuojamos? JASON Hirschhorn: Taigi dvejetainėje paieškos dirbti - puikų klausimą - jūs turi imtis surikiuota masyvo reikšmių. Taigi manyti, kad bus dirbti. Mes grįžti į šią skaidrę. Jūs matysite violetinė funkcijos deklaracija yra bool binary_search int vertė, int reikšmės, int n. Tai turėtų atrodyti pažįstamas, jei jūs jau kreipėsi arba Dotarłeś savo rankas purvinas su problemų rinkinį. Bet tai jūsų funkcija deklaracija. Vėlgi, neturėtų jaudintis kad daug šiuo metu. Ką aš tikrai noriu padaryti, tai priimti keturias minutes Pseudocode dvejetainis ieškoti, o tada eisime per tą kaip grupė. Ir aš ateisiu aplink. Jei turite klausimų, prašome laisvai pakelkite ranką. Kodėl gi ne jums imtis daugiau dvi minutes baigti iki Pseudocode? Aš žinau, tai gali atrodyti juokinga, kad mes išleisti tiek daug laiko kažkas, kad net ne iš tikrųjų C, o ypač jų daugiau Sudėtinga algoritmai ir problema rinkiniai, kad mes turime išsiaiškinti, pradedant Pseudocode ne nerimaudamas apie sintaksę, tiesiog nerimauti logika, yra neįtikėtinai naudinga. Ir tokiu būdu, jūs ne spręsti du neįtikėtinai sudėtingų problemų vienu metu. Jūs tik sutelkiant dėmesį į logiką ir tada pereiti į sintaksę. Gerai. Pradėkime išgyvena Pseudocode. Parašiau čia, dvejetainis paieška Pseudocode. Mes rašau tai ant tarybai. Arba aš rašyti ir jums duosiu man instrukcijas man reikia. Taigi gali kas nors duoti man pirmas linija Pseudocode jums rašė dvejetainėje ieškoti? Taip, Annie? STUDENTAS: Nors ilgis sąrašas yra didesnis už nulį. JASON Hirschhorn: Nors ilgis sąrašo didesnė už nulį. Ir vėl matome, kai C ieškote sintaksiniai dalykų apie čia. Bet labiausiai tai anglų kalba. Ar kas nors turite liniją jie pateikia prieš tai jų pseudo-kodu? STUDENTAS: Gauk masyvą iš rūšiuojami numerius. JASON Hirschhorn: Rašėte "gauti masyvas rūšiuotų numerius. "Per funkcija deklaracija, mes artimųjų, rūšiuotų skaičių masyvas. STUDENTAS: [nesigirdi]. JASON Hirschhorn: Taigi turėsime tai. Bet taip, jei mes neturėjome, kad mes reikės rūšiuoti mūsų masyvas numerius, nes dvejetainė paieška veikia tik surūšiuotų matricos. Taigi, nors ilgis sąrašo lygi nuliui, aš ketina pateikti kai klamrowych kad ji atrodo šiek tiek daugiau kaip C. Tačiau, nors, atrodo map ant o kilpos, todėl viduje šio laiko kilpa, ką turime padaryti dvejetainėje ieškoti? Kažkas, kas nedavė man atsakyti dar bet kuris parašė tai? STUDENTAS: Eiti į sąrašo viduryje. JASON Hirschhorn: Tomas. Eiti į sąrašo viduryje. Ir tolesnių klausimas, kas mes darome, kai mes ne viduryje sąraše? STUDENTAS: Ar čekį ar tai numeris jūs ieškote. JASON Hirschhorn: Puikus. Eiti vidurį sąrašą ir patikrinkite jei mūsų vertė yra ten - fantastinis. Ar kas nors turite ką nors, kad buvo kitoks nei tai? Būtent dešinėje. Pirmas dalykas, mes dvejetainėje paieškos yra eiti į sąrašo viduryje ir patikrinkite, ar mūsų vertė yra. Taigi aš manau, jei mūsų vertė yra ten, ką mes darome? STUDENTAS: Mes grįžti prie nulio [nesigirdi]. JASON Hirschhorn: Taip, jei mūsų vertė yra, mes jį rasti. Taigi, mes galime pasakyti, tam tikru būdu, tačiau tai funkcija yra apibrėžta, mes pasakyti, kad vartotojas mes jį rasti. Jei jo ten nėra, nors tai jei tai bus sudėtinga. Taigi, jei jo ten nėra, kažkas, kas dirbo dvejetainėje paieškos ar yra idėja, dabar ką mes darome? STUDENTAS: Klausimas. JASON Hirschhorn: Taip? STUDENTAS: Ar masyvas jau rūšiuojami? JASON Hirschhorn: Taip, mes prielaidą, masyvas jau rūšiuojamos. STUDENTAS: Taigi jūs turite patikrinti, ar vertė, kad jūs matote, yra daugiau nei vertė, kad jūs norite, galite perkelti vidurio, o kita pusė. JASON Hirschhorn: Taigi, jei viduryje sąrašas yra didesnis nei mes ieškote, tada mes ką? Vežame kur? STUDENTAS: norite pereiti prie Sąrašo pusė su numeriai mažesni nei. JASON Hirschhorn: todėl mes skambinti, kad į kairę. Taigi, jei viduryje yra didesnis, mes galime ieškoti kairę pusę sąrašą. Ir tada ieškoti, kas turiu galvoje ieškoti? STUDENTAS: [nesigirdi]. JASON Hirschhorn: Mes einame į vidurį. Mes iš tikrųjų pakartoti šį dalyką. Mes einame atgal per mūsų while cikle. Aš duosiu jums naujausia - kitur, jei viduryje yra mažiau nei mes, ką mes čia darome? STUDENTAS: Eikite į dešinę. JASON Hirschhorn: Paieška teisę. Tai atrodo gerai, bet ar kas nors turi nieko, kad mes gali trūkti arba ką nors, kad jūs įdėti savo pseudo-kodu? Taigi tai, ką mes iki šiol. Nors sąrašo ilgis yra didesnis už nulį, mes ketiname eiti į sąrašo viduryje ir patikrinti, ar mūsų vertė yra. Jei viduryje yra didesnis, mes ketiname ieškoti į kairę, kitas, jei viduryje yra mažiau, mes ketiname ieškoti teisę. Taigi, mes visi turėjo tam tikrą pažinimas terminai mes naudojame informatikos ir priemones turime. Bet jūs jau pastebėjote, mes buvome kalbėti anglų kalba, bet mes radome daug dalykų, kad atrodė, kad žemėlapį į įrankiai mes turime mūsų kodavimo įrankių rinkinys. Taigi Iškart, mes ne vyksta iš tikrųjų koduoti dar. Ką mes matome čia anglų kalba, kad žemėlapiai prie dalykų, mes galime parašyti C? STUDENTAS: Nors. JASON Hirschhorn: Nors. Taigi, tai, o čia žemėlapius į tai, ką? STUDENTAS: while cikle. JASON Hirschhorn: while cikle? O gal apskritai kilpa. Mes norime padaryti kažką daugiau ir daugiau. Taigi, mes ketiname kodą kilpą. Ir mes jau žinome, nes mes padarėme tai porą kartų ir mes turime daug pavyzdžių iš ten, kaip iš tikrųjų rašyti šis rodiklis kilpa. Taigi, kad turėtų būti gana lengva. Mes galime gauti, kad pradėjo gana greitai. Ką dar mes matome čia? Kokie kiti statiniai sintaksių, viskas kad esate susipažinę su C, tai mes jau turiu, pagrįsta jausmą nuo žodžių, kuriuos mes naudojome? Taip, Ana? [Nesigirdi] just kidding. Ana, eiti į priekį. STUDENTAS: Jei ir kitur. JASON Hirschhorn: Jei ir kita - čia. Taigi, ką jie atrodytų? STUDENTAS: jei else. JASON Hirschhorn: Taip, sąlygos, tiesa? Taigi, mes tikriausiai reikia parašyti keletą sąlygų. Ir vėl, nors gal painu pirma, mes paprastai turi prasmę dabar kaip parašyti sąlygas ir už sąlygų sintaksė. Ir jei mes ne, mes tiesiog ieškoti sintaksė sąlygos, iškirpti ir įklijuoti kad, nes mes žinome, reikia sąlygą čia. Visi kiti dalykai, mes matome, kad žemėlapį į ką mes gali tekti daryti C? Taip, Aleha? STUDENTAS: Tai gali būti akivaizdu, tiesiog tikrinti, ar vertė yra lygi kažką. JASON Hirschhorn: Taigi, kaip mes patikrinti ir - kad eiti į sąrašo viduryje ir patikrinkite, ar mūsų vertė yra ten? Kaip mes tai darome, kad C? Kas už tai sintaksė? STUDENTAS: Lygu lygu. JASON Hirschhorn: Lygu lygu. Taigi šis patikrinimas tikriausiai bus būti lygu lygu. Taigi mes žinome, mes turime, kad kažkur. Ir iš tikrųjų, tik raštu jį, mes matome tuos kitus dalykus. Mes ketiname daryti kai palyginimo operatoriai ten - fantastinis. Taigi ji iš tikrųjų atrodo, iki ir didelis, mes neparašyta žodis C kodą dar. Bet mes turime psichikos modelį žemyn per paskaitas ir tų šortai. Mes rašė pseudo kodą kaip grupė. Ir jau turime 80%, jei 90% to, ką mes turime daryti. Dabar mes tiesiog reikia koduoti tai, kuri vėl yra ne trivialus problemą išspręsti. Bet bent jau mes pakimba ant logikos. Bent dabar, kai mes einame į darbo valandomis, Galiu pasakyti, aš žinau, ko man reikia padaryti, bet jūs galite priminti man sintaksė? Arba net jei darbo laikas yra perkrautas, jums gali google for sintaksė, o nei įstrigo logika. Ir vėl, o ne bando išspręsti logika ir sintaksės problemas visi vienu metu, ji dažnai yra daug geriau nutraukti šiuos du kietus problemas ne į dar dvi valdomų tie ir padaryti pseudo-kodas ir tada kodas C Taigi pažiūrėkime, ką aš padariau pseudo-kodą iš anksto. Nors sąrašo ilgis yra didesnis už nulį, pažvelgti į vidurį iš sąrašo. Jei skaičius, rastas grįžo tiesa, dar jei skaičius didesnis, paiešką kairėje. Else if skaičius mažesnis, paiešką teisė, return false. Taigi, kad atrodo beveik identiškas, jei ne beveik identiškas ką parašė. Tiesą sakant, Tomai, ką jūs pasakėte, pirma, nesilaikantiems sąrašo viduryje ir, jei skaičius, rastas į dviejų teiginių iš tiesų, ką aš padariau. Aš kartu su jais ten. Aš turėjo išklausyti Jūs pirmą kartą. Taigi tai yra pseudo kodas turime. Jei norite dabar, atsiprašau, eikite atgal į mūsų pradinės problemos. Leiskite kodas binary.c. Taigi įgyvendinti pakartoti versiją Dvejetainė paieška naudojant šiuos funkcija deklaracija. Ir jums nereikia kopijuoti jį žemyn tik dar. Aš iš tikrųjų ketiname atidaryti iki čia binary.c. Taigi yra funkcija deklaracija viduryje ekrano. Ir pamatysite, aš paėmė pseudo kodą iš mano pusės, bet beveik identiški į tai, ką mes parašėme, ir įdėti, kad už jus. Taigi dabar galime imtis penkias minutes koduoti šią funkciją. Ir vėl, jei turite kokių nors klausimų, pakelti savo ranką, leiskite man žinoti, aš ateiti aplink. STUDENTAS: [nesigirdi]. JASON Hirschhorn: Taigi, aš paėmė dvejetainis paieška apibrėžties viršų, on line 12. Štai ką aš gavau mano skaidrės. Ir tada visa tai pseudo kodas Aš tiesiog kopijuoti ir įklijuoti iš skaidrės pseudo kodas skaidrių. Aš vis dar klausos [nesigirdi]. Taigi, jei baigėte savo įgyvendinimas, aš noriu ją patikrinti. I išsiųstas jums helpers.h failą anksčiau šioje klasėje. Ir ji bus prieinama internete, taip pat atsisiųsti žmonėms žiūrėti Šiame skyriuje laikas atidėtas. Ir aš tik naudojamas bendrinis paskirstymo kodas iš pset3. Taigi, aš paėmė find.C, naudokite mano helpers.h failą o ne helpers.h failą tai atsižvelgiant į platinimo kodas. Ir aš turėjo padaryti vieną kitą pakeisti find.C o ne skambina tiesiog paieška, skambinkite binary_search. Taigi, jei jūs norite išbandyti savo kodą, žinau, kad tai, kaip tai padaryti. Iš tiesų, kai mes veikti šį kodą dabar, aš tik padariau kopiją mano pset3 katalogas, vėl pavertė pagalbininkų failus ir tada paaiškėjo, kad pakeisti find.C skambinti binary_search o ne tiesiog ieškoti. JASON Hirschhorn: Taip. Turite klausimų? STUDENTAS: Nevermind. JASON Hirschhorn: Jokių rūpesčių. Na, galime pradėti. Mes koduoti tai kaip grupė. Vienas kitas pastaba. Vėlgi, tai yra, gali būti lengvai sukeistas už problemą, trys. Turiu helpers.h bylą, o nei helpers.h mes duota, pareiškia, dvejetainis paieškos, burbulas rūšiuoti ir atranka rūšiuoti. Ir find.c jūs pastebėsite, on-line, kas tai yra, linijos 68, mes vadiname dvejetainis ieškoti, o ne paieška. Taigi dar kartą, kodas, kuris yra prieinamas internetu arba kodas, kad esate sukurti dabar gali būti lengvai sukeistas už p nustatytas 3 ją patikrinti. Bet pirmiausia leiskite kodas binarinę paiešką. Mūsų funkcija deklaracija, mes grįžti bool. Mes priimame sveikasis skaičius vadinamas vertė. Mes priimame sveikųjų skaičių masyvas, vadinamas vertės, ir mes, kad n masyvo dydis. On line 10 Štai čia turiu aštrūs yra stdbool.h. Ar kas nors žino, kodėl tai yra? Taigi, ką tai kodo eilutę daryti? STUDENTAS: Tai leidžia naudoti bool grįžti tipo. JASON Hirschhorn: Būtent. STUDENTAS: Arba tai biblioteka, kuri leidžia naudoti bool grįžti tipo. JASON Hirschhorn: Taigi aštrus yra stdbool.h linija man suteikia kai apibrėžimai ir pareiškimai dalykų kad man leidžiama naudoti ši biblioteka. Taigi, tarp tų, kurie sako, kad ten šis tipas vadinamas bool, ir ji gali būti true arba false. Štai ką tai linija veikia. Ir jei aš neturėjau, kad linijos, norėčiau gauti į bėdą už tai rašau Žodis čia, bool, teisę ten. Visiškai teisus. Taigi man reikia, kad šiame kodekse. Gerai. Taigi, tai, vėlgi, yra kartotinis versija, ne rekursywny vienas. Taigi leiskite mums pradėti. Pradėkime tai pirmasis linija pseudo kodu. Ir tikiuosi, mes - ar ne, tikiuosi. Mes ketiname eiti aplink kambarį. Mes eiti pagal kiekvieną eilutę, ir Aš tau padėsiu jums išsiaiškinti liniją, kad mes turime rašyti pirma. Taigi, nors ilgis sąrašo yra didesnis už nulį. Pradėkime priekyje. Kas linija turėčiau rašyti čia, kodą? STUDENTAS: Nors skliaustelis n yra didesnis nei 0. JASON Hirschhorn: Nors n yra didelis, nei 0. Taigi n yra sąrašo dydis, ir mes tikrinti, ar - [Tarpines BALSAI] JASON Hirschhorn: - Atsiprašau? STUDENTAS: Kaip mes žinome, kad n yra sąrašo dydis? JASON Hirschhorn: Atsiprašome. Vienam pset specifikacijos paieška ir rūšiavimo funkcijos jums reikia parašyti, n yra sąrašo dydis. Aš pamiršau paaiškinti, kad čia. Bet taip. n yra dydis sąrašas, šiuo atveju. Taigi, nors n yra didesnis nei 0. Gerai. Tai gali pasirodyti šiek tiek problemiška nors, jei viskas vyks toliau. Kadangi mes tęsime žinoti per tai dydis sąrašo funkcija, bet sako, kad mes pradėti nuo su 5 sveikųjų skaičių masyvo. Ir mes einame per ir mes dabar sumažėjo jį žemyn į 2 sveikųjų skaičių masyvas. Kuris 2 sveikieji skaičiai tai? Dydis yra 2 dabar, kad mes norime pažvelgti, bet kurių 2 yra tai, kad? Ar tai prasminga, į šį klausimą? Gerai. Aš paprašyti jį dar kartą. Taigi, mes pradėti su šiuo 5 masyvas sveikieji skaičiai, ir n lygu 5, tiesa? Mes paleisti per čia. mes tikriausiai pakeisti dydį, teisė, kaip viskas vyks toliau. O tai, ką mes sakome, mes norime padaryti. Mes nenorime ieškoti Visas dalykas dar kartą. Taigi sako, kad mes pakeisime jį 2. Mes pusę sąrašą, kad keista. Taigi tiesiog pasiimti 2. Taigi dabar n lygu 2. Atsiprašau už prastas Sausai valomos žymekliai. Teisė? Ir mes ieškome per sąrašą vėl su 2 dydžio sąrašą. Na, mūsų masyvas yra dar dydžio 5. Mes sakome, mes tik norime ieškoti 2 buriavietes jį. Taigi, kuris 2 dėmės yra tie? Ar tai prasminga? Ar jie liko 2 vietos? Ar jie teisingi 2 dėmių? Ar jie vidurį 2 dėmių? Mes lūžo problema sumažėjo, bet mes tikrai nežinau, kokia dalis problema mes vis dar žiūri, tik turėdami šiuos 2 kintamuosius. Taigi mums reikia šiek tiek daugiau tada, o n yra didesnis nei 0. Mums reikia žinoti, kur, kad n yra mūsų tikrasis masyvo. Taigi, ar kas nors turi pakeisti šią eilutę? Dauguma šios linijos visiškai teisingai. Ar yra dar be? Galime sukeisti kažką už "n" padaryti šią eilutę šiek tiek geriau? Mm-hm? STUDENTAS: Ar galite inicijuoti kintamąjį kaip ilgio ir n, kad bus tada būti naudojamas vėliau į funkciją? JASON Hirschhorn: Taigi inicijuoti kintamo ilgio n, ir mes naudojame, kad vėliau? Bet tada mes tiesiog atnaujinti ilgio ir mes vis dar paleisti į šią problemą, kur mes sumažinti mūsų problemos ilgis, bet mes niekada žinoti, kur, iš tikrųjų, kad ilgis žemėlapiai ant. STUDENTAS: Ar ne tai, kad nutiks vėliau, kai jūs sakote, paiešką kairę, ieškoti tiesa? Jūs ketinate eiti į skirtingas plotas jūsų - JASON Hirschhorn: Mes ketiname eiti į rajoną, bet kaip mes žinome, kurie turi eiti į? Jei mes turime tik masyvo ir tai n, kaip mes žinome, kur eiti į masyvą. Gale, taip? STUDENTAS: Ar turite, pavyzdžiui, mažesnės riba ir viršutinė riba kintamasis arba kažkas panašaus? JASON Hirschhorn: Gerai. Taigi, tai yra dar vienas idėja. Užuot tiesiog sekti dydis, mes sekti mažesnis ir viršutinė riba nevienoda. Taigi, kaip mes apskaičiuoti dydį iš apatinė ir viršutinė riba? [Tarpines BALSAI] JASON Hirschhorn: atimtis. O taip pat sekti mažesnis jungiasi ir viršutinė riba leiskite mums žinoti, mes ieškome šių dviejų? Mes ieškome šių dviejų čia? Mes ieškome viduryje du? Tikriausiai ne vidutinio du, nes tai, iš tiesų, yra dvejetainis paieška. Bet dabar mes galėsime gauti dydį, bet ir masyvo ribos. Iš esmės, jei mes turime milžinas Telefonų knyga, mes nukopijuoti jį per pusę. Dabar mes žinome, jeigu tai mažesni telefono knyga. Bet mes ne iš tikrųjų nepaprastas Telefonų knyga pusę. Mums vis dar reikia žinoti, kur naujos ribos mūsų problemos. Ar kas nors turi kokių nors klausimų, apie tai? Taip? STUDENTAS: Ar tai veikia, sukuriant kintamasis, aš, kad jūs tada tiesiog pereiti I, palyginti su jo pozicija dabartinė padėtis, ir ilgis, n? JASON Hirschhorn: Ir kas aš? STUDENTAS: Kaip aš yra kaip rūšies - Kaip galėtumėte inicijuoti i būti vidurinė padėtis masyvo. Ir tada, jei padėtyje vertė i iš masyvo viduryje nustatyta, kad būti mažesnis nei vertė, jums reikia, aš dabar tampa masyvo ilgis, plius I vertė padalinta iš 2. Kaip, matote, jums pereiti i - JASON Hirschhorn: Teisė. STUDENTAS: - iki - JASON Hirschhorn: Taigi, aš esu beveik teigiama, kad veiks. Bet Esmė yra, jūs turite dvi gabaliukai informacijos rasite čia. Jūs galite tai padaryti su pradžioje ir pabaigoje, arba galite daryti su dydžiu, ir tada kai žymeklis. Bet jūs turite du gabalus informacijos čia. Jūs negalite išsiversti tik su vienu. Ar tai prasminga? Taigi, mes ketiname eiti per, ir mes ketiname daryti [nesigirdi] ir sukurti keletą žymeklių. Taigi what'd rašote savo kodą? STUDENTAS: Aš ką tik pasakė int riba vienas yra lygi 0. JASON Hirschhorn: Pavadinkime kad int pradžia. STUDENTAS: Gerai. JASON Hirschhorn: Tai leidžia daugiau prasmės man. Ir? STUDENTAS: sakiau, manau, int baigiasi. JASON Hirschhorn: int baigiasi. STUDENTAS: Manau, n atėmus 1, ar kažkas panašaus. Kaip, paskutinis elementas. JASON Hirschhorn: Taigi rašė, int pradedant lygi 0, kabliataškiu, ir int pabaiga Lygu n atėmus 1, kabliataškiu. Taigi, iš esmės, ką mes darome čia 0 pirmąją poziciją. Ir kaip mes žinome, masyvuose, jie neturi eiti iki n, jie eiti n atėmus 1. Taigi, mes turime keletą mūsų masyvo ribų. Ir šios pradinės ribos atsitiktų būti pradinės ribos mūsų problema. Gerai. Taigi, kad gerai skamba. Tada, jei mes einame atgal į šią eilutę, o ilgis sąraše yra didesnis nei 0, ką, vietoj n, turėtų mes įdėti čia? STUDENTAS: Rašyti baigiant minuso pradžia. JASON Hirschhorn: Nors baigiant minuso pradžioje yra didesnis negu 0? Gerai. Ir mes galime, jei norime padaryti, kad šiek tiek gražiau, ką dar galėtume padaryti? Jei mes norėjome valyti šis kodas iki šiek tiek? Kaip mes galime atsikratyti 0? Tai tik stiliaus klausimas. Tai teisinga dabar. STUDENTAS: Ending nėra lygūs pradžia? JASON Hirschhorn: Mes galime ką daryti? [Tarpines BALSAI] STUDENTAS: Paskutinysis yra didesnis? JASON Hirschhorn: Taip. Galime tik daryti, o baigiant yra didesnis nei pradžioje. Teisė. Mes pridėtinės pradeda iš kitos pusės , kad ir mes atsikratė 0. Taigi, tai tik atrodo šiek tiek švaresnis. Gerai. Taigi, nors ilgis sąraše yra 0, mes parašėme kad nors baigiasi yra didesnis nei pradžioje. Mes ketiname įdėti į mūsų reikia garbanotas petnešos, tada pirmas dalykas, mes norime padaryti, tai pažvelgti į jie šiek tiek sąrašą. Jūs? Ar galite duoti man - STUDENTAS: Jei skliaustelis vertė aikštė laikiklis - JASON Hirschhorn: Jeigu skliausteliuose vertė aikštė laikiklis. STUDENTAS: nesibaigianti suskirstyti pagal 2. JASON Hirschhorn: nesibaigianti? STUDENTAS: matau su savo problema - JASON Hirschhorn: Gerai. Na, atrodo ne per vidurį. Kaip mes žinome, ką viduryje yra? Taip. Taigi leiskite man ištrinti tą kodą. Kaip mes žinome, ką viduryje yra? Nieko, kai jūs turite pradžią ir pabaiga, kaip jums atrodo viduryje? STUDENTAS: Jūs vidutiniškai. STUDENTAS: Jūs pridėti juos kartu ir tada - JASON Hirschhorn: Įtraukti juos kartu ir tada? STUDENTAS: Ir jūs vidutiniškai. Padalinkite jį 2. JASON Hirschhorn: Įtraukti juos kartu ir padalinti iš 2. Taigi int vidutinio lygu? Tomas, galite duoti man? STUDENTAS: Pradedant plius baigiasi - JASON Hirschhorn: pradžia plius baigiasi. STUDENTAS: Visi, laikiklis, padalintas iš 2. JASON Hirschhorn: Visi, skliausteliuose, padalintas iš 2. Taigi, kad suteikia man vidurį nieko ištaisyti? STUDENTAS: Taip pat reikia suapvalinti ją. JASON Hirschhorn: Ką jūs tai, man reikia suapvalinti ją? [Tarpines BALSAI] STUDENTAS: Nes jei Tai keista skaičius, tada tai kaip - JASON Hirschhorn: Na, gerai. Taigi galėčiau suapvalinti ją. Bet jei jis nelyginis skaičius, 5, galiu atsižvelgiant 1 nuo viduriu. Arba jei jis net skaičius, o, tai geriau atvejis. Jei tai 4, mes turime tik 4, galiu imtis Pirmoji "viduryje", citata, citatos ar Antrasis "viduryje" vienas. Arba dirbtų dvejetainis paieškos, kad aš ne iš tikrųjų reikia suapvalinti ją. Bet yra dar vienas dalykas, aš reikia pažvelgti į šią eilutę. Mes galime nesupranta dar, bet mes prie jo grįžti. Kadangi ši eilutė iš tikrųjų vis dar turi vieną kitą dalyką. Tačiau iki šiol, mes raštu keturių eilučių kodo. Mes turime mūsų pradžią ir baigiant žymeklius. Mes turime while cikle, kuris žemėlapiai tiesiogiai mūsų Pseudocode. Mes ieškome viduryje, kad žemėlapiai tiesiai ant mūsų Pseudocode. Sakyčiau, tai eina į vidurį sąrašo, tai kodo eilutę. Ir tada, kai mes einame į vidurį sąrašas, kitas dalykas, kurį turime padaryti yra patikrinti, jei mūsų vertė yra ten Pseudocode rašėme anksčiau. Taigi, kaip mes patikrinti, ar mūsų vertė yra viduryje sąraše? Jūs. Kodėl tai darote? STUDENTAS: Jei mūsų vertė s yra viduryje yra lygi ką mes nustatyti - Aš turiu galvoje, lygios lygios - JASON Hirschhorn: Tai - Gerai. STUDENTAS: Aš nesu įsitikinęs, ką kintamasis mes ieškome nes, nors, nes - [Tarpines BALSAI] STUDENTAS: [nesigirdi]. JASON Hirschhorn: Būtent. Už funkcijų deklaracijos mes ieškome vertė. Taigi, mes ieškome vertė į vertybių masyvo. Taigi, jūs esate visiškai teisus. Jūs darote, jei atviras skliaustas vertė laikiklis viduryje uždarytos laikiklis lygu Lygu vertę, o viduje yra Ką mes turime daryti? Jei mūsų vertė aisiais, ką mes turime daryti? [Tarpines BALSAI] STUDENTAS: Grįžti nulį. JASON Hirschhorn: Grįžti tiesa. STUDENTAS: Grįžti tiesa. JASON Hirschhorn: Mykolas, Ką ši eilutė daryti? STUDENTAS: [nesigirdi] programa paleisti jos, žinoma, ir tai yra daugiau, ir jūs ką reikia daryti? JASON Hirschhorn: programa, ar ką? Šiuo atveju? STUDENTAS: funkcija. JASON Hirschhorn: funkcija. Ir taip, kad grįžtumėte į ką vadinamas tai ir suteikia jai reikšmę, tiesa. Visiškai teisus. Pagrindinis. Kas grįžimo tipo iš esmės, Michael? STUDENTAS: int sveikas? JASON Hirschhorn: int, tiksliai. Sveikasis skaičius. Tai buvo tik klausimas įsitikinti vaikinai buvo ant jo. Ką tai paprastai grįžti, jei viskas veikia gerai? STUDENTAS: nulis. JASON Hirschhorn: nulis. Visiškai teisus. STUDENTAS: Jei tai tiesiog grąžina true, nėra informacijos skiriant apie tai, kas - Oh, tai tiesiog pasakyti, kad šis vertė viduje masyvo. JASON Hirschhorn: Būtent. Ši programa yra ne suteikti informaciją kur tiksliai vertė. Jis tik sako: taip, mes radome tai ar ne, mes ne jį rasti. Taigi, jei skaičius, rastas, grąžina true. Na, iš tikrųjų mes tiesiog padarė, kad tikrai greitai tą vieną eilutę kodo. Taigi aš judėti, kad Pseudocode liniją. STUDENTAS: Ar ne mes turime pakeisti matrica? Ji turėtų būti vertės, o ne vertės, tiesa? JASON Hirschhorn: Atsiprašome. Ačiū. STUDENTAS: Taip. JASON Hirschhorn: Ši eilutė turėtų būti vertės. Visiškai teisus. Gerai. Taigi, mes pažvelgė vidurinės sąrašą. Jei skaičius, rastas sugrįžimas. Tęstinis su mūsų Pseudocode, jei viduryje yra didesnis, paiešką kairę. Taigi turėjau čia, jeigu numeris didesnis, paieška kairę. Konstantinas, galite duoti man tai kodo eilutę? STUDENTAS: Jei vertė viduryje - JASON Hirschhorn: Taigi, jei vertė - jei atviras skliaustas vertės laikiklis vidutinio skliaustai uždaromi - STUDENTAS: Ar mažesnis nei vertė? JASON Hirschhorn: Ar mažiau nei. STUDENTAS: Mažiau nei vertės. JASON Hirschhorn: Vertė. Na, iš tikrųjų, jūs norite patikrinti, ar numeris - Atsiprašau. Tai šiek tiek klaidina. Bet kitur, jei į skaičius viduryje sąraše yra didesnis. STUDENTAS: O, gerai. JASON Hirschhorn: aš pakeisti. Else if viduryje yra didesnis, mes norite ieškoti kairėje, gerai? Ir ką mes darome viduje tai jei liga? STUDENTAS: Ar galiu padaryti mažą pakeitimą sąlyga, pakeisti jį į kitas, jei? JASON Hirschhorn: kita, jei? Gerai. Taigi, šis kodas bus atlikti apie tą patį. Bet malonus dalykas, apie naudojant, jei dar jei if arba jei kitas, jei kitas reiškia, kad tik vienas iš tų, ketina būti tikrinami ne visi trys iš jų, potencialiai. Ir tai daro jį šiek tiek gražiau kompiuteryje, kad yra veikia savo programą. Taigi [? Konstantinas?] mes viduj šioje eilutėje, kitas, jei vertės, laikiklis vidutinio skliaustai uždaromi yra didesnis nei vertės. Ką mes turime daryti? Mums reikia ieškoti kairėje. Kaip mes tai darome? Aš ruošiuosi duoti jums pradėti. Mes turime šiuos du dalykus, vadinamus prasidedanti ir pasibaigianti. Taigi, kas turi įvykti į pradžią? Jei norite atlikti paiešką kairę sąrašas, mes gauti mūsų dabartinę pradžia. Ką mes turime daryti? STUDENTAS: Mes nustatėme pradžią į vidurį plius 1. JASON Hirschhorn: Taigi, jei mes ieškoti kairę? STUDENTAS: Atsiprašome, viduriniosios atėmus - todėl galūnė būtų viduryje minus 1 ir pradžia - JASON Hirschhorn: Ir kas atsitinka pradžioje? STUDENTAS: Jis lieka tas pats. JASON Hirschhorn: Taigi prasmė lieka ta pati. Jei mes ieškome į kairę, mes naudojant tą pačią pradžią - visiškai teisus. Ir baigiasi? Atsiprašome, ką baigiant lygūs vėl? STUDENTAS: Vidurio minus 1. JASON Hirschhorn: Vidurio minus 1. Dabar, kodėl minus 1, ne tik viduryje? STUDENTAS: viduryje yra iš paveikslėlį jau, nes mes turėjome patikrinti, kad tai atlikti? JASON Hirschhorn: Štai visiškai teisus. Viduryje yra iš paveikslėlio. Mes jau patikrinta per vidurį. Taigi mes nenorime "viduriu", citata citatos, toliau būti matrica, mes ieškome. Taigi tai yra fantastinis. Else if vertės laikiklis viduryje yra didesnis nei vertė baigiant lygu vidutinio atėmus 1. Jeffas, ką apie šį paskutinę eilutę? STUDENTAS: kita. Vertybės viduryje yra mažesnis nei vertė? JASON Hirschhorn: mes jūs suteikėte man kitur. Taigi, jei nenorite duoti man - STUDENTAS: Taigi pradedant būtų viduryje plius 1. JASON Hirschhorn: prasideda lygybės vidutinio plius 1 vėlgi pats Priežasties, kad Konstantinas davė mums anksčiau. Ir, galų gale, kas nedavė man kodo eilutę dar? Return false, Aleha, ką mes rašyti čia? STUDENTAS: Grįžti klaidinga. JASON Hirschhorn: Grįžti klaidinga. Ir mes turime padaryti, nes jei mes nerandate, mes turime pasakyti, kad mes nebuvo rasti. Ir mes pasakėme mes ketiname grįžti bool, kad mes tikrai turime grįžti bool kažkur. Taigi, galime paleisti šį kodą. Aš iš tikrųjų ketiname - todėl mes terminale. Mes išvalyti mūsų langą. Padarykime viską. Mes radome ten viena klaida. Yra apie 15 eilutėje klaida, tikimasi, kabliataškis prie pabaigos deklaracija. Taigi, ką aš pamiršti? STUDENTAS: kabliataškiu. JASON Hirschhorn: kabliataškiu teisė čia. Manau, kad buvo Tomo kodas. Taigi, Tomai, [nesigirdi]. Juokauju. Leiskite padarysiu Visi dar kartą. STUDENTAS: Kas ZMI katalogas mes turėtume būti už tai? JASON Hirschhorn: Taigi jūs galite tiesiog žiūrėti šio bitų. Bet vėl, jei norite perkelti jį kodą į savo pset3 kataloge pabandyti jį, kad tai, ką aš padariau. Jei pastebėsite čia - gaila, geras klausimas. [? LS,?] Turiu čia find.c kodas nuo šios savaitės Distro kodą. Turiu helpers.h. Turiu Make failą, kad aš iš tikrųjų redagavo truputį įtraukti šiuos naujus bylos mes raštu. Visi šio kodekso bus galima ne paskirstymo kodas, bet nauja Padaryti failą, nauja helpers.h failas bus galima internetu atsisiųsti. Vėl, todėl jie yra extra kodai turime. Taigi padaryti viską, už šios linijos, todėl rasti, dvejetainis, burbulo pasirinkimas - daro visi trys ir kaupia į tai vykdomąjį kodą rasti. Taigi, apskritai, mes nenorime į tiesiai į check50. Mes norime paleisti tam tikrus tyrimus dėl mūsų pačių. Bet tik, kad galėtume paspartinti šį šiek tiek, check50 2013 pset3.find praeis į helpers.c-- mano blogas. Aš neturiu, kad dabar. Taigi mes iš tikrųjų ketiname paleisti nekilnojamojo kodą. Usage.find /, jūs žinote, ką tai reiškia? STUDENTAS: Jūs turite sekundės komandinės eilutės apie tai. JASON Hirschhorn: turiu antra komandinės eilutės. Ir už specifikacijos, man reikia įveskite ko mes ieškome. Taigi pažvelkime į 42. Mes nuolat jį surūšiuoti, nes mes neparašiau rūšiavimo funkcija dar - 42, 43, 44. Ir kontrolės D nerado adatą šieno kupetoje. Tai blogai. Tai tikrai yra. Leiskite pabandyti kažką kita. Gal tai todėl, kad aš įdėti tai pradžioje. Darom 41, 42, 43. Čia mes eiti. Jis ją radau. Leiskite jį pabaigoje dabar tik taip mes galime būti kruopščiai - 40, 41, 42. Nepavyko rasti adatą. Taigi minėjau tai anksčiau. Deja, aš žinojau, tai nutiks. Bet pedagoginiams tikslams, tai gerai ją ištirti. Tai neveikia. Dėl tam tikrų priežasčių, jis negali rasti. Mes žinome, kas yra ten, bet mes ne rasti jį. Taigi, vienas dalykas, mes galime padaryti, tai eiti per GDB jį rasti, bet ar kas nors, nesikreipiant per GDB, turi jausmas, kai mes įsukus? [? Madu? ?] STUDENTAS: Aš manau, kad tai gali būti, kai baigiasi yra lygi pradžioje, ir tai tik vienas elementas, sąrašas. Tada jis tiesiog ignoruoja, o ne faktiškai patikrinti jį. JASON Hirschhorn: Štai visiškai teisus. Kai baigiasi Lygu pradžioje, mes dar turime mūsų sąraše elementas? STUDENTAS: Taip. JASON Hirschhorn: Taip, iš tiesų, mes turėti tik vieną elementą. Ir tai greičiausiai atsitiks, kai, už kodu mes patikrinome, mes esame priekis šieno kupetoje arba iš šieno kupetoje pabaigoje. Štai kur pradžia ir pabaiga ketina lygūs vienas su dvejetainėje paiešką. Taigi šių dviejų atvejų ji neveikia, nes baigiasi sudarė pradžioje. Bet jei baigiant lygi pradžioje ar tai while cikle vykdyti? Taip nėra. Ir mes galėjome patikrinti kad vėl per GDB. Taigi, kaip mes galime išspręsti šį kodą, nes kai tuo tarpu baigiant lygi pradžioje, mes taip pat norime, kad tai o kilpa paleisti. Taigi, ką mes galime padaryti nustatyti liniją 18? STUDENTAS: [nesigirdi] yra didesnis viršytų arba būtų lygios. JASON Hirschhorn: Būtent teisus. Nors pabaiga yra didesnis nei arba lygus pradžioje. Taigi dabar mes įsitikinkite, kad gauti, kad kampas atvejis pabaigoje. Ir pažiūrėkime. Leiskite paleisti šią dar kartą. Padarykime viską. Vėlgi, jūs turite tik sekti kartu čia. Ieškoti 41 šiuo metu. Tiesiog laikyti jį atitinka. Ieškoti 42. Leiskite jį pradžioje - 42, 43, 44. Mes jį rasti. Taigi, kad iš tiesų buvo pakeisti mums reikia padaryti. Tai buvo kodavimo mes daug ką tik padarė, dvejetainis paieškos. Ar kas nors turite kokių nors klausimų prieš Aš pereiti į eilučių rašėme Dvejetainė paieška, arba kaip mes sugalvojome , ką mes išsiaiškinti? Prieš mes judėti į priekį, aš taip pat noriu atkreipti , kad ir didelis, mes apibudino mūsų pseudo kodas vienas vienas į mūsų kodą. Mes turime, kad keblus dalykas išsiaiškinti su prasidedanti ir pasibaigianti. Bet jei būtumėte ne suprato, kad, jums būtų parašyta gana daug identiškas kodas, išskyrus šios dvi top linijos. Ir tada jūs suprato, kai jūs padarėte jį patikrinimų bei atvejais, kurie jums reikia ką nors kita. Taigi, net jei jūs laikėsi mūsų pseudo kodas eilutės į eilutę, jūs tai jau Dotarłeś visi, bet dvi eilutės kodą reikia rašyti. Ir aš būčiau pasirengęs bet kad vaikinai būtų visi suprato, kad iš gana greitai, kad jums reikia įdėti kai žymeklis yra rikiuoti ten išsiaiškinti iš kur jūs buvote. Kad vėl yra padaryti galia pseudo-kodą iš anksto. Taigi, mes galime padaryti, logika, o paskui mes galime nerimauti sintaksė. Jeigu mes buvo supainioti apie logiką Bandant įrašyti šį kodą į C, mes Dotarłeś visi messed up. Ir tada mes norime būti užduoti klausimus apie logika ir sintaksė ir sulieti juos visus kartu. Ir mes Dotarłeś prarastas , kas gali greitai tapti labai sudėtinga problema. Taigi pereikime dabar Parinkimo rūšiuoti. Mes turime 20 minučių liko. Taigi Turiu jausmas, mes negalės gauti per visus atrankos rūšiuoti ir burbulas rūšiuoti. Bet leiskite mums bent bandymas užbaigti atrankos rūšiuoti. Taigi įgyvendinti pasirinkimą rūšiuoti naudojant Ši funkcija deklaraciją. Vėlgi, tai yra paimta iš problema nustatyta specifikacija. Int reikšmės yra skliausteliuose, yra sveikųjų skaičių masyvas. Ir int.n yra tos masyvo dydis. Atrankos rūšiuoti vyksta rūšiuoti šį masyvo. Taigi, už mūsų psichikos modelio atrankos rūšiuoti, mes traukti - pirma, mes eiti per sąrašą pirmą kartą laikas, rasti mažiausią skaičių, padėkite jį pradžioje, rasti antrą mažiausias skaičius, įdėkite jį į Antroji pozicija, jei norime Rūšiuoti didėjimo tvarka. Nesu verčia rašyti pseudo-kodą dabar. Tačiau prieš tai kodą kaip klasėje penkias minutes, mes ketiname rašyti pseudo kodas, todėl mes turime tam tikrą prasmę iš kur mes einame. Taigi nebandykite rašyti pseudo kodą savo. Ir tada bandyti pasukti, kad pseudo kodą į kodą. Mes padarysime, kad kaip grupė per penkias minutes. Ir, žinoma, leiskite man žinoti, jei turite kokių nors klausimų. STUDENTAS: Kad ji? JASON Hirschhorn: pamatyti, kiek jūs galite gauti daugiau dviejų minučių. Aš suprantu, jūs ne galės baigti. Bet mes galėsime eiti per šį, kaip grupė. Jūs visi kodavimo taip [nesigirdi], todėl aš atsiprašau sustabdyti, ką jūs darote. Bet eikime per tai kaip grupė. Ir vėl, dvejetainis paieškos, jūs visi duoti man viena, jei ne daugiau eilučių kodo. Ačiū jums už tai. Mes ketiname padaryti tą patį čia kodas kartu kaip grupei. Taigi pasirinkimas rūšiuoti - tegul rašyti kai greitai pseudo kodas. Už psichikos modelio, gali kas nors duoti man Pirmoje eilutėje pseudo-kodas, prašome? Ką norite daryti? STUDENTAS: Nors sąrašas yra ne iš eilės. JASON Hirschhorn: Gerai, o sąrašas iš eilės. Ir ką reiškia "ne iš eilės? STUDENTAS: Nors [nesigirdi] nebuvo rūšiuojamos. JASON Hirschhorn: Nors sąrašas yra ne iš eilės, ką mes darome? Duok man antrą eilutę, prašome Marcus. STUDENTAS: Taigi susirasti kitą mažiausias skaičius. Tai bus atitrauktas. JASON Hirschhorn: Taigi rasti kitas mažiausias skaičius. Ir tada kažkas? Kai randame kitas mažiausias skaičius, ką mes darome? Aš ruošiuosi pasakyti rasti mažiausias skaičius. Štai ką mes norime daryti. Taigi, rasti mažiausią skaičių. Tada ką mes darome? STUDENTAS: [nesigirdi] ir pradžioje. JASON Hirschhorn: Atsiprašome? STUDENTAS: Įdėkite ją į pradžioje sąrašo. JASON Hirschhorn: Taigi įdėkite jį į Sąrašo pradžioje. Ir ką mes darome dalykas kad pradžioje buvo Į sąrašą, tiesa? Mes perrašyti kažką. Taigi, kur mes įdėti, kad? Taip, Ana? STUDENTAS: Kur mažiausias skaičius buvo? JASON Hirshhorn: Taigi įdėti pradžią sąrašo, kai Mažiausiai buvo. Taigi, nors sąrašas yra ne iš eilės, rasti mažiausias skaičius, įdėkite jį į Sąrašo pradžioje, įdėti pradžioje, sąrašas, kur Mažiausiai buvo. Marcus, galite perfrazuoti šią eilutę o sąrašas yra ne iš eilės? STUDENTAS: Nors skaičiai nebuvo atskirtos? JASON Hirshhorn: Gerai, kad, siekiant žinoti, kad skaičiai nebuvo rūšiuojami, ką mes turime daryti? Kiek mes turime eiti per šį sąrašą? STUDENTAS: Taigi, manau, už linijos, arba o, o patikrinta skaičius yra mažiau nei sąrašo ilgį? JASON Hirshhorn: Gerai, gerai. Manau, misphrased mano klausimas prastai. Aš tiesiog bando gauti ne mes ketiname eiti per visą sąrašą. Taigi, nors sąrašas yra ne iš eilės, man sunku žemėlapį. Bet iš esmės, tai kaip Manau apie tai. Eiti per visą sąrašą, rasti mažiausias skaičius, įdėkite jį į pradžioje - iš tikrųjų, tu teisus. Leiskite įdėti juos abu. Taigi, nors sąrašas yra ne iš eilės, mes reikia eiti per visą sąrašą vieną kartą, rasti mažiausią skaičių, vietą jį į sąrašo pradžią, įdėti Sąrašo pradžioje, kai mažiausias skaičius buvo ir tada, jei sąrašas vis dar ne iš eilės, mes turiu eiti per šį procesas vėl, tiesa? Štai kodėl pasirinkimas rūšiuoti, Big-O Runtime Atrankos rūšiuoti, bet kas? STUDENTAS: n kvadratu. JASON Hirshhorn: n kvadratu. Nes kaip Markas ir aš tiesiog suprato, čia mes ketiname turėti eiti per, sąrašas skaičių kartų. Taigi išgyvena kažką ilgis n n kartų skaičių iš tiesų n kvadratu. Taigi, tai yra mūsų Pseudocode. Tai atrodo labai gerai. Ar kas nors turi kokių nors klausimų, apie Pseudocode? Nes iš tikrųjų pasirinkimas yra rikiuoti turėtų tikriausiai ateis 12:59, kodas iš Pseudocode. Taigi kokių nors klausimų apie logika Pseudocode? Paprašykite jį dabar. Atrankos rūšiuoti - o sąrašas yra iš iš eilės, mes ketiname eiti per jį ir rasti mažiausią kiekvieną kartą ir įdėti jį į priekį. Taigi, nors sąrašas yra ne iš eilės, gali kas nors, duok man tą kodo eilutę, kuris nedavė man linija kodo dar, prašome? Tai skamba kaip kas? STUDENTAS: Štai už linijos. JASON Hirshhorn: Tai skamba norėčiau už linijos. Gerai, galite duoti man už linijos? Už - STUDENTAS: i lygu 0. JASON Hirshhorn: aš arba - ką mes trūksta? Kas vyksta čia? STUDENTAS: Žiniasklaida. JASON Hirshhorn: Būtent. (Int i = 0; - STUDENTAS: i