Temel java Dersleri – Dizilerde Arama (Array Search)

      Dizilerde genel olarak 2 şekilde arama yapabiliriz. 1.si Linear Search, ikincisi ise Binary Search‘tür. Öncelikle şunu bildirelim ki Binary Search yapabilmemiz için dizimiz sıralı olmalıdır. Ya büyükten küçüğe ya da küçükten büyüğe sıralanmış olmalıdır. Gelelim nasıl yapacağımıza. Ben direk kod üzerinden anlatmaya çalışacağım.

1- Linear Search

     Linear Search , sıralı olmayan dizilerde ve küçük olan sıralı dizilerde arama yaparken kullanılır. Sıralı olup büyük olan dizilerde ise Binary Search kullanmak daha etkilidir.

Gelelim Linear Search kullanımına. Direk örnek üzerinden anlatacağım.

Yukarıda da gördüğünüz gibi Linear yani doğrusal arama yaptık. Sırası ile tüm elemanlara baktık.

2- Binary Search

     Yukarıda da belirttiğim gibi sıralı olan büyük dizilerde Binary Search yapmak daha etkili bir yöntemdir. Binary Search için dizimiz sıralı olmak zorundadır.

     Binary Search çalışma mantığını kısaca anlatmaya çalışayım. Öncelikle dizinin ortanca elementinin değeri alınır. Dizimiz sıralı olduğu için ortanca değer , aranan değerden büyük mü , küçük mü ve ya eşit mi diye bakılır. Eğer ortanca değer aranan değerden büyükse dizinin ortanca değerden sonraki değerlerine artık bakılmaz. Çünkü değerimiz başlangıç değeri ile ortanca değer arasındadır. Tam tersi olarak ortanca değer aranan değerden küçük ise dizinin ortanca değerinden önceki değerlerine bakılmaz. Bu işlem ortanca değer aranan değere eşit olana kadar devam eder.

Kod üzerinden anlatım yapacağım.


Binary search ile ilgili ufak bir animasyon paylaşıyorum.


     Ayrıca anlamanıza yardımcı olacabileceğini düşündüğüm internetten bulduğum iki imajıda paylaşıyorum.

6 ‘yı bulmak için 




19’u bulmak için




     Yukarıda bizim yazmış olduğumuz binarySearch methodunu kendimiz yazmadan da Java’da yazılmış olanı kullanabiliriz. Bunun için java.util.Arrays kütüphanesini projemize import ediyoruz. Örnek kullanım kodlarını paylaşıyorum.



     Gördüğünüz gibi arama işlemini biz yapmadan , ğArrays Classındaki binarySearch methodunu kullanarak aradığımız değeri bulabiliriz.

     Diziler dersinin başında derslerin en az 4 5 ders süreceğini söylemiştim. Bir sonraki dersimde Dizilerde sıralama (Array Sort) işlemini anlatacağım. Sonrasında ise 2 ders dizilerde örnekler vererek hem diziler bilgilerimizi pekiştireceğiz hemde algoritma yeteneğimizi geliştirmeye devam edeceğiz.

*Konuyla ilgili yorumlarınızı konu altından yapabilirsiniz
Google Plus ile Paylaş

Kısaca: seymanblog

Panelde şablon düzenle deyip, bu satırı aratarak buraya kısaca hakkımda yazısı yazabilirsiniz.
    BLOGGER YORUMLARI
    FACEBOOK YORUMLARI

0 yorum:

Yorum Gönder