1 00:00:00,000 --> 00:00:08,532 >> [MUSIC PLAYING] 2 00:00:08,532 --> 00:00:12,060 >> ZAMYLA Chan: Siz bilər ilk şey tapmaq haqqında xəbərdarlıq edir ki, biz artıq 3 00:00:12,060 --> 00:00:13,450 kodu bizim üçün yazıblar. 4 00:00:13,450 --> 00:00:15,160 Bu distribution kodu adlanır. 5 00:00:15,160 --> 00:00:18,000 Beləliklə, biz yalnız öz yazılı deyilik artıq sıfırdan kodu. 6 00:00:18,000 --> 00:00:22,800 Əksinə, biz boşluqları dolduraraq edirik bəzi pre-mövcud kodu. 7 00:00:22,800 --> 00:00:27,790 >> The find.c proqram nömrələri üçün tələb Bu ot tayası doldurmaq üçün axtarış 8 00:00:27,790 --> 00:00:32,189 bir istifadəçi təqdim iynə ot tayası, və bu cür zəng və bu yoxdur 9 00:00:32,189 --> 00:00:35,590 axtarış, funksiyaları müəyyən helpers.c da. 10 00:00:35,590 --> 00:00:37,670 Belə ki, find.c artıq yazılmışdır. 11 00:00:37,670 --> 00:00:40,770 Sizin iş köməkçiləri yazmaq üçün. 12 00:00:40,770 --> 00:00:41,870 >> Beləliklə, biz nə edirik? 13 00:00:41,870 --> 00:00:44,210 Biz iki funksiyaları həyata edirik. 14 00:00:44,210 --> 00:00:49,030 Doğru qayıdır axtarış, əgər bir dəyər qaytarılması, ot tayası aşkar 15 00:00:49,030 --> 00:00:51,370 yalan dəyəri əgər deyil ot tayası. 16 00:00:51,370 --> 00:00:57,990 Və sonra biz də sort həyata edirik olan dəyərlər adlı array növ. 17 00:00:57,990 --> 00:00:59,960 >> Belə ki, axtarış həll edək. 18 00:00:59,960 --> 00:01:04,560 Axtarış hazırda kimi həyata keçirilir xətti axtarış, lakin daha edə bilərsiniz 19 00:01:04,560 --> 00:01:05,550 daha yaxşı. 20 00:01:05,550 --> 00:01:09,910 Xətti axtarış O həyata keçirilir n vaxt, hansı olduqca yavaş. 21 00:01:09,910 --> 00:01:13,850 Baxmayaraq ki, bu axtarış edə bilərsiniz ona verilmiş hər hansı siyahısı. 22 00:01:13,850 --> 00:01:20,130 Sizin iş ikili axtarış həyata keçirmək, log n vaxt O davam edən. 23 00:01:20,130 --> 00:01:21,130 Bu olduqca sürətli. 24 00:01:21,130 --> 00:01:23,170 >> Amma bir şərt var. 25 00:01:23,170 --> 00:01:27,600 Binary axtarış yalnız axtarış edə bilərsiniz pre-sıralanır siyahıları vasitəsilə. 26 00:01:27,600 --> 00:01:30,370 Niyə ki? 27 00:01:30,370 --> 00:01:32,620 >> Yaxşı bir misal baxaq. 28 00:01:32,620 --> 00:01:36,280 Dəyərlərin bir sıra nəzərə alaraq, ot tayası, biz axtarır olacaq 29 00:01:36,280 --> 00:01:37,130 bir iynə. 30 00:01:37,130 --> 00:01:40,460 Və bu nümunə, tam üç. 31 00:01:40,460 --> 00:01:44,130 Ikili axtarış çalışır ki, yol ki, biz orta dəyəri müqayisə 32 00:01:44,130 --> 00:01:48,370 çox kimi iynə üçün array, necə biz orta kitabçasını açdı 33 00:01:48,370 --> 00:01:50,660 Həftə sıfır səhifə. 34 00:01:50,660 --> 00:01:54,650 >> Belə ki, üçün orta dəyər müqayisə sonra iynə, ya imtina edə bilər 35 00:01:54,650 --> 00:01:58,530 sol və ya serialın sağ yarım Sizin həddi daralma ilə. 36 00:01:58,530 --> 00:02:03,390 Bu halda, üç ildən, bizim iynə, az 10, orta dəyəri, edir 37 00:02:03,390 --> 00:02:05,990 sağ bound azalda bilər. 38 00:02:05,990 --> 00:02:08,400 Lakin həddi etmək üçün cəhd mümkün qədər sıx. 39 00:02:08,400 --> 00:02:11,630 Orta dəyəri iynə deyilsə, sonra sizə lazım deyil ki, bilirik 40 00:02:11,630 --> 00:02:13,010 axtarış daxil. 41 00:02:13,010 --> 00:02:17,310 Beləliklə, siz sağ bound etdiyiniz bərkidin bilər yalnız kiçik bir bit daha search həddi, 42 00:02:17,310 --> 00:02:21,770 və s və s qədər Siz iynə tapa bilərsiniz. 43 00:02:21,770 --> 00:02:23,480 >> Belə ki, nə pseudocode kimi görünür? 44 00:02:23,480 --> 00:02:28,420 Biz hələ aradığınız isə yaxşı siyahısı və hələ elementləri var 45 00:02:28,420 --> 00:02:33,690 baxmaq, biz siyahısı ortasında almaq və orta dəyəri müqayisə 46 00:02:33,690 --> 00:02:34,950 bizim iynə. 47 00:02:34,950 --> 00:02:37,310 Onlar bərabər etdiyiniz, onda ki, biz var deməkdir iynə aşkar və biz 48 00:02:37,310 --> 00:02:38,990 doğru geri. 49 00:02:38,990 --> 00:02:42,870 >> Əks halda, iynə az olduqda orta dəyəri, sonra ki, biz deməkdir 50 00:02:42,870 --> 00:02:47,280 sağ yarım imtina və yalnız bilər serialın sol axtarış. 51 00:02:47,280 --> 00:02:51,090 Əks halda, biz axtarış lazımdır Serialın sağ. 52 00:02:51,090 --> 00:02:54,410 Və sonunda, əgər hər hansı bir yoxdur daha axtarmaq üçün sol elementləri ancaq 53 00:02:54,410 --> 00:02:58,050 Əgər hələ iynə tapılmadı yalan qayıtmaq çünki iynə 54 00:02:58,050 --> 00:03:01,890 mütləq ot tayası deyil. 55 00:03:01,890 --> 00:03:05,270 >> Bu pseudocode haqqında artıq bir səliqəli şey ikili axtarış ola bilər ki, 56 00:03:05,270 --> 00:03:09,940 bir iterative ya kimi şərh və ya recursive həyata keçirilməsi. 57 00:03:09,940 --> 00:03:13,810 Adlı əgər Belə ki, recursive olacaq Axtarış ərzində axtarış funksiyası 58 00:03:13,810 --> 00:03:17,350 Serialın ya yarısında fəaliyyət göstərir. 59 00:03:17,350 --> 00:03:21,030 Biz bir az sonra da recursion əhatə edəcəyik Əlbəttə, lakin bir olduğunu bilirik 60 00:03:21,030 --> 00:03:24,190 seçimi cəhd istəyirsinizsə. 61 00:03:24,190 --> 00:03:26,030 >> İndi növ baxaq. 62 00:03:26,030 --> 00:03:30,750 Sort bir sıra və tam edir serialın ölçüsü olan n. 63 00:03:30,750 --> 00:03:34,030 İndi müxtəlif növləri var növ, və bəzi baxmaq olar 64 00:03:34,030 --> 00:03:36,370 demoları və izahat şort. 65 00:03:36,370 --> 00:03:39,580 Üçün qaytarılması növü bizim sort funksiyası etibarsız edir. 66 00:03:39,580 --> 00:03:43,580 Belə ki, biz fikrində deyilik o deməkdir ki, sort hər hansı bir sıra qayıtmaq üçün. 67 00:03:43,580 --> 00:03:48,140 Biz, həqiqətən, çox dəyişiklik olacaq bizə daxil köçürdü array. 68 00:03:48,140 --> 00:03:52,290 >> Diziler, çünki mümkündür biz İndi C. istinad lazımdır keçdi 69 00:03:52,290 --> 00:03:55,290 sonra bu barədə daha çox görmək, lakin keçən arasında əsas fərq 70 00:03:55,290 --> 00:03:59,340 tam və keçən kimi bir şey bir sıra olduğunu zaman 71 00:03:59,340 --> 00:04:03,490 bir tam keçmək, C yalnız gedir ki, tam surəti və keçmək 72 00:04:03,490 --> 00:04:04,450 funksiyası üçün. 73 00:04:04,450 --> 00:04:08,530 Orijinal dəyişən dəyişdirilə bilməz funksiyası başa dəfə. 74 00:04:08,530 --> 00:04:12,480 Bir sıra ilə, digər tərəfdən, bu surəti etmək olacaq və siz deyil 75 00:04:12,480 --> 00:04:17,910 həqiqətən redaktə ediləcək çox array özü. 76 00:04:17,910 --> 00:04:21,269 >> Belə ki, növ bir növü seçim sort. 77 00:04:21,269 --> 00:04:24,750 Seçim sort başlayan çalışır Siz təkrarlamaq sonra başlanğıcı, 78 00:04:24,750 --> 00:04:26,820 üzərində və kiçik element tapa bilərsiniz. 79 00:04:26,820 --> 00:04:30,710 Və sonra dəyişdirmək ki, kiçik ilk bir ilə element. 80 00:04:30,710 --> 00:04:34,360 Və sonra ikinci element hərəkət , Növbəti kiçik tapmaq 81 00:04:34,360 --> 00:04:38,320 sonra element və dəyişdirmək ki, ilə serialın ikinci element çünki 82 00:04:38,320 --> 00:04:41,100 ilk element artıq çeşidlənir. 83 00:04:41,100 --> 00:04:45,370 Və sonra hər davam kiçik müəyyən element 84 00:04:45,370 --> 00:04:47,690 dəyər və onu dəyişdirmə. 85 00:04:47,690 --> 00:04:53,460 >> 0, ilk element bərabərdir üçün n minus 1, siz müqayisə etmək olacaq 86 00:04:53,460 --> 00:04:57,820 hər növbəti sonra dəyər və tapmaq minimum dəyər index. 87 00:04:57,820 --> 00:05:02,520 Siz minimum dəyəri indeksi tapmaq, Siz array ki, dəyəri dəyişdirmək olar 88 00:05:02,520 --> 00:05:05,930 minimum və array I. 89 00:05:05,930 --> 00:05:09,760 >> Növ bir növü ki, siz həyata bubble sırala edir. 90 00:05:09,760 --> 00:05:14,380 Siyahıda üzərində belə bubble sırala iterates bitişik elementləri və müqayisə 91 00:05:14,380 --> 00:05:17,720 elementləri dəyişdirmə ki, səhv üçün var. 92 00:05:17,720 --> 00:05:22,380 Və bu yol, ən böyük element bubble sonuna edəcək. 93 00:05:22,380 --> 00:05:28,070 Və siyahıdan bir dəfə bir daha çeşidlənir elementləri dəyişdirildikdə edilmişdir. 94 00:05:28,070 --> 00:05:31,920 >> Belə ki, həmin növ iki misaldır sizin üçün həyata bilər ki, alqoritmlər 95 00:05:31,920 --> 00:05:33,230 tapmaq program. 96 00:05:33,230 --> 00:05:37,350 Siz sort bitirmək və siz var bir dəfə axtarış həyata, başa edirik. 97 00:05:37,350 --> 00:05:39,720 My name Zamyla və bu CS50 edir. 98 00:05:39,720 --> 00:05:46,987 >> [MUSIC PLAYING]