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
- Model açıklanabilirliği (XAI) neden önemlidir?
- Docker nedir ve ne işe yarar?
- Zaman ve alan karmaşıklığı nasıl hesaplanır?
- Python’da bir stringin içinde kaç tane belirli bir karakter var, nasıl bulabilirim?
- Makine öğrenimi nedir ve hangi alanlarda kullanılır?
- Bulut servis modelleri: IaaS, PaaS ve SaaS nedir?
- Yapay zeka algoritmalarının veri gizliliği ve güvenliği üzerindeki etkileri nasıl değerlendirilir
- Yazılım geliştirmeye yeni başlayan bir mühendis için en temel programlama dili hangisidir?
- Veri tabanı oluştururken hangi veri türlerini tercih etmeliyim?
- Mobil uygulamalar geliştirmek için hangi programlama dilleri tercih edilmelidir?
- Yeni başladım: Mühendislikte kullanılan CAD yazılımları nelerdir?
- Mantık kapıları ve işlevleri nelerdir?
- Sıfır güven (Zero Trust) yaklaşımı nedir?
- Sızma testi (pentest) nedir?
- Bilgisayarımın RAMi ne işe yarar?
- Yapay zeka algoritmalarının farklı veri setleri üzerindeki performansını etkileyen temel faktörler nelerdir
- Transaction ve ACID ilkeleri nedir?
- HTML’de metin biçimlendirme için hangi etiketler kullanılabilir?
- Linux komut satırına giriş: temel komutlar nelerdir?
- Bilgisayar nasıl çalışır?
