Tanım İkili Arama, , belirli değerin bulunmasına yönelik bir algoritmadır. Bu teknikteki her bir adımda, aranan değerin, dizinin orta değerine eşit olup olmadığı kontrol edilir. Eşit olmaması durumunda aranan değerin orta değer tarafından ikiye ayrılan kısımlardan hangisinde olduğu kontrol edilir, aranan değeri içeren kısım bir sonraki adımda arama yapılacak dizi olur ve bu sayede arama yapılan listedeki eleman sayısı her adımda yarıya indirilmiş olur. Bu algoritma ile N elemanlı bir dizide en fazla karşılaştırma yaparak aranan değerin yerini bulmak mümkündür. İkili arama (Binary Search) yöntemi, bir elemanın yerini bulmak için dizinin bütün elemanlarında arama yapan kaba kuvvet arama yönteminden (Ayrıca bkz. ) hem zaman hem de bellek açısından daha tasarrufludur. Örnekler Java Sıralı bir tam sayı dizisinde, aranan elemanın sırasını döndüren, yoksa -1 döndüren bir Java programı. C++ Sıralı bir tam sayı dizisinde, aranan elemanın sırasını döndüren, yoksa -1 döndüren, C++ dilinde yazılmış bir fonksiyon. Örnekte veri tipi kullanılmıştır. Ancak bu kod, elemanlarına doğrudan erişebildiğiniz ve iterasyon destekleyen her veritipinde kullanılabilir. Örneğin ile kullanılabilirken, elemanlarına doğrudan erişime izin verilmediği için ve ile kullanılamaz. binary_search metodu C++'ta ayrıca STL'deki (Standard Template Library) kütüphanesi bir metodu içerir. Bu metod yukarıdaki örnek kodun aksine sadece iterasyon destekleyen veritiplerinde de kullanılabilir (Örneğin ve ile kullanılabilir.). Bu metodun kullanımı şu şekildedir: ile <algorithm> kütüphanesi ana koda dahil edilir. şeklinde kullanılır. metodu, eğer 'i iterasyon yapılan alanda bulabilirse , bulamaz ize değeri döner. Kaynakça Kategori:Arama algoritmaları Kategori:Algoritmalar