JASON Hirschhorn: Welcome Həftə üç, everyone. Biz məşğul, lakin maraqlı var Önümüzdə bölmə. Belə ki, birinci, biz bəzi etdik çünki gedişi ilə Headway lakin biz hələ öyrənmə bir çox mən, nə yazmayıb Sizlərin bəzi resursları göstərmək niyyətindədir inanılmaz olduğunu sübut etməlidir Siz yanaşma yalnız faydalı deyil kimi sizin problem dəstləri, həm də bütün həzm biz sizə uşaqlar vermək material mühazirə və şort və bölmə. Sonra biz ilk 20 sərf etmək olacaq bölmə üzərində gedən 25 dəqiqə Siz və ya ola bilər olan gdb bu nöqtədə istifadə, lakin bu deyil olduqca faydalı vasitədir edəcək Siz proqramları debug kömək. Siz bir çox printf istifadə edə bilər anlamaq üçün proqram orta dəyişən bərabər nə. Gdb hətta printf daha yaxşı və kodunuzu qıymaq deyil siz, çünki bir yürütülebilir fayl run. Beləliklə, biz 10 ən faydalı artıq getmək lazımdır Siz gdb üçün lazım əmrləri, və biz birlikdə belə bir həyata getmək gedir problem siz, üç və kənarda müəyyən debug kömək gdb istifadə edə bilərsiniz proqramları. Və nəhayət, biz bəzi artıq getmək olacaq çeşidlənməsi alqoritmlərin və Axtarılanlar Siz mühazirə gördüm, və biz ki, həqiqətən kodu, yalnız gedir pseudocode, lakin kodu ikili axtarış bubble sort, və seçim sort. Belə ki, ilk, mən getmək istəyirəm resursları üzərində. Bu geniş siyahısı, və bu Mən bir çox idi, çünki kiçik font burada uyğun. Amma bu, sizə yardım olacaq deyil, yalnız yenə problem dəsti ilə və Siz öyrəndim həzm məlumat, lakin mütləq, viktorina zaman bu edəcəklər olduqca faydalı ola bilər. Belə ki, ilk, mühazirə qeyd edir. Siz cs50.net/lectures getmək və əgər xüsusi həftə və gün gedin, hər biri üçün qeydlər var ki, görəcəksiniz sadəcə deyil, mühazirə bir transcript, lakin bir redaktə versiyası kodu ilə mühazirə əhatə nə parçalarını və digər faydalı tidbits. Mən o üzərində gedən gəlir. Və sonra, eləcə də mənbə kodu var hər mühazirə mövcuddur. Və yenə bu slaydlar da olacaq cs50.net/sections mövcud online bu axşam. Belə ki, ikinci şort hər həftə ki, mövzuları əhatə, adətən 5 15 uzunluğu dəqiqə. Və o inşallah bir verəcək müxtəlif mövzularda böyük primer. Üçüncü - və bu yeni bu il - study.cs50.net edir. Siz yoxlanılır varsa, mən yüksək Bunu gəlir. Siz mövzu almaq. Biz orada mövzular onlarla var. Belə ki, məsələn, siz funksiyaları seçin. Bu bəzi slaydlar verir və funksiyaları edir. Bu əslində slaydlar ki TFS zamanı istifadə üçün tövsiyə olunur bizim bölməsində təqdimatlar. Məşğul olmaq üçün Məsləhətləri və fəndləri də var funksiyaları, və var ilə kömək ki, təcrübə problemləri Siz funksiyaları ilə iş. Biz də qısa sizə links vermək funksiyaları və dəfə funksiyaları mühazirə gəlmişəm. Bu belə study.cs50.net, yeni il, bir fantastik resurs. Sonra, mən əl olan adam var Siz çalıştırabilirsiniz ki, komanda command line. Belə bir haqqında hər hansı bir sualınız varsa, komanda, məsələn, rand, biz bölmə zamanı ötən həftə qarşılaşdı və çox güman ki, rast var vasitəsilə davam zaman problem set kodu yaratmaq, ancaq adam yazın əgər rand, siz səhifə almaq lazımdır ki, Rand haqqında bütün deyir. Bu, onu alır nə verir edir parametrləri, eləcə də geri növü və qısa təsviri ki, funksiyası. Belə ki, Rand kontrol. Bu, bir az wordy və confusing ola bilər belə ki, bəzən mən ki, tapa sadəcə mən bilmək istəyirəm nə Googling cavab tapmaq üçün ən yaxşı yoldur. Belə ki, Google ilə təcrübə. Google yaxşı almaq. Bu ən yaxşı dost olacaq. Eləcə də Google, siz onu tapa bilərsiniz əgər Google, cs50.net/discuss, bu müzakirə forum. Bir sual varsa şansını bir Sizin 700 + həmyaşıdları də var ki, sual və xahiş ola bilər artıq discuss forumlar və cavab var. Belə bir ümumi sual və ya varsa Siz hesab edirəm ki, bir sual var bəlkə digər insanlar daxil ola bilər, cs50.net/discuss kontrol. Nəhayət, son iki, siz istəyirsinizsə bir real insan, ofis danışmaq Cümə saat Bazar ertəsi. Online ofis saat da var uzadılması tələbələr üçün. Və son lakin əlbəttə az deyil Mənə, nida point. Siz bütün əlaqə məlumatı var. Bir şey lazımdır, əgər, xahiş edirik heç vaxt mənə müraciət etməkdən çəkinməyin. Həmişə bunu çekinmeyin. Siz çox az Gchat məni əlavə, ki, məyusedici oldu lakin ümid edirəm ki arasında dəyişdirmək lazımdır Bu və növbəti bölmə. Bu günə qədər resursları hər hansı suallar? Böyük. Nəhayət, başqa bir plug üçün Əlaqə, sayat.me/cs50. Siz mənə anonim rəy verə bilər edirəm necə. Ki, ötən həftə həqiqətən faydalı oldu. Mən sizə uşaqlar şərh bir neçə var sağ ikibölməli, üstəgəl sonra onu seyr edən digər tələbələr Həftə ərzində və bu olduqca faydalı idi. Mən cəhd və mənim istifadə məhdudlaşdırmaq üçün gedirəm sözü "şirin" amma göstərəcək mənim coşğu və həyəcan digər yollarla. Amma digər əlavə var idi maddi geribildirimler, müsbət və delta də. Belə ki, Mən sizə uşaqlar geribildirim edin Sizin problem dəstləri. Mənə geribildirim çekinmeyin mənim tədris. Mən sizə uşaqlar üçün buradayam. Böyük. Mən üçün bütün ilk bölmə. Heç bir yoxdur suallar bu günə qədər? Mən bir qeyd var nəzarət mərkəzi. Extension tələbələr mənə nazil etdik Onlar hər hansı bir audio əldə deyilik deyərək, lakin düzeltmek üçün əlimdən çıxdı. Beləliklə, ümid edirəm ki, olur qısa həll. Siz online izləmək istəyirsinizsə, hi, lakin siz məni eşitmək bilməz. Belə ki, birinci, biz gedən gdb vasitəsilə getmək. Gdb, mən əvvəllər hinted kimi, bir hata vasitəsi printf daha yaxşı. Belə ki, əgər, gdb, siz uşaqlar ilə başlamaq üçün Sizin cihaz açmaq istəyirəm Mən sizə e-məktubla faylı almaq əvvəllər - bu fayl da olacaq bir az mövcud online - və gdb run. / fayl adı. Birincisi, əlbəttə, siz tərtib etmək gdb yalnız işləyir, çünki fayl çalıştırılabilir fayllar. Amma heç başlamaq istəyirsinizsə Gdb nə ilk şey, Siz gdb. / Sezar axır. Belə ki, biz istəyirik proqramın adı var indi ilə getmək niyyətindədir. Mən Sezar etmək yazmaq üçün gedirəm olan mənə bir yürütülebilir fayl verəcək burada yaşıl qeyd. Və sonra mən gdb. / Cesar çalıştırmak üçün gedirəm. Və siz getmək. Siz biz bəzi mətn mənə izah görmək məni verilməsi gdb versiyası haqqında sonra bəzi zəmanət informasiya, və biz sort görünür ÜDM tez var bizim command line tez kimi, ancaq açıq görmək paren, gdb, yaxın paren. Biz bu faylı davam və debug əvvəl Mən sizə bütün göndəriləcək ki, baxaq bəzi faydalı əmrləri belə ki, biz bir hissi var nəyə əhatə edir. Bu əmrləri burada verilmişdir Mən ümumiyyətlə, onları istifadə edən sifariş. Mən çalışan mənim proqram başlamaq Proqramın Gbd. / Adı, bu halda, Caesar. Və sonra ilk şey mən 99.9% bunu vaxt növü fasilə demək. Ki, əsas bir fasilə point edir. Əsasən, siz orada nə edirik proqram dayandırmaq üçün gedir əsas belə ki, xətt araşdıran başlaya bilərsiniz xətti ilə deyil, bütün çalışan çox yolu. Siz müxtəlif məntəqələrində qıra bilər Sizin kodu, əsas ümumiyyətlə bir başlamaq üçün yaxşı bir yerdir. I run növbəti komanda run edir. Bu proqram çalışan başlayır və Siz command line daxil etmək lazımdır, əgər arqumentlər, siz ki, funksiyanı çalıştırın. Dəlilləri ilə Run. Biz bir versiyası üzərində gedir, bəri proqram uşaqlar olan C, pset iki yazdı - bu bir, əlbəttə, bəzi hataları var inşallah tapmaq lazımdır ki, bu - biz bəzi komanda ilə run run olacaq line arqumentlər çünki Sezar, Sizlərin problem başına bildiyiniz kimi spec müəyyən, bəzi command line dəlilləri. Əmrləri növbəti cüt, növbəti bir həqiqətən Növbəti adlanır. Ki, bir xətti ilə siz xətt çəkir sizin proqramı vasitəsilə. Belə ki, daxil edin, sonra n vuruş siz alır növbəti line, icra Əvvəlki line. Step götürür yalnız növbəti xətti, lakin siz daxili funksiyaları edir. Beləliklə, siz bir funksiyası yazılı əgər kodu və ya tədqiq etmək istəyirsinizsə i üçün, misal üçün, siz s təşkil edə bilər və daha növbəti line gedən daha Siz hüququ vasitəsilə olacaq ki, fayl indi, həqiqətən addım olacaq Bu funksiya və onun kodunu görürük. Siyahısı dostluq çox istifadəçi, sizə göstərir format, ətrafında 10 və ya belə xətləri Hal-hazırda kodu harada belə ki, həqiqətən, fayl bilərsiniz daha geri dəyişdirmək üçün olan və çox irəli müxtəlif views arasında. Print, printf kimi Onun adı nəzərdə tutur kimi. Ki, bir dəyişən bərabərdir nə göstərir. Məlumat yerli həqiqətən faydalıdır. Bu çap xüsusi versiyası. Info yerli siz yerli bütün göstərir dəyişənlər, sizin üçün bütün yazdıran Hal-hazırda mövcud olan. Belə ki, daha olan ümumiyyətlə I, Mən ki, dörd dəyişənlərin çap Mən bir loop üçün, üçün Ben əgər merak Məsələn, mən yalnız info yerli yazmaq, və mənə nə mənim counter i göstərmək lazımdır Mən ki, array, eləcə də bərabərdir bərabər iş. Nəhayət, davam edir. Fasilə Typing siz dayanacaqlar fasilə nöqtədə. Siz xətti ilə gəzmək olar növbəti və addım line. Növbəti üçün çalışır proqram davam point qırmaq və ya doldurulub əgər qədər heç bir daha çox fasilə xal var. Disable fasilə xal rədd siz əgər əsas da fasilə qərar verdi uygunsuz, istədiyiniz başqa bir yerdə müəyyən. Və nəhayət q, çıxmaq, gdb həyata alır. Belə ki, bu proqram,. / Sezar, biz gedən indi baxmaq və biz tapmaq üçün gdb istifadə edir bu proqram bugs. Mən əvvəllər bu proqram qaçdı 50 Check, və mən bir qaşqabaq var. Hər şey bu tərtib, mövcud, bu testlər bir çox keçib, lakin üçün nədənsə, bu beşinci keçə bilmədi daxil BARFOO, bütün caps, dönüş test, E-D-U-I-R-R, bütün caps, əsas kimi üç istifadə. Mən olduqca yaxın var. Mən bir məktubu ilə off almışdır. Belə ki, burada bəzi kiçik səhv var. Mən kod vasitəsilə baxdı etdik. Mən bunu anlamaq bilməz. Ümid edirəm ki, uşaqlar mənə kömək edə bilər bu səhv nə anlamaq. Belə ki, biz istəyirik hata var üçün axtarış. Nin gdb hərəkət edək. Yenə, gdb. / Sezar run etdik belə ki, indi biz gdb istəyirik. Və ilk nədir mən nə etməliyəm şey? Mən yalnız gdb daxil etdik. Kimsə mənə yaxşı vermək daxil command. TƏLƏBƏ: əsas ayırın. JASON Hirschhorn: əsas ayırın. Fantastic. Nin da ki, yazın edək Siz uşaqlar burada qədər izləmək və ya təqib edə bilərsiniz Sizin kompüter boyunca. Əsas qırmaq və bir görəcəksiniz break point müəyyən edilib - Mənə bəzi qəribə yaddaş ünvan verir, və bu da mənə line sıra verir. Mən bu faylı geri baxmaq olsaydı, Mən əsas atacaqlarını line 21 baş verib. Mən növbəti nə run lazımdır? Mənim proqram çalışan? No Mən növbəti nə run lazımdır? TƏLƏBƏ: Run. JASON Hirschhorn: Run. Mən yalnız run run, və ya etməlidir Mən bəzi digər şeylər əlavə? TƏLƏBƏ: arqumenti ilə Run. JASON Hirschhorn: Run komanda dəlilləri. Mən bir çox xüsusi ayıklama alıram ildən halda, mən daxil olmalıdır command line arqument. Belə ki, yenə, olan, üç çalıştırmak yoxdur lazımdır Mən Check 50 əldə çıxdı. Proqram başlayaraq. Biz xətləri bir neçə ilə getmək. İndi biz xətti 21 olduğunuzu görəcəksiniz. Necə biz line 21 olduğunu bilirik? Çünki Siz sol baxsaq mənim terminal pəncərə var Bu xətt 21 deyir. Və, həqiqətən, mənə verir line 21 olduğunu kodu. Mən əvvəllər misspoke. Main line 21 həqiqətən deyil. Main 21 yuxarıda xətləri bir neçə edir. Amma line 21, ki, biz qırılma edirik. Kodu bu xətt var hələ icra edilmir. Vacibdir. Gördüyünüz line deyil hələ icra olunmuşdur. Bu kodu növbəti line var Siz icra üzrəyik. Uşaqlar kimi Belə ki, növbəti line, ilə yəqin ki, tanış, bu mən ola görmek üçün yoxlanılması bir command line arqument daxil. Və i bir, ikinci nə bunu hissəsi? A i nədir? TƏLƏBƏ: bir tam dəyişdirilməsi. JASON Hirschhorn: Bağışlayın? TƏLƏBƏ: Bu dəyişən oldu bir tam dəlil. JASON Hirschhorn: Belə ki, bir i dəyişir ARG bir tam bir simli v1. Və sonra nə yoxlanılması? TƏLƏBƏ: ikinci varsa command line arqument kənara proqram çalışan. JASON Hirschhorn: Və nə var Bu ilin ikinci yarısından Boolean ifadə yoxlanılması? Burada bu hissəsi, bir i üçün? TƏLƏBƏ: mənfi varsa. JASON Hirschhorn: əmin nə edilməsi? TƏLƏBƏ: əmin edilməsi əslində, müsbət deyil. JASON Hirschhorn: Exactly. Bu görmek üçün yoxlanılması olunur Bu mənfi mənfi, və əgər, mən bir hiss növbəti line gücünü var Mənə böyle istifadəçi da bilər. Belə ki, bu xətt icra son hit imkan. Biz xətt görmürəm ki, uşaqlar bəlkə böyle görmək gözlənilir istifadəçi və sonra qaytarılması, çünki Bu line icra etməyib. Mən 3 girdi. Mən, əslində, iki komanda daxil etməyib line arqumentlər və 3 sıfır daha çox. Belə ki, xətt gördük, biz icra, lakin biz addım atmadı əgər vəziyyəti daxilində. Belə ki, indi, növbəti, mən müəyyən alıram bax int əsas i v1 Arg bərabərdir. Belə ki, mənə bir dəyişən düyməsini yaradır. Mən indi düyməsini çap əgər, çünki ki görmək üçün imkan verir dəyəri dəyişən daxilində, əsas 47 bərabərdir. Ki, əlbəttə qəribə, lakin Mən yoxdur, çünki ki hələ ki, xətt icra. Mən n hit əgər Belə ki, indi ki, line icra və çap düyməsini etmək, əsas, 3 bərabər olacaq biz bərabər gözləyirik nə olan. Belə ki, yenə gdb, xətti siz Siz hələ icra görürük. Siz n və ya s və ya bir sıra hit var həqiqətən digər əmrləri ki, xətt icra. Print düyməsini basın. 3 Key var. İndiyə qədər belə yaxşı. String düz mətn. Ki line icra edək. Mən istifadəçi bir string alıram. Mənim Check 50 görək, mən BARFOO bütün caps daxil edin, belə ki, Mən daxil lazımdır budur. İndi düz mətn çap edin. Siz bir string bərabərdir görəcəksiniz. Mənə bir digər qəribə hexadecimal verir sayı, lakin bu yoxdur ki, mənim string BARFOO olduğunu deyirlər. Mən əsas da olmuşdur nə görmək istəyirdi Bu baxımdan, mən necə əsas yoxlamaq bilər? TƏLƏBƏ: Print düyməsini basın. JASON Hirschhorn: Print əsas, dəqiq. Və həqiqətən, qısa var. Siz çap yazaraq və yorğun almaq, yalnız p edəbilərsiniz. Belə ki, p əsas eyni dəqiq şey yoxdur. Və yenə, mən 3 bərabərdir görürük. Mən nə əsas, həm də tapmaq istəyirdi və BARFOO eyni zamanda bərabər amma hər yazaraq yorğun idi biri fərdi, mən info yerli yazın bilər. Mənə əsas bərabərdir 3 verir. Plain text BARFOO bərabərdir. Bu da mənə bu iki qəribə şeylər verir üst, bu dəyişən i və Bu dəyişən n. Bu əslində mövcud mənim əsas proqram. Biz hələ onlara rast yoxdur lakin bir önizleme kimi, həmin mənim loop üçün mövcuddur. Belə ki, hazırda, bəzi qəribə bərabər ədəd onlar olmamışdır, çünki hələ başlatılmadı, lakin onlar hələ mövcuddur yaddaş, belə ki, onlar yalnız təyin etdiyiniz bəzi zibil dəyəri. Amma biz düz düyməsini görürsünüz orada mətn. Mən bu xətt icra gedirəm, line 34, üçün loop. Biz daxil jump olacaq n vuraraq loop üçün. Və biz loop üçün daxili istəyirik. Biz ilk çek. Və yenə bu sort baxmaq lazımdır bu bir idi, çünki sizə tanış Sezar yazılı ki, proqram, lakin yenə səhv bir növ var. Mən, çünki indi, info yerli əgər loop üçün daxili, siz görəcəksiniz biz gözləmək kimi i, sıfır bərabərdir ki,. Yəni biz onu müəyyən və başlatılmış nə Bu loop üçün də. n 6 bərabərdir. Biz müəyyən, çünki da əhəmiyyət kəsb edir düz mətn strlen üçün. Mən info yerli və ya çap etmək istəyirəm dəyişən tez-tez əmin etmək hər şey həmişə nə Mən bərabər gözləyirik. Bu halda, hər şey Mən bərabər gözləmək nə. Belə vasitəsilə hərəkət başlamaq edək bu loop üçün. Mən deyiləm line line 36, əgər düz mətn i bir və düz daha böyükdür text i daha az və ya z bərabərdir. Mən problem mənim ilk deyil bilirik məktub, ikinci hərfi ilə var. Biz Check geri baxmaq əgər 50, B E cərimə gedir. Mən A alaraq və kimi tərk edirəm A, D. Beləliklə onu dəyişən deyil bir şey ilə yanlış ikinci məktubu. Mən hərəkət etmək üçün gedirəm bir ikinci. Amma nə düz yoxlamaq istəyirəm ki, əgər text Bu xüsusilə olmuşdur halda, mən nə olmalıdır? Düz mətn Mən bu bərabər olmalıdır nə loop üçün vasitəsilə ilk dəyirmi? TƏLƏBƏ: Zero? JASON Hirschhorn: I Plain text? Belə ki, mən, əlbəttə paytaxtı B. olmalıdır sıfır bərabərdir, lakin düz mətn bracket sıfır qapalı bracket B bərabərdir çünki strings, biz ötən həftə gördüm kimi, array var, belə ki, biz əldə etdiyiniz ki, ilk character. Belə ki, yenə mən düz mətn çap əgər Mən, əslində, xarakter almaq yoxdur B. Və bu doğru, səliqəli var? Mən, həqiqətən, düz mətn I. yoxdur Mən müəyyən dəyişənlərin biri deyil və ya başlatılmış, lakin siz çap edə bilərsiniz şeyi bütün host həyata Siz istəyirsinizsə. Amma vasitəsilə hərəkət edək. Düz mətn I A daha çox və əgər düz mətn I daha az və ya bərabərdir Çünki bizdə Z, aydın həqiqətdir Mən çalıştırmak üçün gedirəm paytaxtı B. bu bir komanda. Biz keçən həftə riyaziyyat gördüm, belə ki, biz will çalışır ki verilən üçün almaq sağ 50 yoxlayın görə. Bu qıvrım aşırma, ilk Mən əgər mövcud idi göstərdi ki, vəziyyəti, ikinci göstərdi Mən loop üçün mövcud edirəm ki,. Mən Sonraki hit zaman və indi, biz görəcəksiniz biz yenə loop üçün geri istəyirik. Biz vasitəsilə olacaq yenə loop üçün. Həqiqətən ikinci addım edək loop və növü üçün iteration info yerli. Beləliklə, biz ikinci iteration istəyirik bizim üçün loop. Mən biz gözləyirik ki, 1 bərabərdir. N gözlədiyimiz olan 6 bərabərdir. Key biz gözləyirik ki, 3 bərabərdir. Və düz mətn, görəcəksiniz bərabərdir EARFOO indi ki, artıq BARFOO çünki bizim əvvəlki iteration, B idi paytaxt E. dəyişib Belə ki, biz istəyirik problemi qarşılaşa, bu belə biz olacaq harada hata daxil dalış. Amma heç hər hansı bir sualınız var biz bu günə qədər etdiyiniz nə haqqında? Fantastic. Beləliklə, biz bu icra üzrəyik vəziyyəti, mən qapalı düz mətn bracket bracket A daha çox və düz mətn I daha az və ya Z. bərabər Amma əvvəl Bu, çünki, ki, daxil olduğu Mən qeyd etmək istəyirəm, mənim səhv olduğunu I. düz mətn out Belə ki, nin çap həyata qoymaq bildirin. Bu xarakteri bərabər edir, belə ki, bu günə qədər, bütün yaxşı və yaxşı görünür. Mən, mənim məntiq başına bu xətti gözləmək Bu line doğru olmalıdır. Bu kapital məktubu var. Mən n hit əgər Lakin, biz dərk etmirlər ki, bu line, əslində, icra etməyib. Mən başqa əgər aşağı atladı. Nə baş verdi? TƏLƏBƏ: Siz çünki sizin vəziyyəti düz mətn böyükdür A, bərabər və ya daha çox. JASON Hirschhorn: Beləliklə, mən düz mətn idi Mən A, böyük olmayan daha böyük və ya bərabər. Belə aydın, paytaxt A etmədi vəziyyəti bu tetiklemek və biz onu addım və biz etmədi zəruri shift deyil. Belə ki, həqiqətən, var. Mən səhv fiqurlu. Mən mənbə faylı geri getmək bilər, dəyişdirmək, və onu yeniləmək və yenə 50 yoxlayın axır. Amma biz yalnız pedaqogika nin, görürsünüz xatirinə, mən davam əgər. Başqa varsa ya icra etmir, lakin nə əvəzinə bərabərdir əmr edir ki, dəyişmir. Belə ki, bütün dəyişib və əgər mən burada düz mətn çap, biz gedən görəcəksiniz vasitəsilə loop üçün, əslində, olmadı bütün ki, ikinci xarakter dəyişir. Bu hələ bir kapital A. var Belə ki, yenə biz səhv debugged. Biz var idi ki, həyata keçirilir itkin bir məntiq. Və biz əvvəl vaxtından əvvəl debugged həqiqətən ki xətt yerinə, lakin siz qeyd olardı idi biz yalnız Next hit və əgər ki, başqa tullanmaq, deməkdir ki, əgər vəziyyət doğru deyil. Biz, əslində, əldə etməyib nəticə biz gözlənilir. Beləliklə biz istenir bilərdi idi Biz baxmaq, belə ki, astute deyil ki, vəziyyəti və əslində, əgər yoxlamaq əgər bizim vəziyyəti qiymətləndirmək lazımdır cari kontekstində doğru. Bu proqram hata üçün bütün var. Heç bir sualınız varmı? Mən gdb çıxmaq hansı əmri hit bilər? Q. Və sonra mən istenir, hər halda çıxmaq? Bəli və ya No. I yes hit olacaq və mən gdb çıxmaq lazımdır. Belə ki, gdb tez primer idi. Əslində, bir real ssenari, Mən ofis saat bu idi. Bu dəqiq proqram da GDBed bir tələbə ilə ofis saat. Və biz gördük əmrləri geri getmək əgər əvvəl, biz ilk, break əsas istifadə şey etdik. Biz command line dəlilləri ilə run istifadə ikinci şey etdik. Biz hərəkət yanında bir çox istifadə xətləri vasitəsilə us. Və yenə, qisa versiya növbəti n edir. Ki, parantez var Slayd boz. Biz addım istifadə etməyib, lakin biz deyil mütləq bu halda lazımdır. Amma biz sonra bir az onu istifadə edə bilər Bu gün biz ayıklama əgər, üçün Məsələn, ikili axtarış zaman ikili axtarış ayrı bir adlanır funksiyası lakin var ilə bəzi səhv. Biz daxil addım istəyirik olacaq ikili axtarış zəng və həqiqətən debug. Biz idi, çünki biz ya istifadə etməyib siyahısı bizim kodu yaxşı mənada, amma əgər mən hansı kodu I hissi almaq istəyirəm ətrafında idi, mən yalnız siyahısını istifadə edə bilər. Biz istifadə info yerli istifadə çap. Biz bu istifadə etmək lazımdır etməyib Davam halda, biz də istifadə etmək lazım idi aradan, lakin biz istifadə çıxın. Yenə bu 10 əmrləri, onları təcrübə. Bu 10 əmrləri anlamaq, Əgər hər hansı bir ayıklama üçün müəyyən edilməlidir gdb ilə vermək. Belə ki, biz, təkrar getmək haqqında istəyirik hissəsinin mahiyyəti bu gün üzərində gedən Bu çeşidlənməsi və axtarış alqoritmləri. Biz bunu əvvəl, yenə, Hər hansı bir sualınız, gdb üçün yapılan yorumlar narahatlıq? Belə ki, hamı istifadə edir Gdb çox printf? Əbədi xatirinə Belə ki, hamı, hər kəs öz baş hüququnu noddede olunur İndi, mən ofis saat siz görəcəksiniz və bütün TFS Sizi və görəcəksiniz necə istifadə etmək mənə göstər, demək lazımdır Gdb və siz edə bilərsiniz sağ, onlara göstərmək üçün? Cür? Bəlkə inşallah. Cool. Beləliklə, biz hərəkət olacaq çeşidlənməsi və axtarış. Mən artıq sıralaması siyahısını görəcəksiniz Bizə, lakin niyyətində deyil üçün həmişə belə olacaq. Belə ki, problem üçün set dəqiqləşdirilməsi problem üç set, siz şort var siz həqiqətən izləmək, və edə bilər ki, o şort izləmək üçün xahiş edir. Həmçinin mühazirə ötən həftə, biz artıq getdi bu alqoritmlərin bir çox, mən deyiləm davam sinif vaxt sərf etmək niyyətində deyil daha bu alqoritmlər və ya rəsm üzərində necə bu üçün şəkillər alqoritmlər çalışır. Yenə, yenidən watch bilər ki, məlumat mühazirə, və ya məlumat şort haqqında outstandingly əsir Bu axtarışlar, bütün üçün cs50.net mövcud olan. Belə ki, əvəzinə, biz olacaq nə bu proqramları yazmaq deyil. Biz necə bir ruhi model, hissi var onlar iş, və biz olacaq etmək real üçün onları kodu. Biz əqli model çevirmək olacaq, ki, şəkil, Siz, daxil faktiki kodu. Və bir az qarışıq və ya əgər psixi model dumanlı, mən tamamilə başa düşürük. Biz, həqiqətən, fikrində deyilik kodu straightaway jump. Bu slayd bu tez soruşur isə belə Siz ikili axtarış kod və həqiqətən, təkrar versiyası ikili axtarış, ilk şey mən həqiqətən, sizin nə etmək istəyirsinizsə pseudocode yazmaq. Belə ki, bu ruhi model var necə ikili axtarış işləri. Varsa kağız bir hesabatı çıxarmaq bir hazır, və ya açmaq bir mətn redaktoru və mən istərdim yazmaq everybody. Yazmaq üçün dörd dəqiqə edin Binar axtarış üçün pseudocode. Yenə ki, əqli model haqqında düşünürəm. Əgər suallarınız varsa, mən ətrafında gəlmək lazımdır və biz şəkil cəlb edə bilər. Lakin ilk, biz proqramlaşdırma başlamaq əvvəl, Mən yazmaq istədiyiniz Binar axtarış üçün pseudocode belə ki, biz dalış, biz bəzi istiqamət var biz rəhbərlik etməlidir harada. TƏLƏBƏ: biz array güman edə biz almaq dəyərlər artıq çeşidlənir? JASON Hirschhorn: Belə ikili axtarış üçün iş - əla sual - siz bir sorted almaq lazımdır dəyərlər array. Belə ki, bu iş olacaq daşımır. Biz bu slayd getmək lazımdır. Siz bənövşəyi funksiyası görəcəksiniz bəyannamə bool binary_search int edir dəyəri, int dəyərlər, int n. Siz var, bu tanış baxmaq lazımdır artıq yaxınlaşdı və ya kazanılmış sizin Bu problem dəsti ilə çirkli əlləri. Amma ki, funksiyası bəyannamə var. Yenə narahat lazım deyil bu anda çox. Mən, həqiqətən, siz istədiyiniz almaq deyil pseudocode ikili dörd dəqiqə axtarış, sonra biz getmək lazımdır bir qrup kimi artıq. Mən ətrafında gələcək. Əgər suallarınız varsa, hiss əl qaldırmaq pulsuz. Niyə daha iki dəqiqə etmirlər Bu pseudocode başa çatdırmaq üçün? Mən bu ki, gülünc görünə bilər Biz çox vaxt sərf etdiyiniz hətta həqiqətən deyil ki, bir şey C, amma xüsusilə bu daha çox çətin alqoritmlər və problem anlamaq lazımdır ki, dəstləri, pseudocode narahat deyil başlayaraq sintaksis haqqında, yalnız narahat məntiq, olduqca faydalıdır. Və yol, iki həll deyilik bir dəfə olduqca çətin problemləri. Siz yalnız məntiq diqqət və edirik sonra sintaksis hərəkət. OK. Vasitəsilə davam başlamaq edək Bu pseudocode. Mən ikili, burada yazılı axtarış pseudocode. Biz bu yazmaq lazımdır birlikdə board. Və ya mən bunu yazmaq lazımdır və verəcəyik Mənə lazım olan ister. Belə ki, heç mənə ilk verə bilər Bu pseudocode line siz Binar axtarış üçün yazdığı? Bəli, Annie? TƏLƏBƏ: isə uzunluğu siyahısı daha böyükdür sıfır. JASON Hirschhorn: baxmayaraq uzunluğu sıfır daha çox edin. Və yenə, biz bəzi C görünüşlü bax burada sintaktik şeylər. Amma bu çox İngilis edir. Heç onlar qoymaq bir xətt var idi onların yalançı kodu bu əvvəl? TƏLƏBƏ: bir sıra alın nömrələri sıralanır. JASON Hirschhorn: Siz yazırdı "bir almaq sorted nömrələri array. "Bu Per funksiyası bəyannamə, biz keçən olacaq sıralaması nömrələri array. TƏLƏBƏ: [işitilemez]. JASON Hirschhorn: Belə ki, ki, olacaq. Amma bəli, biz ki, olmasaydı biz bizim array düzmək üçün lazımdır nömrələri, çünki ikili axtarış yalnız sıralanır Diziler üzərində işləyir. Siyahısı uzunluğu sıfır bərabərdir Belə isə, mən bir qıvrım aşırma qoymaq niyyətindədir bir az daha çox kimi baxmaq üçün C. Amma isə, bir daxil xəritəyə görünür loop, bu müddət içərisində loop nə biz lazımdır Binar axtarış üçün nə? Mənə bir etməyən başqası hələ cavab lakin bu yazdı? TƏLƏBƏ: siyahısının orta gedin. JASON Hirschhorn: Tom. Siyahısı ortasında gedin. Və təqib sual, nə Biz istəyirik dəfə edərik siyahısı orta? TƏLƏBƏ ki olub bir çek etməyin aradığınız sayı. JASON Hirschhorn: Əla. Siyahıda orta getmək və yoxlamaq bizim dəyər varsa - fantastik. Heç başqa bir şey var mı ki, bu çox fərqli idi? Dəqiq doğru. Biz ikili axtarış nə ilk şey siyahıda ortasında getmək və Bizim dəyəri var görmek üçün yoxlamaq. Bizim dəyər əgər mən güman , biz nə var etməliyəm? STUDENT: Biz [işitilemez] sıfır qayıtmaq. JASON Hirschhorn: Bəli, əgər bizim dəyəri var, biz bunu gördük. Belə ki, biz, lakin bəzi yol deyə bilərsiniz bu funksiyası müəyyən edilir, biz istifadəçi demək biz onu aşkar. Orada deyil, baxmayaraq ki, var Bu çətin olur yerləşir. Belə ki, yoxdur, əgər kimsə başqa kim ikili axtarış və ya üzərində işləyir indi biz nə bir fikir etməliyəm etdi? TƏLƏBƏ: Sual. JASON Hirschhorn: Yes? TƏLƏBƏ: array artıq çeşidlənir mı? JASON Hirschhorn: Bəli, biz fərz edirik Bu array artıq çeşidlənir. TƏLƏBƏ: Belə ki, sonra yoxlamaq varsa gördüğünüz dəyəri böyükdür istədiyiniz dəyəri, hərəkət edə bilər digər yarısı orta. JASON Hirschhorn: Belə ki, əgər orta siyahısı, biz istəyirik nə daha böyükdür nə üçün sonra biz edirsiniz axtarır? Biz harada hərəkət? TƏLƏBƏ: Siz hərəkət etmək istəyirəm ilə siyahının yarım daha aşağı nömrələri. JASON Hirschhorn: Biz will sol ki, zəng. Orta böyük Belə ki, biz axtarış edə bilərsiniz siyahısı sol yarısı. Və sonra axtarış, nə Mən Axtarış deməkdir? TƏLƏBƏ: [işitilemez]. JASON Hirschhorn: Biz orta gedin. Biz, həqiqətən, bu şey deyirəm. Biz isə loop vasitəsilə geri getmək. Mən sizə son bir verəcəyik - əgər başqa, orta nə azdır biz, biz burada nə edirsiniz? TƏLƏBƏ: sağ gedin. JASON Hirschhorn: hüququna axtar. Bu yaxşı görünür, lakin heç yoxdur əskik və ya ola bilər ki, bir şey Siz qoymaq ki, başqa bir şey Sizin yalançı kodu? Belə ki, bu biz bu günə qədər nə edir. Siyahısı uzunluğu çox isə sıfır daha, biz getmək olacaq Bu siyahıda ortasında və bizim dəyər var yoxlayın. Orta böyük olduqda, biz olacaq orta əgər axtarış başqa, sol az, biz doğru axtarmaq üçün olacaq. Beləliklə, biz bütün bəzi tanış etdik biz kompüter istifadə şərtləri və alətlər var. Amma artıq biz görəcəksiniz İngilis danışan, lakin biz aşkar bir üçün xəritəsi görünürdü ki, hər şeyi çox biz kodlaşdırma alət dəsti var tools. Belə ki, hüququ yarasa off, biz deyilik həqiqətən, hələ kod gedir. Biz ingilis burada nə görürsünüz ki, xəritələr şeylər üçün biz C yazmaq olar? TƏLƏBƏ: baxmayaraq. JASON Hirschhorn: baxmayaraq. Belə ki, bu isə burada nə üçün xəritələr? TƏLƏBƏ: A isə loop. JASON Hirschhorn: A isə loop? Və ya yəqin ki, daha çox, ümumiyyətlə, bir loop. Biz üzərində bir şey etmək istəyirəm. Beləliklə, biz bir loop kod olacaq. Biz etdik, çünki biz artıq bilirik bu bir dəfə neçə və biz , orada nümunələr var necə həqiqətən yazmaq üçün bir loop üçün bu index. Belə ki, olduqca asan olmalıdır. Biz almaq lazımdır olduqca sürətli başladı. Nə biz burada görürsünüz? Nə digər strukturları syntaxes, hər şeyi biz C ilə tanış edirik ki, biz bunu artıq əsaslı hissi var biz istifadə sözlər off? Bəli, Anna? [Işitilemez] yalnız söylüyorum. Anna, davam. TƏLƏBƏ: Əgər başqa. JASON Hirschhorn: Əgər başqa - burada. Belə ki, nə kimi görünür? TƏLƏBƏ: An başqa şərhdə əgər. JASON Hirschhorn: Bəli, şərait, sağ? Beləliklə, biz yəqin ki, lazımdır bəzi şərtlər yazın. Və yenə, baxmayaraq bəlkə çaşdırıcı ilk, biz ümumiyyətlə indi hissi var şərait və yazmaq üçün necə şərait üçün sintaksis. Biz deyil, biz yalnız baxmaq şərait, cut və paste üçün syntax ki, biz bilirik, çünki Burada bir şərt lazımdır. Biz üzərinə ki, xəritə görmək hər hansı digər şeylər biz C nə etmək lazımdır bilər şeylər? Bəli, Aleha? TƏLƏBƏ: Bu, aydın ola bilər yalnız yoxlanılması əgər dəyər bir şey bərabərdir. JASON Hirschhorn: Belə ki, necə biz yoxlamaq yoxdur və - belə siyahı ortasında getmək bizim dəyər varsa və yoxlamaq? Biz C necə etməliyəm? Ki üçün sintaksis nədir? TƏLƏBƏ: bərabərdir, Bərabər. JASON Hirschhorn: bərabərdir Bərabər. Belə ki, bu check yəqin ki, davam edir bir bərabər olmaq, bərabərdir. Belə ki, biz ki, haradasa lazımdır bilirsiniz. Və həqiqətən, yalnız yazılı, biz o başqa şeylər görürük. Biz bəzi etmək olacaq müqayisə operatorları var - fantastik. Belə ki, həqiqətən kimi, və görünür böyük, biz yazılı bir hələ C kodu söz. Amma biz aşağı ruhi model var mühazirə və o şort vasitəsilə. Biz bir qrup kimi yalançı kodu yazdı. Və artıq biz 80% əgər yoxdur Biz nə etmək lazımdır nə 90%. İndi biz yalnız kod lazımdır o, yenə, bir olan həll etmək üçün qeyri-mənasız problem. Lakin ən azı biz məntiq vurulmuş edirik. , Ofis saat getmək zaman indi ən azı Mən lazım nə deyə bilərsiniz etmək, ancaq xatırlatmaq bilər sintaksis mənə? Və ya ofis saat sizə, dolu olsa da daha doğrusu, sintaksis üçün Google bilər məntiq vurulmuş olan daha. Və yenə, daha çox həll etməyə çalışır məntiq və sintaksis problemləri bütün bir dəfə, tez-tez çox yaxşıdır o iki ağır problemləri kəsmək daha iki idarə olanlar və bunu C. yalançı kodu ilk və sonra kodu Beləliklə də mən nə görmək bildirin yalançı kodu vaxtından. Siyahısı uzunluğu çox isə sıfır daha, orta baxmaq siyahısı. Sayı başqa, doğru geri aşkar etdikdə sayı, ali search sol əgər. Else əgər nömrəsi aşağı, axtarış sağ, saxta qayıtmaq. Belə ki, demək olar ki, eyni görünür əgər biz yazırdı nə təxminən eyni. Əslində, Tom, ilk nə söylədi, siyahısı və əgər orta qırılma iki hesabatlarına daxil tapılmadı sayı Mən nə əslində. Mən orada onlara birləşmiş. Mən qulaq olmalıdır Siz ilk dəfə. Belə ki, biz yalançı kodu. İndi istəyirsinizsə, sorry, getmək Bizim ilkin problem geri. Üzrə kodu binary.c edək. Belə ki, bir iterative versiyası həyata keçirilməsi aşağıdakı istifadə binar axtarış funksiyası bəyannamə. Və surəti ehtiyac yoxdur aşağı yalnız hələ. Mən, həqiqətən, açmaq üçün gedirəm up burada binary.c. Belə ki, funksiyası bəyannamə var ekran ortasında. Və mən yalançı kodunu aldı görəcəksiniz Mənim tərəfdən, lakin demək olar ki, eyni nə biz yazdı və sizin üçün qoydu. Belə ki, indi beş dəqiqə götürək Bu funksiya kod. Və yenə, Hər hansı bir sualınız varsa, əl qaldırmaq, I will, Mənə bildirin ətrafında gəlir. TƏLƏBƏ: [işitilemez]. JASON Hirschhorn: Mən ikili etdi at search definition line 12, Yuxarı. Bu mənim slayd üçün var nə var. Və sonra bütün bu yalançı kodu Mən surəti və slayd yapışdırılır, yalançı kodu slide. Mən hələ [işitilemez] eşitmə deyiləm. Siz başa belə əgər həyata keçirilməsi, mən onu yoxlamaq istəyirəm. Mən sizə helpers.h fayl e-poçt bu sinif. Və həmçinin online olacaq seyr insanlar üçün download üçün bu bölmədə dəfə təxirə saldı. Mən yalnız ümumi paylanması istifadə pset3 dən kodu. Mən find.C, mənim helpers.h fayl istifadə etdi daha helpers.h faylı ki, bölüşdürülməsi kodu verilmiş oldu. Mən bir başqa dəyişiklik etmək idi deyil, yalnız sadəcə zəng daha find.C axtarış, binary_search zəng. Belə ki, sizin kodu test etmək istəyirsinizsə, ki, bunu necə olduğunu bilirik. Əslində, biz bu kodu çalışan olacaq zaman indi, mən yalnız bir surəti Mənim pset3 directory, yenidən həyata değiştirilecek sonra köməkçiləri faylları və ki binary_search zəng etmək find.C dəyişiklik daha çox sadəcə axtarış. JASON Hirschhorn: Bəli. Bir sual var? TƏLƏBƏ: Nevermind. JASON Hirschhorn: Heç bir narahatlıq. Yaxşı, in başlamaq bildirin. Biz bir qrup kimi bu kod olacaq. Bir başqa qeyd. Yenə, bu, asanlıqla değiştirilecek edilə bilər Problem Set üç üçün. Mən helpers.h fayl var, olduqca Bu helpers.h çox biz sunulur, ikili axtarış, bubble bəyan sort, və seçim sort. Və find.c siz line görəcəksiniz, nə line 68, biz ikili zəng ki, axtarış daha çox axtarış. Belə ki, yenə mövcud olan kodu online və ya var ki, kodu indi yaradılması asanlıqla değiştirilecek bilər üçün p onu yoxlamaq üçün 3 seçin. Lakin ilk, ikili axtarış kod bildirin. Bizim funksiyası bəyannamə, biz bool qayıtmaq. Biz dəyər adlı tam almaq. Biz adlı integers bir sıra almaq dəyərlər, və biz n almaq serialın ölçüsü. Burada line 10, mən var kəskin stdbool.h daxildir. Ki, var niyə heç bilir? Belə kodu line nə edir? TƏLƏBƏ: Bu imkan verir bir bool qaytarılması növü istifadə edin. JASON Hirschhorn: Exactly. TƏLƏBƏ: Yoxsa imkan verir ki, bir kitabxana var bir bool qaytarılması növü istifadə etmək. JASON Hirschhorn: Belə kəskin daxildir stdbool.h line mənə bəzi verir şeylər üçün təriflər və bəyanatlar Mən istifadə üçün icazə edirəm ki, Bu kitabxana. Belə ki, həmin arasında var ki, deyib bu tip bool adlanır və bu, ola bilər doğru və ya yalan. Belə ki, xətt nə var. Hesab edirəm ki, xətt olmasaydı, mən ki bu yazı üçün çətinliyə soxacaq burada, bool, orada söz. Məhz hüququ. Mən bu kodu ki, lazımdır. OK. Belə ki, bu, daha bir iterativ version, bir recursive biri. Belə ki, bizə başlamaq bildirin. Bu ilk başlamaq edək yalançı kodu xətt. Və ümid edirəm ki, biz - və ya inşallah. Biz oda ətrafında getmək olacaq. Biz xətti ilə line getmək lazımdır, və mən kömək edəcək biz lazımdır ki, xətt anlamaq ilk yazmaq üçün. Belə ki, isə siyahı uzunluğu daha böyükdür sıfır. Nin qarşısında başlamaq edək. Nə line Mən yazmaq lazımdır burada kodu? TƏLƏBƏ: baxmayaraq mötərizə n 0 daha çox. JASON Hirschhorn: baxmayaraq N 0 daha böyükdür. Belə ki, n, bir siyahısı ölçüsü və biz əgər yoxlanılması edirik - [Interposing SƏSLƏRİ] JASON Hirschhorn: - üzr? TƏLƏBƏ: necə ki, bilmirəm n siyahısı ölçüsü? JASON Hirschhorn: Sorry. Pset dəqiqləşdirilməsi Per, axtarış və sort, siz yazmaq lazımdır funksiyaları n siyahısı ölçüsü. Burada izah etmək unuttum. Amma bəli. n ölçüsü bu halda siyahısı. Belə isə n 0 daha çox. OK. Ki, bir az problemli ola bilər hər şey getmək əgər. Biz bilirik davam edəcək, çünki Bu boyunca siyahısı ölçüsü funksiyası, lakin biz başlamaq demək 5 integers bir sıra ilə. Və biz vasitəsilə getmək və biz etdik indi onu daralmış 2 integers bir sıra. Ki, 2 integers edir? Ölçüsü biz istəyirik ki, indi 2 baxmaq, lakin 2 edir? Ki, ki, sual mənada edirmi? OK. Mən bir daha xahiş edəcəyik. Beləliklə, biz 5 Bu array ilə başlamaq integers, və n sağ, 5 bərabərdir? Biz burada vasitəsilə run lazımdır. biz yəqin ki, ölçüsünü dəyişdirmək lazımdır, sağ, hər şeyi getmək kimi. Hansı ki, biz istəyirik nə edir. Biz axtarmaq istəmirəm tam şey yenidən. Beləliklə, biz 2 dəyişdirmək demək. Biz tək ki, yarısı siyahısını almaq. Belə ki, yalnız 2 seçin. Belə ki, indi n 2 bərabərdir. Mən kasıb üçün üzr istəyirik quru silmək markerlər. Sağ? Və biz siyahısına vasitəsilə axtarış etdiyiniz yenidən ölçüsü 2 siyahısını. Bəli, bizim array hələ ölçüsü 5 edir. Biz yalnız istəyirəm demək bu 2 ləkələr axtarış. Belə ki, həmin 2 ləkələr var? Ki, hissi edirmi? Onlar sol 2 ləkələr var? Onlar sağ 2 ləkələr var? Onlar orta 2 ləkələr var? Biz problem aşağı sınıq, lakin biz həqiqətən bilmirəm hissəsi biz hələ aradığınız problem, yalnız bu 2 dəyişənlərin olan. Belə ki, biz, daha sonra bir az lazımdır n 0 daha çox isə. Biz bilmək lazımdır ki, n bizim faktiki array edir. Belə ki, heç bir var Bu xətt dəyişdirmək? Bu xəttin ən çox mükəmməl doğru. Başqa əlavə varmı? Biz n üçün bir şey dəyişdirmək olar bir az daha yaxşı bu xətt? Mm-hm? TƏLƏBƏ: Bir dəyişən başlamaq bilər sonra istifadə etmək lazımdır ki, n uzunluğu kimi sonra funksiyası? JASON Hirschhorn: Belə başlamaq n dəyişən uzunluğu, və biz sonra istifadə? Amma sonra biz yalnız uzunluğu və biz yeniləmə hələ bu problem daxil olduğu biz Bizim problem uzunluğu azaltmaq, lakin biz, həqiqətən, Bildiyiniz heç vaxt ki, uzunluğu üzərində xəritələr. TƏLƏBƏ: baş verəcək deyil Siz deyərək edirik sonra zaman, sol axtarış sağ axtarış? Siz müxtəlif getmək olacaq sizin sahəsi - JASON Hirschhorn: Biz getmək olacaq bir sahədə, lakin necə bilmirəm getmək üçün var? Biz yalnız array və bu varsa n, biz bilirik harada array getmək. Geri, bəli? TƏLƏBƏ: var mı, kimi, aşağı bound və yuxarı bound dəyişən və ya kimi bir şey? JASON Hirschhorn: OK. Belə ki, bu bir fikirdir. Əksinə yalnız track saxlanılması çox ölçüsü, biz aşağı takip və yuxarı bound dəyişən. Belə ki, necə biz ölçüsünü hesablamaq yoxdur aşağı bound və bound yuxarı? [Interposing SƏSLƏRİ] JASON Hirschhorn: Subtraction. Həmçinin aşağı track saxlanılması bağlı və yuxarı bizə bildirin bağlı, biz bu iki axtarış? Biz burada bu iki axtarış edirsiniz? Biz orta iki axtarış edirsiniz? Yəqin ki, orta iki, çünki Bu, əslində, ikili axtarış edir. Amma indi biz ölçüsü əldə edə bilərsiniz, həm də serialın məhdudiyyətlər. Əslində, biz nəhəng varsa telefon kitab, biz yarım ildə rip. Ki, kiçik harada biz artıq bilirik telefon kitab. Amma biz, həqiqətən, Ses deyilik yarısında telefon kitab. Biz hələ bilmək lazım Bizim problem yeni həddi deyil. Heç bir sualınız varmı ki, haqqında? Bəli? TƏLƏBƏ: bir yaradılması ilə işləmək istəyirsiniz dəyişən, i, sonra yalnız keçmək olduğunu onun üçün i nisbi mövqeyi cari vəziyyəti və uzunluğu, n? JASON Hirschhorn: And i nədir? TƏLƏBƏ: i növ kimi olan kimi - Kimi i olmaq üçün başlamaq olardı serialın orta mövqeyi. Və sonra, əgər mövqe dəyəri i ilə aşkar serialın orta sizə lazım dəyərindən az olacaq, i indi serialın uzunluğu olur, üstəgəl i dəyəri 2 bölünür. Kimi, bax, siz i shift - JASON Hirschhorn: Right. STUDENT: - Bu qədər - JASON Hirschhorn: Mən demək olar ki, am işləyəcək müsbət. Amma point olmaq, iki lazımdır Burada məlumat ədəd. Siz əvvəlinə və sonuna ilə bunu edə bilərsiniz və ya sonra ölçüsü ilə bunu edə bilərsiniz bəzi marker. Amma iki ədəd lazımdır Burada məlumat. Siz yalnız bir ilə əldə edə bilməz. Ki, hissi verir mu? Belə ki, biz vasitəsilə getmək üçün gedir və edirik biz nə olacaq [işitilemez] və bəzi markerlər yaratmaq. Belə ki, sizin kodu nə etmiş yazmaq? TƏLƏBƏ: Mən yalnız bildirib int bound bir 0 bərabərdir. JASON Hirschhorn: deyirik ki, int, başlayan. TƏLƏBƏ: OK. JASON Hirschhorn: Bu edir mənim üçün daha məntiqli. Və? TƏLƏBƏ: I bitən int, hərhalda bildirib. JASON Hirschhorn: bitən int. TƏLƏBƏ: I, tahmin, n minus 1 və ya kimi bir şey. Kimi, son element. JASON Hirschhorn: Belə ki, yazdı, int bərabər 0, nöqtəli vergül, və int başlayan sona n minus 1, nöqtəli vergül bərabərdir. Belə ki, mahiyyətcə, biz nə edirik burada ilk mövqe 0. Biz seriallarda da bildiyiniz kimi, onlar getmək yoxdur n up, onlar 1 n minus qədər getmək. Belə ki, bizim serialın bəzi həddi var. Və bu ilkin həddi olmaq üçün nə Bizim problem ilkin həddi. OK. Belə ki, yaxşı səslənir. Sonra geri bu xətti getmək əgər isə siyahısı uzunluğu, 0-dən çox nə, əvəzinə n, olmalıdır biz burada qoymaq? TƏLƏBƏ: minus başlanğıcı bitən yazın. JASON Hirschhorn: minus bitən baxmayaraq başlayan 0 daha çox? OK. Və biz etmək istəyirdi, bilər ki, bir az gözəl, nə başqa biz nə edə bilər? Biz təmiz istəyirdi up bir az bu kodu? Necə 0 xilas edə bilər? Bu yalnız bir stil məsələdir. Bu indi doğru deyil. TƏLƏBƏ: Ending deyil bərabər başlanğıcı? JASON Hirschhorn: Biz nə edə bilər? [Interposing SƏSLƏRİ] TƏLƏBƏ: Ending böyükdür? JASON Hirschhorn: Bəli. Bitən isə biz yalnız bunu edə bilərsiniz əvvəlində daha böyükdür. Sağ. Biz digər tərəfdən başlayan əlavə ki, və biz 0 xilas. Belə ki, bu, yalnız bir görünür az təmiz. OK. Siyahısı uzunluğu 0 isə Belə ki, biz yazdı ki, sona isə böyükdür başlayan çox. Biz lazımi qoymaq olacaq qıvrım aşırma, sonra ilk şey Biz nə istəyirik baxmaq edir bir az siyahısına onlara. Siz? Mənə verə bilər - TƏLƏBƏ: Əgər mötərizə dəyəri kvadrat mötərizə - JASON Hirschhorn: parantez varsa dəyəri kvadrat mötərizə. TƏLƏBƏ: 2 bölünür həbsxanaya. JASON Hirschhorn: Ending? TƏLƏBƏ: mən sizin ilə bir problem görmək - JASON Hirschhorn: OK. Yaxşı, orta baxmaq. Necə ki, biz orta nə bilirik? Bəli. Mənə kod silmək imkan verir. Necə ki, biz orta nə bilirik? Bir şey, siz əvvəlində zaman və sonu necə tapırsınız orta? TƏLƏBƏ: Siz orta. TƏLƏBƏ: Siz onlara əlavə birlikdə və sonra - JASON Hirschhorn: onları əlavə et birlikdə və sonra? TƏLƏBƏ: Və orta. 2 ilə bölmək. JASON Hirschhorn: onları əlavə et birlikdə və 2 bölün. Belə ki, int orta bərabərdir? Tom, siz mənə verə bilər? TƏLƏBƏ: başlayaraq plus bitən - JASON Hirschhorn: Beginning plus bitən. TƏLƏBƏ: Bütün, bracket, 2 bölünür. JASON Hirschhorn: Bütün, parantez, 2 bölünür. Belə ki, mənə orta verir bir şey, doğru? TƏLƏBƏ: Siz həmçinin onu ətrafında lazımdır. JASON Hirschhorn: Nə demək, mən bu qədər dəyirmi etmək lazımdır? [Interposing SƏSLƏRİ] TƏLƏBƏ: Çünki Bu tək varsa sayı, sonra bu kimi - JASON Hirschhorn: Yaxşı, OK. Mən onu ətrafında bilər. Bir tək sayda, 5 var Lakin, mən üz ortalarından 1 alaraq. Və ya daha sıra əgər, daha doğrusu, ki, bir yaxşı işi var. 4 varsa, biz yalnız 4 var, edə bilər ilk "orta", quote, dırnağı bağlamaq və ya ikinci "orta" bir. Ya bir ikili axtarış üçün iş ki, mən həqiqətən ətrafında ehtiyac yoxdur. Amma bir digər şey var Bu xətt baxmaq lazımdır. Biz hələ onu həyata ola bilər lakin biz geri gəlmək lazımdır. Bu xətt həqiqətən hələ də başqa bir şey lazımdır. Amma bu günə qədər, biz yazdıq kodu dörd xətləri. Biz başlanğıcı var və markerlər bitən. Biz xəritələr olan isə loop var birbaşa bizim pseudocode. Biz xəritələr ki, ortada baxırıq birbaşa bizim pseudocode üzərində. Mən bu ortasında gedir deyərdim siyahısı, kodu bu xətt. Və sonra, bir dəfə biz ortasında getmək siyahısı, biz nə etmək lazımdır növbəti şey Bizim dəyəri var olub olmadığını kontrol edir Bu pseudocode biz əvvəllər yazdı. Belə ki, necə biz yoxlamaq əgər bizim dəyər siyahıda ortasında edir? Siz. Niyə bu yoxdur? TƏLƏBƏ: bizim dəyər üzrə Əgər orta bərabərdir biz müəyyən nə - Mən bərabər bərabər demək - JASON Hirschhorn: Bu - OK. TƏLƏBƏ: Mən əmin deyiləm nə dəyişən biz aradığınız olsa, çünki - [Interposing SƏSLƏRİ] TƏLƏBƏ: [işitilemez]. JASON Hirschhorn: Exactly. Funksiyası elan Per, biz bir dəyər axtarır edirik. Beləliklə, biz bir dəyəri aradığınız dəyərlərin bir sıra. Beləliklə, siz doğru danışırsınızsa. Siz edəcəyik, əgər açıq paren dəyəri bracket orta bracket bərabər bağlanıb içəridə dəyərinə bərabərdir və biz nə üçün lazımdır? Əgər bizim dəyər orada nə Biz nə etmək lazımdır? [Interposing SƏSLƏRİ] TƏLƏBƏ: sıfır qayıt. JASON Hirschhorn: doğru qayıdın. TƏLƏBƏ: doğru qayıdın. JASON Hirschhorn: Michael, Bu xətt nə edir? TƏLƏBƏ: [işitilemez] proqram run kurs ki, artıq və Siz nə etmək lazımdır var? JASON Hirschhorn: Proqram və ya nə? Bu halda? TƏLƏBƏ: funksiyası. JASON Hirschhorn: funksiyası. Və belə ki, deyilən nə qayıtmaq bu və doğru, bu dəyər verir. Məhz hüququ. Main. Qaytarılması növü nedir əsas, Michael? TƏLƏBƏ: int, tam? JASON Hirschhorn: int, dəqiq. Tam. Əmin etmək üçün yalnız bir sual idi Sizlərin üst olmuşdur. Adətən əgər, nə qayıtmaq deyil hər şeyi yaxşı işləyir? TƏLƏBƏ: Zero. JASON Hirschhorn: Zero. Məhz hüququ. TƏLƏBƏ: bu yalnız doğru qaytarır, verilir heç bir məlumat yoxdur haqqında nə - Oh, bu, yalnız deyib ki, dəyəri serialın içərisində. JASON Hirschhorn: Exactly. Bu proqram məlumat verən deyil dəyəri olduğu dəqiq üzvü. Bu, yalnız bəli, biz aşkar deyərək oldu Bu, ya xeyr, biz bunu tapa bilmədi. Belə ki, sayı aşkar etdikdə, doğru geri. Yaxşı, həqiqətən biz yalnız həqiqətən tez kodu ki, bir xətt ilə. Mən pseudocode ki line hərəkət edəcəyik. TƏLƏBƏ: biz ehtiyac yoxdur array dəyişdirmək üçün necə? Bu doğru, dəyərlər deyil, dəyəri olmalıdır? JASON Hirschhorn: Sorry. Təşəkkür edirəm. TƏLƏBƏ: Bəli. JASON Hirschhorn: Bu line dəyərlər olmalıdır. Məhz hüququ. OK. Beləliklə, biz orta siyahısına baxdı etdik. Sayı aşkar qaytarılması doğru əgər. Əgər, bizim pseudocode ilə davam orta böyükdür, axtarış ayrıldı. Əgər mən burada idi nömrəsi ali, axtarış ayrıldı. Constantine, siz verə bilər oxşar kodu bu xətt? TƏLƏBƏ: orta Əgər dəyəri - JASON Hirschhorn: Belə dəyər əgər - açıq paren bracket dəyərlər əgər orta yaxın bracket - TƏLƏBƏ: dəyərindən daha kiçik deyilmi? JASON Hirschhorn: azdır. TƏLƏBƏ: dəyəri daha az. JASON Hirschhorn: Value. Yaxşı, həqiqətən, istədiyiniz sayı yoxlamaq - Üzr istəyirik. Bu bir az confusing edir. Amma başqa əgər nömrə siyahısı orta böyükdür. TƏLƏBƏ: OK, Oh. JASON Hirschhorn: Mən bunu dəyişmək lazımdır. Orta yüksək Else əgər, biz OK, sol axtarmaq istəyirsiniz? Və biz daxili nə etməliyəm Bu vəziyyətdə əgər? TƏLƏBƏ: Mən kiçik bir dəyişiklik edə əgər vəziyyət başqa dəyişə? JASON Hirschhorn: Else? OK. Belə ki, bu kodu icra edəcək eyni. Lakin başqa, əgər istifadə haqqında gözəl şey , və ya əgər başqa başqa əgər, başqa, əgər o yalnız bir gedir o deməkdir ki, yoxlanılır, onların hər üç, potensial. Və bu bir az edir ki, kompüter gözəl proqram çalışan. Belə ki, [? Constantine?] biz, dəyərlər əgər başqa, bu xətti daxilində istəyirik bracket orta yaxın bracket dəyəri daha böyükdür. Biz nə üçün lazımdır? Biz sol axtarmaq lazımdır. Necə ki, biz etməliyəm? Mən sizə bir başlanğıc vermək gedirəm. Biz adlı bu iki şey var başlayan və bitən. Belə ki, nə etmək lazımdır əvvəlinə? Siz sol axtarmaq istəyirsinizsə siyahısı, biz cari başlanğıcı almaq. Nə biz bunu etmək lazımdır? STUDENT: Biz başlanğıcını müəyyən orta plus 1. JASON Hirschhorn: Belə ki, biz əgər sol axtarış? TƏLƏBƏ: Bağışlayın, orta minus - belə sona orta olacaq minus 1 və başlanğıcı - JASON Hirschhorn: Hansı başında olur? TƏLƏBƏ: Bu eyni qalır. JASON Hirschhorn: Belə ki, Mənası eyni qalır. Biz sol axtarış edirsinizsə, biz istəyirik Eyni başlanğıcı istifadə - doğru. Və bitən? Üzr istəyirik, nə də yenə bərabər bitən? TƏLƏBƏ: Orta minus 1. JASON Hirschhorn: Orta minus 1. İndi niyə minus 1, orta yalnız? TƏLƏBƏ: The orta deyil biz idi, çünki, artıq şəkil həyata ki yoxlanılır? JASON Hirschhorn: var doğru. Orta şəkil deyil. Biz artıq orta yoxlanılır. Beləliklə, biz ", orta" quote istəmirəm dırnağı bağlamaq, içində olmaq davam biz aradığınız ki, array. Belə ki, bu fantastik deyil. Else dəyərlər bracket orta olarsa dəyəri bərabərdir bitən çox orta minus 1. Jeff, nə bu son xətt haqqında? TƏLƏBƏ: Else. Dəyərlər orta dəyəri daha az? JASON Hirschhorn: quracağıq Başqa mənə ötürür. Əgər mənə vermir əgər - TƏLƏBƏ: Beləliklə başlayan orta plus 1 olardı. JASON Hirschhorn: başlayaraq bərabər orta plus 1, yenə eyni səbəbi Constantine əvvəllər bizə verdi. Və sonunda, kim verməyib hələ mənə kod line? Yalan, Aleha, qayıt nə Biz burada yazmaq edirsiniz? TƏLƏBƏ: yalan qayıt. JASON Hirschhorn: yalan qayıt. Və biz, bunu etmək lazımdır, çünki əgər biz tapmıram, biz demək lazımdır onu tapmadı. Və biz geri olacaq bildirib bool, biz mütləq qayıtmaq bir bool yerdə. Belə ki, bu kodu run bildirin. Mən, həqiqətən, gedirəm - belə ki, biz terminal istəyirik. Biz pəncərə təmizləmək lazımdır. Bütün olun edək. Biz bir səhv var tapıldı. Gözlənilən line 15-də bir səhv var Bu sonunda nöqtəli vergül Bəyannamə. Mən nə unutmaq idi? TƏLƏBƏ: Nöqtəli vergül. JASON Hirschhorn: Nöqtəli vergül sağ burada. Mən Tom kodu idi. Belə ki, Tom, [işitilemez]. Yalnız söylüyorum. All yenidən edə bilərəm edək. TƏLƏBƏ: Nə Dropbox directory biz bu olmalıdır? JASON Hirschhorn: Belə ki, siz yalnız bu bit üçün baxın. Ancaq yenə də, bu hərəkət etmək istəyirdi əgər cəhd üçün pset3 dizine kod həyata ki, mən nə var. Burada görəcəksiniz varsa - sorry, yaxşı sualdır. [? LS?] Mən burada var find.c kodu bu həftəki distro kodundan. Mən helpers.h var. Mən Mən, həqiqətən, bir Make fayl var bu yeni daxil bir az redaktə biz yazılı etdiyiniz faylları. Ki, kodu, bütün mövcud olacaq bölüşdürülməsi kodu, lakin yeni Fayl, yeni helpers.h fayl olacaq download üçün online mövcuddur. Yenə belə o var əlavə kodları biz var. Belə ki, bütün etmək, bu satıra, tapmaq edir ikili, bubble seçimi - markalar onların hamısı üç və daxil tərtib Bu yürütülebilir kodu tapa bilərsiniz. Belə ki, ümumiyyətlə, biz istəmirik düz check50 üçün. Biz öz bəzi testlər run etmək istəyirəm. Amma yalnız biz, bu bir az sürətləndirmək bilər check50 2013 pset3.find keçəcək mənim pis - helpers.c-in. İndi ki, yoxdur. Belə ki, biz, həqiqətən, olacaq real üçün kodu axır. Usage.find /, siz o deməkdir ki, nə? TƏLƏBƏ: Siz ikinci lazımdır bu command line. JASON Hirschhorn: I lazımdır ikinci command line. Və dəqiqləşdirilməsi başına, mən lazım biz aradığınız nə daxil. Belə ki, 42 baxaq. Biz, sorted onu saxlamaq lazımdır, çünki biz hələ bir sort funksiyası yazılı deyil - 42, 43, 44. Və Control D tapmadı ot tayası ildə iynə. Pis var. Bu, mütləq var. Nin başqa bir şey cəhd edək. Mən qoymaq çünki Bəlkə bu əvvəlində. 41, 42, 43 nə edək. Orada getmək. Onu aşkar. Yalnız indi sonunda qoyaq belə ki, biz hərtərəfli ola bilər - 40, 41, 42. Iynə tapmadı. Mən bu qeyd. Təəssüf ki, mən bu bilirdi baş verəcək. Amma pedaqoji məqsədlər üçün, onu tədqiq etmək üçün yaxşı. Bu iş deyil. Nədənsə, onu tapa bilmirəm. Biz orada nə bilirik, lakin biz bunu tapmaq deyil. Beləliklə, biz nə edə bilər bir şey ilə getmək edir Gdb, tapa, lakin heç yoxdur üçün gdb vasitəsilə davam olmadan, bir biz qıfıllar harada mənada? [? Madu? ?] TƏLƏBƏ: Mən sona edilə bilər zaman edirəm əvvəlinə bərabərdir, və bu yalnız bir element siyahısı. Sonra yalnız əvəzinə məhəl qoymur əslində yoxlanılması. JASON Hirschhorn: var doğru. Sona başlanğıcı bərabərdir zaman, biz bunu hələ bizim siyahısında bir element var? TƏLƏBƏ: Bəli. JASON Hirschhorn: Bəli, əslində, biz bir və yalnız bir element var. Və çox güman zaman nə olacaq, biz test kodu başına, biz var ot tayası və ya ön ot tayası sonu. Harada başlanğıcı və ki sona bərabər gedir Binar axtarış ilə bir. Belə ki, həmin iki halda iş deyil, bitən çünki əvvəlinə bərabər idi. Amma başa əgər, əvvəlinə bərabərdir bu isə loop icra edir? Bu, yoxdur. Və biz yoxlanılır bilərdi bir daha gdb vasitəsilə. Belə ki, necə biz bu kodu düzeltmek bilər, çünki bitən isə bərabər olduqda başlayan, biz də bunu istəyirik loop run isə. Beləliklə, biz 18 sıralamaq nə fix edə bilər? TƏLƏBƏ: [işitilemez] böyükdür və ya bərabər. JASON Hirschhorn: Məhz hüququ. Sona daha çox isə və ya əvvəlinə bərabər. Belə ki, indi, biz almaq üçün əmin olun sonunda künc halda. Və nin görək. Bu bir dəfə daha run edək. Bütün edək. Yenə, siz lazımdır yalnız burada boyunca edin. 41 bu dəfə tapın. Yalnız ardıcıl saxlamaq. 42 tapa bilərsiniz. Nin başında qoymaq bildirin - 42, 43, 44. Biz onu aşkar. Belə ki, həqiqətən dəyişiklik oldu biz etmək lazımdır. Yəni biz kodlaşdırma bir çox idi yalnız ikili axtarış etdi. Heç əvvəl hər hansı sualınız varmı Mən biz yazdı xətləri daxil hərəkət ikili axtarış və ya necə fiqurlu biz anlamaq nə həyata? Biz hərəkət əvvəl, mən də qeyd etmək istəyirəm ki, və böyük, biz eşlenen bizim yalançı kodu bir bizim kodu üzərinə bir. Biz ki, çətin şey var idi ilə anlamaq üçün başlayan və bitən. Amma siz ki, fiqurlu deyil olduqca çox yazılı olardı eyni kodu, üçün saxlamaq bu üst iki xətləri. Və sonra həyata olardı zaman Əgər çek və hallarda bunu da etdi ki, Siz başqa bir şey lazımdır. Siz təqib Belə ki, hətta bizim line yalançı code line, siz var ki, iki xətləri lakin bütün kazanılmış yazmaq üçün lazım kod. Mən bahis etmək istəyən olardı ki, uşaqlar bütün fiqurlu olardı olduqca tez, siz qoymaq üçün lazım olan marker bir növ orada rəqəm siz idi həyata. Bir daha, bunu güc deyil yalançı kodu vaxtından. Beləliklə, biz ilk sonra məntiq edə bilər, və biz sintaksis haqqında narahat edə bilər. Biz məntiqi haqqında səhv idi isə C bu kodu yazmaq üçün çalışırıq, biz bütün messed kazanılmış olardı. Və sonra biz haqqında suallar olarıq məntiq və sintaksis və meshing birlikdə onlara bütün. Və biz itirilmiş kazanılmış olardı tez bir ola bilər nə çox çətin problem. Belə ki, indi keçək seleksiya sort üçün. Biz tərk 20 dəqiqə var. Belə ki, biz edə bilməyəcək bir hiss var seleksiya sort bütün vasitəsilə almaq və bubble sırala. Amma bizə ən azı cəhd edək seçilməsi cür başa çatdırmaq üçün. Belə ki, sort istifadə seçimi həyata keçirilməsi funksiyası bəyannamə aşağıdakı. Yenə bu götürülüb problem set dəqiqləşdirilməsi. Int dəyərlər mötərizədə edir integers bir sıra. Və int.n ki, serialın ölçüsü. Seçim sort gedir bu sıra sort. Seçilməsi bizim ruhi model belə sort, biz çəkin - ilk biz siyahısına vasitəsilə ilk getmək zaman, kiçik sayı tapmaq, başında qoyun, ikinci tapmaq kiçik sayı, qoyun biz istəyirsinizsə ikinci mövqeyi artan sort. Mən sizə yazmaq məcbur deyiləm yalançı kodu indi. Amma biz bir sinif kimi kodu əvvəl beş dəqiqə, biz yazmaq üçün gedir yalançı code biz bəzi hissi var harada gedirik. Belə ki, yalançı kod yazmaq üçün cəhd öz. Və sonra açmaq üçün cəhd kodu daxil yalançı kodu. Biz bir qrup kimi edəcəyik Beş dəqiqə. Və əlbəttə, Mənə bildirin əgər Hər hansı bir sualınız var. TƏLƏBƏ: bu ki? JASON Hirschhorn: nə qədər siz baxın daha iki dəqiqə əldə edə bilərsiniz. Mən sizə deyil anlamaq bitirmək mümkün. Amma biz bir qrup kimi bu artıq getmək olacaq. Siz bütün [işitilemez] belə kodlaşdırma etdiyiniz, belə ki, mən Siz işle fasilə sorry. Amma bir qrup kimi bu yolu gedək. Və yenə, ikili axtarış, bütün vermək Mənə bir kodu daha xətləri əgər. Bunun üçün təşəkkür edirəm. Biz eyni şey olacaq burada, bir qrup olaraq birlikdə kodu. Belə ki, seçim sort - nin yazmaq bildirin Bəzi tez yalançı kodu. Ruhi model, kimsə mənə verə bilər yalançı kodu ilk line, xahiş edirik? Mən nə istəyirəm? TƏLƏBƏ: baxmayaraq siyahısı qaydada həyata edir. JASON Hirschhorn: OK edərkən siyahısı üçün çıxdı. Və "üçün həyata?" Nə deməkdir TƏLƏBƏ: baxmayaraq [işitilemez] sıralanır deyil. JASON Hirschhorn: baxmayaraq siyahısı qaydada həyata edir, biz nə edəcəyik? Mənə ikinci xətt ver, xahiş edirik, Marcus. TƏLƏBƏ: Belə ki, növbəti tapmaq kiçik sayı. Bu boşluq olacaq. JASON Hirschhorn: Belə tapmaq Növbəti kiçik sayı. Və sonra başqası? Biz növbəti kiçik tapmaq sayı, biz nə edəcəyik? Mən tapa demək gedirəm ən kiçik sayı. Yəni etmək istəyirəm nə. Belə ki, kiçik sıra tapa bilərsiniz. Sonra biz nə etməliyəm? TƏLƏBƏ: [işitilemez] əvvəlinə. JASON Hirschhorn: Bağışlayın? TƏLƏBƏ: The onu qoyun siyahısı başlayan. JASON Hirschhorn: Belə ki, onu yer Bu siyahının başında. Və biz şey nə etməliyəm ki, əvvəldən idi siyahısı, sağ? Biz bir şey yadda edirik. Belə ki, burada biz qoymaq bilərəm? Bəli, Anna? TƏLƏBƏ: Harada kiçik sayı idi? JASON HIRSHHORN: Belə başlanğıcını qoya siyahısı olduğu kiçik nömrə oldu. Siyahısı üçün həyata belə isə, tapmaq ən kiçik sayı, qoyun Bu siyahının başında, qoydu siyahısı başlayan olduğu kiçik nömrə oldu. Marcus, bu xətt yeniden yazın bilər siyahısı qaydada həyata isə? TƏLƏBƏ: olarkən ədəd sıralanır olunmayıb? JASON HIRSHHORN: OK, belə ki üçün etmək ədəd deyil ki, bilirik sıralanır, biz nə üçün lazımdır? Biz nə qədər lazımdır Bu siyahı ilə getmək? TƏLƏBƏ: Mən loop üçün bir tapmaq, və ya isə, ədəd yoxlanılır zamanı az siyahısı uzunluğu? JASON HIRSHHORN: OK, yaxşı. Mən misphrased düşünürəm mənim sual zəif. Mən yalnız almaq üçün çalışırıq biz getmək olacaq bütün siyahısı ilə. Siyahısı üçün həyata belə isə, mənim üçün, xəritəsi çətindir. Amma əsasən ki, necə Mən bu barədə düşünürəm. Tapmaq, bütün siyahısına keçmək kiçik sayı, qoyun başlayan - həqiqətən, siz doğru danışırsınızsa. Onları həm qoymaq edək. Siyahısı qaydada həyata Belə ki, biz bütün siyahı ilə getmək lazımdır bir dəfə, ən kiçik sayı, yer tapmaq bu siyahının əvvəlində qoymaq Bu siyahının başında olduğu kiçik sayı, və sonra əgər siyahısı biz etdik, üçün həyata hələ də bu yolu getmək üçün var prosesi yenidən, sağ? Ona görə seçim sort, Big-O zamanı var seçim növ, hər kəs? TƏLƏBƏ: n kvadrat. JASON HIRSHHORN: n kvadrat. Marcus və yalnız həyata kimi, çünki burada, biz olacaq siyahısı siyahısı ilə getmək dəfə sayı. Belə ki, bir şey keçir uzunluğu n n dəfə sayı Əslində n kvadrat. Belə ki, bu, bizim pseudocode edir. Bu, çox yaxşı görünür. Heç bir sualınız varmı Bu pseudocode haqqında? Həqiqətən seçim sort olmalıdır, çünki yəqin ki, bir, kodu biri gəlib pseudocode. Haqqında hər hansı bir sual Bu pseudocode məntiq? İndi xahiş edirik. Seçim sort - siyahısı həyata isə üçün, biz onun vasitəsilə getmək olacaq və kiçik hər zaman tapmaq və ön qoyun. Siyahısı, bilər üçün həyata belə isə kimsə mənə kodu ki, xətt verən mənə bir xətt verməyib xahiş edirik, hələ kodu? Bu nə kimi səslənir? TƏLƏBƏ: Bu loop üçün var. JASON HIRSHHORN: səslənir loop üçün kimi. OK, siz mənə loop üçün verə bilər? Üçün - TƏLƏBƏ: i 0 Bərabər. JASON HIRSHHORN: i və ya - biz nə əskik? Nə burada gedir? TƏLƏBƏ: Int. JASON HIRSHHORN: Exactly. - (I = 0 int TƏLƏBƏ: i n <; i + +). JASON HIRSHHORN: Jeff, bu nailed. Biz, siyahısını olacaq? Biz əvvəl kodunu gördüm. Perfect. Belə ki, burada bizim qıvrım aşırma qoymaq bildirin. Mən bəzi qoymaq gedirəm burada qıvrım aşırma. Bu 0 var isə Beləliklə, biz getmək lazımdır bütün siyahısı. Belə ki, hər dəfə biz siyahısına keçmək biz takip istəyirsiniz? TƏLƏBƏ: hər hansı bir svopları edilir Əgər. JASON HIRSHHORN: tap ən kiçik sayı. Beləliklə, biz yəqin ki, track saxlamaq lazımdır ən kiçik sayı hər dəfə. Belə line I takip edə bilərsiniz kiçik sayı? Aleha, necə davam edə bilərsiniz bir şey track? TƏLƏBƏ: yeni bir dəyişən başlayın. JASON HIRSHHORN: yeni bir dəyişən başlayın. Belə ki, bir dəyişən yaratmaq imkan verir. Hansı növü? TƏLƏBƏ: Int. JASON HIRSHHORN: Int. Nin kiçik zəng edək. Və nə bərabər zaman yoxdur biz yalnız başlanğıc etdiyiniz? Biz hələ siyahısını getdi deyil. Biz birinci hissəsində istəyirik vasitəsilə ilk dəfə edin. Bərabər nə edir, kiçik sayı? TƏLƏBƏ: Dəyərlər i. JASON HIRSHHORN Dəyərlər i. Bu doğru, doğru səslənir? Başında kiçik sayı biz burada. Belə ki, indi biz kiçik var və biz lazım bütün siyahı ilə getmək və kiçik müqayisə başqa hər şey. Yəni biz yenidən siyahısına getmək yoxdur? Michael? TƏLƏBƏ: Siz etmək lazımdır loop üçün başqa. JASON HIRSHHORN: loop üçün başqa. Gəlin bunu. Mənə bir kod verin. TƏLƏBƏ: loop üçün - kiçik üçün - yalnız j int, siz deyə bilər? = 0; belə ki, - JASON HIRSHHORN: Bəli, biz istəyirsinizsə bütün siyahı ilə getmək üçün - TƏLƏBƏ: j