[Musika jotzen] ZAMYLA Chan: lehenengoa duzu agian gauza aurkikuntza buruzko abisua dela dugu dagoeneko dute kode guretzat idatzitako. Hau deitzen banaketa kodea. Beraz, ez ari gara gure kabuz idazten hutsetik kode jada. Baizik eta, hutsune horretan ari gara betez Aurretik dagoen kode batzuetan. Find.c programaren zenbakiak galderen Lastategi bete, bilatzen du Erabiltzaileak aurkeztu orratz bat haystack, eta hau ez da sort deituz eta egindako bilaketa, zehaztutako funtzioak helpers.c in. Beraz find.c dagoeneko idatzita dagoen. Zure lana da laguntzaile idazteko. Beraz, zer ari gara egiten? Oraindik bi funtzioak gauzatzeko dugu. Bilaketa itzultzen egia bada balio bat aurkituz Lastategi batean, itzuli faltsua balioa bada Ez haystack en. Eta gero zu ere sort ezartzeko dugu eta horrek balore izeneko array ordenatzen du. Hargatik aurre bilaketa. Search gaur egun gisa ezarri da bilaketa lineala, baina asko egin dezakezu hori baino hobea. Bilaketa lineala da O en garatuta n Denbora-, nahiko motela da. Arren, bilatu daiteke horri ematen zaion edozein zerrenda. Zure lana da, bilaketa bitarra ezartzeko, horrek denbora O log n exekutatu. Hori nahiko azkar. Baina han aipatzen da. Binary bilaketa bakarrik bilatu ahal izango aurrez ordenatuko zerrenden bidez. Zergatik da hori? Beno dezagun adibide bat bilatzeko. Balioak array bat ematen, haystack, dira bilatzen goaz orratz bat. Eta adibide honetan, osokoa hiru. Bide bilaketa bitarra duten lan egiten duten erdiko balioa alderatu dugu orratza array, askoz bezala nola phonebook bat ireki genuen erdialdera Aste zero orri. Beraz, erdiko balioa alderatuz ondoren orratza, bai baztertu dezakezu ezker edo eskuinera array erdia Zure mugetatik estutze. Kasu honetan, hiru urtetik, gure orratz, 10 baino gutxiago, erdiko balioa da, eskuinera doazen txikitzeko. Baina saiatu zure mugetatik egiteko ahalik eta estu. Erdiko balioa ez da orratz bada, orduan badakizu ez duzula behar edo zure bila. Beraz, eskubidea duzu doazen estutu ahal du bilaketa mugetatik apur txiki bat besterik ez gehiago, eta abar eta abar arte Zure orratz aurkituko duzu. Beraz, zer pseudocode itxura? Bidez, oraindik dugu bilatzen ari zaren ongi bitartean zerrendan eta oraindik elementu izan begiratu batean, zerrendaren erdian hartuko dugu, eta erdiko balioa duten konparatzeko gure orratza. Berdinak dira bada, orduan horrek esan nahi dugu orratza aurkitu eta ahal dugun egia itzuliko. Bestela, orratz hori baino gutxiago bada erdiko balioa, orduan horrek esan nahi dugu eskuineko erdia baztertu dezake, eta besterik bilatu ezker array alde. Bestela, bilatu beharko dugu eskuineko array alde. Eta amaieran, bada ez duzu inolako elementu gehiago utzi bilatzeko baina zuk ez dute zure orratz oraindik aurkitu, eta gero zuk itzultzeko faltsua delako orratza zalantzarik ez da haystack en. Orain pseudocode honi buruz gauza neat bilaketa bitarra dela izan daiteke bai iteratibo gisa interpretatu edo ezartzeko recursive. Beraz recursive litzateke deitzen baduzu búsqueda barruan funtzioa array-erdi banatan funtzionatu. Errekurtsibitate pixka bat geroago estaliko dugu noski, baina ez dakit bat dela Aukera batzuk frogatu nahi izanez gero. Orain dezagun moduko at. Sort array bat eta zenbaki oso hartzen du n, eta hori array-tamaina da. Orain daude, hainbat mota ezberdinak daude ordenatzen, eta batzuk begiratu dezakezu demoak eta azalpenak film laburrak. Bueltan motaren gure moduko funtzioa void da. Beraz, horrek esan nahi du ari ez garela joan edozein array itzultzeko moduko batetik. Benetan ari gara oso aldatuko array izan zen gurekin pasa. Eta hori posible da array daudelako C. erreferentzia gainditu orain dugu ikusten honi buruz gehiago geroago, baina joana arteko funtsezko aldea zenbaki oso bat eta joana antzeko zerbait array bat, dela duzunean zenbaki oso bat pasatzeko, C besterik ez da joan osokoa dela kopia bat egin eta gainditu funtzioa da. Jatorrizko aldagaia ez dela aldatuko behin funtzioa amaitu da. Array bat, beste alde batetik, ez da ez eta kopia bat egiteko, egiten duzu, benetan editatzen du Oso array bera. Beraz moduko mota bat da hautaketa ordena. Aukeraketa sort hasita lanak hasieran, eta, ondoren, batetik bestera joateko baino gehiago eta elementu txikiena aurkitzeko. Eta, ondoren trukatzeko duzun txikiena lehenengoa elementu. Eta, ondoren, eraman du bigarren elementu dizu , Aurkitu hurrengo txikiena elementua, eta ondoren trukatu duten batera array bigarren elementua delako lehenengo elementua dagoeneko ordenatuko da. Eta beraz, ondoren, behin jarraituko duzu txikiena identifikatzeko elementu balioa eta aldaketa. I funtzioak 0, lehen elementua n ken 1, ari alderatu zoazen hurrengo balioa bakoitza ondoren eta jakin gutxieneko balioa indizea. Behin gutxieneko balioa indizea aurkituko duzu, array balioa duten swap dezakezu gutxieneko eta array I. Moduko beste mota bat, ahal duzun ezartzeko burbuila moduko da. Beraz, burbuila moduko zerrendan zehar iterates ondoko elementu eta alderatzea elementuen aldaketa horrek okerreko ordenean daude. Eta modu horretan, elementu handiena burbuila amaieran. Eta zerrenda behin no gehiago ordenatuko da elementu izan trukatuko dira. Beraz, horiek dira bi moduko adibiderik duzula ezartzeko ahal izango algoritmoak Aurkikuntza programan. Moduko amaitu ondoren, eta duzun Egin bilaketa, zu amaitu. Nire izena Zamyla da, eta hau da CS50. [Musika jotzen]