>> Rob Bowden: Hi, Mən Rob deyiləm.
Necə bir ikili axtarış istifadə edirlər?
Tapmaq edək.
Belə ki, bu axtarış gedirik Qeyd edək ki, recursively həyata keçirmək.
Siz həmçinin ikili axtarış həyata bilər iteratively, belə ki, əgər,
ki, mükəmməl gözəl var.
>> İndi ilk nin unutmayın edək nə axtarış parametrləri olmaq üçün nəzərdə tutulub.
Burada, biz olan int dəyər bax istifadəçi dəyəri ehtimal
üçün axtarış.
Biz int dəyərlər array, olan biz istəyirik ki, array
dəyər üçün axtarış.
Və biz olan, int n bax bizim serialın uzunluğu.
>> İndi, ilk şey ilk.
Biz n, 0 bərabərdir görmek üçün yoxlamaq biz yalan olan halda.
Biz boş varsa ki, yalnız deyərək oldu array, dəyər aydın deyil
boş array, biz yalan ola bilər.
>> İndi, biz, həqiqətən ikili etmək istəyirəm Binar axtarış axtarış hissəsidir.
Belə ki, biz orta tapmaq istəyirsinizsə bu serialın element.
Burada, biz orta bölünür n bərabərdir demək 2, orta element çünki
uzunluğu olacaq bizim array 2 bölünür.
İndi biz kontrol olacaq əgər orta element biz istəyirik dəyərinə bərabərdir
üçün axtarış.
Dəyərlər orta dəyərinə bərabərdir Belə ki, biz biz aşkar ildən doğru ola bilər
bizim array dəyəri.
>> Lakin bu doğru deyil, əgər, indi biz recursive etmək lazımdır
Binar axtarış addım.
Biz ya axtarmaq lazımdır serialın və ya sol
serialın orta.
Orta dəyərlər Belə ki, burada biz demək dəyəri az, ki, dəyəri deməkdir
ortada daha böyük idi Serialın.
Belə ki, dəyəri sağ olmalıdır biz yalnız baxdı ki, element.
>> Belə ki, burada biz olacaq recursively axtarış.
Və biz keçən olduğunuz baxmaq lazımdır ikinci bu.
Amma biz üçün axtarış olacaq orta element hüququ.
Və digər halda, o deməkdir ki, dəyəri ortasında az idi
array, və biz olacaq sol axtarış.
İndi, sol olacaq bir az daha asan baxmaq.
Belə ki, biz recursively istəyirik ki, burada baxın burada ilk axtarış zəng
arqument yenə dəyəri biz artıq arıyorsanız.
İkinci arqument olacaq edir biz artıq axtarış ki, array.
Və son element indi orta edir.
Son parametri bizim int saxla n ki, bizim serialın uzunluğu belə.
>> Axtarış recursive zəng, biz istəyirik indi söyləyən uzunluğu
array orta edir.
Belə ki, bizim array ölçüsü 20 və biz idi əgər orta, çünki indeksi 10 axtarış
20 2 bölünür ki, biz istəyirik deməkdir yeni kimi 10 keçən
bizim serialın uzunluğu.
Xatırla ki, bir sıra zaman uzunluğu 10, ki, etibarlı deməkdir
elementlər 0 9 göstəriciləri.
Belə ki, bu biz istədiyiniz tam olaraq budur sol - bizim yenilənir array daxil
orta element array.
>> Belə ki, sağ axtarır bir az daha çətin.
İndi ilk, ən uzunluğu hesab edək Bu hüququ serialın
orta element.
Belə ki, bizim array ölçüsü n idi, onda yeni array ölçüsü n minus olacaq
orta minus 1.
Belə ki, n minus ortasında hesab edək.
>> Yenə array ölçüsü 20 olsaydılar biz orta almaq üçün 2 bölmək,
belə ki, orta sonra 10, n minus orta bizə 10, belə ki, 10 vermək niyyətindədir
orta sağ elementləri.
Amma biz də bu minus var 1, biz istəmirəm-ci ildən
orta özü daxildir.
Belə ki, n minus orta minus 1 bizə verir sağ elementlərin ümumi sayı
serialın orta indeksinin.
>> İndi burada, unutmayın ki, orta parametri dəyərlər array edir.
Belə ki, burada biz keçən edirik yenilənib dəyərlər array.
Bu dəyərlər plus orta plus 1 həqiqətən recursively zəng deyərək
axtarış, yeni bir sıra keçən, harada ki, yeni array ortasında başlayır
plus bizim orijinal dəyərlər serialın bir.
>> Ki, bir alternativ sintaksis, indi ki, siz ki, göstəricilərinə görmək başlamışdır etdik
işareti dəyərlər orta plus 1.
Belə ki, orta ünvanı işğalçı dəyərlərin plus bir element.
>> İndi rahat deyil, əgər siz ki, kimi bir sıra değiştirmeyle
da istifadə edərək bu həyata ola bilər bir recursive köməkçi funksiyası, harada
ki, köməkçi funksiyası edir daha dəlilləri.
Belə ki, əvəzinə yalnız dəyəri alaraq, array, və serialın ölçüsü,
köməkçi funksiyası daha bilər aşağı indeks o cümlədən dəlilləri,
siz array haqqında qayğı ki, və qayğı ki, üst index
array haqqında.
>> Və həm də aşağı track saxlanılması index və yuxarı index, siz deyil
Heç dəyişdirmək lazımdır orijinal dəyərlər array.
Siz yalnız davam edə bilər dəyərlər array istifadə edin.
Amma burada, biz bir köməkçi lazım deyil fark kimi uzun biz etdiyiniz kimi fəaliyyət
orijinal dəyişdirmək istəyən dəyərlər array.
Biz keçmək istediğiniz yenilənmiş dəyərlər.
>> İndi biz artıq ikili axtarış bilməz çeşidlənməmiş bir array.
Belə ki, bu sıralanır almaq edək.
İndi ki, sort son bildiriş iki parametrləri olan dəyərlər int
biz çeşidlənməsi edirik ki, array, və int n, serialın uzunluğu olan
biz çeşidlənməsi edirik.
Belə ki, burada biz həyata istəyirəm bir çeşidlənməsi alqoritm
ki, n o kvadrat edir.
Siz bubble sort, seçimi seçə bilər sort, və ya durub sort, və ya
biz bəzi digər növ sinif görüldü.
Amma burada, biz olacaq seçim növ istifadə edin.
>> Belə ki, biz təkrarlamaq olacaq bütün array üzərində.
Yaxşı, burada biz iterating etdiyiniz bax 0-dan n minus 1.
Niyə bütün yol n qədər?
Bəli, biz artıq sıralanır olsanız ilk sonra n minus 1 elementləri,
artıq olmalıdır nə son element doğru yerdə, belə ki, artıq çeşidlənməsi
bütün array.
>> İndi xatırlayıram necə seçim sort işləyir.
Biz bütün serialın üzərində getmək olacaq minimum dəyər axtarır
Bu array və stick ki, başında.
Sonra biz bütün artıq getmək olacaq array yenidən ikinci axtarır
kiçik element, və stick ki, Bu ikinci mövqe
array, və s.
Belə ki, bu nə var.
>> Burada, biz istəyirik ki gördükdə cari minimum qəbulu
i-ci index dəyəri.
Belə ki, ilk iteration, biz olacaq minimum dəyəri hesab üçün
bizim serialın start.
Sonra, biz təkrarlamaq olacaq yoxlanılması serialın qalan
dən çox hansı elementləri kiçik görmek biz hazırda olduğunuz bir
minimum nəzərə.
>> Belə ki, burada, j plus bir dəyər - ki, Hal-hazırda nə az
minimum nəzərə.
Sonra biz yeniləmə olacaq nə biz minimum hesab edirəm
index j plus 1.
Belə ki, bütün array arasında bunu, və sonra loop, minimum
olan minimum element olmalıdır serialın i-ci mövqe.
>> Biz ki, var, biz dəyişdirmək bilər i-ci mövqe daxil minimum dəyəri
array.
Belə ki, bu, yalnız bir standart dəyişdirmək olur.
Biz müvəqqəti dəyəri saxlamaq - serialın i-ci dəyəri -
serialın i-ci dəyəri qoyulan orada məxsusdur minimum dəyəri,
və sonra harada geri saxlamaq Bu olmaq üçün istifadə cari minimum dəyəri
array i-ci dəyəri, belə biz onu itirmək olmadığını.
>> Belə ki, davam edir növbəti iteration.
Biz ikinci axtarır başlamaq lazımdır minimum dəyəri və daxil daxil
İkinci yerdə.
Üçüncü iteration, biz baxmaq lazımdır üçüncü minimum dəyəri və insert
ki, üçüncü mövqe və belə biz bir sorted array var qədər.
My name Rob və bu seçim sort idi.