[Powered by Google Translate] [Alt 3 - Níos Compordach] [Rob Bowden - Ollscoil Harvard] Is é [seo CS50. - CS50.TV] Dá bhrí sin tá an chéad cheist focail strangely. GDB ligeann duit "dífhabhtaithe" clár, ach, níos mó go sonrach, cad é a ligean a dhéanann tú? Feicfidh mé freagra sin amháin, agus níl a fhios agam cad atá ag súil leis go díreach, mar sin tá mé guessing tá sé rud éigin feadh na línte de ligeann tú céim ar chéim siúl tríd an gclár, idirghníomhú leis, athróga maidir le hathrú, a dhéanann na nithe seo - go bunúsach rialú go hiomlán i gcrích de chlár agus iniúchadh a dhéanamh ar aon chuid áirithe de forghníomhú an chláir. Mar sin a ligean na gnéithe tú rudaí dífhabhtaithe. Maith go leor. Cén fáth a bhfuil cuardach dénártha a cheangal go eagar bheith curtha in eagar? Cé atá ag iarraidh a fhreagairt go? [Mac léinn] Toisc nach bhfuil sé ag obair más rud é nach bhfuil sé curtha in eagar. >> Yeah. [Gáire] Más rud é nach bhfuil sé curtha in eagar, ansin tá sé dodhéanta a roinnt i leath agus tá a fhios go bhfuil gach rud ar an taobh clé níos lú agus gach rud ar dheis níos mó ná an luach sa lár. Mar sin, ní mór é a bheith curtha in eagar. Maith go leor. Cén fáth go bhfuil saghas mboilgeog i O n cearnógach? An bhfuil aon duine ag iarraidh an chéad a thabhairt ar an-tapa ard-leibhéal forbhreathnú ar cad is saghas mboilgeog? [Mac léinn] leat dul go bunúsach trí gach eilimint agus a sheiceáil tú na heilimintí chéad chúpla. Má tá siad as nuair a mhalartú tú iad, ansin tú ag seiceáil na heilimintí atá amach romhainn agus mar sin de. Nuair a shroicheann tú an deireadh, ansin a fhios agat go bhfuil an ghné is mó curtha ag an deireadh, mar sin leat neamhaird a dhéanamh go ceann ansin tú a choinneáil ar ag dul tríd, agus tá gach am a théann tú a sheiceáil gné amháin níos lú go dtí go ndéanann tú aon athruithe. >> Yeah. Sé ar a dtugtar saghas mboilgeog mar má tá tú smeach an eagar ar a taobh mar sin tá sé suas agus síos, ingearach, ansin beidh na luachanna mór doirteal go bun agus beidh na luachanna beag mboilgeog suas go dtí an barr. Sin é an chaoi a fuair sé a ainm. Agus yeah, leat dul díreach trí. Tá tú a choinneáil ag dul tríd an eagar, swapping an luach níos mó leis na luachanna is mó a fháil chun an bun an leathanaigh. Cén fáth go bhfuil sé O n cearnógach? An chéad, an bhfuil duine ar bith ag iarraidh a rá cén fáth go bhfuil sé O n cearnógach? [Mac léinn] Mar gheall ar do gach reáchtáil téann sé amanna go n. Is féidir leat a bheith ach amháin cinnte go atá tú ag glacadh an ghné is mó ar fad ar an mbealach síos, ansin caithfidh tú a athdhéanamh gur le haghaidh eilimintí mar go leor. >> Yeah. Mar sin a choinneáil i gcuimhne cad a chiallaíonn mór O agus cad iad na modhanna Omega mór. An O mór is atá cosúil leis an uachtair cheangal ar conas mall féidir é a reáchtáil i ndáiríre. Mar sin, ag rá tá sé O n cearnógach, nach bhfuil sé O n nó eile go mbeadh sé in ann a reáchtáil in am líneach, ach tá sé O n cubed toisc go bhfuil sé teorantach le O n cubed. Má tá sé teorantach le O n cearnógach, ansin tá sé teoranta freisin n cubed. Mar sin, tá sé n cearnógach, agus sa chás is measa glan ní féidir é a dhéanamh níos fearr ná n cearnógach, agus sin an fáth go bhfuil sé O n cearnógach. Mar sin, a fheiceáil math beag ar an gcaoi a thagann sé amach a bheith n cearnógach, má táimid tar éis cúig rudaí i ár liosta, an chéad uair cé mhéad malairtí is gá dúinn a d'fhéadfadh a dhéanamh ar d'fhonn a fháil seo? Lig ndáiríre ach - Cé mhéad babhtálacha muid ag dul a bheith acu a dhéanamh i rith an chéad saghas mboilgeog tríd an eagar? [Mac léinn] n - 1. >> Yeah. Má tá 5 heilimintí, tá muid ag dul go mór a dhéanamh ar n - 1. Ansin, ar an dara ceann cé mhéad babhtálacha muid ag dul a bheith acu a dhéanamh? [Mac léinn] n - 2. >> Yeah. Agus is é an tríú dul a bheith n - 3, agus ansin mar áis beidh mé ag scríobh an dá cheann deiridh mar sin táimid ag dul go dtí gá a dhéanamh 2 babhtálacha agus 1 babhtála. Buille faoi thuairim mé féidir leis an ceann deireanach nó nach gá iarbhír a tharlóidh. An bhfuil sé babhtála? Níl a fhios agam. Mar sin, is iad seo na méideanna iomlána de bhabhtálacha nó ar a laghad comparáidí a bhfuil tú a dhéanamh. Fiú mura bhfuil tú babhtála, caithfidh tú fós a chur i gcomparáid leis na luachanna. Mar sin, tá n - 1 comparáidí i rith an chéad trí eagar. Má tá tú athchóiriú na rudaí seo, a ligean ar a dhéanamh i ndáiríre sé sé sin rudaí rudaí a Stack suas nicely, agus ansin beidh mé a dhéanamh 3, 2, 1. Mar sin, rearranging ach na suimeanna, ba mhaith linn a fheiceáil conas a lán comparáidí a dhéanamh linn sa algartam ar fad. Mar sin má a thabhairt dúinn na guys síos anseo, ansin tá muid fós achoimre ach comparáidí, áfach, go leor go raibh. Ach má táimid suim na réimsí sin agus suim na againn agus suim na linn, tá sé fós an fhadhb chéanna. Táimid suim amháin iad siúd grúpaí áirithe. Mar sin anois táimid ag achoimre 3 n ar. Nach bhfuil sé ach 3 n ar. Tá sé seo ag dul i gcónaí a bheith n / 2 n ar. Mar sin anseo táimid ag tarlú go bhfuil 6. Má bhí againn 10 rudaí, ansin d'fhéadfadh muid é seo a ghrúpáil le haghaidh 5 péirí éagsúla chun rudaí agus deireadh suas le n + n + n + n + n. Mar sin, tá tú ag dul i gcónaí a fháil ar n / 2 n, agus mar sin seo beidh orainn a bhreacadh sé amach go n cearnaithe / 2. Agus mar sin cé go bhfuil sé an fachtóir de leath, rud a tharlaíonn le teacht i mar gheall ar an bhfíric go trí gach leagan thar an eagar comparáid idir 1 níos lú mar sin tá go conas a fháil againn an os cionn 2, ach tá sé fós n cearnógach. Ní chuirimid cúram faoi an fachtóir leanúnach go leith. Mar sin, ag brath a lán rudaí O mór mar seo ar díreach de chineál ar é seo a dhéanamh saghas math, déanamh suimeanna uimhríochta agus rudaí sraith iolraíoch, ach tá an chuid is mó acu sa chúrsa seo deas simplí. Maith go leor. Cén fáth go bhfuil saghas a chur isteach i Omega n? Cad a dhéanann óimige mean? [Beirt mhac léinn ag labhairt ag an am céanna - dothuigthe] Yeah. >> Is féidir Omega leat smaoineamh ar mar is ísle faoi cheangal. Mar sin, is cuma cé chomh éifeachtach go bhfuil do algartam saghas leanas a chur isteach, beag beann ar an liosta a tá ritheadh ​​i, tá sé i gcónaí a chur i gcomparáid ar a laghad n rudaí nó má tá sé iterate níos mó ná rudaí n. Cén fáth go bhfuil sin? [Mac léinn] Toisc má tá an liosta in eagar cheana féin, ansin tríd an leagan chéad Is féidir leat a ráthú ach amháin go bhfuil gné an-an chéad a laghad, agus an dara leagan féidir leat a ráthú ach an chéad dá bhfuil toisc nach bhfuil a fhios agat go bhfuil an chuid eile den liosta in eagar. >> Yeah. Má éiríonn leat i liosta go hiomlán in eagar, ar a laghad tá tú chun dul thar gach na heilimintí a fheiceáil go bhfuil aon rud mór a bhogadh timpeall. Mar sin, dul thar an liosta agus ag rá ó, tá sé seo curtha in eagar cheana féin, tá sé dodhéanta chun tú a fhios tá sé curtha in eagar go dtí go bhfuil tú ag seiceáil gach eilimint a fheiceáil go bhfuil siad in ord sórtáilte. Mar sin, an níos ísle cheangal ar saghas isteach Omega n. Cad an cás is measa ag rith am saghas merge, a bheith cás is measa O mór arís? Mar sin, i cás is measa, conas a chumasadh saghas ar siúl? [Mac léinn] N log n. >> Yeah. Is iad na is tapúla halgartaim sórtáil ginearálta n log n. Ní féidir leat a dhéanamh níos fearr. Tá cásanna speisialta, agus má táimid tar éis am lá atá inniu ann - ach tá muid won't is dócha - féidir linn a fheiceáil amháin go ndéanann níos fearr ná n log n. Ach sa chás ginearálta, ní féidir leat a dhéanamh níos fearr ná n log n. Agus a tharlaíonn merge sórtáil le bheith ar an ceann ba chóir a fhios agat ar an gcúrsa seo go bhfuil n log n. Agus mar sin beidh orainn i ndáiríre a bheith i bhfeidhm go lá atá inniu. Agus ar deireadh, i níos mó ná trí abairt, conas a dhéanann obair saghas roghnú? An bhfuil duine éigin ag iarraidh a fhreagairt, agus beidh count do abairtí mé mar má théann tú thar 3 - An bhfuil aon duine cuimhneamh saghas roghnú? Is saghas Roghnú go leor de ghnáth éasca le cuimhneamh ach an t-ainm. Tá tú iterate díreach os cionn an eagar, a fháil is cuma cad é an luach is mó nó is lú - cibé ordú a bhfuil tú ag sórtáil isteach Mar sin a ligean le rá táimid ag sórtáil ó lú go dtí mó. Tá tú iterate thar an eagar, ag lorg cuma cad é an ghné is lú, roghnú é, agus ansin babhtála sé ach is cuma cad é sa chéad áit. Agus ansin ar an pas dara thar an eagar, breathnú ar an ghné íosta arís, roghnú é, agus ansin é a mhalartú le cad atá sa suíomh dara. Mar sin, táimid ag ach ag piocadh agus a roghnú na luachanna íosta agus iad a chur isteach i os comhair an sraith dtí go bhfuil sé curtha in eagar. Ceisteanna ar sin? Siad seo dosheachanta ar na foirmeacha a bhfuil tú a líonadh amach nuair a bhíonn tú isteach an pset. Glacfar iad go bunúsach na freagraí ar na. Maith go leor, mar sin códú anois fadhbanna. Chuir mé cheana féin níos mó ná ríomhphost - Ní raibh duine ar bith a fháil go r-phost? Maith go leor. Chuir mé amach cheana féin níos mó ná r-phost an spás go bhfuil muid ag dul a bheith ag baint úsáide as, agus má dhéanann tú cliceáil ar mo ainm - mar sin mo thuairimse, Tá mé ag dul a bheith ag bun an mar gheall ar an r ar gcúl - ach má dhéanann tú cliceáil ar mo ainm mbainfidh tú a fheiceáil 2 athbhreithnithe. Tá Athbhreithniú 1 ag dul go dtí a chóipeáil mé cheana féin agus a ghreamú ar an gcód i Spásanna chun an rud cuardaigh bhfuil tú ag dul a bheith acu a chur i bhfeidhm. Agus beidh Athcheartú 2 an rud saghas a chur i bhfeidhm againn ina dhiaidh sin. Mar sin, is féidir leat cliceáil ar mo Athbhreithniú 1 agus obair ó ann. Agus anois ba mhaith linn a chur i bhfeidhm cuardaigh dénártha. An bhfuil aon duine ag iarraidh a thabhairt ach pseudocode ardleibhéil míniú an méid a táimid ag dul a bheith le déanamh ar chuardach? Yeah. [Mac léinn] Tá tú a ghlacadh ach an lár an eagar agus a fheiceáil má cad tá tú ag lorg níos lú ná sin nó níos mó ná sin. Agus má tá sé níos lú, a théann tú chuig an leath sin níos lú, agus má tá sé níos mó, a théann tú chuig an leath sin níos mó agus arís tú go dtí go mbeidh tú a fháil ach rud amháin. [Bowden] Yeah. Fógra go bhfuil ár uimhreacha eagar curtha in eagar cheana féin, agus mar sin ciallaíonn sé sin go féidir linn leas a bhaint as sin agus d'fhéadfadh muid seiceáil ar dtús, ceart go leor, tá mé ag lorg an uimhir 50. Mar sin, is féidir liom dul isteach sa lár. Meán-Is deacair a shainmhíniú nuair atá sé líon níos na rudaí, ach ligean ach a rá beidh muid ag teascadh i gcónaí chun an lár. Mar sin anseo ní mór dúinn 8 rudaí, ionas go mbeadh an lár a 16. Táim ag lorg 50, mar sin tá 50 níos mó ná 16. Mar sin, anois is féidir liom a chóireáil go bunúsach mo eagar mar na heilimintí sin. Is féidir liom caith amach gach rud ó 16 os a chionn. Anois tá mo eagar ach na heilimintí 4, agus mé arís. Mar sin, ansin ba mhaith liom a fháil ar an lár arís, a bhfuil ag dul a bheith 42. 42 níos lú ná 50, ionas gur féidir liom a caith amach na dhá ghné. Is é seo mo sraith fágtha. Tá mé ag dul chun teacht ar an lár arís. Buille faoi thuairim mé 50 ba shampla droch toisc go raibh mé i gcónaí a chaitheamh ar shiúl rudaí ar an taobh clé, ach ag an beart céanna, más rud é go bhfuil mé ag lorg rud éigin agus tá sé níos lú ná an eilimint Táim ag lorg faoi láthair ag, ansin tá mé ag dul le caith amach gach rud ar dheis. Mar sin, anois is gá dúinn a chur i bhfeidhm go. Fógra gur gá dúinn chun pas a fháil i méid. Ní féidir linn a dhéanamh freisin crua-cód méid. Mar sin, má fhaigheann muid réidh a shainmhíníonn # - Maith go leor. Conas is féidir liom figiúr nicely amach cad é an méid de na eagar uimhreacha faoi láthair? Cé mhéad eilimintí atá sa sraith uimhreacha? [Mac léinn] Uimhreacha, lúibíní,. Fad? [Bowden] nach bhfuil ann i C. An riachtanas is gá. Fad. Ní gá eagair airíonna a bheith acu, mar sin níl aon mhaoin fad arrays a thabhairt díreach fada leat, áfach, a tharlaíonn sé a bheith. [Mac léinn] Féach cé mhéad cuimhne go bhfuil sé agus a roinnt ag cé mhéad - Yeah. >> Mar sin, conas is féidir linn a fheiceáil cé mhéad cuimhne go bhfuil sé? >> [Mac léinn] Is uimhir. >> Yeah, Is uimhir. Is é an t-oibreoir Is uimhir a ag dul ar ais an méid de na eagar uimhreacha. Agus sin ag dul a bheith slánuimhreacha, áfach, go leor tá amanna ar mhéid an slánuimhir ós rud é go bhfuil cé mhéad cuimhne tá sé ag cur i ndáiríre suas. Mar sin, más mian liom an líon rudaí i sraith, ansin tá mé ag dul go dtí gur mian a roinnt ag an méid de slánuimhir. Maith go leor. Mar sin ligeann bhfuil mé pas a fháil i méid anseo. Cén fáth is gá dom a pas a fháil i méid ar chor ar bith? Ní féidir Cén fáth a bhfuil mé díreach tar suas anseo méid slánuimhir = deachúlach (coca féir) / deachúlach (o)? Cén fáth nach bhfuil an obair? [Mac léinn] Níl sé athróg domhanda. Ann [Bowden] coca féir agus táimid ag dul i líon mar coca féir, agus tá sé den chineál seo a foreshadowing ar cad atá le teacht. Yeah. Is é [mac léinn] coca féir ach an tagairt dó, mar sin bheadh ​​sé ar ais cé chomh mór go bhfuil tagairt. Yeah. Amhras orm i léacht go atá tú ag feiceáil an chairn fóill i ndáiríre, ceart? Táimid tar éis labhairt díreach faoi sé. Dá bhrí sin tá an chairn ina bhfuil gach ceann de do athróg ag dul go dtí a stóráil. Tá aon chuimhne go tá leithdháileadh i gcomhair athróg áitiúla ag dul i an chairn, agus faigheann gach feidhm a spás féin ar an chairn, is é a fráma cruaiche féin cad atá sé ar a dtugtar. Mar sin, is mó Tá a fráma cruaiche, agus taobh istigh de sé ag dul a bheith ann leis an eagar uimhreacha, agus tá sé ag dul a bheith deachúlach méid (uimhreacha). Tá sé seo ag dul go bhfuil méid na n-uimhreacha roinnte de réir méid na n-eilimintí, ach go léir a saol taobh istigh de fhráma chairn phríomhchonraitheora. Nuair a ghlaonn muid cuardaigh, faigheann cuardaigh a fráma Stack féin, a spás féin chun é a stóráil go léir a n-athróg áitiúil. Ach na hargóintí - mar sin nach bhfuil coca féir cóip den eagar ar fad. Ní chuirimid pas a fháil sa réimse ar fad mar chóip i cuardaigh. Téann sé ach thagairt don eagar. Sin, is féidir cuardach teacht ar na huimhreacha tríd an tagairt. Tá sé seo rochtain fós ar na rudaí go beo taobh istigh de fhráma chairn phríomhchonraitheora, ach go bunúsach, nuair a fháil againn chun leideanna, ba chóir a bheith go luath, is é seo cad iad na leideanna. Leideanna bhfuil ach tagairtí do rudaí, agus is féidir leat leideanna a úsáid chun rudaí a rochtain atá i frámaí Stack rudaí eile '. Mar sin, cé go bhfuil líon áitiúil is mó, is féidir linn rochtain a fháil fós é tríd an pointeoir. Ach ós rud é tá sé ach pointeoir agus tá sé ach tagairt, Is uimhir (coca féir) Filleann ach an méid de na tagartha féin. Ní chuireann sé ar ais ar mhéid an rud é a dírithe. Ní chuireann sé ar ais ar an méid iarbhír na n-uimhreacha. Agus mar sin nach bhfuil sé seo ag dul ag obair mar ba mhaith linn dó. Ceisteanna ar sin? Beidh leideanna a bheith imithe i mion i bhfad níos mó gory i seachtainí atá le teacht. Agus is é sin an fáth a lán de na rudaí a fheiceann tú, rudaí a chuardaigh an chuid is mó nó rudaí a shórtáil, tá siad ag beagnach gach dul go mór chun an méid iarbhír an eagar, mar i C, ní mór dúinn aon smaoineamh cad é an méid de na eagar. Ní mór duit chun pas a fháil de láimh sé isteach Agus ní féidir leat pas a fháil de láimh sa réimse ar fad toisc go bhfuil tú ag dul díreach sa tagairt agus ní féidir é a fháil ar an méid ó na tagartha. Maith go leor. Mar sin, anois ba mhaith linn a chur i bhfeidhm míníodh an méid roimhe seo. Is féidir leat obair ar sé ar feadh nóiméid, agus ní gá duit a bheith buartha faoi ag fáil gach rud breá 100% oibre. Just a scríobh suas an pseudocode leath do conas a cheapann tú ba chóir sé ag obair. Maith go leor. Níl gá a dhéanamh go hiomlán le seo go fóill. Ach ní duine ar bith a bhraitheann compordach leis an méid atá siad go dtí seo, cosúil le rud éigin is féidir linn obair le chéile? An bhfuil aon duine ag iarraidh go deonach? Nó beidh mé Pioc randamach. Ní chuireann sé a bheith ceart ag aon bheart ach rud is féidir linn a mhodhnú i stát oibre. [Mac léinn] Cinnte. >> Maith go leor. Sin, is féidir leat a shábháil an t-athbhreithniú trí chliceáil ar an deilbhín Sábháil beag. Tá tú Ramya, ceart? >> [Mac léinn] Yeah. >> [Bowden] Maith go leor. Mar sin, anois is féidir liom féachaint ar do athbhreithniú agus is féidir gach duine a tharraingt ar an athbhreithniú ar bun. Agus anseo ní mór dúinn - Maith go leor. Mar sin, chuaigh Ramya leis an réiteach athchúrsach, a bhfuil cinnte ar réiteach bailí. Tá dhá bhealach is féidir leat a dhéanamh an fhadhb seo. Is féidir leat a dhéanamh ceachtar é iteratively nó go hathchúrsach. Is féidir fadhbanna is mó a bhíonn tú is féidir a dhéanamh go hathchúrsach a dhéanamh freisin iteratively. Mar sin anseo tá muid déanta go hathchúrsach. An bhfuil duine éigin ag iarraidh a shainiú cad a chiallaíonn sé a dhéanamh feidhm athchúrsach? [Mac léinn] Nuair a bheidh tú feidhm glaoch féin agus ansin glaoch féin go dtí go dtagann sé amach le fíor agus fíor. >> Yeah. Tá feidhm athchúrsach ach feidhm a glaonna féin. Tá trí rudaí móra gur gá feidhm athchúrsach a bheith acu. Is é an chéad ar ndóigh, iarrann sé é féin. Is é an dara cás bonn. Mar sin, riachtanais ag pointe éigin an fheidhm chun stop a glaoch féin, agus is é go bhfuil an méid an gcás bonn le haghaidh. Mar sin anseo tá a fhios againn gur cheart dúinn stopadh, ba chóir dúinn a thabhairt suas i ár cuardaigh nuair is ionann tús deiridh - agus beidh muid ag dul thar cad a chiallaíonn sin. Ach ar deireadh, an rud deireanach gur tábhachtach d'fheidhmeanna recursive: Ní mór na feidhmeanna chuige ar bhealach an cás bonn. Cosúil más rud é nach bhfuil tú thabhairt cothrom le dáta i ndáiríre rud ar bith nuair a dhéanann tú an dara glao athchúrsach, má tá tú literally ag glaoch díreach an fheidhm arís leis na hargóintí céanna agus aon athróg domhanda athrú nó rud ar bith, ní bheidh tú teacht ar an mbunchás, agus sa chás sin go dona. Beidh sé ina athchúrsáil éigríochta agus thar maoil chairn. Ach anseo a fheicimid go bhfuil an nuashonrú ag tarlú ós rud é táimid thabhairt cothrom le dáta tús a + deireadh / 2, táimid thabhairt cothrom le dáta ar an argóint deiridh anseo, táimid thabhairt cothrom le dáta an argóint tús anseo. Mar sin, i ngach glaonna recursive táimid thabhairt cothrom le dáta rud éigin. Maith go leor. Ar mhaith leat chun siúl dúinn trí do réiteach? >> Cinnte. Tá mé ag baint úsáide as SearchHelp ionas go mbeidh gach uair mé an glaoch fheidhm Tá mé i dtús áit a bhfuil mé ag lorg an eagar agus deireadh an áit ina bhfuil mé ag breathnú ar an eagar. Ag gach céim nuair a dúirt sé go bhfuil sé an eilimint lár, a bhfuil tús + deireadh / 2, is é sin is comhionann leis an méid a táimid ag lorg? Agus má tá sé, ansin fuair muid é, agus buille faoi thuairim mé go bhfaigheann éirigh suas na leibhéil athchúrsáil. Agus más rud é nach bhfuil fíor, ansin linn a sheiceáil cibé an bhfuil an luach lár an eagar ró-mhór, agus sa chás sin táimid ag an leath clé den eagar ag dul ó thús go lár an innéacs. Agus ar shlí eile a dhéanann muid an leath deiridh. [Bowden] Maith go leor. Sin fuaimeanna maith. Maith go leor, mar sin ar feadh cúpla rudaí, agus ar ndóigh,, is é seo an rud an-ard-leibhéal go ní bheidh ort a fhios don chúrsa seo, ach tá sé fíor. Feidhmeanna athchúrsach, éisteacht leat i gcónaí go bhfuil siad ag déileáil droch- mar má ghlaonn tú go hathchúrsach féin uair an iomarca, gheobhaidh tú thar maoil chairn ó shin, mar a dúirt mé cheana, faigheann gach feidhm a fráma cruaiche féin. Mar sin, faigheann gach glaoch ar an bhfeidhm athchúrsach a fráma cruaiche féin. Mar sin, má dhéanann tú 1,000 glaonna recursive, gheobhaidh tú 1,000 frámaí Stack, agus go tapa tú mar thoradh ar a bhfuil frámaí Stack iomarca agus rudaí a bhriseadh díreach. Mar sin tá sin an fáth go bhfuil feidhmeanna recursive ginearálta dona. Ach tá go dtugtar fo-thacar deas feidhmeanna recursive eireaball-recursive feidhmeanna, agus a tharlaíonn sé seo a bheith ina shampla amháin i gcás fógraí má tiomsaitheoir seo agus ba chóir dó, I mo thuairimse, - i clang má éiríonn tú é an-O2 bratach ansin beidh sé faoi deara é seo eireaball recursive agus rudaí a dhéanamh go maith. Beidh sé athúsáid an fráma cruaiche céanna arís agus arís eile le haghaidh gach glao athchúrsach. Agus mar sin ós rud é tá tú ag baint úsáide as an fráma cruaiche céanna, ní gá duit a imní faoi riamh chairn cur thar maoil, agus ag an am céanna, mar a dúirt tú roimh, i gcás aon uair amháin tú ar ais fíor, ansin tá sé ar ais suas gach ceann de na frámaí Stack agus tá an glao 10ú SearchHelp Tá filleadh ar an 9ú lá, chun filleadh ar an 8ú. Mar sin, nach gá go dtarlódh nuair a bhíonn feidhmeanna eireaball athchúrsach. Agus mar sin cad a dhéanann an eireaball feidhm athchúrsach fógra gur le haghaidh aon ghlao a thugtar do searchHelp Is é an glao athchúrsach go tá á dhéanamh cad a sheoladh ar ais. Mar sin, sa chéad ghlaoch chun SearchHelp, táimid ag ceachtar ar ais láithreach bréagach, láithreach ar ais fíor, nó a dhéanamh linn glao athchúrsach go SearchHelp áit a bhfuil cad a táimid ag filleadh ar a bhfuil go glaoch ar ais. Agus ní raibh muid ábalta é seo a dhéanamh más rud é go raibh muid rud éigin cosúil le slánuimhir x = SearchHelp, ar ais x * 2, ach roinnt athruithe randamach. Mar sin, anois nglao seo athchúrsach, an slánuimhir x = SearchHelp glaoch athchúrsach, Tá a thuilleadh eireaball athchúrsach mar gheall ar a dhéanann sé i ndáiríre a thabhairt ar ais ar ais go dtí fráma Stack roimhe seo ionas go mbeidh an glaoch roimhe seo don fheidhm ansin is féidir rud éigin a dhéanamh leis an luach ar ais. Mar sin, nach bhfuil an eireaball athchúrsach, ach cad a bhí againn roimh nicely eireaball athchúrsach. Yeah. Mura [mac léinn] an cás bonn dara a sheiceáil ar dtús toisc go bhféadfadh a bheith ann ar staid ina nuair a théann tú é an argóint tú tús a chur = deireadh, ach tá siad an luach snáthaid. An cheist nach féidir a bhí muid ag siúl isteach sa chás go bhfuil deireadh an luach snáthaid nó tús = deireadh, go cuí, tús a chur = deireadh agus nach bhfuil tú ag seiceáil i ndáiríre an luach ar leith go fóill, tús a chur ansin + deireadh / 2 ag dul ach a bheith an luach céanna. Ach againn ar ais cheana féin bréagach agus muid riamh a sheiceáil i ndáiríre an luach. Mar sin, ar a laghad, sa chéad ghlaoch, más rud é méid 0, ansin ba mhaith linn a thabhairt ar ais bréagach. Ach má tá méid 1, ansin nach bhfuil tús ag dul go dtí deireadh cothrom, agus beidh muid ar a laghad a sheiceáil an eilimint amháin. Ach is dóigh liom go bhfuil tú ceart i gur féidir linn deireadh suas i gcás ina dtosaíonn + deireadh / 2, tús chríochnaíonn suas a bheith mar an gcéanna le tús + deireadh / 2, riamh ach a sheiceáil againn i ndáiríre an eilimint. Mar sin, má táimid seiceáil ar dtús go bhfuil an ghné lár an luach táimid ag lorg, ansin is féidir linn ar ais láithreach fíor. Eile má tá siad cothrom, ansin níl aon phointe i ag leanúint ar ós rud é táimid ag dul díreach a thabhairt suas chun dáta le cás ina bhfuil muid ar raon amháin ngné seo. Más rud é nach bhfuil eilimint amháin an ceann táimid ag lorg, ansin tá gach rud mícheart. Yeah. [Mac léinn] Is é an rud go bhfuil ós rud é méid iarbhír níos mó ná an líon na n-eilimintí sa sraith, tá cheana féin fhritháireamh - >> Beidh Mar sin, méid - [Mac léinn] Abair má bhí an sraith méid 0, ansin beidh an SearchHelp seiceáil iarbhír coca féir de 0 ar an chéad ghlaoch. Tá an raon méide 0, mar sin tá an 0 - >> Yeah. Níl rud eile go - d'fhéadfadh sé a bheith go maith. A ligean ar smaoineamh. Mar sin, má bhí an sraith 10 heilimintí agus is é an ceann lár táimid ag dul a sheiceáil innéacs 5, mar sin táimid ag seiceáil 5, agus a ligean ar rá go bhfuil an luach níos lú. Mar sin, táimid ag caitheamh gach rud ar shiúl ó 5 ar aghaidh. Mar sin, tús a + Tá deireadh / 2 ag dul a bheith ar ár deireadh nua, mar sin yeah, tá sé ag dul i gcónaí chun fanacht thar dheireadh na eagar. Má tá sé cás má bhí sé fiú nó corr, ansin ba mhaith linn a sheiceáil, a rá, 4, ach táimid ag caitheamh fós ar shiúl - Mar sin, yeah, tá deireadh ag dul i gcónaí a bheith níos faide ná an deireadh iarbhír an eagar. Mar sin, na heilimintí táimid ag díriú ar, tá deireadh dul i gcónaí a bheith ar an duine ina dhiaidh sin. Agus mar sin má dhéanann tús riamh deireadh cothrom, tá muid i sraith de mhéid 0. Is é an rud eile Bhí mé ag smaoineamh táimid thabhairt cothrom le dáta tús a thosú + deireadh / 2, mar sin é seo an cás go bhfuil mé ag dtrioblóid leis, i gcás ina dtosaíonn + deireadh / 2 Is é an ghné táimid ag seiceáil. Ligean le rá a bhí againn an raon 10-eilimint. Cibé rud a. Mar sin, tús a + Tá deireadh / 2 ag dul a bheith rud éigin mar seo amháin, agus más rud é nach bhfuil an luach, a rá ba mhaith linn a thabhairt cothrom le dáta. Is é an luach níos mó, agus mar sin ba mhaith linn chun breathnú ar an leath de na eagar. Mar sin, conas táimid thabhairt cothrom le dáta thús, tá muid ag cothrom le dáta thús a bheith anois ngné seo. Ach d'fhéadfadh sé seo fós ag obair, nó ar a laghad an-, is féidir a dhéanamh leat tús + deireadh / 2 + 1. [Mac léinn] Ní gá duit a bheith ag tosú + deireadh [inaudible] >> Yeah. Táimid tar éis a sheiceáil cheana ngné seo agus tá a fhios nach bhfuil sé an ceann a táimid ag lorg. Mar sin, ní mór dúinn tús a thabhairt cothrom le dáta a bheith ngné seo. Is féidir linn a skip ach é agus a nuashonrú tús a bheith ngné seo. Agus tá riamh cás, a ligean ar rá, go raibh na críche sin, Bheadh ​​sin ansin tosú sé seo a bheith, tús a + deireadh / bheadh ​​2 seo, tús a + deireadh - Yeah, I mo thuairimse, is féidir é deireadh suas i athchúrsáil éigríochta. Ligean le rá tá sé ach le sraith de mhéid 2 nó le sraith de mhéid 1. Sílim go mbeidh an obair seo. Mar sin, faoi láthair, is é tús go bhfuil eilimint agus deireadh 1 thar sé. Mar sin, tá an eilimint sin táimid ag dul a sheiceáil an gceann seo, agus ansin nuair a thabhairt cothrom le dáta thús, tá muid ag cothrom le dáta thús a bheith 0 + 1/2, atá ag dul go dtí deireadh ar ais chugainn leis an tús a bheith ngné seo. Mar sin, táimid ag seiceáil an ghné chéanna arís agus arís eile. Mar sin, is é seo an cás ina mbeadh ar gach glaoch athchúrsach cothrom le dáta i ndáiríre rud éigin. Mar sin, ní mór dúinn a dhéanamh tús + deireadh / 2 + 1, nó eile níl cás i gcás nach bhfuil muid ag cothrom le dáta i ndáiríre tús. Tá ag gach duine a fheiceáil go? Maith go leor. An bhfuil aon duine ceist ar an réiteach nó tuairimí ar bith níos mó? Maith go leor. An bhfuil aon duine a bheith atriallach réiteach gur féidir linn breathnú go léir ag? An raibh linn a dhéanamh ar fad é go hathchúrsach? Nó chomh maith buille faoi thuairim mé má d'oscail tú dá cuid, ansin d'fhéadfadh tú a bheith sáraithe do cheann roimhe sin. An é a shábháil go huathoibríoch? Níl mé dearfach. An bhfuil aon duine a bheith atriallach? Is féidir linn siúl tríd sé le chéile más rud é nach. Is é an smaoineamh ag dul a bheith mar an gcéanna. Atriallach réiteach. Táimid ag dul a iarraidh a dhéanamh go bunúsach an smaoineamh céanna nuair ba mhaith linn a choinneáil ar an deireadh nua an eagar agus tús nua ar an eagar agus é sin a dhéanamh thar agus os a chionn. Agus má cad tá muid ag súil a choinneáil ar an tús agus an deireadh riamh Trasnaigh, ansin ní raibh muid ag teacht air agus is féidir linn ar ais bréagach. Mar sin, conas is féidir liom a dhéanamh? Duine ar bith a bheith moltaí nó cód le haghaidh dom a tharraingt suas? [Mac léinn] Déan lúb tamaill. >> Yeah. Tá tú ag dul a iarraidh a dhéanamh lúb. An raibh tú ag cód raibh mé in ann tarraingt suas, nó cad a bhí tú ag dul a mholadh? [Mac léinn] I mo thuairimse, mar sin. >> Gach ceart. Déanann sé seo rudaí níos éasca. Cad é do ainm? [Mac léinn] Lucas. Athbhreithniú 1. Maith go leor. Teocht is Ísle: Is é rud ar a dtugtar linn tús a roimh. Níl Suas go maith cad a dtugtar againn deireadh roimh. I ndáiríre, tá deireadh anois laistigh den eagar. Tá sé ina ghné ba cheart dúinn a mheas. Mar sin, íseal 0, is é suas an méid de na eagar - 1, agus anois táimid ag looping, agus táimid ag seiceáil - Buille faoi thuairim mé féidir leat siúl tríd. Cad é do smaoineamh tríd an? Siúl dúinn trí do chód. [Mac léinn] Cinnte. Féach ar an luach coca féir i lár agus é a chur i gcomparáid le snáthaid. Mar sin, má tá sé níos mó ná do snáthaid, ansin ba mhaith leat - ó, i ndáiríre, ba chóir a bheith ar gcúl. Tá tú ag dul a iarraidh le caith amach an leath ceart, agus mar sin yeah, ba chóir a bheith ar an mbealach. [Bowden] Mar sin ba chóir é seo a bheith níos lú? An bhfuil go bhfuil an méid a dúirt tú? >> [Mac léinn] Yeah. [Bowden] Maith go leor. Níos lú. Mar sin, má cad táimid ag féachaint ar níos lú ná cad ba mhaith linn, ansin yeah, ba mhaith linn a caith amach an leath chlé, rud a chiallaíonn táimid ag cothrom le dáta gach rud táimid ag smaoineamh ar ag bogadh íseal do cheart an eagar. Breathnaíonn sé seo go maith. I mo thuairimse, tá sé an cheist chéanna a dúirt muid ar an cheann roimhe sin, i gcás má tá íseal 0 agus suas 1, ansin íseal + suas / 2 ag dul a chur ar bun le bheith ar an rud céanna arís. Agus fiú más rud é nach bhfuil an cás, tá sé fós níos éifeachtaí ar a laghad le caith díreach amach an eilimint d'fhéach muid díreach ag a fhios againn go bhfuil mícheart. Mar sin, íseal + suas / 2 + 1 - >> [mac léinn] Ba chóir a bheith ar an bhealach eile. [Bowden] Nó ba chóir é seo a bheith - 1 agus ba chóir an ceann eile + 1. [Mac léinn] Agus is ionann ba chóir go mbeadh dúbailte shíniú. >> [Bowden] Yeah. [Mac léinn] Yeah. Maith go leor. Agus ar deireadh, anois go bhfuil an 1 + - 1 rud, tá sé - ní fhéadfadh sé a bheith - tá sé riamh agus is féidir do íseal chun deireadh suas le luach níos mó ná suas? Sílim go bhfuil an t-aon bhealach is féidir a tharlaíonn - An féidir é? >> [Mac léinn] Níl a fhios agam. Ach má thagann sé teasctha agus ansin faigheann lúide go 1 agus ansin - >> Yeah. [Mac léinn] Bheadh ​​sé a fháil messed b'fhéidir suas. I mo thuairimse, ba chóir é a bheith go maith ach amháin mar gheall chun é a deireadh suas níos ísle a bheadh ​​siad a bheith cothrom, I mo thuairimse. Ach má tá siad cothrom, ansin ní ba mhaith linn a dhéanamh ar an lúb agus chun tús a chur leis agus táimid go mbeadh díreach tar éis filleadh ar an luach. Mar sin, I mo thuairimse, tá muid go maith anois. Fógra go cé go bhfuil an fhadhb seo a thuilleadh recursive, den chineál céanna i smaointe sin i bhfeidhm nuair is féidir linn a fheiceáil conas é seo lends sin go héasca é féin a réiteach athchúrsach ag an bhfíric go bhfuil muid ag cothrom le dáta ach an innéacsanna arís agus arís eile, táimid ag déanamh an fhadhb níos lú agus níos lú, tá muid ag díriú ar fho-thacar de na eagar. [Mac léinn] Má tá íseal 0 agus suas 1, go mbeadh siad araon 0 + 1/2, a bheadh ​​téigh go dtí 0, agus ansin bheadh ​​duine a bheith + 1, bheadh ​​duine a bheith - 1. [Mac léinn] Cá bhfuil seiceáil againn comhionannas? Cosúil má tá an ceann lár ndáiríre snáthaid? Ní Táimid ag déanamh faoi láthair go bhfuil? Oh! Má it's - Tá. Ní féidir linn ach a dhéanamh ar an tástáil síos anseo mar a rá a ligean ar lár chéad - [Mac léinn] Tá sé cosúil i ndáiríre ní caith amach an cheangal. Mar sin, má tá tú caith amach na cheangal, tá tú chun é a sheiceáil ar dtús nó cibé. Ah. Yeah. >> [Mac léinn] Yeah. Mar sin, anois ní mór dúinn a thrown away an ceann d'fhéach sé againn faoi láthair ar, rud a chiallaíonn go mór dúinn anois a bheith chomh maith más rud é (coca féir [(íseal + suas) / 2] == snáthaid), ansin is féidir linn ar ais fíor. Agus cé acu a chuir mé eile nó díreach más rud é, ciallaíonn sé literally an rud céanna toisc go mbeadh sé seo ar ais fíor. Mar sin, beidh mé eile más rud é, ach ní chuireann sé ábhar. Mar sin, eile más rud é seo, eile seo, agus tá sé seo an rud coitianta a dhéanamh liom i gcás fiú má tá sé an cás ina bhfuil gach rud go maith anseo, cosúil nach féidir íseal a bheith níos mó ná suas, nach bhfuil sé réasúnaíocht fiú faoi cé acu an é go bhfuil fíor. Mar sin, is féidir leat chomh maith a rá cé go bhfuil íseal níos lú ná nó cothrom le nó le linn íseal níos lú ná mar sin a tharlaíonn má tá siad riamh chomhionann nó íseal chun pas a fháil suas, ansin is féidir linn briseadh amach as an lúb. Ceisteanna, imní, tuairimí? Maith go leor. Breathnaíonn sé seo go maith. Anois, ba mhaith linn saghas a dhéanamh. Má théann muid go dtí mo athbhreithniú an dara, feicimid na huimhreacha céanna, ach anois tá siad a thuilleadh in ord sórtáilte. Agus ba mhaith linn saghas a chur i bhfeidhm ag baint úsáide as aon algartam i O n log n. Mar sin, a algartam a cheapann tú ba chóir dúinn a chur i bhfeidhm anseo? >> [Mac léinn] Merge saghas. [Bowden] Yeah. Is Cumaisc saghas O (n log n), agus mar sin go cad táimid ag dul a dhéanamh. Agus is é an fhadhb ag dul a bheith go leor den chineál céanna, nuair a lends sé go héasca é féin a réiteach athchúrsach. Is féidir linn teacht freisin suas le réiteach atriallach más mian linn, ach beidh athchúrsáil níos éasca anseo agus ba chóir a dhéanamh cuardach ar dúinn. Buille faoi thuairim mé beidh muid ag siúl trí saghas merge chéad uair, cé go bhfuil físeán álainn ar saghas merge cheana féin. [Gáire] Mar sin, merge sórtáil tá - Tá mé ag wasting oiread sin den pháipéar seo. Ó, níl ach aon chlé. Mar sin, merge. Oh, 1, 3, 5. Maith go leor. Merge Bíonn dhá arrays ar leith. Ina n-aonar dá arrays bhfuil an dá eagar. Seo sraith, 1, 3, 5, curtha in eagar sin. Seo sraith, 0, 2, 4, curtha in eagar. Anois, cad ba cheart merge a dhéanamh le chéile iad i sraith amháin go bhfuil curtha in eagar féin. Mar sin, ba mhaith linn le sraith de mhéid 6 go bhfuil dul chun bheith ar na gnéithe taobh istigh de sé in ord sórtáilte. Agus mar sin is féidir linn leas a bhaint as an bhfíric go bhfuil an dá arrays atá curtha in eagar seo a dhéanamh in am líneach, bhrí am líneach má tá an sraith x méid agus tá sé seo y méid, ansin ba chóir go mbeadh an t-algartam iomlán O (x + y). Maith go leor. Mar sin, moltaí. [Mac léinn] Níorbh fhéidir linn tús ó thaobh na láimhe clé? Mar sin, beidh tú a chur ar an 0 síos ar dtús agus ansin an 1 agus ansin anseo tá tú ag an 2. Mar sin tá sé cineál cosúil go bhfuil tú cluaisín a tá bogadh go dtí an ceart. >> [Bowden] Yeah. I gcás an dá de na arrays má táimid ag díriú ach ar an eilimint leftmost. Mar gheall ar an dá arrays atá curtha in eagar, tá a fhios againn go bhfuil na heilimintí 2 Is iad na gnéithe is lú i gceachtar eagar. Mar sin, ciallaíonn sé sin go mór 1 de na heilimintí sin 2 an ghné is lú in ár sraith cumaiscthe. Tharlaíonn sé ach ionas go mbeidh an lú an ceann ar an am ceart seo. Mar sin, beimid ag tabhairt 0, tá sé isteach ar an taobh clé toisc go bhfuil níos lú ná 0 1, sin a chur 0, tá sé isteach i ár seasamh sa chéad, agus ansin thabhairt cothrom le dáta seo againn díriú anois ar an chéad eilimint. Agus anois táimid arís. Mar sin anois táimid ag comparáid a dhéanamh idir 2 agus 1. 1 níos lú, mar sin beidh orainn a chur isteach 1. Táimid ag cothrom le dáta an pointeoir a chur in iúl ar an Guy. Anois, a dhéanann muid arís, agus mar sin 2. Cuirfidh sé seo cothrom le dáta, na 2, 3 i gcomparáid. Sé seo cothrom le dáta, ansin 4 agus 5. Mar sin, is é sin chumaiscthe. Ba chóir go mbeadh sé soiléir go leor go bhfuil sé in am líneach ó againn dul díreach i ngach gné uair amháin. Agus is é sin an chéim is mó a chur i bhfeidhm a bhfuil merge sórtáil seo a dhéanamh. Agus nach bhfuil sé go crua. A rudaí cúpla a bheith buartha faoi é a ligean ar rá go raibh muid chumasc 1, 2, 3, 4, 5, 6. Sa chás seo táimid ag deireadh suas sa scéal ina bhfuil an ceann seo ag dul a bheith níos lú, ansin dúinn cothrom le dáta an pointeoir, tá an ceann seo ag dul a bheith níos lú, cothrom le dáta seo, Tá an ceann seo níos lú, agus anois tá tú a aithint nuair atá tú ag rith go hiarbhír as na n-eilimintí a chur i gcomparáid leis. Ós rud é go mór dúinn a úsáid cheana féin an sraith ar fad, tá gach rud sa sraith anois isteach díreach isteach anseo. Mar sin, má táimid ar siúl riamh sa phointe nuair atá ceann de na arrays astu go hiomlán cheana féin, ansin dúinn a chur díreach na gnéithe uile an eagar eile agus iad a chur isteach i ndeireadh na eagar. Mar sin, is féidir linn a chur isteach ach 4, 5, 6. Maith go leor. Is é sin an rud amháin chun faire amach do. Cur chun feidhme ba chóir a bheith ar chéim 1. Cumaisc a shórtáil ansin bunaithe ar sin, tá sé 2 céimeanna, 2 céimeanna amaideach. A ligean ar thabhairt ach an eagar. Mar sin, merge sórtáil é, céim 1 a bhriseadh go hathchúrsach an eagar i halves. Mar sin, roinneadh an eagar seo i leatha. Tá muid anois 4, 15, 16, 50 agus 8, 23, 42, 108. Agus anois a dhéanaimid é arís agus scar muid seo i leatha. Ach beidh mé é a dhéanamh ar an taobh seo. Mar sin, 4, 15 agus 16, 50. Ba mhaith linn a dhéanamh ar an rud céanna thar anseo. Agus anois scar muid sé i leatha arís. Agus ní mór dúinn 4, 15, 16, 50. Mar sin, is é sin ár gcás bonn. Nuair atá na arrays ar mhéid 1, ansin dúinn stop a chur leis an scoilteadh i halves. Anois, cad a dhéanaimid leis seo? Táimid deireadh suas beidh sé seo a bhriseadh síos freisin i 8, 23, 42, agus 108. Mar sin anois go bhfuil muid ag an bpointe seo, céim anois dhá cheann de chineál merge Tá chumasc ach péire ar na liostaí. Mar sin, ba mhaith linn a chumasadh seo. Táimid ag glaoch díreach chumasadh. Tá a fhios againn go mbeidh merge ar ais ar na in ord sórtáilte. 4, 15. Anois, ba mhaith linn a chumasadh seo, agus go mbeidh ar ais liosta leis na in ord sórtáilte, 16, 50. Merge muid iad siúd - ní féidir liom scríobh - 8, 23 agus 42, 108. Mar sin, ní mór dúinn péirí cumaiscthe aon uair amháin. Anois táimid ag merge go díreach arís. Fógra go bhfuil gach ceann de na liostaí seo curtha in eagar ann féin, agus ansin is féidir linn a chumasadh ach na liostaí a fháil ar liosta de mhéid 4 atá curtha in eagar agus chumasadh leis an dá liostaí a fháil ar liosta de mhéid 4 go bhfuil curtha in eagar. Agus ar deireadh, is féidir linn a chumasadh leis an dá liostaí de mhéid 4 a fháil ar liosta amháin de mhéid 8 go bhfuil curtha in eagar. Mar sin, a fheiceáil go bhfuil sé seo foriomlán n log n, chonaic muid cheana féin go bhfuil merge líneach, mar sin nuair a bhíonn muid ag déileáil le cumasc seo, mar sin cosúil leis an costas iomlán merge i gcás an dá liosta bhfuil ach 2 mar - Nó go maith, tá sé O n, ach n anseo ach na heilimintí 2, mar sin tá sé 2. Agus beidh ar na 2 2 agus beidh na 2 a 2 agus beidh na 2 a 2, mar sin ar fud gach ceann de na cumasc gur gá dúinn a dhéanamh, deireadh muid suas a dhéanamh n. Cosúil le 2 + 2 + 2 + 2 8, a bhfuil n, mar sin tá an costas a chumasc sa tacar n. Agus ansin an rud céanna anseo. Beidh muid chumasadh na 2, ansin na 2, agus ina n-aonar seo chumasadh ceithre oibríocht a ghlacadh, beidh sé seo merge a ghlacadh ceithre oibríochtaí, ach arís, idir gach ceann de na, deireadh muid suas a chumasc n rudaí iomlán, agus mar sin tógann an chéim seo n. Agus tógann sé sin gach leibhéal eilimintí n á chomhcheangal. Agus cé mhéad leibhéil atá ann? Ag gach leibhéal a fhásann, ár sraith de réir méid 2. Seo iad ár arrays de mhéid 1, anseo tá siad de mhéid 2, anseo tá siad de mhéid 4, agus ar deireadh, tá siad de mhéid 8. Mar sin, ós rud é go dúbailt é, tá dul chun bheith ina san iomlán log n de na leibhéil. Mar sin, le logáil n leibhéil, gach leibhéal an duine aonair cur n-oibríochtaí iomlána, a fháil againn ar log n algartam. Ceisteanna? An ndearna daoine cheana féin dul chun cinn ar an mbealach chun é seo? An bhfuil aon duine cheana féin i stát nuair is féidir liom a tharraingt suas díreach a n-cód? Féidir liom a thabhairt nóiméad. Tá sé seo ar cheann ag dul a bheith níos faide. Liom a mholadh go mór athuair - Ní gá duit athchúrsáil a dhéanamh le haghaidh merge mar gheall ar é a dhéanamh cuardach ar do merge, agus tú ag dul a bheith acu chun pas a fháil a bunch de mhéideanna éagsúla. Is féidir leat, ach tá sé annoying. Ach tá athchúrsáil do shórtáil féin éasca go leor. Tá tú ach glaoch literally saghas ar leath chlé, saghas ar leath ceart. Maith go leor. Duine ar bith aon rud is féidir liom a tharraingt suas go fóill? Nó eile beidh mé a thabhairt nóiméad. Maith go leor. Duine ar bith go bhfuil rud éigin is féidir linn obair leis? Nó eile beidh muid ag obair go díreach leis seo agus ansin a leathnú ó ann. Duine ar bith a bheith níos mó ná seo gur féidir liom a tharraingt suas? [Mac léinn] Yeah. Is féidir leat a tharraingt suas mianach. >> Gach ceart. Tá! [Mac léinn] Bhí a lán de na coinníollacha. >> Ó, shoot. An féidir leat - [Mac léinn] Caithfidh mé a shábháil. >> Yeah. Mar sin, rinne muid a dhéanamh ar an chumasadh ar leithligh. Oh, ach nach bhfuil sé go dona. Maith go leor. Dá bhrí sin tá saghas féin ach glaoch mergeSortHelp. Mínigh dúinn cad a dhéanann mergeSortHelp. [Mac léinn] MergeSortHelp deas a dhéanann i bhfad an dhá chéim is mó, a bhfuil a shórtáil gach leath de na eagar agus ansin leis an mbeirt acu chumasadh. [Bowden] Maith go leor, mar sin a thabhairt dom an dara. Sílim - >> [mac léinn] is gá dom a - Yeah. Tá mé ag iarraidh rud éigin. I merge, realize mé gur gá dom a chruthú sraith nua toisc nach raibh mé in ann é a dhéanamh i bhfeidhm. >> Tá. Ní féidir leat. Cheartú. [Mac léinn] Mar sin mé a chruthú sraith nua. Rinne mé dearmad ag deireadh na merge a ath-athrú. Maith go leor. Ní mór dúinn sraith nua. I saghas merge, tá sé seo beagnach i gcónaí fíor. Cuid de chostas an algartam níos fearr am-ciallmhar Tá beagnach i gcónaí de dhíth orthu a úsáid cuimhne le beagán níos mó. Mar sin anseo, is cuma conas a dhéanann tú chumasadh saghas, bheadh ​​de dhíth ort dosheachanta a úsáid roinnt cuimhne breise. Sé nó sí a cruthaíodh sraith nua. Agus ansin a rá leat ag an deireadh is gá dúinn ach a chóipeáil eagar nua isteach sa réimse bunaidh. [Mac léinn] I mo thuairimse, mar sin, yeah. Níl a fhios agam má oibríonn i dtéarmaí comhaireamh trí thagairt nó cibé - Yeah, beidh sé ag obair. >> [Mac léinn] Maith go leor. An raibh tú iarracht a reáchtáil seo? >> [Mac léinn] No, ní go fóill. >> Maith go leor. Bain triail as sé ag rith, agus ansin beidh mé ag caint faoi sé le haghaidh an dara. [Mac léinn] is gá dom a bhfuil na fréamhshamhlacha fheidhm agus gach rud, áfach, ceart? An fréamhshamhlacha feidhme. Ó, i gceist agat cosúil le - Tá. Sórtáil ag glaoch mergeSortHelp. Mar sin, d'fhonn a shórtáil a ghlaoch mergeSortHelp, ní mór mergeSortHelp a bheith acu sainmhínithe roimh a shórtáil nó mór dúinn ach an fhréamhshamhail. Just a chóipeáil agus a ghreamú go. Agus mar an gcéanna, tá mergeSortHelp ag glaoch merge, ach nach bhfuil merge sainithe go fóill, ionas gur féidir linn in iúl ach a fhios mergeSortHelp go bhfuil go bhfuil an méid merge ag dul chun breathnú cosúil le, agus go bhfuil sin. Mar sin, mergeSortHelp. Tá an tsaincheist anseo áit a bhfuil muid aon chás bonn. MergeSortHelp Tá recursive, mar sin aon fheidhm athchúrsach ag dul go dtí gá de chineál éigin cás bonn ar an eolas nuair a stopadh go hathchúrsach ag glaoch féin. Cad é ár gcás bonn ag dul a bheith anseo? Yeah. [Mac léinn] Má tá an méid 1? >> [Bowden] Tá. Mar sin, cosúil le chonaic muid ceart ann, stop muid arrays scoilteadh nuair a fuair muid i arrays de mhéid 1, atá curtha in eagar gan dabht iad féin. Mar sin, má bhíonn méid 1, tá a fhios againn go bhfuil an eagar curtha in eagar cheana féin, ionas gur féidir linn ar ais go díreach. Fógra go bhfuil ar neamhní, mar sin ní féidir linn a anything ar leith ar ais, ní mór dúinn ar ais go díreach. Maith go leor. Mar sin go bhfuil ár chás bonn. Buille faoi thuairim mé d'fhéadfadh ár gcás bonn a freisin má tharlaíonn dúinn a bheith chumasc le sraith de mhéid 0, ba mhaith linn is dócha a stopadh ag pointe éigin, ionas gur féidir linn a rá ach méid níos lú ná 2 nó níos lú ná nó cothrom le 1 ionas go mbeidh an obair seo le haghaidh aon eagar anois. Maith go leor. Mar sin go bhfuil ár chás bonn. Anois, ba mhaith leat chun siúl linn trí chumasadh? Cad a chiallaíonn seo go léir cásanna seo? Suas anseo, tá muid ag déanamh ach an smaoineamh céanna, an - [Mac léinn] is gá dom a bheith ag dul mhéid leis na glaonna mergeSortHelp. Dúirt mé freisin méid mar bunscoile breise agus nach bhfuil sé ann, cosúil le méid / 2. [Bowden] Oh, méid / 2, méid / 2. >> [Mac léinn] Yeah, agus freisin san fheidhm thuas chomh maith. [Bowden] Anseo? >> [Mac léinn] Just a mhéid. >> [Bowden] Oh. Méid, méid? >> [Mac léinn] Yeah. [Bowden] Maith go leor. Lig dom smaoineamh ar feadh soicind. An bhfuil muid ag siúl isteach i gceist? Táimid ag déileáil i gcónaí ar an taobh clé mar 0. >> [Mac léinn] Uimh Sin mícheart freisin. Tá brón orm. Ba chóir go mbeadh sé tús. Yeah. [Bowden] Maith go leor. Is maith liom go níos fearr. Agus deireadh. Maith go leor. Mar sin, anois is mian leat chun siúl linn trí chumasadh? >> [Mac léinn] Maith go leor. Tá mé ag siúl díreach tríd an eagar nua go bhfuil mé a cruthaíodh. Is é an méid ar mhéid an chuid den réimse sin ba mhaith linn a bheith curtha in eagar agus ag iarraidh a fháil ar an eilimint gur chóir dom a chur sa chéim eagar nua. Mar sin, chun é sin a dhéanamh, ar an gcéad mé ag seiceáil má leanann an leath clé den eagar go bhfuil gnéithe ar bith níos mó, agus más rud é nach é, ansin a théann tú síos go dtí an coinníoll eile, a deir go díreach ceart go leor, ní mór dó a bheith i sraith ceart, agus beidh a chur go bhfuil muid ar an innéacs reatha newArray. Agus ansin a mhalairt, tá mé ag seiceáil má tá an taobh dheis de na eagar críochnaithe chomh maith, agus sa chás sin chuir mé díreach i thaobh na láimhe clé. Ní fhéadfadh go dtarlódh sé sin i ndáiríre is gá. Níl mé cinnte. Ach mar sin féin, tá an dá cheann eile a sheiceáil cé acu de na dhá níos lú i thaobh na láimhe clé nó an ceart. Agus chomh maith i ngach cás, tá mé ag incriminteach cibé placeholder mé INCRIMINT. [Bowden] Maith go leor. Breathnaíonn go maith. An bhfuil aon duine tuairimí nó imní nó ceisteanna? Mar sin, na ceithre chás atá againn chun rudaí a thabhairt isteach díreach a bheith - nó tá sé cosúil cúig - ach ní mór dúinn a bhreithniú cibé an bhfuil an eagar chlé rith amach na rudaí is gá dúinn a chumasadh, cibé an bhfuil eagar ceart rith amach na rudaí is gá dúinn a chumasadh - Tá mé ag dírithe ar rud ar bith. Mar sin, cibé an bhfuil an eagar chlé rith amach de rudaí nó go mbeidh an eagar ceart rith amach na rudaí. Tá na dhá chás. Ní mór dúinn freisin an cás fánach ar cibé an bhfuil an rud chlé níos lú ná an rud ceart. Ansin, ba mhaith linn a roghnú an rud chlé. Tá na cásanna. Mar sin, bhí an ceart seo, ionas go mbeidh go. Eagar chlé. Tá sé 1, 2, 3. Maith go leor. Mar sin, yeah, sin iad na ceithre rudaí a d'fhéadfadh muid ag iarraidh a dhéanamh. Agus ní bheidh muid ag dul thar atriallach réiteach. Ní ba mhaith liom a mholadh - Is Cumaisc saghas sampla de feidhm go bhfuil an dá ní eireaball recursive, nach bhfuil sé éasca a dhéanamh eireaball athchúrsach, ach freisin nach bhfuil sé an-éasca a dhéanamh atriallach. Tá sé seo an-éasca. Seo i bhfeidhm saghas merge, merge, is cuma cad a dhéanann tú, tá tú ag dul a thógáil chumaiscthe. Mar sin, merge sórtáil tógtha ar barr na merge Tá go hathchúrsach ach na trí línte. Iteratively, tá sé níos annoying agus níos deacra chun machnamh. Ach faoi deara go nach bhfuil sé eireaball athchúrsach ó mergeSortHelp - nuair a iarrann sé é féin - ní mór é fós chun rudaí a dhéanamh i ndiaidh an tuairisceáin glaoch athchúrsach. Mar sin, ní mór an fráma cruaiche bheith ann fiú tar éis ghlaoch seo. Agus ansin nuair a ghlaonn tú é seo, caithfidh an fráma cruaiche bheith ann mar gheall ar fiú tar éis an ghlao, ní mór dúinn fós a chumasadh. Agus tá sé nontrivial a dhéanamh ar an eireaball athchúrsach. Ceisteanna? Gach ceart. Mar sin, dul ar ais ar a shórtáil - OH, tá dhá rud ba mhaith liom a thaispeáint. Maith go leor. Ag dul ar ais a shórtáil, beidh orainn é seo a dhéanamh go tapa. Nó cuardaigh. Sórtáil? Sórtáil de. Yeah. Dul ar ais chuig an tús saghas. Is mian linn a chruthú algartam go sórtálfar an eagar ag baint úsáide as aon algartam i O n. Mar sin é an chaoi sé seo indéanta? An bhfuil aon duine aon saghas - Hinted mé roimh ar - Má tá muid ar tí é a fheabhsú ó n log n go dtí O de n, ní mór dúinn feabhas ar ár algartam am-ciallmhar, rud a chiallaíonn cad tá muid ag dul go dtí gá a dhéanamh chun a dhéanamh suas le sin? [Mac léinn] Spás. >> Yeah. Táimid ag dul a bheith ag baint úsáide as níos mó spáis. Agus ní fiú amháin níos mó spáis, tá sé spás exponentially níos mó. Mar sin, I mo thuairimse, tá an cineál seo algartam rud éigin pseudo, pseudo polynom - pseudo - Ní féidir liom cuimhneamh orthu. Rud éigin pseudo. Ach tá sé mar gheall ar gá dúinn úsáid a bhaint as spás an oiread sin go bhfuil sé seo indéanta ach ní réalaíoch. Agus conas is féidir linn seo a bhaint amach? Is féidir linn seo a bhaint amach má ráthaíocht againn go bhfuil aon eilimint áirithe i raon faoi ​​bhun méid áirithe. Mar sin a ligean ach a rá go bhfuil méid 200, Tá aon eilimint i sraith thíos mhéid 200. Agus é seo i ndáiríre an-réadúil. Is féidir leat an-éasca a bheith le sraith bhfuil a fhios agat gach rud ann ag dul a bheith níos lú ná le huimhir éigin. Cosúil má tá tú roinnt veicteoir go hiomlán ollmhór nó rud éigin ach tá a fhios agat gach rud ag dul a bheith idir 0 agus 5, ansin tá sé ag dul a bheith i bhfad níos tapúla a dhéanamh. Agus is é an cheangal ar aon cheann de na heilimintí 5, sin an cheangal, is é sin cé mhéad cuimhne tú ag dul a bheith ag baint úsáide. Mar sin, tá an cheangal 200. Go teoiriciúil tá i gcónaí faoi cheangal toisc gur féidir slánuimhir ach amháin suas go dtí 4 billiún, ach tá go réalaíoch ó shin ba mhaith linn a bheith ag baint úsáide as spás ar an ord 4 billiún. Mar sin, tá go réalaíoch. Ach anseo beidh muid a rá ár cheangal 200. Is é an trick a dhéanamh i O n linn a dhéanamh eile sraith a dtugtar comhaireamh de mhéid BOUND. Mar sin, i ndáiríre, tá sé seo aicearra le haghaidh - agam nach iarbhír a bhfuil a fhios má dhéanann clang seo. Ach i GCC ar a laghad - a dhéanann clang ag glacadh leis I'm sé ró - beidh sé seo thúsú ach an sraith iomlán a bheith 0s. Mar sin, más rud é nach bhfuil mé ag iarraidh a dhéanamh sin, ansin d'fhéadfadh liom a dhéanamh ar leithligh le haghaidh (slánuimhir i = 0; i > Maith go leor. Thuig mé rud amháin eile nuair a bhí muid ag dul tríd. Sílim go bhfuil an fhadhb a bhí i Lucas agus is dócha gach ceann amháin againn le feiceáil. Rinne mé dearmad go hiomlán. Is é an rud amháin a bhí mé a trácht a dhéanamh ar nuair a bhíonn tú ag déileáil le rudaí mar innéacsanna, tú riamh a fheiceáil i ndáiríre seo nuair a bhíonn tú ag scríobh do lúb, ach go teicniúil, aon uair a bhíonn tú ag déileáil leis na hinnéacsanna, ba chóir duit a deas i gcónaí i bhfad déileáil le slánuimhreacha gan síniú. Is é an chúis atá leis seo nuair a bhíonn tú ag déileáil le slánuimhreacha sínithe, mar sin má tá tú 2 slánuimhreacha sínithe agus cuir tú iad le chéile agus deireadh siad suas ró-mhór, ansin tú deireadh suas le uimhir dhiúltach. Mar sin, go cad é thar maoil slánuimhir. Má cuir mé 2 billiún agus 1 billiún, tá mé deireadh suas le diúltach 1 billiún. Sin conas a oibríonn slánuimhreacha ar ríomhairí. Mar sin, an fhadhb leis úsáid a bhaint as - Go breá ach amháin má tharlaíonn íseal a bheith 2 billiún agus suas tharlaíonn a bheith 1 billiún, ansin tá sé seo ag dul a bheith diúltach 1 billiún agus ansin táimid ag dul a roinnt go bhfuil ag 2 agus deireadh suas le diúltacha 500 milliún. Mar sin, tá sé seo i gceist ach amháin má tharlaíonn tú a bheith ag cuardach trí eagar na billiúin rudaí. Ach má tharlaíonn + íseal go dtí thar maoil, ansin é sin an fhadhb. Chomh luath agus a théimid ar sín iad, ansin tá 2 billiún móide 1 billiún 3 billiún. Tá 3 billiún roinnt ar 2 1.5 billiún. Mar sin, mar a luaithe is atá siad gan síniú, tá gach rud foirfe. Agus mar sin tá go maith i gceist nuair a bhíonn tú ag scríobh do do lúba, agus i ndáiríre, a dhéanann sé is dócha go huathoibríoch. Beidh sé i ndáiríre yell díreach ag tú. Mar sin, má tá an uimhir seo ró-mhór a bheith i slánuimhir ach ach bheadh ​​sé oiriúnach i slánuimhir gan sín, beidh sé yell ag tú, agus mar sin go bhfuil riamh cén fáth a ritheann tú i ndáiríre an cheist. Is féidir leat a fheiceáil go bhfuil riamh innéacs ag dul a bheith diúltach, agus mar sin nuair a bhíonn tú iterating thar eagar, is féidir leat beagnach i gcónaí a rá gan síniú slánuimhir i, ach ní gá duit i ndáiríre go. Tá rudaí ag dul a bheith ag obair go leor i bhfad díreach chomh maith. Maith go leor. [Whispers] Cén t-am é? An rud deireanach bhí mé a thaispeáint - agus beidh mé a dhéanamh go díreach tapaidh sé i ndáiríre. Tá a fhios agat conas ní mór dúinn a shainiú # ionas gur féidir linn a shainiú # MAX mar 5 nó rud éigin? Ní Lig a dhéanamh MAX. # Shainiú BOUND mar 200. Sin an méid a rinne muid roimh. A shainmhíníonn ar tairiseach, atá ag dul díreach a chóipeáil agus a ghreamú cibé áit a tharlóidh linn a scríobh BOUND. Mar sin, is féidir linn a dhéanamh iarbhír níos mó le # sainmhíniú. Is féidir linn a shainiú # feidhmeanna. Nach bhfuil siad i ndáiríre feidhmeanna, ach beidh orainn glaoch orthu a chomhlíonadh. Bheadh ​​Sampla rud éigin cosúil le MAX (x, y) Is é an sainmhíniú (x > Go hidéalach, 14. Is í an tsaincheist sin an chaoi hash sainmhíniú obair, cuimhnigh go bhfuil sé cóip litriúil agus greamaigh gach rud deas i bhfad, mar sin cad tá sé seo ag dul a léirmhíniú mar Tá 3 níos lú ná 1 móide 6, 2 uair 1 móide 6, 2 uair 3. Mar sin, ar an gcúis tú beagnach i gcónaí wrap gach rud i lúibíní. Aon athróg tú beagnach i gcónaí wrap i lúibíní. Tá cásanna nuair nach gá duit a, cosúil le a fhios agam nach gá dom a dhéanamh anseo toisc go bhfuil níos lú ná go leor i bhfad i gcónaí ag dul díreach a bheith ag obair, cé nach fhéadfadh a bheith fiú fíor. Má tá rud éigin ridiculous cosúil le DOUBLE_MAX (1 == 2), ansin go ag dul a fháil in ionad le 3 níos lú ná 1 is ionann is ionann 2, agus mar sin ansin tá sé ag dul a dhéanamh 3 níos lú ná 1, ní go 2 cothrom, nach bhfuil cad ba mhaith linn. Mar sin, d'fhonn cosc ​​ar aon oibreoir fadhbanna tosaíocht, i gcónaí wrap i lúibíní. Maith go leor. Agus sin é, 05:30. Má tá aon cheist agat maidir leis an pset, in iúl dúinn. Ba chóir go mbeadh sé spraoi, agus an t-eagrán hacker freisin i bhfad níos réadúla ná an t-eagrán hacker na bliana seo caite, mar sin tá súil againn go bhfuil iarracht a lán de tú é. Last bliana a bhí an-mór. [CS50.TV]