lisp logo

Lisp Dili ile İkili Arama

Merhaba arkadaşlar daha önce DrRacket ile Kabarcık Sıralamayı yapmıştık. Şimdi onun devamı niteliğinde bir de liste üzerinde ikili aramayı inceleyeceğiz.

İkili Arama Nedir?

Öncelikle ikili aramanın ne olduğuna bakalım. Basit bir arama algoritmasıdır. Sıralı diziler üzerinde çalışmaktadır. Eğer aradığımız değer listemizin ortasındaki değerden küçük ise ilk kısmı alacak eğer büyük ise ikinci kısmı alacak ve aynı işlemleri tekrar edecek ta ki ortadaki değer aradığımız değere eşit olana kadar.

Küçük bir örnek yapalım listemiz 2 5 9 12 14 23 34 olsun.

Aradığımız sayı da 5 olsun.

Adım 1) Listemizin ortasındaki sayı = 12 ile aradığımız sayıyı 5 i karşılaştırıyoruz. Küçük olduğu için sol kısmı alıyoruz.

2 5 9 12 kalıyor. İsterseniz 12 yi de bu listeden çıkarabiliriz çünkü küçük olduğunu söylemiştik. Yani: 2 5 9 kalıyor.

Adım 2) Kalan listedeki ortadaki eleman 5. Aradığımız eleman da 5 olduğu için bulup çıkacaktır.

Şimdi bunu DrRacket ile yazalım.

DrRacket İkili Arama Kodu

İkili Aramanın çalışması için listemizin sıralanması gerektiği için kabarcık sıralama algoritması ile birlikte kullanacağız.

Çalışır vaziyeti aşağıdadır..

ikili arama çıktısı

Gerekli kod açıklamlarını yorum satırları olarak ekledim. Zaten algoritma mantığını da açıklamıştım. Kodlar üzerinde hatalı ve anlaşılmayan yer olduğunda yorum yaparak ya da iletişim kısmından bana sorabilirsiniz. Umarım fayfalı olmuştur.

 

Bir cevap yazın