Inilah entri wikipedia
Jika Anda melihat pendekatan iteratif sederhana. Anda hanya menghilangkan setengah dari elemen yang akan dicari sampai Anda menemukan elemen yang Anda butuhkan.
Inilah penjelasan tentang bagaimana kita menghasilkan formula.
Katakan pada awalnya Anda memiliki N jumlah elemen dan kemudian apa yang Anda lakukan adalah ⌊N / 2⌋ sebagai upaya pertama. Di mana N adalah jumlah dari batas bawah dan batas atas. Nilai waktu pertama N akan sama dengan (L + H), di mana L adalah indeks pertama (0) dan H adalah indeks terakhir dari daftar yang Anda cari. Jika Anda beruntung, elemen yang Anda coba temukan ada di tengah [mis. Anda mencari 18 dalam daftar {16, 17, 18, 19, 20} kemudian Anda menghitung ⌊ (0 + 4) / 2⌋ = 2 di mana 0 terikat lebih rendah (L - indeks elemen pertama array) dan 4 adalah batas yang lebih tinggi (H - indeks elemen terakhir dari array). Dalam kasus di atas L = 0 dan H = 4. Sekarang 2 adalah indeks dari elemen 18 yang Anda cari ditemukan. Bingo! Anda menemukannya.
Jika case adalah array yang berbeda {15,16,17,18,19} tetapi Anda masih mencari 18 maka Anda tidak akan beruntung dan Anda akan melakukan yang pertama N / 2 (yaitu ⌊ (0 + 4) / 2⌋ = 2 dan kemudian menyadari elemen 17 pada indeks 2 bukan angka yang Anda cari. Sekarang Anda tahu bahwa Anda tidak harus mencari setidaknya setengah dari array dalam upaya Anda berikutnya untuk mencari secara iteratif. upaya pencarian dibelah dua. Jadi pada dasarnya, Anda tidak mencari setengah dari daftar elemen yang Anda cari sebelumnya, setiap kali Anda mencoba menemukan elemen yang tidak dapat Anda temukan dalam upaya Anda sebelumnya.
Jadi kasus terburuk adalah
[N] / 2 + [(N / 2)] / 2 + [((N / 2) / 2)] / 2 .....
yaitu:
N / 2 1 + N / 2 2 + N / 2 3 + ..... + N / 2 x … ..
sampai ... Anda selesai mencari, di mana dalam elemen yang Anda coba temukan ada di ujung daftar.
Itu menunjukkan kasus terburuk adalah ketika Anda mencapai N / 2 x di mana x sedemikian rupa sehingga 2 x = N
Dalam kasus lain N / 2 x di mana x sedemikian rupa sehingga 2 x <N Nilai minimum x dapat 1, yang merupakan kasus terbaik.
Sekarang karena kasus terburuk secara matematis adalah ketika nilai
2 x = N
=> log 2 (2 x ) = log 2 (N)
=> x * log 2 (2) = log 2 (N)
=> x * 1 = log 2 (N)
=> Lebih resmi ⌊log 2 (N) + 1⌋