[Music kucheza] ZAMYLA CHAN: Jambo la kwanza nguvu ilani kuhusu kupata ni kwamba tayari kuwa kanuni zilizoandikwa kwa ajili yetu. Hii inaitwa usambazaji code. Hivyo sisi siyo tu kuandika yetu wenyewe kanuni kutoka mwanzo tena. Badala yake, sisi ni kujaza katika voids katika baadhi ya kanuni kabla ya zilizopo. mpango find.c papo kwa idadi kujaza haystack, utafutaji haystack kwa mtumiaji in sindano, na haina kwa kuita aina na search, kazi inavyoelezwa katika helpers.c. Hivyo find.c imeandikwa tayari. Kazi yako ni kuandika kuwanusuru. Basi ni nini sisi kufanya? Sisi ni utekelezaji wa kazi mbili. Search, ambayo anarudi kweli kama thamani hupatikana katika haystack, kurudi uongo kama thamani ni si katika haystack. Na kisha sisi ni pia kutekeleza aina ambayo aina safu kuitwa maadili. Basi hebu kukabiliana na search. Search kwa sasa ni kutekelezwa kama search linear, lakini unaweza kufanya mengi bora kuliko hiyo. Search linear unatekelezwa katika O ya n wakati, ambayo ni polepole kabisa. Pamoja na kwamba, unaweza kutafuta orodha wowote yake. Kazi yako ni kutekeleza search binary, ambayo ina kukimbia wakati O logi n. Hiyo ni pretty haraka. Lakini kuna ahadi. Search kisha unaweza tu kutafuta kwa njia ya orodha kabla ya yamepangwa. Kwa nini ni kwamba? Naam hebu tuangalie mfano. Kutokana na safu ya maadili, haystack, tunakwenda kuwa na kuangalia kwa sindano. Na katika mfano huu, integer tatu. njia ambayo search binary kazi ni kuwa sisi kulinganisha thamani katikati ya safu ya sindano, kama ilivyo kwa jinsi sisi kufunguliwa phonebook katikati ukurasa katika wiki sifuri. Hivyo, baada ya kulinganisha thamani ya katikati ya sindano, unaweza kuondokana na ama upande wa kushoto au nusu wa kulia wa safu na inaimarisha mipaka yako. Katika kesi hiyo, tangu tatu, sindano yetu, ni chini ya 10, thamani ya kati, haki amefungwa unaweza kupungua. Lakini kujaribu kufanya mipaka yako kama tight kama iwezekanavyo. Kama thamani katikati ni si sindano, kisha unajua kwamba hawana haja ya ni pamoja na katika utafutaji wako. Basi, wewe ni haki amefungwa unaweza kaza mipaka search tu kidogo kidogo zaidi, na kadhalika na kadhalika mpaka kupata sindano yako. Basi ni nini pseudocode kuangalia kama? Vizuri wakati bado tuko kutafuta njia ya orodha na bado na mambo ya kuangalia katika, sisi kuchukua katikati ya orodha, na kulinganisha kwamba thamani katikati ya sindano yetu. Kama uko sawa, basi hiyo ina maana tumekuwa kupatikana sindano na tunaweza kurudi kweli. Vinginevyo, kama sindano ni chini ya thamani katikati, basi hiyo ina maana sisi unaweza kuondokana na nusu ya haki, na tu kutafuta upande wa kushoto wa safu. Vinginevyo, tutaweza kutafuta upande wa safu ya haki. Na mwisho, kama wewe huna lolote mambo zaidi wa kushoto na kutafuta lakini sikuona sindano yako bado, basi kurudi uongo kwa sababu sindano dhahiri si katika haystack. Sasa jambo nadhifu kuhusu pseudocode hii katika kutafuta binary ni kwamba inaweza kuwa kufasiriwa kama ama iterative au utekelezaji kujirudia. Hivyo itakuwa kujirudia kama wewe kuitwa kutafuta kazi ndani ya search kazi ama nusu ya safu. Tutaweza cover kujirudia kidogo baadaye katika Bila shaka, lakini tunajua kwamba ni chaguo kama Ningependa kujaribu. Sasa hebu tuangalie aina. Aina inachukua safu na integer n, ambayo ni ya kawaida ya safu. Sasa kuna aina mbalimbali tofauti wa kila aina, na unaweza kuangalia baadhi kaptula kwa demos na maelezo. kurudi aina kwa ajili yetu aina ya kazi ni batili. Hivyo hiyo ina maana kwamba sisi siyo kwenda kurudi safu yoyote kutoka aina. Sisi ni kweli kwenda na mabadiliko sana safu kwamba ilipitishwa ndani yetu. Na kwamba inawezekana kwa sababu arrays ni kupita kwa kumbukumbu katika C. Sasa tutaweza kuona zaidi kuhusu hili baadaye, lakini tofauti muhimu kati ya kupita katika kitu kama integer na kupita katika safu, ni kwamba wakati kupita katika integer, C ni kwenda tu kufanya nakala ya kwamba integer na kupita kwa kazi. awali variable haitabadilika mara moja kazi ni kumaliza. Na safu, kwa upande mwingine, ni si kwenda kufanya nakala, na wewe utakuwa kweli kuwa editing sana safu yenyewe. Hivyo aina moja ya aina ni uteuzi aina. aina uteuzi kazi kwa kuanzia saa mwanzo, na kisha iterate juu ya kupata na hiki ndogo. Na kisha kubadilishana kwamba ndogo hiki kwa moja kwanza. Na kisha hoja ya hiki pili , Kupata ijayo ndogo hiki, na kisha kubadilishana kwamba pamoja na hiki pili katika safu kwa sababu hiki kwanza tayari yamepangwa. Na hivyo basi kuendelea kwa kila hiki katika kutambua ndogo thamani na swapping nje. Kwa maana Mimi ni sawa na 0, hiki kwanza sana kwa n minus 1, wewe ni kwenda kulinganisha kila thamani ya pili baada ya kuwa na kupata index ya thamani ya chini. Mara baada ya kupata thamani ya chini index, unaweza kubadilishana kwamba thamani ya safu kiwango cha chini na safu I. Aina nyingine ya aina hiyo unaweza kutekeleza ni Bubble aina. Hivyo Bubble aina iterates juu ya orodha kulinganisha mambo karibu na swapping mambo ambayo ni ili sahihi. Na kwa njia hii, hiki kubwa mapenzi Bubble hadi mwisho. Na orodha ni vyema mara moja hakuna zaidi mambo wamekuwa walibadilishana. Hivyo wale ni mifano miwili ya aina algorithms kwamba unaweza kutekeleza kwa kupata mpango. Mara baada ya kumaliza aina, na wameweza kufanyika search, wewe ni kumaliza. Jina langu ni Zamyla, na hii ni CS50. [Music kucheza]