[Halisi kucheza] DAVID J. Malan: zote haki. Hivyo kuwakaribisha nyuma. Hii ni CS50, na ni mwisho wa wiki tatu. Hivyo kukumbuka katika kipindi cha wiki kadhaa, tumekuwa kutumia kidogo kabisa ya wakati juu ya C, juu ya programu, juu ya syntax. Na ni kawaida kabisa, kama wewe ni bado zinakabiliwa na Tatizo Set 2, kwa kuwa banging kichwa yako dhidi ya ukuta. Ni fumbo-kuangalia kosa ujumbe na mende kwamba wewe hawezi kabisa baada ya chini. Kwa sababu, mapumziko uhakika kwamba, katika tu muda wiki chache 'itabidi kuangalia nyuma mambo kama Kaisari, na [? V-genair,]? labda hata Ufa, na kutambua jinsi mbali umefanya kuja katika kipindi cha muda mfupi. Hivyo kama kwamba ni faraja yoyote, vumilia kwa sasa. Leo, ingawa, tunaanza mpito mambo ngazi ya juu. Na sisi kuanza kuchukua nafasi ya kwamba guys kujua jinsi ya mpango, au angalau mwanzo wa kwamba ngazi ya faraja. Na tutaweza kuanza kufikiria jinsi gani tunaweza kwenda juu ya kubuni mipango zaidi kwa ufanisi. Jinsi gani tunaweza kwenda juu optimizing ufanisi wa algorithms yetu, na ujumla kutatua zaidi kuvutia matatizo. Na kuanza kuchukua nafasi ya kwamba, kama sisi alitaka, tunaweza Kanuni up yoyote mifano ya sisi kuwa na akili. Hivyo leo, sisi wala kugusa keyboard kwa aina yoyote ya kificho. Utakuwa ni ngazi ya juu sana, na hatimaye, kuhusu tatizo utatuzi. Hivyo kupata kwa uhakika kwamba, napenda kupendekeza kwamba saba yafuatayo mistatili kuwakilisha milango saba, nyuma ya ambayo ni rundo zima la idadi, kati ya ambayo ni idadi 50. Basi mimi mradi huu juu ya hii screen hapa pia. Na kupendekeza kwamba tunahitaji mtu wa kujitolea kusaidia kupata mimi namba mbele ya hisa hapa kuona. Kuja juu juu, katika pink. Wote haki. Nini jina lako? Jennifer: [inaudible] DAVID J. Malan: Samahani? Jennifer: Jennifer. DAVID J. Malan: Jennifer. Haki zote, Jennifer. Nice kukutana na wewe. Kuja juu juu. Hivyo hawa hapa ni saba milango, na nini Ningependa kufanya kwa sisi hapa, mbele ya yote ya wanafunzi wako, ni kupata yetu ya simu, 50. Kupata idadi, unaweza Peek nyuma yoyote ya milango hizi kwa kifupi tapping kwenye moja ya milango, na ni itaonyesha idadi yake. Na hebu angalia jinsi ya haraka unaweza kupata sisi simu, 50. 15. 16. 50. Nicely kufanyika. Wote haki. Raundi ya applause kwa Jennifer. [Makofi] Wote haki. Hivyo kile alikuwa mkakati wako kwa kutafuta posta, 50? Jennifer: Um, nilifikiri labda kama - [Inaudible] DAVID J. Malan: Oh. Kutoa ni moja ya pili. Hivyo alikuwa mkakati wako kwa kutafuta posta, 50? Jennifer: Kwa hiyo mimi tu kuanza saa mwanzo kuona nini idadi ya kwanza mara, na kisha mimi mawazo, labda kama wao ni Iliyopangwa, Mimi nitaendelea tapping juu juu? DAVID J. Malan: OK. Na sisi wanaonekana kuwa kupatikana kwamba kuwa kesi. Ingawa, hebu peel nyuma tabaka kidogo tu, na wewe unataka kwenda mbele na yatangaza milango mengine unaweza kuwa waliochaguliwa? Jennifer: Oh, dear. DAVID J. Malan: Ah. Jennifer: Kwa hiyo mimi tu got bahati. DAVID J. Malan: Hivyo wewe got bahati. Wote haki. Hivyo si mbaya. Lakini hiyo ni ya kuvutia ufahamu, sawa? Kama wewe kudhani, na wewe alifanya kupata, kweli, kidogo bahati huko. Lakini kama wewe kudhani kuwa idadi walikuwa Iliyopangwa, unaweza kuwa sahihi zaidi kama jinsi kwamba kusukumwa tabia yako? Jennifer: Hivyo kama walikuwa Iliyopangwa, mimi walidhani labda wadogo na ukubwa. DAVID J. Malan: OK. Jennifer: Au kama hii kuishia kuwa kubwa kweli kweli, basi kubwa kwa madogo. DAVID J. Malan: OK. Hivyo kubwa kwa wadogo, au wadogo na ukubwa. Lakini basi mimi kupendekeza, tuseme wewe alikuwa waliopata bahati, na kudhani kuwa wao walikuwa si, kwa kweli, namna, jinsi wengi wale milango gani unaweza kuwa alikuwa na Peek nyuma katika kesi hiyo mbaya? Jennifer: Wote. DAVID J. Malan: Wote. Basi hebu generalize kwamba kama n. Kuna hutokea kwa kuwa 7, lakini hebu zaidi ujumla kusema kuna milango n juu ya screen hapa. Hivyo katika hali mbaya zaidi, ingekuwa kuangalia nyuma ya milango 7, au milango n. Na hivyo hii ni kweli, ni kidogo ya bahati leo, lakini ni kweli linear algorithm ya kila aina, hata kama wewe walikuwa aina ya kuruka karibu. Ni haki hiyo? Jennifer: Yeah. DAVID J. Malan: Naam, napenda kuona kama yako mkakati wa mabadiliko kama mimi hoja yetu mfano wa pili yetu hapa na 7 mbalimbali milango. Huo idadi, lakini hii wakati wao ni Iliyopangwa. Nini mkakati wako hapa kwenda kuwa, kujaribu kuweka nje ya akili yako nini idadi nyingine walikuwa - Jennifer: OK. DAVID J. Malan: - mapema? Jennifer: Hebu kuanza na moja ya kwanza. DAVID J. Malan: zote haki. Kuanza na moja ya kwanza. 4. Sasa ambapo wewe kwenda, na kwa nini? Jennifer: 4 kwa kweli ni ndogo. Hivyo kama wao ni aina ndogo labda kwa ukubwa, ni lazima kuwa mara mbili kwamba, na -. DAVID J. Malan: OK. Hebu angalia, ambayo unafikiri? Jennifer: Jaribu moja ya mwisho. Nice. DAVID J. Malan: Sana nicely kufanyika. Wote haki. [Makofi] DAVID J. Malan: OK. Hivyo wewe ni kweli kufanya hii horribly, kwa sababu wewe ni kufanya vizuri sana. Ambazo zinatuacha hawawezi kufanya pointi fulani. Basi hebu jaribu nirudishe hapa. Jennifer: OK. DAVID J. Malan: Ni vizuri kufanyika, hata hivyo. Hivyo ilianza mwanzoni, wewe akaona ya kuwa ni 4, basi wakiongozwa na mwisho. Lakini tuseme wewe si kupata bahati huko, na kudhani 50 Ilikuwa mahali pengine. Nini hatua yako ya tatu wamekuwa? Jennifer: Nenda nyuma mwanzo. DAVID J. Malan: Nenda nyuma ya mwanzo. OK, hivyo ungependa wameweza kuguswa mlango huu, ambayo ilikuwa 8. Wote haki. Hivyo si kwamba 50. Ambapo ingekuwa wewe inaonekana ijayo? Jennifer: Kama mimi si kujua wao Iliyopangwa. DAVID J. Malan: Sahihi. Naam, kama alivyofanya kujua wao walikuwa Iliyopangwa - Jennifer: Oh, je, kujua, yeah. DAVID J. Malan: - lakini hakuwa kujua ambapo 50 alikuwa bado? Jennifer: Tu kuendelea. DAVID J. Malan: zote haki. OK. Kuendelea. OK, kwamba siwezi kufanya kazi pamoja. Jennifer: OK. DAVID J. Malan: Sasa, kama wewe tu kwenda kuweka kwenda, nini yako algorithm kukabidhi yanayoambatana ndani. Jennifer: linear -. DAVID J. Malan: Ni aina ya linear. Lakini basi mimi kupendekeza, basi mimi kuweka papo hapo. Hebu furahisha ukurasa. huo idadi, huo mpangilio, huo milango. Lakini kufikiri nyuma ya siku hiyo ya kwanza katika darasani wakati sisi akararua kitabu cha simu katika nusu, aina ya, na nini ilikuwa mkakati wetu huko? Jennifer: Kuanza katika katikati. DAVID J. Malan: OK. Hivyo kuanza katikati. Basi hebu kwenda mbele na kuiga hiyo. Kuanza saa katikati na akifafanua kuwa mlango. Hivyo namba 16. Hivyo gani guy nguvu wamefanya, ambao akararua kitabu cha simu katika nusu, kupata nadhani ijayo? Jennifer: Nenda katika nusu hii. DAVID J. Malan: Na kwa nini upande wa kulia? Jennifer: Kama walikuwa aina ya ndogo na ukubwa, basi 50 lazima mwishoni kwamba. DAVID J. Malan: Good. Kabisa nafuu. Hivyo kama kitabu cha simu, unaweza kwenda kulia kinyume na kushoto, lakini hapa ni takeaway muhimu. Wewe sasa unaweza kutupa mbali, au chozi mbali, nusu ya tatizo hili, na kuacha wewe si na 7 milango, lakini kwa kweli na 3 tu. Ambayo ni takribani nusu ya ukubwa wa tatizo. Wote haki. Hivyo sasa nini ungependa kuwa kufanyika baada ya wewe kwenda haki? Jennifer: Hivyo 16 bado ni pretty ndogo, jamaa na 50, hivyo labda nitajaribu kama, hii moja. DAVID J. Malan: zote haki. 42. Haki ya wote, hivyo sasa nini yako silika kuambia wewe? Jennifer: Siwezi kutupa hii na kisha tu - DAVID J. Malan: OK. Nzuri, unaweza kutupa mbali nusu ya kushoto huko. Jennifer: - pick hii moja. DAVID J. Malan: Na haki. Jennifer: Yeah. DAVID J. Malan: Hivyo hata kama ni ngumu kuona pengine, wakati kuna tu 7 milango, kufikiri juu, sasa, msimamo wa algorithm wewe tu kutumiwa. Katika kesi ya awali, alifanya kupata bahati, ambayo ilikuwa kubwa. Lakini wewe alifanya kutumia heuristic, Ningependa kusema. Unaweza kutumika aina ya silika yako, na kujua namna, kama ni pretty ndogo katika mwanzo, ni wazi, tumekuwa got kwenda zaidi ya kulia. Lakini katika baadhi ya hisia, wewe got bahati, sababu labda hii ilikuwa namba 100, na labda 50 ilikuwa zaidi katikati. Labda 50 alikuwa hata zaidi ya hapa. Lakini nini alifanya tofauti kidogo wakati huu, wewe waliwafanyia tena na tena. Na napenda kusema kwamba nini tu gani, pamoja na kusukumwa na simu kitabu mfano, ni kitu gani zaidi algorithmic, na mengi chini maalum cased. Kiasi kidogo kisilika. Hivyo katika mwisho wa siku, jinsi gani unaweza kuelezea ufanisi wa kwanza algorithm, ambapo walikwenda kushoto na kulia, dhidi ya pili algorithm hapa? Jennifer: Hii moja lazima, kama, labda kupunguza nusu ya muda, au hata zaidi, yeah. DAVID J. Malan: Sawa, labda hata zaidi. Hebu kushinikiza vigumu kidogo juu ya hilo. Nini kweli, kama sisi kuendelea hii mantiki, sisi dhahiri nusu mbio wakati na algorithm hii ya pili kwa kutupa mbali nusu ya idadi, lakini nini sisi kufanya juu ijayo iteration, wakati Jennifer umebaini idadi ya pili? Sisi nusu idadi ya milango tena. Na kisha nini sisi kufanya baada ya kuwa, kama kulikuwa na zaidi ya milango ya kucheza na? Tunataka kupunguza nusu yao, na tena, na tena, na tena. Na hii ilikuwa tu kama nyie wote alisimama katika wiki ya kwanza ya darasa, nusu ya wewe kukaa chini, nusu ya wewe kukaa chini, nusu ya wewe kukaa chini, mpaka mmoja lone nafsi alikuwa amesimama. Na sisi alisema kwamba wakati mbio ya kwamba, idadi ya hatua ilichukua mara juu ya utaratibu wa nini? SPIKA 1: [inaudible] DAVID J. Malan: Hivyo logi msingi ya 2 ya n, au tu zaidi tu, ingia ya n. Hivyo kitu logarithmic. Na graph hakuwa mstari moja kwa moja kwamba tu got mbaya zaidi na zaidi, ilikuwa ni hii Curve kuvutia kwamba hakuwa kupata hivyo mbaya baada ya muda. Basi hebu kushikilia wazo hili. Hebu kuwashukuru Jennifer. Asante sana kwa kuja juu juu. Na, moja sec. Taa dawati hakuna leo, lakini sisi kufanya kuwa mipira ya dhiki CS50. Jennifer: Yay. DAVID J. Malan: zote haki, hapa. Asante kwa incurring mkazo hapa juu. Wote haki. Basi hebu angalia kama hatuwezi sasa kurasimisha hii kidogo zaidi. Hivyo tena, nini sisi tu alifanya alikuwa kimsingi kitu sawa kama tulivyofanya kwa kuwa wiki ya kwanza. Lakini badala ya mwisho na tu linear algorithm, ambayo sisi taswira hapo awali kama mstari huu moja kwa moja, ambapo, kama sisi kuweka moja zaidi juu ya mlango screen, basi ingekuwa Jennifer wamekuwa na kuangalia, uwezekano, nyuma ya mlango mmoja zaidi. Kama sisi kuweka milango miwili zaidi, yeye anaweza kuwa na kuangalia nyuma ya milango miwili zaidi. Na hivyo, kulikuwa na linear uhusiano kati ya ukubwa wa tatizo juu, kusema, mhimili x-, na kiasi cha muda inachukua kutatua juu y. Lakini picha nilikuwa akidokeza mwanzoni ilikuwa line hii ya kijani. Kijani kwa makusudi, kwa sababu tu waliona bora. Katika nadharia, algorithm, wakati sisi alifanya hivyo na kitabu cha simu, wakati sisi alifanya hivyo na wewe guys kuhesabu kila mmoja, na katika kesi ya pili, wakati Jennifer tu alifanya hivyo hapa juu, ilikuwa ni aina ya kimsingi zaidi. Kwa sababu haikuwa tu mara mbili kwa haraka. Haikuwa hata mara nne kwa haraka. Ilikuwa hutegemea nini ukubwa wa pembejeo ilikuwa, kama jinsi wengi hatua hatimaye alichukua. Na hivyo hii wazo rahisi kwamba sisi wote alichukua kwa nafasi na kitabu cha simu, unaweza vile vile kutumika kwa kitu kama hiki. Na hii inaweza kuwa zaidi ya kawaida inayojulikana kama, kama waweza kufikiria, kugawanya na kushinda. Si tofauti na kile sisi alivyofanya, bila shaka, na kitabu cha simu. Lakini pseudocode, kukumbuka, ilikuwa hii. Hivyo sisi si kufanya hii tena, lakini kukumbuka kwamba wiki ya kwanza, sisi wote walisimama na kisha nusu ya wewe ameketi chini, nusu ya wewe ameketi chini, nusu ya wewe kukaa chini. Kwamba algorithm ilikuwa kutekelezwa katika kidogo ya njia cheating, kwa kuwa, ni ilikuwa moja tu ya mimi kuhesabu, kimsingi, kwa ufanisi zaidi. Katika kesi hiyo, nilikuwa leveraging rasilimali ya sekondari. Aina ya, CPUs nyingi, nyingi akili, nyingi watu smart katika chumba walikuwa kusaidia mimi kupata kutoka kitu linear kitu logarithmic, kutoka kitu nyekundu na kijani kitu. Lakini katika kesi hii, Jennifer peke yake anaweza kimsingi kuboresha juu ya utendaji wa algorithm yake ya kwanza na, tena, tu kufikiri vigumu kidogo. Na sasa, linapokuja wakati wa kutekeleza mambo haya, kuhesabia nini mstari wa kanuni unaweza kuandika vile kwamba unaweza kurudia tena, na tena, na tena, aina ya kwa mtindo looping. Kwa sababu wewe si kwenda kuwa na anasa, kama alivyofanya Jennifer mara ya kwanza, kwa tu kuwa na rundo zima la ikiwa na kusema, hmm, kama idadi hii ya kwanza ni 4, basi mimi kuruka njia yote hadi mwisho. Ooh, kama idadi hiyo ni kubwa mno, basi mimi hoja kiholela nyuma na kipengele cha pili. Utakuta kwamba ni kwenda kuwa mengi vigumu kurasimisha nini sisi wanadamu kuchukua kwa nafasi kama ya busara sana heuristics, lakini kompyuta ni tu kwenda kufanya nini kuwaambia yake ya kufanya. Sasa hii ina kuvutia sana athari. Graph hii ni aina ya maana ya aina ya overwhelm kuibua, lakini taarifa, ambapo ni line moja kwa moja katika graph hii? Ambapo ni graph linear kwamba sisi kuwaita n? Naam, ni aina ya kuelekea chini ya picha hii, haki? Hivyo wote tumefanya ni tumekuwa aina ya zoomed nje ya mhimili x-na y-mhimili kujaribu kupata hisia ya kile aina nyingine ya curves kuangalia kama. Na specifics ya hisabati maneno leo si jambo hivyo sana, lakini taarifa kwamba kuna mengi ya algorithms kwamba ni mbaya zaidi kuliko kitu ambacho ni linear. Hakika, n uliokatwakatwa inaonekana pretty mbaya. 2 kwa n inaonekana pretty mbaya. n squared inaonekana pretty mbaya. Na tutaweza kuona nini baadhi ya wale wanaweza kuwa katika hali halisi ya leo. Na logi n haina kujisikia kama mbaya, lakini bora kuliko n ni logi msingi ya 2 ya n. Lakini unajua, ingekuwa hata kushangaza zaidi kama Jennifer, au kama sisi, kwamba wiki ya kwanza, alikuwa na kuja na kitu ambacho ni logi ya logi ya n. Hivyo kwa maneno mengine, kuna hii nzima mbalimbali ya ufumbuzi inawezekana matatizo, lakini hata hapa, ilani nini kinaendelea kutokea. Wakati mimi zoom nje, ambayo ya curves hawa ni kwenda kuthibitisha kuwa kabisa mbaya zaidi ya wale wa kwenye screen sasa? Hivyo n cubed inaonekana pretty mbaya kwa sasa. Lakini kama sisi zoom nje na kuona zaidi ya x na y-mhimili, ambaye ni kwenda kutawala hatimaye? Hivyo ni kweli zinageuka kuwa 2 hadi n, na unaweza takwimu hii nje tu na plugging katika baadhi inazidi kubwa namba, na utaona kwamba 2 kwa n, kwa kweli, anapata kubwa kwa kasi zaidi. Kama sisi kweli zoom nje, 2 kwa n algorithm kabisa sucks. I mean hii ni kwenda kuchukua kidogo kabisa ya muda kwa ajili ya kompyuta churn kupitia. Lakini utaona baada ya muda, hasa na baadaye tatizo seti na hata miradi ya mwisho, ni data yako kuweka anapata kubwa, wote haki? Hata katika toleo la kwanza la Facebook, kama idadi ya marafiki, na idadi ya watumiaji waliojiandikisha got kubwa, unaweza aina ya simu katika na kutekeleza kitu na tafuta linear, au kuchagua rahisi sana algorithm, kama tutaweza kuona leo. Una kuanza kufikiri vigumu na vigumu juu ya matatizo haya. Na aina ya maeneo matatizo kama Facebook, na Google, na Microsoft, na wengine kazi ya ni hasa hizi aina ya aina kubwa ya data ya maswali inazidi siku hizi. Wote haki. Hivyo mafanikio Jennifer ya pili kwa kuwa algorithm, kusema ukweli, yeye alifanya kushangaza vizuri mara ya kwanza, lakini hebu kuandika ni kama bahati hivyo kwamba sisi unaweza kufanya hatua hii. Katika kesi ya pili, yeye leveraged algorithm kwamba alirudia tena na tena, lakini yeye alichukua kwa nafasi baadhi ya dhana kwamba sisi kuruhusiwa yake, lakini yeye vibaya baadhi ya kina pili wakati huo yeye hakuwa na mara ya kwanza. Ambayo ilikuwa ni nini? Hiyo ilikuwa orodha Iliyopangwa. Hivyo kwa haraka kama orodha ilikuwa sorted, sisi kudai kwamba Jennifer alikuwa na uwezo wa kufanya kimsingi bora. 7 milango, ndiyo, ni kwamba kuvutia, lakini tuseme sisi ni milioni 7 milango. Logi ya n ni dhahiri kwenda kufanya mengi, kasi zaidi katika muda mrefu. Lakini yeye alikuwa na kuwa na milango yamepangwa kwa ajili yake. Sasa, mimi alichukua uhuru wa kufanya hivyo mapema kwenye screen ya kompyuta hapa, lakini tuseme kwamba Jennifer ilibidi kufanya hivyo mwenyewe? Tuseme kwamba milango katika swali kuwakilishwa data katika database, au marafiki kusajiliwa kwa Facebook, au kurasa za mtandao yoyote kwenye mtandao kwamba tovuti mbalimbali ili haja index au tafuta juu. Tuseme kwamba wewe tu alikuwa takwimu ghafi kuweka na ilikuwa kushoto na wewe, au kwa Jennifer kufanya kwamba kuchagua? Kwamba, badala yake, inahitaji kuwa sisi kujibu swali, vizuri, ni kiasi gani wakati ingekuwa kuchukuliwa Jennifer, au hata mimi, kutatua namba hizo mapema ili kwamba anaweza kuchukua faida ya kwamba? Haki? Kwa sababu maana halisi, bila shaka, ni kama inachukua mimi wakati kabisa ya kutatua namba, ambaye heck anayejali kwamba wewe unaweza kupata idadi kama 50 kwa haraka sana, kama katika kesi ya Jennifer, kama sisi zaidi ya kuzidiwa kiasi cha muda wa taarifa ilichukua na kuchagua mambo mapema? Basi hebu angalia kama hatuwezi kuchora picha hapa. Nina rundo zima zaidi mkazo mipira, kama ambayo husaidia kuvunja barafu hapa. Na kama wewe bila akili, sisi haja saba kujitolea - juu, OK. Wow. Hivyo hatuwezi kuwa na kutumia juu ya taa dawati, inaonekana. Wote haki. Basi vipi kuhusu wewe mbili mbele. Vipi kuhusu wewe guys wawili katika nyuma. Hivyo kwamba ni nne. Vipi kuhusu wewe mbele tano, sita na saba. Haki huko. Rafiki yako ni akizungumzia wewe nje, ili kupata tuzo. Wote haki. Kuja juu juu. Na kwa nini sio sisi kuwa na wewe guys kuja juu zaidi ya hapa. Mimi naenda kukupa kila aina ya simu. Na kwenda mbele na kupanga wenyewe identically kwa nini taswira kwenye screen. [INTERPOSING SAUTI] DAVID J. Malan: OOP, pole. Mdudu. Wote haki. Vizuri, hapa sisi kwenda. Namba tano. Idadi sita. Moja, mbili, tatu, nne, tano, sita, saba. Oh, hii ni Awkward. SPIKA 2: Mimi itabidi kupata -. DAVID J. Malan: Good mpango huo. Wote haki. Asante kwa kushiriki. [Makofi] OK. Wote haki. Hivyo tuna nne, mbili, sita, moja, tatu, saba, watano. Tutimilizie hivyo tuna kujitolea saba hapa ambao ni sawa katika upana na safu kwamba sisi ni kucheza na mapema. Na mimi alichagua saba kwa sababu kwamba itakuwa tu urahisi katika kidogo. Na mimi nina kwenda kupendekeza kwanza kwamba sisi kutatua kujitolea haya saba. Kama Ningependa, kwanza, kusema hello ingawa. Tangu hii ni kwenda kuwa Awkward dakika kadhaa. Kuanzisha wenyewe. GRACE: Hi, mimi nina Grace. Mimi nina sophomore katika LEVERETT House. BRANSON: Hi. Mimi nina Branson. Mimi nina Freshman katika weld. GABE: Hi. Mimi nina Gabe. Mimi nina junior katika Cabot. NEIL: Mimi nina Neil. Mimi nina Freshman katika Matthews. JASON: Mimi nina Jason. Mimi nina Freshman katika GREENOUGH. MIKE: Mimi nina Mike. Mimi nina Freshman katika Grays. JESS: Mimi nina Jess. Mimi nina sophomore katika LEVERETT. DAVID J. Malan: Mufti. Wote haki. Naam, asante kwa yote ya yetu ya kujitolea hapa hivi sasa. Na changamoto katika mkono sasa ni kwenda kuwa na aina ya guys haya, lakini basi tunakwenda na kufikiri kidogo sana kuhusu jinsi ufanisi sisi kweli namna yao. Basi hebu kwanza jaribu hii. Wewe guys unaweza kuona idadi ya kila mmoja tu kwa kuweka kuzunguka pembe. Kwenda mbele na kuchukua sekunde chache, na aina kujiona kutoka ndogo ya kushoto na ukubwa juu ya haki. Kwenda. OK. Nzuri. Kwamba alikuwa kweli darn haraka. Sasa mtu hapa, nini ilikuwa algorithm kwamba hawa guys kutumika? SPIKA 1: Haiko na wakubwa. DAVID J. Malan: OK. Mdogo hata mkubwa ni kweli aina ya lengo, lakini mimi nina uhakika kwamba kweli algorithm. Mdogo hadi mkubwa haina kuwaambia mimi hatua kwa hatua nini cha kufanya. Yeah? SPIKA 1: [inaudible] DAVID J. Malan: OK. Hivyo kama unaweza kuona mtu ndogo kuliko simu yako, basi hoja ya haki yao. Hivyo kwamba ni sasa kupata zaidi expressive, zaidi kama algorithm, kwa sababu wewe unaweza kusema, kama hii, basi hiyo. Hivyo tuna baadhi ya aina ya masharti ya kujenga. Na haya guys walionekana kufanya kwamba wachache mara, kwa sababu baadhi yenu wakiongozwa kidogo wa umbali. Hivyo kulikuwa na labda baadhi ya aina ya looping kinachoendelea katika akili zao. Lakini hebu jaribu kurasimisha kwamba. Kama wewe guys inaweza upya nyuma kwa mpangilio huu. Hebu angalia kama hatuwezi kurasimisha hii kidogo, na kisha kuuliza swali, tu jinsi ya ufanisi ni hii? Bila shaka, wakati sisi kufanya hivyo polepole zaidi, ni kwenda kujisikia kama nzuri ya algorithm, lakini hebu angalia kama tunaweza kuweka vidole wetu juu ya hatua sahihi. Hivyo wewe guys wawili ni nne na mbili. Au wewe sahihi au sio sahihi ili? Ni wazi sahihi. Hivyo sisi walibadilishana. Sasa mimi nina kwenda kwa hoja kando hapa na kusema, watu wanne hadi sita. Je, wewe ni sahihi au si sahihi? GABE: Sahihi. DAVID J. Malan: Sahihi. Sita na moja? Nope. Wabadilishane. Hivyo kwamba ni wawili swaps. Sita na tatu? Nope. Wabadilishane. Sita na saba? Inaonekana nzuri. Saba na tano? JESS: [inaudible] DAVID J. Malan: OK, wabadilishane. Na kuchambua. Wote haki. Hivyo ni wazi, sawa? Hivyo kuna ilikuwa zaidi kinachoendelea. Lakini, kwa hakika, hawa guys, hata tu kisilika. naendelea kusonga mbele. Hawakuwa kuacha tu, mara wao kusahihishwa tatizo moja. Hivyo. Hakika, mimi naenda kuwa kufanya kitu kimoja. Mimi naenda kuwa na aina ya nyuma rewind mwanzo wa tatizo hili, au mwanzo wa safu hii ya watu, hebu kuanza kuwaita. Na sasa nini lazima yangu algorithm juu ya kupita ya pili kuwa? SPIKA 1: Same kitu. DAVID J. Malan: Same kitu. Na hii, mimi nina kuanza kama, sawa? Haraka kama unaweza kupata mwenyewe kufanya kitu kimoja tena na tena, kwamba ni kuwa zaidi kama algorithm, na chini ya binadamu Instinct. Hivyo sasa, hapa sisi kwenda tena. Mbili na nne? No Nne na moja? Ah, hakika kuna baadhi ya kazi bado ya kufanyika. Kwa na tatu? Nzuri. Nne na sita? Sita na tano? Sita na saba? OK, sasa, kufanyika. OK, hakuna. Mimi kwenda nyuma. Hivyo sasa, tena, sisi ni kufanya hii kidogo zaidi kwa makusudi. Na sasa, kuna moja tu ya ubongo utekelezaji hii algorithm. Moja CPU, kama wewe. Na kusema ukweli, kwamba ni rasilimali tu tunakwenda kupata. Na mara moja hatuwezi kwenda nyuma ya keyboard na kuwa na kitu kama C saa wetu ovyo, tuko tu kuandika mpango kwamba wanaweza kufanya jambo moja kwa wakati. Wakati ambapo, haya guys wakati iliyopita, sisi leveraged brainpower yao ya pamoja kama wewe guys alivyofanya katika sifuri wiki. Basi hebu kuendelea kufanya hii. Mbili na moja. Mbili na tatu. Tatu na nne. Nne na tano. Tano na sita. Sita na saba. Kufanyika? Hivyo mimi, lakini napenda kucheza shetani mtetezi. Je, mimi, aina ya kompyuta ambao tu alifanya kupita hii safu ya watu, kujua kwamba mimi nina kufanyika? SPIKA 1: Hapana DAVID J. Malan: Basi kwa nini? Gani mimi kufanya ili kuhitimisha uamuzi kwamba mimi kufanyika? Pengine moja zaidi kupita. Haki? Kwa sababu najua wote kutoka kwamba uliopita kupita ni kwamba mimi kusahihishwa makosa. Na kwamba njia, labda kuna bado makosa mwingine kwamba mimi haja ya kusahihisha. Hivyo naweza tu kuwa na uhakika na rewinding, na kisha kuangalia, na moja hadi mbili, mbili tatu, tatu na nne, nne na tano, tano na sita, sita na saba. Sawa, sasa mimi hakuna kazi. Mimi tunaweza kukumbuka kwamba mimi hakuna kazi na kitu kama variable, kama int. Kuiita swaps, na kama swaps ni 0 mara moja mimi kupata hapa, na ilianza saa 0, kisha Napenda tu kuwa kijinga na kuendelea na kurudi, kuangalia tena, na tena, na tena, haki? Kwa sababu wewe kukwama katika baadhi ya aina ya kitanzi usio. Hivyo kwa haraka kama kuna 0 swaps, tunaweza kudai kwamba hii algorithm ni kweli kabisa. Sasa, hebu kuweka jina juu ya hili. algorithm kwamba napendekeza sisi tu kutekelezwa ni kitu kinachoitwa Bubble aina, unaojulikana kama vile kwa maana ya kwamba idadi ambayo ni kubwa aina ya Bubble njia yao hadi juu, au hadi hadi mwisho wa safu ya idadi. Lakini jinsi ufanisi alikuwa algorithm hii? Jinsi gani mimi hatua nyingi kimwili na kuchukua, kwa mfano, kwa aina hizi saba binadamu? Nne na tano? OK, pia wengi ni hatimaye kwenda kuwa jibu. Lakini hata hivyo, idadi maalum si hivyo kuvutia. Hebu generalize kama n. Hivyo kama mimi alikuwa n watu hapa juu, na wao walikuwa, aina ya, ili random katika mwanzo, ili awali. Vizuri, jinsi gani hatua nyingi nina kuchukua juu ya kupita ya kwanza? Ilikuwa ni moja, mbili, tatu, nne, tano, sita, na wao ni watu saba, hivyo hiyo ni saba, sita -, hivyo kwamba ni n bala moja hatua mara ya kwanza. Sasa, jinsi hatua nyingi gani mimi kuwa kuchukua wakati mimi rewound? Naam, sisi inaweza kweli mara mbili kwamba kama sisi kweli alitaka, lakini kwa sasa, mimi nina kwenda tu kusema, haki ya wote, mwingine n bala 1. Hivyo bala n 1 ni kwenda kupata annoying kuweka wimbo wa, hivyo hebu tu pande zote juu kidogo. Hivyo 2n hatua. Hivyo hatua 14, kutoa au kuchukua. Mara ngapi mimi kuchukua hatua wakati ujao? Naam, ni 3N. kweli. Na sasa, katika hali mbaya zaidi, kwa mfano, mara ngapi nimetaka kuwa gone na kurudi, na kurudi, utekelezaji hii algorithm, swapping watu juu ya kupita kila aina, takribani? Ni kweli n mraba, sawa? Kwa sababu katika hali mbaya zaidi, unaweza aina ya kufikiri juu ya hili intuitively, hata ingawa inaweza kuchukua kidogo muda kidogo kuzama in Katika hali mbaya zaidi, gani hizi watu saba kuwa inaonekana kama, katika suala la mpangilio ya idadi yao? Kabisa nyuma, haki? Na tu kuiga kwamba, nini ilikuwa jina yako tena? MIKE: Mike. DAVID J. Malan: Mike? OK, Mike, unaweza tu kujiunga na mimi juu ya hapa kwa ajili tu ya pili moja? Kweli, hakuna. Pole Mike, rewind hebu. Nini jina lako tena? NEIL: Neil. DAVID J. Malan: Neil. OK, Neil, wewe kuja na mimi, kama huna akili. Hivyo nina kwenda kwa kupendekeza, tu kwa ajili ya unyenyekevu, kwamba Neil sasa ni katika wake mbaya inawezekana kesi. Lakini wanakumbuka jinsi mimi kutekelezwa yangu algorithm. Mimi kulinganisha, kulinganisha, kulinganisha, kulinganisha, kulinganisha, oh. Sasa haya guys ni nje ya utaratibu, hivyo mimi kurekebisha. Hivyo wewe guys wabadilishane. Lakini fikiria sasa, jinsi mbali zaidi haina Neil na kwenda? Ni takribani n. Unajua, siyo kweli n. Ni kama, n bala 1, lakini nina kupata annoyed kuweka wimbo wa kidogo simu, hivyo hebu tu kuiita n. Hivyo kama Neil hatua hatua moja maximally kila wakati, na kwa hoja Neil hatua moja, Nina kufanya hii kupita kweli tedious na kurudi, hii ni takribani kufanya hivyo, n hatua, jumla ya mara n, kwa sababu ni kwenda kuchukua yangu kwamba hatua nyingi kupata Neil kila njia ambapo yeye ni mwanachama. Achilia kila mtu mwingine kama wewe guys wote walikuwa mis-kuamuru pia. Basi hebu piga Bubble aina n squared. wakati mbio ya algorithm hii, utendaji wa algorithm hii, ufanisi wa algorithm hii, sisi ndio tu kuelezea zaidi ujumla kama n squared. Ambayo ni nzuri, kwa sababu mimi naweza kufanya huo mfano na watu nane, tisa watu, watu milioni, na kwamba Jibu ni si kwenda na mabadiliko. Hivyo kama wewe guys bila akili, hebu upya wewe ambapo wewe kuanza. Na hebu jaribu njia nyingine mbili na kuona kama hatuwezi kufanya kimsingi bora zaidi kuliko haya. Hivyo wakati huu, mimi nina kwenda kupendekeza aina ya algorithm tofauti. Hiyo ilikuwa ni wajanja sana wa kwetu mara ya mwisho, na nyie walikuwa na haki ya kuwa na haki ya silika ya aina tu ya swapping pairwise. Lakini kama kweli alitaka mbinu hii tu, na lengo langu ni hoja wote wa idadi kidogo njia hii, na kushinikiza wote wa idadi kubwa kwamba njia, kwa nini sio mimi tu kufanya hivyo katika wengi wasiojua njia ya kutokea na kuona kama mimi wanaweza kufanya vizuri zaidi kuliko kile haki tata algorithm? Basi hebu angalia. Nne ni idadi pretty ndogo, hivyo mimi nina ataondoka wewe huko sasa. Ooh, namba mbili ni bora zaidi. Hivyo unaweza tu hatua mbele kwa muda? Hii sasa ni kuhesabiwa yangu ndogo mgombea, na mimi nina kwenda kukumbuka kwamba pamoja na, kama, kutofautiana. Lakini mimi nina kwenda kuendelea kuangalia. Je, kuna mtu ambaye idadi ni ndogo? Sita, hakuna. Oh, kuna Neil tena. Hivyo nina kwenda kushinikiza wewe nyuma aina ya kidhana. Neil atakuja mbele. Na sasa, variable kwamba mimi nina kutumia kwa kuweka wimbo wa nani ana ndogo simu ni updated na vyenye Neil ya mahali. Vizuri, hebu angalia. Tatu, saba, watano. OK, najua Neil ilikuwa ndogo. Nini jambo rahisi kwa mimi kufanya sasa? Mimi si kwenda kupoteza muda wangu na tu bubbling Neil moja doa wa kushoto. Kwa nini si mimi tu ya kuweka Neil ambapo yeye mali, ambayo ni mwendo wa wapi? Njia yote mwanzoni. Hivyo Neil, kuja na mimi. Na nini ilikuwa jina yako tena? GRACE: Grace. DAVID J. Malan: Grace. OK. Hivyo neema, kwa bahati mbaya, wewe ni aina ya njia. Hivyo ni jinsi gani sisi kutatua tatizo hili? Haki? Kama hii ni safu, kuna saba tu maeneo. Kumbuka kwamba, pamoja na Rob, kuongelea kutangaza milele, na sisi tu alikuwa finite idadi ya miaka? Same wazo hapa. Sisi tu idadi finite ya ints. Neema ni aina ya katika yetu njia, hivyo ni jinsi gani sisi kurekebisha? njia rahisi ni kama, Neema, pole. Wewe ni kwenda na kwenda juu huko ili tuweze kufanya chumba. Sasa, kama unafikiri juu ya hii, labda sisi tu alifanya tatizo mbaya. Na labda sisi alifanya, kwa sababu nini kama Neema walikuwa katika mahali sahihi? Lakini tunajua yeye si, kwa sababu vinginevyo, yeye ingekuwa wamesimama mbele badala ya Neil kwa wakati huu, haki? Sisi tayari checked simu yake ya nje. Wote haki. Hivyo sasa, Neil ni katika nafasi ya haki, na Naweza kufanya optimization kidogo. Kwa dakika ya pili, mimi nina kwenda kupuuza Neil wote kwa pamoja, hivyo kama si kupoteza muda wake, au kwa ajali wabadilishane naye mahali sahihi. Hivyo kwa sasa, jinsi gani mimi kupata ijayo kipengele kwamba ni madogo? Mbili. Hii ni idadi nzuri, kama unataka hatua mbele na Mimi itabidi kumbuka wewe. Sita, hakuna nzuri. Nne, tatu, saba, tano, si njema. Hivyo basi mimi hoja wewe nafasi yako ya haki. Na sisi tu got bahati wakati huu. Sasa, mimi nina kwenda kupuuza haya guys wawili, na sasa kufanya moja zaidi kupita kwa njia hii. Sita, kwamba idadi pretty ndogo. Kuja juu ya mbele. Oh, sorry. Idadi ya neema ni bora zaidi, hivyo hatua ya juu mbele. Nne. Samahani, Grace. Kurudi nyuma tena. Namba tatu ni bora. Saba. Tano. Na sasa nini jina lako tena? JASON: Jason. DAVID J. Malan: Jason. Hivyo sasa ni Jason ndogo kipengele nimekuwa kuchaguliwa. Ambapo ni yeye kwenda kwenda? Hivyo ambapo sita ni. Na jina lako ni tena? GABE: Gabe. DAVID J. Malan: Gabe. Gabe ni katika njia. Nini jambo rahisi kufanya? Wabadilishane guys hizi mbili na kuendelea. Hivyo sasa hebu angalia. Ambaye ni madogo? Nne. Hebu tu aina ya kudanganya. Tano ni kwenda kuwa ndogo. Mimi sioni ijayo, kama, unataka hatua mbele, je, mimi na kufanya na haya guys, na Gabe? Wabadilishane tena. Hivyo sasa, bado kidogo nje ya utaratibu. Nimeona Gabe kuwa ndogo, hivyo Mimi pop yake nje, hoja nyie juu. Na kufanyika. Hivyo jibu ni sawa. Matokeo ya mwisho ni moja. Ambayo ya algorithms hizi mbili ni bora? moja ya pili, nilisikia. Kwa nini? SPIKA 3: Ni hatua n [inaudible]. DAVID J. Malan: Ni hatua n saa zaidi. Kuvutia. Hivyo ni ingawa? Hivyo ni jinsi gani mimi kupata ndogo kipengele? Wangapi hatua gani mimi kuwa na kuchukua kupata kipengele madogo? Mimi nilikuwa na kuangalia njia yote mwishoni, haki? Kwa sababu katika hali mbaya zaidi kwamba, kile kama Neil walikuwa zaidi ya hapa? Hivyo tu kutafuta kipengele ndogo inachukua hatua yangu n, au n bala 1. Lakini, OK. Hivyo kurekebisha Neil. Kumbuka kwamba, dakika au hivyo iliyopita. Lakini jinsi gani mimi kupata ijayo ndogo kipengele? Ni n bala 1, au n bala 2 kwa kweli, kutoka kwa idadi ya hatua. Hivyo OK. Hivyo sikuweza n bala 2. Wote haki. Hivyo kwamba anahisi kidogo bora. Wote haki. Wangapi hatua wakati ujao kupata idadi tatu? Hivyo n minus 4. Hivyo ni kupungua, moja wachache hatua juu ya kila iteration. Hivyo hii haina kujisikia bora, haki? Kama mara ya mwisho ilikuwa ni takribani n mara n, wakati huu ni n minus 1, pamoja n bala 2, pamoja n minus 3, pamoja n minus 4, dot, dot, dot. Lakini kama unakumbuka kutoka shule yako ya juu vitabu vya kiada, kudanganya kidogo karatasi ya nyuma ambayo ina kanuni, kama kuongeza up mfululizo huu wa namba, kile ni jumla ya idadi ya hatua kwenda kuwa kwamba mimi kuchukua hapa? Hii ni moja ya hizo, kama, n bala 1, nyakati n, kugawanywa na 2. Hivyo basi mimi kuona kama naweza kuvuta hili hadi kwa muda tu. Na tena, mimi nina aina ya rounding baadhi namba tu kuweka maisha yetu rahisi, lakini kama mimi kukumbuka, ni kitu kama kama Mimi kufanya n bala mambo 1, basi n bala 2, basi n bala 3, ni takribani kitu kama hii zaidi ya 2, na kama mimi kuzidisha hii nje, hiyo ni kweli n mraba. Hiyo si hisia nzuri sana. n bala n zaidi ya 2. Lakini hapa ni kitu. Katika sayansi ya kompyuta, wakati matatizo kuanza kupata kuvutia ni wakati n anapata kweli kubwa. Na wakati n kweli anapata kubwa, ambayo ya maadili haya ni kwenda kutawala kila ya wengine? Ni aina ya n mraba, sawa? Ndiyo, kugawa na 2 ni nzuri. Lakini kama wewe ni kuzungumza juu ya mabilioni ya vipande vya data, au matrilioni ya vipande ya data, OK, hivyo wewe ni mara mbili kwa haraka. Lakini ambao kwa kweli wasiwasi kama idadi kuwa kubwa, kama sababu hii ni nini anapata makubwa na kubwa. Na hakika, inafanya zaidi ya tofauti kuliko guy. Hivyo hata kama nyie ni haki, pili algorithm, tutaweza kuiita uteuzi aina, ni, katika ulimwengu wa kweli, kidogo kwa kasi uwezekano, kwa sababu mimi ni kuchukua chache na chache hatua kila wakati. Ni kweli kimsingi kwa kasi zaidi. Kwa sababu kama sisi kweli kucheza nje kwa ajili ya kubwa maadili ya n, mwishoni mwa siku, kwa ajili ya n kubwa ya kutosha, bado kwenda kujisikia pretty polepole. Naam, napenda kuchukua moja mwisho kupita saa hiyo. Hiyo ni nini napenda kuita uteuzi aina. Unaweza guys upya wenyewe mara moja ya mwisho? Na katika kesi hii ya mwisho, mimi naenda kupendekeza kitu kuitwa kuingizwa aina. Kuingizwa aina kuwa, conceptually, tofauti kidogo. Badala ya kwenda na kurudi na kuchagua kipengele ndogo, mimi nina tu kwenda kukabiliana na kila moja ya haya guys kama mimi kukutana nao, na kuingiza yao katika nafasi yao sahihi. Hivyo nina kwenda tu kuanza na neema, na mimi kuona kwamba yeye ni namba nne. Ambapo haina namba nne ni mali? Mimi si kuanza kuchagua kitu chochote, hivyo Grace anapata haki ya kukaa huko. Na sasa mimi nina kwenda kudai, kama unaweza kuchukua hatua ya haki yako, hii orodha yangu sorted, hii ni yangu zisizochambuliwa iliyobaki orodha. Hivyo sasa mimi naenda kuendelea ijayo, na nini jina lako tena? BRANSON: Branson. DAVID J. Malan: Branson. Hivyo Branson ni namba mbili. Hivyo nina kwenda kuchukua wewe nje kwa muda. Na sasa, wapi ni mali ya katika safu hii? Hivyo haki ya Neema. Hivyo tena, sisi ni aina ya maamuzi Neema kufanya mengi ya kazi hapa. Wapi sisi kuweka wewe? Hivyo sisi ni kwenda kwa slide wewe kushoto, na kuingiza Branson huko. Lakini sasa mimi kudai kwamba nyie ni kufanyika. Lakini sikia, mimi si kutumia nafasi ya ziada. Ni bado 2 vipengele hapa, 5 zaidi ya hapa. Jumla ya safu ya kawaida ni 7, hivyo mimi nina si cheating, wote haki? Hivyo sasa sisi, na Gabe hapa, namba sita, wapi ni mali? You got bahati tena. Hivyo kupata haki ya kukaa huko. Tu kuchukua hatua kidogo kwa haki tu kufanya wazi kwamba wewe ni Iliyopangwa. Na sasa tuna Neil tena, idadi moja, wapi kwenda? Na sasa ni ambapo tutaweza kuanza kuona kwamba hii algorithm, ingawa siku ya kwanza mtazamo, anahisi pretty smart, kuangalia nini kuhusu kutokea. Kama unaweza hatua mbele. Wapi tunataka kuweka Neil? Hivyo ni wazi hapa, hivyo ni jinsi tunapata Neil huko? Hebu kufanya hivyo hatua kwa hatua. Gabe, wapi unahitaji kwenda? Yep, hivyo kuchukua hatua moja kubwa, au mbili nusu-hatua ya kufanya hatua moja zaidi ya hapo. Neema, ambapo kwenda? Nzuri. Hivyo hatua nyingine. Na hatimaye, Branson? Hatua nyingine. Na sasa tunaweza kuweka Neil katika nafasi. Hivyo sasa, kuendelea mantiki hii. Hata kama sisi si shifting Neil tena na tena, na tena, kwa kumtia aendako, katika kesi mbaya, ijayo idadi tuweze kukutana hawakuweza kuwa idadi, kusema, kulikuwa na idadi sifuri, kisha tunakwenda kuhama yote ya haya guys. Tuseme kwamba kuna idadi, hasi moja, basi tuna kuhama wote wa guys hawa. Hivyo sisi ni kweli tu aina ya flipping tatizo kote, kwamba vile tuko kuhamisha gharama kutoka uteuzi mchakato ili kuingizwa mchakato, kama kwamba nyie tu alikuwa kwa hoja takribani n bala kitu Idadi ya hatua. Na kwamba idadi ya hatua ni kwenda tu kuongeza kama mimi kuchagua idadi zaidi, kama mimi na kuweka msukumano nyie nyuma, na nyuma, na nyuma. Hivyo jambo la kusikitisha sasa ni yote haya algorithms ni n squared. Hebu kwenda mbele na shukrani kwa hizi guys, na taswira hizi kidogo tofauti. Vizuri sana kufanyika. [Makofi] Wote haki. Kuna kwenda. Shukrani kwa ajili ya - BRANSON: [inaudible] kushika namba. DAVID J. Malan: Hapana, unaweza kuweka idadi pia. Wote haki. Nicely kufanyika. Wote haki. Basi hebu angalia kama hatuwezi sasa muhtasari haraka zaidi, na zaidi kuibua, nini hasa ilitokea tu hapa kama ifuatavyo. Mimi nina kwenda mbele na kuvuta Firefox. Tutaweza kuhusisha maandamano haya kwenye tovuti ya kozi ya. Java ni kidogo annoying kupata kazi katika baadhi ya browsers siku hizi. Hivyo kama huna kucheza na hili nyumbani, kutambua unaweza haja ya kutumia Firefox kupata kazi. Na kile Mimi naenda kufanya na hii maandamano ni yafuatayo. Chini, nina rundo zima la orodha ya chaguzi, ikiwa ni pamoja na kuanza na kuacha kifungo. Pia, kama kando, inaonekana kuna mdudu katika programu hizi, ambapo wewe hawawezi kweli kuona kuanza au kuacha kifungo isipokuwa wewe kushikilia amri au Alt pamoja na kuvuta, ambayo ajabu inaonyesha wewe vifungo zaidi. Hivyo tu FYI kama wewe kucheza na hii nyumbani. Sasa mimi nina kwenda bonyeza Start katika tu huu, baada ya kubainisha kuchelewa, kama, 200 milisekunde hapa, tu ili tuweze kuona nini kinatokea. Hivyo mimi kudai kwamba hii ni taswira ya algorithm ya kwanza haya guys alivyofanya, Bubble aina, ambapo sisi walibadilishana watu jozi-busara. ufahamu muhimu kwa taswira hii ni kwamba urefu wa baa inawakilisha ukubwa wa idadi. Hivyo mirefu bar, kubwa ya simu. Mfupi bar, ndogo idadi. Na kama taarifa, tunakwenda kupitia iteration ya kwanza ya algorithm hii, swapping idadi kubwa na ndogo, hivyo kwamba idadi ndogo huja kwanza na idadi kubwa huenda kwa haki. Na kwa haraka kama sisi kupata mwisho wa safu ya idadi ya watu wengi zaidi ya saba, sisi ni kwenda nyuma ya mwanzo. Na wanatarajia hii. Juu ya mbali kushoto, guy kidogo kinaendelea wabadilishane kwa upande, na hii mchakato wa kurudia. Sasa taswira hii haraka anapata boring, hivyo napenda kwenda mbele na kuacha hivyo, mabadiliko ya kitu kuchelewa kasi tu kupata sasa, kujisikia kwa ajili ya hii algorithm. Hivyo ingawa nimekuwa sped it up, hii ni kama kuwaendeleza processor yangu, kununua kompyuta mpya. Mimi si kimsingi iliyopita yangu algorithm, lakini unaweza kweli kuona zaidi uwazi kuliko na binadamu, kuwa kubwa idadi ni bubbling hadi juu, na idadi ndogo ni bubbling chini kwa chini. Na sasa jambo hili hapa Iliyopangwa. Na kama kando, katika viwanja, kuna baadhi tu bookkeeping huko kukusaidia kulinganisha hesabu ngapi, au wangapi swaps na kweli imekuwa kufanyika. Naam, hebu kujaribu moja ya wengine tuliona. Hebu bonyeza aina Bubble hapa, na basi mimi kuchagua, na hii yote ukurasa wa mtandao ni Buggy kidogo. Hebu kukubali hatari na kukimbia tena. Kuna sisi kwenda. Basi hebu kufanya uteuzi aina. Sijui kwa nini orodha ya inaonekana zaidi ya hapo. Hebu zoom katika kurekebisha kwamba mdudu, mabadiliko haya ya 50. Ah, hebu kweli kufanya kwamba kwa kasi zaidi. Tano milisekunde au hivyo, na Anza. Hivyo hii ni uteuzi aina. Hivyo tena, kufikiri juu ya nini sisi alivyofanya kwa binadamu hapa juu. Tulikwenda kupitia safu na kuchaguliwa kipengele ndogo tena, na tena, na tena. Sasa mimi kudai kwamba alikuwa bado pretty mbaya. Ilikuwa bado n squared, kutoa au kuchukua, lakini ilikuwa, katika ulimwengu wa kweli, kidogo kasi, kwa sababu mimi nilikuwa kwa kweli kuchukua kidogo wachache hatua kila wakati. Lakini sisi ni tu kuzungumza nini? Labda 40 au hivyo baa hapa? Hatuzungumzii milioni 40. Hivyo si wazi kabisa kwangu kwamba kweli alikuwa faida kubwa. Sasa niende nyuma na kubadili kwa wetu tatu algorithm, ambayo ilikuwa kuchagua kuingizwa aina. Na sasa ni kweli kwa sababu Buggy orodha ya kweli haipaswi kuwa chini huko. Hivyo sasa tutaweza kitabu nyuma hadi hapa na kuanza hii algorithm. Whoop, kuanza na kuacha. Hivyo hii aina moja ya ina muundo mzuri hiyo, ambapo sisi ni tena kuingiza binadamu, au katika kesi hii, baa katika eneo lao sahihi. Na ni tayari kufanyika kabla ya Mimi akageuka. Lakini hii moja, pia, katika nadharia, bado ni n squared. Basi hebu angalia kama hatuwezi kufupisha haya kama ifuatavyo. Mimi nina kwenda mbele na tu kutoa sisi aina ya njia ya kawaida ya kuzungumza kuhusu mambo haya, basi mimi kuanzisha kidogo tu ya nukuu hapa. Uko juu ya kuona kitu kinachoitwa kubwa O, kwa sababu ni kubwa halisi O. Na hii ni njia ambayo kompyuta mwanasayansi au mtaalamu wa hisabati hata anatumia kuelezea wakati mbio ya algorithm baadhi. Jinsi gani hatua nyingi kweli kuchukua? Sasa mimi nina kwenda embarrass mwenyewe na mwandiko wangu hapa katika muda tu. Lakini napenda kwenda mbele na kusema kwamba hii itakuwa kubwa O zaidi ya hapa. Na napenda kuanzisha nyingine moja ishara, omega mji mkuu. Omega ni kwenda kuwa kinyume, kimsingi, ya kubwa O. Wakati kubwa O maana, katika kesi mbaya, ni kiasi gani wakati wapate algorithm baadhi ya kuchukua, katika suala la n, omega ni kwenda kuwa na muda kiasi gani ili ni kuchukua katika kesi bora. Na tutaweza kuona nini maana sisi na bora kesi katika muda tu. Basi hebu kuanza kitu rahisi. Napenda kuanza kwa tafuta linear. Hivyo si kuchagua. Tutamwita hii tafuta linear. Na sasa, kufanya kidogo meza nje ya hili. Na sasa, katika kesi ya tafuta linear, katika hali mbaya, jinsi hatua nyingi ni ni kwenda kuchukua mimi kupata simu ya uchaguzi kiholela? Na kuna n milango taarifa au n idadi ya jumla. Kesi mbaya. Jinsi hatua nyingi mimi kwenda na kuchukua ili kupata nambari 50 katika safu ya n milango? Na kwa nini? Kwa sababu inaweza kuwa kila njia juu kwenye mwisho. Sana kama Jennifer wamekutana, simu 50 ilikuwa njia yote juu, hivyo katika kesi mbaya linear tafuta ni kubwa O ya n, tutaweza kusema. Nini kuhusu kesi bora, kama kupata kweli bahati? Ni tu kwenda kuchukua hatua moja, au simu mara kwa mara ya hatua. Hivyo tutaweza kuelezea kwamba kama 1. Hivyo hii ni nzuri sana. Sasa nini kama sisi alifanya kitu kama tafuta binary? Hivyo binary tafuta, katika mbaya kesi, alichukua muda gani? [INTERPOSING SAUTI] DAVID J. Malan: Hivyo kwa kweli, mimi habari hiyo katika maeneo ya wanandoa. Hivyo ni kweli kuingia n, kutoa au kuchukua, kwa sababu kama sisi kugawanya orodha katika nusu tena, na tena, na tena, sisi ni uwezo kupata, hatimaye, thamani, kama ni pale, lakini kuna samaki. Nini dhana kwamba tuna kuchukua kwa nafasi kwa ajili ya kutafuta binary? Ina ya kutatuliwa. Siyo sorted, unaweza kupasuliwa jambo katika nusu ya tena na tena, na wewe unaweza kwenda kushoto, na unaweza kwenda kulia, na unaweza kwenda kushoto na kulia, lakini wewe ni si kwenda kupata kipengele kama orodha si vyema, kwa sababu unaweza miss it. Sababu heuristic yako, kwa ajili ya kwenda kushoto au haki ni kwenda kuwa kiujanja kama ni kweli si vyema. Hivyo kuna aina ya gharama za siri kwa kutumia kitu kama hiki. Sasa, hebu kwenda katika kuchagua wetu algorithms si kutafuta - oh, kwa kweli hebu kwenda katika tupu hii. Binary tafuta katika kesi bora? Ni pia 1 kama ni hutokea tu kuwa katika sana katikati ya safu, au katikati ya kitabu cha simu. Sasa hebu kufanya Bubble aina. Hivyo tena, sasa sisi ni kuingia kila aina, si upekuzi. Katika hali mbaya zaidi, jinsi hatua nyingi hatukufanya madai Bubble aina kwenda kuchukua? n squared. Hivyo nina kwenda kuteka kwamba. Ooh, mwandiko wangu inaonekana mbaya zaidi wakati ni makadirio kuwa kubwa. Wote haki. Hivyo hiyo n squared. Na katika kesi bora wa aina Bubble, jinsi hatua nyingi ni kwenda kuchukua? 1, nikasikia. SPIKA 1: n. DAVID J. Malan: n, nikasikia. SPIKA 1: 2. DAVID J. Malan: 2, nikasikia. Je, mimi kusikia 3? Wote haki. Hivyo Nimesikia 1, n, 2, lakini hebu kuchukua mbali angalau kwanza ya wale mapendekezo, 1. Siyo silika mbaya, kwa sababu ni aina ya muundo hapa ifuatavyo. Lakini kama tu inachukua 1 hatua, jinsi katika dunia inaweza mimi kudai kwamba orodha ni Iliyopangwa, kwa sababu kama mimi nina kuruhusiwa tu kuchukua hatua ya 1, jinsi mambo mengi inaweza mimi kwa kweli kuangalia kuwa na uhakika? Naam, 1 tu, ambayo ina maana kuna n bala vipengele 1 ambayo inaweza kuwa nje ya ili, na Mimi tu kwenda juu ya imani baada ya kuangalia kipengele 1 kwamba kitu ni Iliyopangwa. Hivyo 1 siyo sahihi hapa. Hivyo chini, wangapi mimi na kuangalia? [INTERPOSING SAUTI] DAVID J. Malan: n minus 1, au kweli, n, kwa sababu mimi haja ya kuangalia kila kipengele kuhakikisha kwamba siyo nje ya utaratibu. Lakini tena, tutaweza aina ya wimbi wetu mikono wakati idadi ndogo na kudhani kwamba, kama n anapata kubwa, wao ni uninteresting anyway. Hivyo kwamba ni Bubble aina. Na sasa, hebu kufanya hizi mbili za mwisho. Uteuzi aina, na kisha tutaweza kufanya kuingizwa aina. Na kisha sisi pigo yako akili na kitu gani bora kuliko yote haya. Wote haki. Je, ni kesi mbaya mbio wakati wa aina uteuzi? SPIKA 4: n squared. DAVID J. Malan: n mraba, mimi nina kusikia. Lakini kwa nini n squared, intuitively? SPIKA 4: Kwa sababu sisi tu alifanya hivyo. DAVID J. Malan: Kwa sababu sisi tu alifanya hivyo. OK. Nzuri jibu. Lakini shirikishi, kwa nini ni uteuzi aina n squared? Nini sisi kufanya tena na tena? Tulikuwa na kuweka skanning kupitia, ni wewe ndogo, ni wewe ndogo, wewe ni ndogo. Na nafasi, tulikuwa na uwezo wa kuchukua n hatua, basi n bala 1, basi n bala 2. Lakini kama wewe aina ya kuongeza wale wote juu, au kuchukua ni juu ya imani kwamba nimepata aliongeza yao juu mapema, sisi kupata takribani n squared bala idadi ya baadhi vidogo vidogo. Hivyo nina kwenda kuwaita n hii squared. Lakini pamoja na uteuzi aina bora katika kesi, jinsi hatua nyingi ni kwenda kuchukua mimi? SPIKA 5: [inaudible] DAVID J. Malan: Ni kwa bahati mbaya bado n mraba, sawa? Kwa sababu kama mimi nina kuchagua ndogo kipengele, na tulikuwa watu saba hapa, Mimi tu kujua, mara moja mimi kupata sana mwisho, kwamba Nimepata ndogo simu, popote yeye au anaweza wamekuwa. Lakini jinsi gani mimi kupata ijayo idadi ndogo? Mimi kufanya mwingine kupita. Hivyo katika kesi bora, ni nini pembejeo kwa aina uteuzi? Ni tayari aina orodha, namba moja, namba mbili, namba tatu, namba nne. Lakini mimi nina kompyuta. Naweza tu kuangalia moja jambo kwa wakati. Siwezi aina ya kuchukua hatua ya nyuma kama binadamu na kusema, ooh, hii inaonekana sahihi. Naweza tu adjudicate usahihi katika uteuzi aina kwa kuchagua idadi ndogo. Lakini hata kama mimi kupata simu moja ya kwanza, kama mimi sijui kitu kingine kuhusu idadi nyingine, ambayo mimi si, wote mimi kujua kwamba nimekuwa mitupu safu au seti ya milango ya nyuma ambayo ni namba, njia pekee ya mimi kujua kwamba mtu ilikuwa ndogo? Kama mimi kupata njia yote hapa na kutambua, damn, moja ilikuwa kweli ndogo. Lakini jinsi gani mimi kisha kuamua kwamba wawili ni ndogo ijayo? Kwa kufanya uzembe huo tena na tena. Hivyo hatimaye, na aina ya kuingizwa, jinsi gani, katika hali mbaya zaidi, gani sisi kusema hufanya? Hiyo pia ni n squared. Na vipi kuhusu na kesi bora? Tutaweza kuondoka kwamba kama cliffhanger. Tutaweza kujaza wakati huo tupu ijayo, lakini niruhusu kwanza kupendekeza kwamba sisi kimsingi kufanya vizuri zaidi kuliko yote haya, wote haki? Hivyo kufikiri mwenyewe nini kuingizwa aina kwenda kuwa. Naam, hilo si makubwa sana, kwa sababu mimi nina moja tu kwamba aliona mabadiliko. Wow. OK. Hivyo hapa tuna kiasi fulani tofauti maandamano. Kama mimi kuvuta hapa, utaona kwamba kwenye kushoto tuna Bubble aina, katika katikati tuna uteuzi aina, na juu ya haki ya mbali, tuna kitu sisi si inaonekana saa bado kuitwa kuunganisha aina. Lakini fikiria nini tumekuwa kufanya hapa hivi sasa leo. Wakati Jennifer kwanza alikuja juu ya hatua, tulikwenda kupitia safu ya idadi tena, na tena, na tafuta linear, na tulipata linear mbio wakati, kubwa O ya n, hivyo kusema. Wakati sisi sasa kufikiria wiki ya kwanza ya darasa, wakati tulikuwa kugawanya na kushinda, na tulikuwa na kitabu cha simu akamtikisatikisa, na Jennifer, na sisi kwa pamoja leveraged kwamba muhimu ufahamu, ambayo ilikuwa kurudia mwenyewe tena na tena na namna fulani kutupa mbali, kutupa mbali, kutupa mbali, nusu ya tatizo, au ujumla, kugawa tatizo katika nusu, na kisha kutibu kipande kidogo cha tatizo kama conceptually sawa hadi mwingine, sisi kwa namna fulani alifanya kimsingi bora. Lakini pamoja na aina Bubble, na uteuzi aina, na aina ya kuingizwa, tumekuwa anaweza hakuna utambuzi huo kwamba Jennifer alivyofanya. Sisi pretty much tu kutembea nyuma na nje rundo zima la nyakati, na sisi mambo tweaked kidogo, swapping katika utaratibu huu, labda kuingiza au kuchagua. Lakini mwisho wa siku, mimi alifanya mengi ya kutembea Awkward na kurudi. Sisi si kweli kujiinua kitu smart kama Jennifer alifanya kama kugawa na mshindi. Hivyo kuunganisha aina, kwa kulinganisha, ambayo sisi hawaoni mpaka wiki ijayo, ni kwenda kujiinua kwamba wazo muhimu kwa kugawa pembejeo, na kisha kupunguza nusu, na kisha kupunguza nusu, na kisha kupunguza nusu. Na juu ya kila iteration ya kitanzi kwamba, Uamuzi nusu ya kushoto, na haki ya nusu, basi nusu ya kushoto ya nusu ya kushoto, na nusu wa kulia wa kushoto, basi nusu ya kushoto ya nusu ya haki, na nusu ya haki ya nusu ya haki. Na kurudia tena na tena. Hivyo utaona hii kuibua, lakini hii ni nini watapata sisi wiki ijayo. Na kwa ujumla, wakati sisi kufikiri kidogo vigumu kidogo juu ya tatizo lolote kama hayo. Tuna n squared upande wa kushoto, n mraba katikati, na n logi n juu ya haki. Hivyo kuna cliffhanger yako halisi. Tutaweza kuona juu ya Jumatatu. [Makofi]