Algoritma Pencarian dan Penyortiran adalah algoritma populer dalam bahasa pemrograman apa pun. Mereka adalah dasar untuk memahami dasar-dasar pemrograman. Salah satu algoritma pencarian yang populer adalah Pencarian Biner di . Pada artikel ini, saya akan memberi tahu Anda semua tentang implementasinya.
Topik di bawah ini tercakup dalam artikel ini:
Ayo mulai!
Apa itu Pencarian Biner?
Pencarian Biner dalam adalah algoritma pencarian yang menemukan posisi nilai target dalam urutan Himpunan . Pencarian biner membandingkan nilai target dengan elemen tengah larik. Saya tbekerja hanya pada sekumpulan elemen yang diurutkan. Untuk menggunakan pencarian biner pada koleksi, file harus disortir dulu.
Ketika digunakan untuk melakukan operasi pada set yang diurutkan, jumlah iterasi selalu dapat dikurangi berdasarkan nilai yang sedang dicari. Anda dapat melihat pada snapshot di atas untuk menemukan file elemen tengah . Analogi pencarian biner adalah dengan menggunakan informasi yang diurutkan array dan mengurangi kompleksitas waktu O (log n) .
Menerapkan Algoritma Pencarian Biner
Mari kita lihat kode pseudo di bawah ini untuk memahaminya dengan lebih baik.
Prosedur binary_search A & larr mengurutkan larik n & larr ukuran larik x & larr nilai yang akan dicari Set rendah = 1 Set tinggi = n sedangkan x tidak ditemukan jika tinggiPenjelasan:
Langkah 1: Pertama, bandingkan x dengan elemen tengah.
Langkah 2: Jika x cocok dengan elemen tengah, maka Anda harus mengembalikan indeks tengah.
Langkah 3: Lain, Jika x lebih besar dari elemen tengah, maka x hanya bisa terletak di sisi kanan setengah larik setelah elemen tengah. Karenanya Anda mengulang bagian kanan.
Langkah 4: Lain, jika (x lebih kecil) maka kambuh untuk bagian kiri.
Begitulah cara Anda mencari elemen dalam larik yang diberikan.
alat yang digunakan dalam analitik data besarSekarang mari kita lihat cara menerapkan algoritme penelusuran biner secara rekursif. Program di bawah ini menunjukkan hal yang sama.
Pencarian Biner Rekursif
public class BinarySearch {// Implementasi Java dari Pencarian Biner rekursif // Mengembalikan indeks x jika ada di arr [l..h], else return -1 int binarySearch (int a [], int l, int h, int x) {if (h> = l) {int mid = l + (h - l) / 2 // Jika elemen ada di tengahnya sendiri if (a [mid] == x) return mid // If elemen lebih kecil dari mid, maka itu hanya bisa ada di subarray kiri jika (a [mid]> x) return binarySearch (arr, l, mid - 1, x) // Lain elemen hanya bisa ada di subarray kanan return binarySearch (arr, mid + 1, h, x)} // Kita sampai di sini ketika elemen tidak ada dalam array return -1} public static void main (String args []) {BinarySearch ob = new BinarySearch () int a [] = {20, 30, 40, 10, 50} int n = a.length int x = 40 int res = ob.binarySearch (a, 0, n - 1, x) if (res == -1) System.out .println ('Elemen tidak ada') else System.out.println ('Elemen ditemukan di indeks' + res)}}Saat menjalankan program di atas, ini akan menemukan elemen yang ada di indeks tertentu
Elemen ditemukan di indeks 2Jadi ini membawa kita ke akhir Pencarian Biner di Jawa artikel. Saya harap Anda menganggapnya informatif dan membantu Anda dalam memahami .
Lihat oleh Edureka, perusahaan pembelajaran online tepercaya dengan jaringan lebih dari 250.000 pelajar yang puas dan tersebar di seluruh dunia. Kami di sini untuk membantu Anda dengan setiap langkah dalam perjalanan Anda, untuk menjadi selain pertanyaan wawancara java ini. Kami menghadirkan kurikulum yang dirancang untuk siswa dan profesional yang ingin menjadi Pengembang Java. Kursus ini dirancang untuk memberi Anda permulaan dalam pemrograman Java dan melatih Anda untuk konsep Java inti dan lanjutan bersama dengan berbagai kerangka kerja Java seperti Hibernate & Spring.
Jika Anda menghadapi kesulitan saat menerapkan Pencarian Biner di , harap sebutkan di bagian komentar di bawah dan kami akan menghubungi Anda kembali secepatnya.