1 00:00:00,000 --> 00:00:09,560 2 00:00:09,560 --> 00:00:13,120 >> ZAMYLA Chan: Siz bilər ilk şey tapmaq haqqında xəbərdarlıq edir ki, biz artıq 3 00:00:13,120 --> 00:00:14,520 kodu bizim üçün yazıblar. 4 00:00:14,520 --> 00:00:16,219 Bu distribution kodu adlanır. 5 00:00:16,219 --> 00:00:19,060 Beləliklə, biz yalnız öz yazılı deyilik artıq sıfırdan kodu. 6 00:00:19,060 --> 00:00:23,870 Əksinə, biz boşluqları dolduraraq edirik bəzi pre-mövcud kodu. 7 00:00:23,870 --> 00:00:28,860 >> The find.c proqram nömrələri üçün tələb Bu ot tayası doldurmaq üçün axtarış 8 00:00:28,860 --> 00:00:33,260 bir istifadəçi təqdim iynə ot tayası, və bu cür zəng və bu yoxdur 9 00:00:33,260 --> 00:00:36,660 axtarış, funksiyaları müəyyən helpers.c da. 10 00:00:36,660 --> 00:00:38,740 Belə ki, find.c artıq yazılmışdır. 11 00:00:38,740 --> 00:00:41,840 Sizin iş köməkçiləri yazmaq üçün. 12 00:00:41,840 --> 00:00:42,940 >> Beləliklə, biz nə edirik? 13 00:00:42,940 --> 00:00:45,270 Biz iki funksiyaları həyata edirik. 14 00:00:45,270 --> 00:00:50,110 Doğru qayıdır axtarış, əgər bir dəyər qaytarılması, ot tayası aşkar 15 00:00:50,110 --> 00:00:52,430 yalan dəyəri əgər deyil ot tayası. 16 00:00:52,430 --> 00:00:59,060 Və sonra biz də sort həyata edirik, olan dəyərlər adlı array növ. 17 00:00:59,060 --> 00:01:01,120 Belə ki, axtarış həll edək. 18 00:01:01,120 --> 00:01:04,550 >> Axtarış hazırda həyata keçirilir xətti axtarış kimi. 19 00:01:04,550 --> 00:01:06,620 Amma siz ki, daha yaxşı edə bilərsiniz. 20 00:01:06,620 --> 00:01:11,610 Xətti axtarış n O həyata keçirilir olduqca yavaş olan zaman, bu, baxmayaraq 21 00:01:11,610 --> 00:01:14,920 ona verilmiş hər hansı siyahısı axtarış edə bilərsiniz. 22 00:01:14,920 --> 00:01:21,190 Sizin iş ikili axtarış həyata keçirmək, log n vaxt O davam edən. 23 00:01:21,190 --> 00:01:22,200 Bu olduqca sürətli. 24 00:01:22,200 --> 00:01:24,240 >> Amma bir şərt var. 25 00:01:24,240 --> 00:01:28,910 Binary axtarış yalnız axtarış edə bilərsiniz pre-sıralanır siyahıları vasitəsilə. 26 00:01:28,910 --> 00:01:31,450 Niyə ki? 27 00:01:31,450 --> 00:01:33,690 Yaxşı, bir misal baxaq. 28 00:01:33,690 --> 00:01:37,350 Dəyərlərin bir sıra nəzərə alaraq, ot tayası, biz axtarır olacaq 29 00:01:37,350 --> 00:01:41,510 bir iynə, və bu Məsələn, tam 3. 30 00:01:41,510 --> 00:01:45,220 >> Ikili axtarış çalışır ki, yol ki, biz orta dəyəri müqayisə 31 00:01:45,220 --> 00:01:49,430 çox kimi iynə üçün array, necə biz ortada bir telefon kitab açdı 32 00:01:49,430 --> 00:01:51,720 Həftə 0 səhifə. 33 00:01:51,720 --> 00:01:55,710 Belə ki, üçün orta dəyər müqayisə sonra iynə, ya imtina edə bilər 34 00:01:55,710 --> 00:01:59,620 sol və ya serialın sağ yarım Sizin həddi daralma ilə. 35 00:01:59,620 --> 00:02:04,450 Bu halda, 3 ildən, bizim iynə edir az 10, orta dəyəri, 36 00:02:04,450 --> 00:02:07,060 sağ bound azalda bilər. 37 00:02:07,060 --> 00:02:09,470 >> Lakin həddi etmək üçün cəhd mümkün qədər sıx. 38 00:02:09,470 --> 00:02:12,690 Orta dəyəri iynə deyilsə, sonra sizə lazım deyil ki, bilirik 39 00:02:12,690 --> 00:02:14,070 axtarış daxil. 40 00:02:14,070 --> 00:02:18,390 Belə ki, bağlı sağ bərkidin bilər yalnız kiçik bir bit daha search həddi, 41 00:02:18,390 --> 00:02:22,840 və s və s qədər Siz iynə tapa bilərsiniz. 42 00:02:22,840 --> 00:02:24,580 >> Belə ki, yalançı nə edir kodu kimi baxmaq? 43 00:02:24,580 --> 00:02:28,980 Bəli, biz hələ də axtarır etdiyiniz zaman siyahısı və hələ də 44 00:02:28,980 --> 00:02:33,540 baxmaq elementləri, biz ortasında almaq siyahısı və müqayisə 45 00:02:33,540 --> 00:02:36,020 Bizim iynə orta dəyəri. 46 00:02:36,020 --> 00:02:38,380 Onlar bərabər etdiyiniz, onda ki, biz var deməkdir iynə gördük və biz 47 00:02:38,380 --> 00:02:40,160 doğru geri. 48 00:02:40,160 --> 00:02:43,940 >> Əks halda, iynə az olduqda orta dəyəri, sonra ki, biz deməkdir 49 00:02:43,940 --> 00:02:48,350 yalnız sağ yarım imtina edə bilər serialın sol axtarış. 50 00:02:48,350 --> 00:02:51,860 Əks halda, biz axtarış lazımdır Serialın sağ. 51 00:02:51,860 --> 00:02:55,470 Və sonunda, əgər hər hansı bir yoxdur daha axtarmaq üçün sol elementləri ancaq 52 00:02:55,470 --> 00:02:58,030 hələ iynə tapılmadı, sonra saxta qayıtmaq. 53 00:02:58,030 --> 00:03:02,960 Iynə mütləq, çünki ot tayası deyil. 54 00:03:02,960 --> 00:03:06,200 >> İndi, bu yalançı bir səliqəli şey ikili axtarış kodu bilər ki 55 00:03:06,200 --> 00:03:11,000 bir iterative ya kimi təfsir edilə və ya recursive həyata keçirilməsi. 56 00:03:11,000 --> 00:03:14,900 Adlı əgər Belə ki, recursive olacaq Axtarış ərzində axtarış funksiyası 57 00:03:14,900 --> 00:03:18,400 Serialın ya yarısında fəaliyyət göstərir. 58 00:03:18,400 --> 00:03:20,750 Biz recursion bir az əhatə edəcəyik sonra kurs. 59 00:03:20,750 --> 00:03:23,210 Amma bu bir seçim olduğunu bilmirəm Siz cəhd istəyirsinizsə. 60 00:03:23,210 --> 00:03:24,460