>> 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.
>> Une bilaketa inplementatu bilaketa lineal gisa.
Baina hori baino askoz hobea egin dezakezu.
Bilaketa lineala da n O en garatuta denbora, hau da, nahiko motela, nahiz
horri ematen zaion edozein zerrendan bila ditzakezu.
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 honetan Adibidez, osokoa 3.
>> Bide bilaketa bitarra duten lan egiten duten erdiko balioa alderatu dugu
orratza array, askoz bezala nola telefono-liburu bat ireki genuen erdialdera
Astea 0 orrialdetan.
Beraz, erdiko balioa alderatuz ondoren orratza, bai baztertu dezakezu
ezker edo eskuinera array erdia Zure mugetatik estutze.
Kasu honetan, 3 urtetik, gure orratz, da 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, zure eskuineko lotuak estutu ahal du bilaketa mugetatik apur txiki bat besterik ez gehiago,
eta abar eta abar, arte Zure orratz aurkituko duzu.
>> Beraz, zer egiten du sasi kode itxura?
Beno, ez, oraindik bidez bilatzen ari zaren bitartean zerrendan eta oraindik
urtean bilatzeko elementuak, erdikoa hartuko dugu zerrendaren eta alderatu duten
erdian gure orratz balio.
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 eta ezin 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, orduan faltsua itzuliko duzu.
Orratza zalantzarik delako Ez da haystack en.
>> Orain, sasi honi buruz gauza neat bat bilaketa bitarretan kodea da, ahal dela
bai iteratibo gisa interpretatu edo ezartzeko recursive.
Beraz recursive litzateke deitzen baduzu búsqueda barruan funtzioa
array-erdi banatan funtzionatu.
Estaltzen dugu errekurtsibitate pixka bat ikastaroa beranduago.
Baina ez dakit aukera bat dela saiatu nahi baduzu.