1 00:00:00,000 --> 00:00:13,300 2 00:00:13,300 --> 00:00:15,010 >> Rob Bowden: Hi, Mən Rob deyiləm. 3 00:00:15,010 --> 00:00:16,790 Necə bir ikili axtarış istifadə edirlər? 4 00:00:16,790 --> 00:00:18,770 Tapmaq edək. 5 00:00:18,770 --> 00:00:23,400 Belə ki, bu axtarış gedirik Qeyd edək ki, recursively həyata keçirmək. 6 00:00:23,400 --> 00:00:27,470 Siz həmçinin ikili axtarış həyata bilər iteratively, belə ki, əgər, 7 00:00:27,470 --> 00:00:29,280 ki, mükəmməl gözəl var. 8 00:00:29,280 --> 00:00:32,820 >> İndi ilk nin unutmayın edək nə axtarış parametrləri olmaq üçün nəzərdə tutulub. 9 00:00:32,820 --> 00:00:36,120 Burada, biz olan int dəyər bax istifadəçi dəyəri ehtimal 10 00:00:36,120 --> 00:00:37,320 üçün axtarış. 11 00:00:37,320 --> 00:00:40,800 Biz int dəyərlər array, olan biz istəyirik ki, array 12 00:00:40,800 --> 00:00:42,520 dəyər üçün axtarış. 13 00:00:42,520 --> 00:00:45,602 Və biz olan, int n bax bizim serialın uzunluğu. 14 00:00:45,602 --> 00:00:47,410 >> İndi, ilk şey ilk. 15 00:00:47,410 --> 00:00:51,350 Biz n, 0 bərabərdir görmek üçün yoxlamaq biz yalan olan halda. 16 00:00:51,350 --> 00:00:54,770 Biz boş varsa ki, yalnız deyərək oldu array, dəyər aydın deyil 17 00:00:54,770 --> 00:00:57,860 boş array, biz yalan ola bilər. 18 00:00:57,860 --> 00:01:01,250 >> İndi, biz, həqiqətən ikili etmək istəyirəm Binar axtarış axtarış hissəsidir. 19 00:01:01,250 --> 00:01:04,780 Belə ki, biz orta tapmaq istəyirsinizsə bu serialın element. 20 00:01:04,780 --> 00:01:09,130 Burada, biz orta bölünür n bərabərdir demək 2, orta element çünki 21 00:01:09,130 --> 00:01:12,240 uzunluğu olacaq bizim array 2 bölünür. 22 00:01:12,240 --> 00:01:15,040 İndi biz kontrol olacaq əgər orta element biz istəyirik dəyərinə bərabərdir 23 00:01:15,040 --> 00:01:16,160 üçün axtarış. 24 00:01:16,160 --> 00:01:21,030 Dəyərlər orta dəyərinə bərabərdir Belə ki, biz biz aşkar ildən doğru ola bilər 25 00:01:21,030 --> 00:01:22,810 bizim array dəyəri. 26 00:01:22,810 --> 00:01:26,380 >> Lakin bu doğru deyil, əgər, indi biz recursive etmək lazımdır 27 00:01:26,380 --> 00:01:27,840 Binar axtarış addım. 28 00:01:27,840 --> 00:01:30,450 Biz ya axtarmaq lazımdır serialın və ya sol 29 00:01:30,450 --> 00:01:32,320 serialın orta. 30 00:01:32,320 --> 00:01:39,280 Orta dəyərlər Belə ki, burada biz demək dəyəri az, ki, dəyəri deməkdir 31 00:01:39,280 --> 00:01:41,350 ortada daha böyük idi Serialın. 32 00:01:41,350 --> 00:01:45,790 Belə ki, dəyəri sağ olmalıdır biz yalnız baxdı ki, element. 33 00:01:45,790 --> 00:01:48,090 >> Belə ki, burada biz olacaq recursively axtarış. 34 00:01:48,090 --> 00:01:50,320 Və biz keçən olduğunuz baxmaq lazımdır ikinci bu. 35 00:01:50,320 --> 00:01:53,440 Amma biz üçün axtarış olacaq orta element hüququ. 36 00:01:53,440 --> 00:01:57,710 Və digər halda, o deməkdir ki, dəyəri ortasında az idi 37 00:01:57,710 --> 00:02:00,660 array, və biz olacaq sol axtarış. 38 00:02:00,660 --> 00:02:03,520 İndi, sol olacaq bir az daha asan baxmaq. 39 00:02:03,520 --> 00:02:07,770 Belə ki, biz recursively istəyirik ki, burada baxın burada ilk axtarış zəng 40 00:02:07,770 --> 00:02:10,120 arqument yenə dəyəri biz artıq arıyorsanız. 41 00:02:10,120 --> 00:02:14,970 İkinci arqument olacaq edir biz artıq axtarış ki, array. 42 00:02:14,970 --> 00:02:17,090 Və son element indi orta edir. 43 00:02:17,090 --> 00:02:21,650 Son parametri bizim int saxla n ki, bizim serialın uzunluğu belə. 44 00:02:21,650 --> 00:02:25,310 >> Axtarış recursive zəng, biz istəyirik indi söyləyən uzunluğu 45 00:02:25,310 --> 00:02:27,230 array orta edir. 46 00:02:27,230 --> 00:02:32,900 Belə ki, bizim array ölçüsü 20 və biz idi əgər orta, çünki indeksi 10 axtarış 47 00:02:32,900 --> 00:02:36,930 20 2 bölünür ki, biz istəyirik deməkdir yeni kimi 10 keçən 48 00:02:36,930 --> 00:02:38,300 bizim serialın uzunluğu. 49 00:02:38,300 --> 00:02:41,910 Xatırla ki, bir sıra zaman uzunluğu 10, ki, etibarlı deməkdir 50 00:02:41,910 --> 00:02:45,450 elementlər 0 9 göstəriciləri. 51 00:02:45,450 --> 00:02:50,120 Belə ki, bu biz istədiyiniz tam olaraq budur sol - bizim yenilənir array daxil 52 00:02:50,120 --> 00:02:53,010 orta element array. 53 00:02:53,010 --> 00:02:55,710 >> Belə ki, sağ axtarır bir az daha çətin. 54 00:02:55,710 --> 00:03:00,170 İndi ilk, ən uzunluğu hesab edək Bu hüququ serialın 55 00:03:00,170 --> 00:03:01,240 orta element. 56 00:03:01,240 --> 00:03:08,390 Belə ki, bizim array ölçüsü n idi, onda yeni array ölçüsü n minus olacaq 57 00:03:08,390 --> 00:03:10,140 orta minus 1. 58 00:03:10,140 --> 00:03:12,530 Belə ki, n minus ortasında hesab edək. 59 00:03:12,530 --> 00:03:18,710 >> Yenə array ölçüsü 20 olsaydılar biz orta almaq üçün 2 bölmək, 60 00:03:18,710 --> 00:03:23,540 belə ki, orta sonra 10, n minus orta bizə 10, belə ki, 10 vermək niyyətindədir 61 00:03:23,540 --> 00:03:25,330 orta sağ elementləri. 62 00:03:25,330 --> 00:03:27,780 Amma biz də bu minus var 1, biz istəmirəm-ci ildən 63 00:03:27,780 --> 00:03:29,700 orta özü daxildir. 64 00:03:29,700 --> 00:03:34,190 Belə ki, n minus orta minus 1 bizə verir sağ elementlərin ümumi sayı 65 00:03:34,190 --> 00:03:36,800 serialın orta indeksinin. 66 00:03:36,800 --> 00:03:41,870 >> İndi burada, unutmayın ki, orta parametri dəyərlər array edir. 67 00:03:41,870 --> 00:03:46,180 Belə ki, burada biz keçən edirik yenilənib dəyərlər array. 68 00:03:46,180 --> 00:03:50,930 Bu dəyərlər plus orta plus 1 həqiqətən recursively zəng deyərək 69 00:03:50,930 --> 00:03:56,460 axtarış, yeni bir sıra keçən, harada ki, yeni array ortasında başlayır 70 00:03:56,460 --> 00:03:59,370 plus bizim orijinal dəyərlər serialın bir. 71 00:03:59,370 --> 00:04:05,400 >> Ki, bir alternativ sintaksis, indi ki, siz ki, göstəricilərinə görmək başlamışdır etdik 72 00:04:05,400 --> 00:04:10,170 işareti dəyərlər orta plus 1. 73 00:04:10,170 --> 00:04:17,149 Belə ki, orta ünvanı işğalçı dəyərlərin plus bir element. 74 00:04:17,149 --> 00:04:23,690 >> İndi rahat deyil, əgər siz ki, kimi bir sıra değiştirmeyle 75 00:04:23,690 --> 00:04:28,900 da istifadə edərək bu həyata ola bilər bir recursive köməkçi funksiyası, harada 76 00:04:28,900 --> 00:04:31,680 ki, köməkçi funksiyası edir daha dəlilləri. 77 00:04:31,680 --> 00:04:36,610 Belə ki, əvəzinə yalnız dəyəri alaraq, array, və serialın ölçüsü, 78 00:04:36,610 --> 00:04:42,315 köməkçi funksiyası daha bilər aşağı indeks o cümlədən dəlilləri, 79 00:04:42,315 --> 00:04:45,280 siz array haqqında qayğı ki, və qayğı ki, üst index 80 00:04:45,280 --> 00:04:46,300 array haqqında. 81 00:04:46,300 --> 00:04:49,770 >> Və həm də aşağı track saxlanılması index və yuxarı index, siz deyil 82 00:04:49,770 --> 00:04:52,780 Heç dəyişdirmək lazımdır orijinal dəyərlər array. 83 00:04:52,780 --> 00:04:56,390 Siz yalnız davam edə bilər dəyərlər array istifadə edin. 84 00:04:56,390 --> 00:04:59,540 Amma burada, biz bir köməkçi lazım deyil fark kimi uzun biz etdiyiniz kimi fəaliyyət 85 00:04:59,540 --> 00:05:01,760 orijinal dəyişdirmək istəyən dəyərlər array. 86 00:05:01,760 --> 00:05:05,020 Biz keçmək istediğiniz yenilənmiş dəyərlər. 87 00:05:05,020 --> 00:05:09,140 >> İndi biz artıq ikili axtarış bilməz çeşidlənməmiş bir array. 88 00:05:09,140 --> 00:05:12,220 Belə ki, bu sıralanır almaq edək. 89 00:05:12,220 --> 00:05:17,650 İndi ki, sort son bildiriş iki parametrləri olan dəyərlər int 90 00:05:17,650 --> 00:05:21,110 biz çeşidlənməsi edirik ki, array, və int n, serialın uzunluğu olan 91 00:05:21,110 --> 00:05:22,250 biz çeşidlənməsi edirik. 92 00:05:22,250 --> 00:05:24,840 Belə ki, burada biz həyata istəyirəm bir çeşidlənməsi alqoritm 93 00:05:24,840 --> 00:05:26,690 ki, n o kvadrat edir. 94 00:05:26,690 --> 00:05:30,560 Siz bubble sort, seçimi seçə bilər sort, və ya durub sort, və ya 95 00:05:30,560 --> 00:05:32,670 biz bəzi digər növ sinif görüldü. 96 00:05:32,670 --> 00:05:36,380 Amma burada, biz olacaq seçim növ istifadə edin. 97 00:05:36,380 --> 00:05:40,030 >> Belə ki, biz təkrarlamaq olacaq bütün array üzərində. 98 00:05:40,030 --> 00:05:44,360 Yaxşı, burada biz iterating etdiyiniz bax 0-dan n minus 1. 99 00:05:44,360 --> 00:05:45,990 Niyə bütün yol n qədər? 100 00:05:45,990 --> 00:05:49,320 Bəli, biz artıq sıralanır olsanız ilk sonra n minus 1 elementləri, 101 00:05:49,320 --> 00:05:54,420 artıq olmalıdır nə son element doğru yerdə, belə ki, artıq çeşidlənməsi 102 00:05:54,420 --> 00:05:56,520 bütün array. 103 00:05:56,520 --> 00:05:58,770 >> İndi xatırlayıram necə seçim sort işləyir. 104 00:05:58,770 --> 00:06:01,950 Biz bütün serialın üzərində getmək olacaq minimum dəyər axtarır 105 00:06:01,950 --> 00:06:04,480 Bu array və stick ki, başında. 106 00:06:04,480 --> 00:06:07,610 Sonra biz bütün artıq getmək olacaq array yenidən ikinci axtarır 107 00:06:07,610 --> 00:06:10,410 kiçik element, və stick ki, Bu ikinci mövqe 108 00:06:10,410 --> 00:06:12,100 array, və s. 109 00:06:12,100 --> 00:06:14,330 Belə ki, bu nə var. 110 00:06:14,330 --> 00:06:17,290 >> Burada, biz istəyirik ki gördükdə cari minimum qəbulu 111 00:06:17,290 --> 00:06:20,030 i-ci index dəyəri. 112 00:06:20,030 --> 00:06:23,160 Belə ki, ilk iteration, biz olacaq minimum dəyəri hesab üçün 113 00:06:23,160 --> 00:06:25,030 bizim serialın start. 114 00:06:25,030 --> 00:06:28,500 Sonra, biz təkrarlamaq olacaq yoxlanılması serialın qalan 115 00:06:28,500 --> 00:06:31,870 dən çox hansı elementləri kiçik görmek biz hazırda olduğunuz bir 116 00:06:31,870 --> 00:06:33,900 minimum nəzərə. 117 00:06:33,900 --> 00:06:38,840 >> Belə ki, burada, j plus bir dəyər - ki, Hal-hazırda nə az 118 00:06:38,840 --> 00:06:40,380 minimum nəzərə. 119 00:06:40,380 --> 00:06:42,940 Sonra biz yeniləmə olacaq nə biz minimum hesab edirəm 120 00:06:42,940 --> 00:06:44,640 index j plus 1. 121 00:06:44,640 --> 00:06:48,540 Belə ki, bütün array arasında bunu, və sonra loop, minimum 122 00:06:48,540 --> 00:06:53,160 olan minimum element olmalıdır serialın i-ci mövqe. 123 00:06:53,160 --> 00:06:57,350 >> Biz ki, var, biz dəyişdirmək bilər i-ci mövqe daxil minimum dəyəri 124 00:06:57,350 --> 00:06:58,230 array. 125 00:06:58,230 --> 00:07:00,130 Belə ki, bu, yalnız bir standart dəyişdirmək olur. 126 00:07:00,130 --> 00:07:03,940 Biz müvəqqəti dəyəri saxlamaq - serialın i-ci dəyəri - 127 00:07:03,940 --> 00:07:08,460 serialın i-ci dəyəri qoyulan orada məxsusdur minimum dəyəri, 128 00:07:08,460 --> 00:07:13,580 və sonra harada geri saxlamaq Bu olmaq üçün istifadə cari minimum dəyəri 129 00:07:13,580 --> 00:07:16,460 array i-ci dəyəri, belə biz onu itirmək olmadığını. 130 00:07:16,460 --> 00:07:20,510 >> Belə ki, davam edir növbəti iteration. 131 00:07:20,510 --> 00:07:23,480 Biz ikinci axtarır başlamaq lazımdır minimum dəyəri və daxil daxil 132 00:07:23,480 --> 00:07:24,590 İkinci yerdə. 133 00:07:24,590 --> 00:07:27,440 Üçüncü iteration, biz baxmaq lazımdır üçüncü minimum dəyəri və insert 134 00:07:27,440 --> 00:07:31,550 ki, üçüncü mövqe və belə biz bir sorted array var qədər. 135 00:07:31,550 --> 00:07:33,820 My name Rob və bu seçim sort idi. 136 00:07:33,820 --> 00:07:39,456