İkili arama, sıralı bir listede hedef bir değeri bulmanın hızlı bir yoludur. Ortadaki öğeyi kontrol eder, kalan değerlerin yarısını eler ve işlemi tekrarlarsınız. Liste sıralı değilse bu mantık geçerli olmaz.
Artan sıralı bir listede kural basittir: Ortadaki değer hedeften küçükse sağa bakın; büyükse sola bakın. Aralık her adımda yaklaşık yarıya indiği için ikili arama zamanda çalışır.
İkili arama sıralı bir listede nasıl çalışır?
Şu sıralı listeyi kullanalım:
Hedefin olduğunu varsayalım.
Tam aralıkla başlayın. Ortadaki değer 'tür. olduğundan, 'ün solundaki her şey elenebilir. Bu yüzden arama şu aralıkta devam eder:
Şimdi ortadaki değer 'dur. olduğundan, 'un sağındaki her şey elenebilir. Böylece aralık
olur.
Artık ortadaki değer olduğu için arama durur. Buradaki önemli fikir yalnızca hedefin bulunmuş olması değildir. İki karşılaştırmada aday aralık değerden değere düştü.
İkili arama neden 'dir?
Her karşılaştırma kalan adayların yaklaşık yarısını eler. Bir adımdan sonra yaklaşık öğe kalır. İki adımdan sonra yaklaşık öğe kalır. adımdan sonra kalan boyut yaklaşık olarak
olur.
Bu miktar yaklaşık olduğunda arama biter. Dolayısıyla adım sayısı
koşulunu sağlar.
Her iki tarafın 'si alınırsa
elde edilir.
İkili aramanın iyi ölçeklenmesinin nedeni budur. Doğrusal arama en fazla kontrol gerektirebilir, ama ikili arama yalnızca aralığı sürekli yarıya indirmeye yetecek kadar kontrol gerektirir.
İkili arama kod örneği
Aşağıda Python'da standart bir yinelemeli sürüm verilmiştir:
Bir soruyla yardıma mı ihtiyacın var?
Sorunuzu yükleyin ve saniyeler içinde doğrulanmış adım adım çözüm alın.
GPAI Solver Aç →