İki zaman karmaşıklığı ile sıkışıp kaldım. Sıralı dizi ile ikili arama yapmak için O (logN). Bu yüzden sıralanmamış bir dizi aramak için önce onu sıralamak zorundayız, böylece O (NlogN) olur. O zaman karmaşıklığı O (N) olarak veren ikili arama yapabiliriz, fakat O'nun (NlogN) olabileceğini okudum. Hangisi doğru?Sıralanmamış bir dizi için ikili aramanın zaman karmaşıklığı
cevap
İkili Arama "Sıralı" listeler içindir. Karmaşıklık O (logn).
İkili Arama, "sıralanmamış" listelerde çalışmıyor. Bu listeler için sadece ilk elemandan başlayarak düz bir arama yapın; Bu, O (n) 'nin karmaşıklığını verir. Diziyi MergeSort veya başka bir O (nlogn) algoritması ile sıralamak isterseniz, karmaşıklık O (nlogn) olur.
O (logn) < O (n) <
BinarySearch, dizinin biraz da olsa ayrılmasa bile çalışmaya devam edebilir. Not etmek güzel. – ofarooq
Sorunuzun cevabı sorunuzu kendisinde (nlogn) O. İlk önce listeyi sıralıyorsunuz. Listenizi hızlı veya birleştirme sıralama kullanarak sıralarsanız, karmaşıklık o (n log n) olur. Bölüm - 1 devraldı. Bir ikili arama yapmanın ikinci kısmı 'Sıralı liste' üzerinde yapılır. İkili aramanın karmaşıklığı o (log n). Bu nedenle, sonuçta programın karmaşıklığı o (n log n) kalır. Bununla birlikte, dizinin medyanını hesaplamak isterseniz, listeyi sıralamak zorunda değilsiniz. Doğrusal veya sıralı bir aramanın basit bir uygulaması size yardımcı olabilir.
Doğrusal aramanın zaman karmaşıklığı O(n)
ve ikili arama O(log n)
(log base-2) 'dir. Sıralanmamış bir dizimiz varsa ve bunun için ikili arama kullanmak istiyorsak, diziyi önce sıralamalıyız. Ve burada diziyi sıralamak ve sonra arama elemanına zaman harcamak için O(n logn)
bir zaman harcamak zorundayız.
- 1. zaman karmaşıklığı
- 2. Hesaplama Zaman Karmaşıklığı Kod
- 3. Swift'in zaman karmaşıklığı Set.indexOf
- 4. Java'da Math.abs'ın zaman karmaşıklığı?
- 5. Zaman havza bulmanın karmaşıklığı
- 6. Bir aramanın zaman karmaşıklığını azaltın n^2
- 7. Math.Sqrt() zaman karmaşıklığı?
- 8. zaman karmaşıklığı javascript'in .length
- 9. Java'da ayarlanan zaman karmaşıklığı
- 10. Java'da sıralanmamış bir ikili ağaç oluşturmanın en etkili yolu nedir?
- 11. Vektör dönüştürmek için zaman karmaşıklığı mat
- 12. Banker'in algoritması hesaplanan zaman karmaşıklığı
- 13. Tam tersi zaman karmaşıklığı Haskell
- 14. Canny kenar detektörünün zaman karmaşıklığı
- 15. Dizi İçinde İkili Arama
- 16. Bir "süper" aramanın Scala
- 17. Ruby'de Array # uniq yönteminin zaman karmaşıklığı nedir?
- 18. Python'da dict.keys() 'nin zaman karmaşıklığı nedir?
- 19. klojürde sayım işlevinin zaman karmaşıklığı nedir?
- 20. Analiz zaman karmaşıklığı (polinom karşı Poli günlüğü)
- 21. Bu İşlevin Şemadaki Zaman Karmaşıklığı nedir?
- 22. İkili dizi için veri türleri için düzeltme verileri türleri
- 23. Java'da LinkedList'te bir boyutlu() çağrının zaman karmaşıklığı nedir?
- 24. Sıralanmamış öğeleri bir dosyadan bir diziye koyma
- 25. Bir Lucene araştırmasının karmaşıklığı
- 26. Bu işlev için algoritma karmaşıklığı
- 27. Karşılaştırma işleçlerinin karmaşıklığı
- 28. Toplam zaman hesaplaması için sorgudan dizi oluşturma
- 29. Bir ikili .dat dosyasını bir dizi olarak okuma
- 30. numpy.array ikili için boolean?
Bunlar iki ayrı işlemdir. İkili arama her zaman ** O (log n) ** olacaktır. – squiguy
Doğru, bir ikili arama, sıralanmamış bir dizi üzerinde çalışmayacak; Ancak, diziyi ikili aramayı gerçekleştirmek için sıralamanız gerekir. En azından son zamanlarda böyle öğrendim. – user2373448