1 00:00:00,000 --> 00:00:09,560 2 00:00:09,560 --> 00:00:13,120 >> ZAMYLA Chan: Az első dolog, amit értesítést találni, hogy már 3 00:00:13,120 --> 00:00:14,520 már kódot írt nekünk. 4 00:00:14,520 --> 00:00:16,219 Ez az úgynevezett elosztási kód. 5 00:00:16,219 --> 00:00:19,060 Szóval nem csak írásban, a saját kódot a semmiből többé. 6 00:00:19,060 --> 00:00:23,870 Inkább mi kitöltésével üregek néhány már meglévő kódot. 7 00:00:23,870 --> 00:00:28,860 >> A beolvasása sikertelen program rákérdez a számok , hogy töltse ki a szénakazalban, megkeresi a 8 00:00:28,860 --> 00:00:33,260 szénaboglya a felhasználó benyújtott tű, és ez teszi ezt hívja a fajta és a 9 00:00:33,260 --> 00:00:36,660 keresés funkciók meghatározása A helpers.c. 10 00:00:36,660 --> 00:00:38,740 Tehát elérése sikertelen van írva már. 11 00:00:38,740 --> 00:00:41,840 Az Ön feladata, hogy írjon segítők. 12 00:00:41,840 --> 00:00:42,940 >> Szóval, mit csinálunk? 13 00:00:42,940 --> 00:00:45,270 Mi végrehajtása két funkciója van. 14 00:00:45,270 --> 00:00:50,110 Search, amely igazat ad vissza, ha az érték megtalálható a szénakazalban, visszatérő 15 00:00:50,110 --> 00:00:52,430 hamis, ha az érték nem a szénakazalban. 16 00:00:52,430 --> 00:00:59,060 És akkor mi is végrehajtási sort, amely rendezi a tömb neve értékeket. 17 00:00:59,060 --> 00:01:01,120 Úgyhogy kezelni keresést. 18 00:01:01,120 --> 00:01:04,550 >> Keresés jelenleg megvalósított lineáris keresést. 19 00:01:04,550 --> 00:01:06,620 De meg tudod csinálni sokkal jobb, mint ezt. 20 00:01:06,620 --> 00:01:11,610 Lineáris keresést végrehajtani O n idő, ami elég lassú, bár 21 00:01:11,610 --> 00:01:14,920 lehet keresni bármilyen lista adott hozzá. 22 00:01:14,920 --> 00:01:21,190 Az Ön feladata, hogy végre bináris keresés, amely a futási idő O log n. 23 00:01:21,190 --> 00:01:22,200 Ez elég gyors. 24 00:01:22,200 --> 00:01:24,240 >> De van egy kikötés. 25 00:01:24,240 --> 00:01:28,910 Bináris keresés csak keresni a előválogatva listákat. 26 00:01:28,910 --> 00:01:31,450 Miért van ez? 27 00:01:31,450 --> 00:01:33,690 Nos, nézzük meg egy példát. 28 00:01:33,690 --> 00:01:37,350 Mivel az értékek tömbjét, a szénakazalban, fogunk keresni 29 00:01:37,350 --> 00:01:41,510 egy tűt, és ebben a Például, a 3 egész szám. 30 00:01:41,510 --> 00:01:45,220 >> Az út, hogy a bináris keresés működik, hogy a összehasonlítjuk a közép értéke 31 00:01:45,220 --> 00:01:49,430 A tömb a tű, ugyanúgy, mint, hogy hogyan nyitottunk egy telefonkönyvet a középső 32 00:01:49,430 --> 00:01:51,720 oldal 0. héten. 33 00:01:51,720 --> 00:01:55,710 Tehát miután összehasonlítva a közép-értéket a tű, akkor dobja ki vagy a 34 00:01:55,710 --> 00:01:59,620 a bal vagy a jobb fele a tömb szigorításával a határokat. 35 00:01:59,620 --> 00:02:04,450 Ebben az esetben, mivel 3, a mi tű van kevesebb, mint 10, a középső érték, 36 00:02:04,450 --> 00:02:07,060 jobbra kötött csökkentheti. 37 00:02:07,060 --> 00:02:09,470 >> De próbálja meg, hogy a határt szoros amennyire csak lehetséges. 38 00:02:09,470 --> 00:02:12,690 Ha a középső érték nem a tűt, akkor tudja, hogy nem kell 39 00:02:12,690 --> 00:02:14,070 tartalmazza azt a keresésben. 40 00:02:14,070 --> 00:02:18,390 Tehát a jobb kötve húzza meg a Keresés korlátok csak egy kicsit nagyobb, 41 00:02:18,390 --> 00:02:22,840 és így tovább és így tovább, amíg megtalálni a tűt. 42 00:02:22,840 --> 00:02:24,580 >> Tehát mit csinál az ál code néz ki? 43 00:02:24,580 --> 00:02:28,980 Nos, míg mi még mindig keresi a a listát, és még 44 00:02:28,980 --> 00:02:33,540 elemeket, hogy vizsgálja meg, vesszük a középső a lista, és hasonlítsa össze, hogy 45 00:02:33,540 --> 00:02:36,020 közepes értéket a tűt. 46 00:02:36,020 --> 00:02:38,380 Ha ők azonos, akkor ez azt jelenti, hogy már találta a tűt, és mi is 47 00:02:38,380 --> 00:02:40,160 vissza igaz. 48 00:02:40,160 --> 00:02:43,940 >> Ellenkező esetben, ha az kisebb, mint a tű a középső érték, akkor ez azt jelenti, 49 00:02:43,940 --> 00:02:48,350 eldobhatja a jobb fele, és csak keresés a bal oldalán a tömb. 50 00:02:48,350 --> 00:02:51,860 Ellenkező esetben, akkor keresni a jobb oldalán a tömb. 51 00:02:51,860 --> 00:02:55,470 És a végén, ha nincs több elem maradt keresni, de 52 00:02:55,470 --> 00:02:58,030 nem találtam a tű még, akkor return false. 53 00:02:58,030 --> 00:03:02,960 Mivel a tűt határozottan nem a szénakazalban. 54 00:03:02,960 --> 00:03:06,200 >> Most, egy szép dolog ez a pszeudo kód bináris keresés az, hogy ez 55 00:03:06,200 --> 00:03:11,000 kell értelmezni, mint akár egy iteratív vagy rekurzív végrehajtás. 56 00:03:11,000 --> 00:03:14,900 Így lenne rekurzív, ha hívják A keresési funkció a keresési 57 00:03:14,900 --> 00:03:18,400 működni mindkét fele a tömb. 58 00:03:18,400 --> 00:03:20,750 Majd kiterjed rekurzió egy kicsit később a kurzus. 59 00:03:20,750 --> 00:03:23,210 De tudom, hogy ez egy lehetőség ha szeretnéd kipróbálni. 60 00:03:23,210 --> 00:03:24,460