1 00:00:00,000 --> 00:00:09,560 2 00:00:09,560 --> 00:00:13,120 >> ZAMYLA Chan: lehenengoa duzu agian gauza aurkikuntza buruzko abisua dela dugu dagoeneko 3 00:00:13,120 --> 00:00:14,520 dute kode guretzat idatzitako. 4 00:00:14,520 --> 00:00:16,219 Hau deitzen banaketa kodea. 5 00:00:16,219 --> 00:00:19,060 Beraz, ez ari gara gure kabuz idazten hutsetik kode jada. 6 00:00:19,060 --> 00:00:23,870 Baizik eta, hutsune horretan ari gara betez Aurretik dagoen kode batzuetan. 7 00:00:23,870 --> 00:00:28,860 >> Find.c programaren zenbakiak galderen Lastategi bete, bilatzen du 8 00:00:28,860 --> 00:00:33,260 Erabiltzaileak aurkeztu orratz bat haystack, eta hau ez da sort deituz eta egindako 9 00:00:33,260 --> 00:00:36,660 bilaketa, zehaztutako funtzioak helpers.c in. 10 00:00:36,660 --> 00:00:38,740 Beraz find.c dagoeneko idatzita dagoen. 11 00:00:38,740 --> 00:00:41,840 Zure lana da laguntzaile idazteko. 12 00:00:41,840 --> 00:00:42,940 >> Beraz, zer ari gara egiten? 13 00:00:42,940 --> 00:00:45,270 Oraindik bi funtzioak gauzatzeko dugu. 14 00:00:45,270 --> 00:00:50,110 Bilaketa itzultzen egia bada balio bat aurkituz Lastategi batean, itzuli 15 00:00:50,110 --> 00:00:52,430 faltsua balioa bada Ez haystack en. 16 00:00:52,430 --> 00:00:59,060 Eta gero zu ere sort ezartzeko dugu, eta horrek balore izeneko array ordenatzen du. 17 00:00:59,060 --> 00:01:01,120 Hargatik aurre bilaketa. 18 00:01:01,120 --> 00:01:04,550 >> Une bilaketa inplementatu bilaketa lineal gisa. 19 00:01:04,550 --> 00:01:06,620 Baina hori baino askoz hobea egin dezakezu. 20 00:01:06,620 --> 00:01:11,610 Bilaketa lineala da n O en garatuta denbora, hau da, nahiko motela, nahiz 21 00:01:11,610 --> 00:01:14,920 horri ematen zaion edozein zerrendan bila ditzakezu. 22 00:01:14,920 --> 00:01:21,190 Zure lana da, bilaketa bitarra ezartzeko, horrek denbora O log n exekutatu. 23 00:01:21,190 --> 00:01:22,200 Hori nahiko azkar. 24 00:01:22,200 --> 00:01:24,240 >> Baina han aipatzen da. 25 00:01:24,240 --> 00:01:28,910 Binary bilaketa bakarrik bilatu ahal izango aurrez ordenatuko zerrenden bidez. 26 00:01:28,910 --> 00:01:31,450 Zergatik da hori? 27 00:01:31,450 --> 00:01:33,690 Beno, dezagun adibide bat bilatzeko. 28 00:01:33,690 --> 00:01:37,350 Balioak array bat ematen, haystack, dira bilatzen goaz 29 00:01:37,350 --> 00:01:41,510 orratz bat, eta honetan Adibidez, osokoa 3. 30 00:01:41,510 --> 00:01:45,220 >> Bide bilaketa bitarra duten lan egiten duten erdiko balioa alderatu dugu 31 00:01:45,220 --> 00:01:49,430 orratza array, askoz bezala nola telefono-liburu bat ireki genuen erdialdera 32 00:01:49,430 --> 00:01:51,720 Astea 0 orrialdetan. 33 00:01:51,720 --> 00:01:55,710 Beraz, erdiko balioa alderatuz ondoren orratza, bai baztertu dezakezu 34 00:01:55,710 --> 00:01:59,620 ezker edo eskuinera array erdia Zure mugetatik estutze. 35 00:01:59,620 --> 00:02:04,450 Kasu honetan, 3 urtetik, gure orratz, da 10 baino gutxiago, erdiko balioa da, 36 00:02:04,450 --> 00:02:07,060 eskuinera doazen txikitzeko. 37 00:02:07,060 --> 00:02:09,470 >> Baina saiatu zure mugetatik egiteko ahalik eta estu. 38 00:02:09,470 --> 00:02:12,690 Erdiko balioa ez da orratz bada, orduan badakizu ez duzula behar 39 00:02:12,690 --> 00:02:14,070 edo zure bila. 40 00:02:14,070 --> 00:02:18,390 Beraz, zure eskuineko lotuak estutu ahal du bilaketa mugetatik apur txiki bat besterik ez gehiago, 41 00:02:18,390 --> 00:02:22,840 eta abar eta abar, arte Zure orratz aurkituko duzu. 42 00:02:22,840 --> 00:02:24,580 >> Beraz, zer egiten du sasi kode itxura? 43 00:02:24,580 --> 00:02:28,980 Beno, ez, oraindik bidez bilatzen ari zaren bitartean zerrendan eta oraindik 44 00:02:28,980 --> 00:02:33,540 urtean bilatzeko elementuak, erdikoa hartuko dugu zerrendaren eta alderatu duten 45 00:02:33,540 --> 00:02:36,020 erdian gure orratz balio. 46 00:02:36,020 --> 00:02:38,380 Berdinak dira bada, orduan horrek esan nahi dugu orratza aurkitu, eta ahal dugun 47 00:02:38,380 --> 00:02:40,160 egia itzuliko. 48 00:02:40,160 --> 00:02:43,940 >> Bestela, orratz hori baino gutxiago bada erdiko balioa, orduan horrek esan nahi dugu 49 00:02:43,940 --> 00:02:48,350 eskuineko erdia baztertu eta ezin besterik bilatu ezker array alde. 50 00:02:48,350 --> 00:02:51,860 Bestela, bilatu beharko dugu eskuineko array alde. 51 00:02:51,860 --> 00:02:55,470 Eta amaieran, bada ez duzu inolako elementu gehiago utzi bilatzeko baina zuk 52 00:02:55,470 --> 00:02:58,030 ez dute zure orratz oraindik aurkitu, orduan faltsua itzuliko duzu. 53 00:02:58,030 --> 00:03:02,960 Orratza zalantzarik delako Ez da haystack en. 54 00:03:02,960 --> 00:03:06,200 >> Orain, sasi honi buruz gauza neat bat bilaketa bitarretan kodea da, ahal dela 55 00:03:06,200 --> 00:03:11,000 bai iteratibo gisa interpretatu edo ezartzeko recursive. 56 00:03:11,000 --> 00:03:14,900 Beraz recursive litzateke deitzen baduzu búsqueda barruan funtzioa 57 00:03:14,900 --> 00:03:18,400 array-erdi banatan funtzionatu. 58 00:03:18,400 --> 00:03:20,750 Estaltzen dugu errekurtsibitate pixka bat ikastaroa beranduago. 59 00:03:20,750 --> 00:03:23,210 Baina ez dakit aukera bat dela saiatu nahi baduzu. 60 00:03:23,210 --> 00:03:24,460