Java'da İkili Arama nedir? Nasıl Uygulanır?

Java'da İkili Arama, sıralı bir dizi içinde bir hedef değerin konumunu bulan bir arama algoritmasıdır. Bu yazıda size bir örnek yardımıyla nasıl uygulanacağını anlatacağım.

Arama ve Sıralama algoritmaları, popüler algoritmalar herhangi bir programlama dilinde. Programlamanın temellerini anlamak için temel oluştururlar. Böyle popüler bir arama algoritması, . Bu yazıda size onun uygulaması hakkında her şeyi anlatacağım.



Bu makalede aşağıdaki konular ele alınmaktadır:



Başlayalım!

İkili Arama nedir?

İkili Arama bir sıralanmış bir hedef değerin konumunu bulan arama algoritması dizi . Ikili arama hedef değeri dizinin orta elemanıyla karşılaştırır. Oyalnızca sıralanmış bir öğe kümesi üzerinde çalışır. Bir koleksiyonda ikili aramayı kullanmak için, önce sıralanmalıdır.



JavaNe zaman sıralı bir küme üzerinde işlemler gerçekleştirmek için kullanılır, yineleme sayısı her zaman aranan değere göre azaltılabilir. Yukarıdaki anlık görüntüde görebilirsiniz. orta eleman . İkili aramanın analojisi, dizinin sıralandığı bilgisini kullanmak ve zaman karmaşıklığını azaltmaktır. O (log n) .

İkili Arama Algoritmasını Uygulama

Daha iyi bir şekilde anlamak için aşağıdaki sözde koda bir göz atalım.

Prosedür binary_search A & larr sıralı dizi n & larr aranacak dizi x & larr değerinin boyutu Düşük = 1 olarak ayarlayın high = n iken x yüksek ise bulunamadı

Açıklama:



Aşama 1: İlk olarak, x'i orta elemanla karşılaştırın.

Adım 2: X orta elemanla eşleşirse, orta dizini döndürmeniz gerekir.

Aşama 3: Aksi takdirde, x orta öğeden büyükse, x yalnızca orta öğeden sonra sağ taraftaki yarım dizide yer alabilir. Dolayısıyla sağ yarısını tekrar edersiniz.

4. Adım: Aksi takdirde, (x daha küçükse) sol yarı için tekrar edin.

Verilen dizideki öğeyi bu şekilde aramanız gerekir.

Java'da bir sayıyı bir güce yükseltmek

Şimdi ikili arama algoritmasının yinelemeli olarak nasıl uygulanacağını görelim. Aşağıdaki program aynı şeyi göstermektedir.

Yinelemeli İkili Arama

public class BinarySearch {// Özyinelemeli Binary Search'ün Java uygulaması // arr [l..h] içinde mevcutsa x'in dizinini döndürür, aksi takdirde -1 int binarySearch (int a [], int l, int h, int x) {if (h> = l) {int mid = l + (h - l) / 2 // Eleman ortada mevcutsa eğer (a [mid] == x) ortasına dön // Eğer eleman ortadan daha küçükse, yalnızca (a [mid]> x) binarySearch (arr, l, mid - 1, x) döndürürse yalnızca sol alt dizide bulunabilir // Aksi takdirde öğe yalnızca sağ alt dizi dönüşünde bulunabilir. binarySearch (arr, mid + 1, h, x)} // Dizide eleman olmadığında buraya ulaşırız 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 ('Eleman yok') else System.out.println ('Dizinde bulunan eleman' + res)}}

Yukarıdaki programı çalıştırırken, belirli dizinde bulunan öğeyi bulacaktır.

Dizin 2'de öğe bulundu

Bu bizi İkili Aramanın sonuna getiriyor Java makale. Umarım bilgilendirici bulmuşsunuzdur ve anlamanıza yardımcı olmuşsunuzdur .

Kontrol et Dünya çapında 250.000'den fazla memnun öğrenciden oluşan bir ağa sahip güvenilir bir çevrimiçi öğrenme şirketi olan Edureka tarafından. Bu java mülakat sorularının yanı sıra yolculuğunuzun her adımında size yardımcı olmak için buradayız. Java Geliştiricisi olmak isteyen öğrenciler ve profesyoneller için tasarlanmış bir müfredat geliştirdik. Kurs, size Java programlamasına bir başlangıç ​​yapmak ve sizi Hibernate & Spring gibi çeşitli Java çerçeveleriyle birlikte hem temel hem de gelişmiş Java kavramları konusunda eğitmek için tasarlanmıştır.

İkili Aramayı uygularken herhangi bir zorlukla karşılaşırsanız , lütfen aşağıdaki yorumlar bölümünde bundan bahsedin ve en kısa sürede size geri döneceğiz.