Binary search nasıl yapılır?
Binary Search Nedir?
Binary search, sıralı bir dizide belirli bir öğeyi hızlı bir şekilde bulmak için kullanılan etkili bir algoritmadır. Bu algoritma, diziyi sürekli olarak ortadan ikiye bölerek arama yapar.Binary Search Nasıl Yapılır?
1. **Diziyi Sırala:** Eğer dizi sıralı değilse, öncelikle sıralanması gerekir. 2. **Başlangıç ve Bitiriş Noktalarını Belirle:** - İlk elemanı göstermek için bir \"başlangıç\" indeksi (genellikle 0) ve son elemanı göstermek için bir \"bitiş\" indeksi (dizinin uzunluğu - 1) belirleyin. 3. **Ortayı Hesapla:** - Ortada bulunan elemanın indeksi şu şekilde hesaplanır: - `orta = (başlangıç + bitiriş) / 2` 4. **Karşılaştırma Yap:** - Eşleşen öğeyi bulmak için aşağıdaki durumlardan birini kontrol edin: - Eğer aranan öğe ortadaki öğeye eşitse, öğe bulunmuştur. - Eğer aranan öğe ortadaki öğeden küçükse, \"bitiriş\" indeksini ortanın bir öncesine ayarlayın. - Eğer aranan öğe ortadaki öğeden büyükse, \"başlangıç\" indeksini ortanın bir sonrasına ayarlayın. 5. **Tekrarla:** - Adımları, \"başlangıç\" indeksi \"bitiriş\" indeksinden küçük olduğu sürece tekrarlayın. 6. **Sonuç:** - Öğeyi bulamazsanız, dizide yok demektir.Örnek Uygulama
- Dizi: [2, 3, 4, 10, 40] - Aranan Öğe: 10 Adımlar: - Başlangıç = 0, Bitiriş = 4 - Orta = (0 + 4) / 2 = 2 ⇒ 4 ile karşılaştır. - 10 > 4, Başlangıç = 3 - Orta = (3 + 4) / 2 = 3 ⇒ 10 ile karşılaştır. - 10 = 10, öğe bulundu. Binary search, uygun bir sıraya sahip dizilerde performans açısından oldukça etkilidir ve O(log n) zaman karmaşıklığına sahiptir.
Cevap yazmak için lütfen
.
Aynı kategoriden
- Yeni başladım: Mühendislikte kullanılan CAD yazılımları nelerdir?
- Bilgisayarin donanimi nedir?
- Yapay zeka algoritmalarında overfitting sorununu önlemek için hangi yöntemler etkili olur ve bu yöntemlerin avantajları nelerdir
- HTML’de metin biçimlendirme için hangi etiketler kullanılabilir?
- Veri tabanı yönetimi için en uygun veri modelleme yöntemleri nelerdir?
- Normalizasyon nedir? 1NF, 2NF ve 3NF nasıl uygulanır?
- Programlama öğrenirken hangi kaynaklar en etkili ve verimli kullanılabilir?
- Python’da for döngüsü kullanarak bir listedeki elemanları toplamak için nasıl bir kod yazabilirim?
- Mühendislik öğrencileri için en uygun programlama dilini seçerken nelere dikkat etmeliyiz?
- Mühendislik alanında yeni başladım: Python’da bir stringi nasıl integer’a çevirebilirim?
- Ağ protokolü nedir?
- Veri analitiği projelerinde veri güvenliği nasıl sağlanır?
- Düzenlileştirme (L1/L2) ve erken durdurma ne sağlar?
- Önbellek algoritmaları: LRU, LFU ve FIFO farkları nelerdir?
- Python programlamaya nasıl başlanır?
- Bilgisayarlar neden bazen yavaslar?
- Veri tabanı normalizasyonu nasıl yapılır?
- Yazılım geliştirmeye yeni başlayanlar için en iyi programlama dilini seçerken nelere dikkat etmeli?
- Fibonacci dizisindeki herhangi bir sayıyı hesaplarken recursive fonksiyonlar mı yoksa döngüler mi daha verimli kullanılmalıdır?
- Python’da bir string içinde belirli bir kelimede hangi indekste başladığını nasıl bulabilirim?
