Benim gibi mühendislik okuyan arkadaşların özel ilişki yaşadığı bir algoritmadır kendileri. Size verilen sıralı bir dizideki bir elemanı bulmak isterseniz, örnek kümeyi her seferinde iki parçaya bölüp bu aralıkta mı? diye sormanız yeterlidir. Böylece minimum tahmin ile aranan elemana erişilebilinir. Mühendis arkadaşların yakın ilişkisi ise, bu algoritmanın kodlanması sırasında dikkat edilmesi gereken bazı “exception” lar ve “recursive” bir yapıya sahip olması nedeni ile güzel sınav sorusu olmasından ileri geliyor. Bu terimler ve içerikleri çok detay olacağı için bilenler bilmeyenlere anlatsın demek en iyisi.
Kısaca algoritma nasıl çalışıyor diye açıklamak gerekir. Örnekte olduğu gibi diyelim ki alfabede içerisinden bir harf seçmemiz ve bize sorulan sorulara Evet/Hayır şeklinde cevap vermemiz istendi. Bizde aklımızdan “J” harfini tuttuk.Bu durumda algoritmanın çalışma şekli şu şekilde olacak:
- Algoritmamız dizisinin tam ortası olan 11. elemana bakıyor ve ilk soru L’den önce mi? Cevap: Evet
- Aynı şekilde A ile L arasındakilere odaklanıyoruz ve 2. Soru F’den önce mi? Cevap Hayır
- Bu şekilde devam edilir ise 4. Soruda “J” harfi bulunmuş oluyor.
Peki, bu algoritma durduk yere nereden aklımıza geldi?
Covit-19 ile Binary Search Algoritmasının buluşma noktası
Muhtemelen haberleri okumuşsunuzdur. Almanya’da Covit-19 testleri için mesela 100 kişilik bir gruba yapılacak uygulamada 100 tane testi tek tek uygulamaktansa, ilk olarak tüm test örneklerini birleştirip 1 testte öncelikle kontrol ediliyor. Eğer test negatif çıkar ise 100 kişide de virüs yok demektir. Yani 99 test kiti kara geçilmiş oldu. Peki var ise, bu durumda da yukarıdaki örnekte olduğu gibi 50-50 olacak şekilde iki gruba ayırarak bu gruplara aynı şekilde 2 test daha uygulanıyor ve bu şekilde devam ediliyor.
Aslına bakarsanız, virüs ile mücadelenin daha başlarında olan bölgeler için ideal bir çözüm gibi görünüyor. Ama tabii bu 100 kişi içindeki virüslü sayısı birden fazla ise yukarıda anlatılan ideal çözüme ulaşılamaz ama her ne olursa olsun her zaman 100’den az kit kullanılacaktır. Virüsün çok yayıldığı alanlarda ise, örnekleme kümesini daha düşük tutmak daha uygun olabilir.
Hani dersleri dinlerken “bu normal hayatımızda nerede karşımıza çıkacak?” dediğimiz konular vardır. Biz de onca programlama dersi sonrasında ERP, CRM konuları ile uğraşırken aynı düşüncede idik. Ama demek ki hangi bilgi nerede karşımıza çıkacağını bilemiyoruz.
No responses yet