>> [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]