Bu yüzden, sıralı bir liste/dizi tarafından uygulanan öncelik sırasındaki algoritmanın çalışma zamanının ne olduğunu bilmek istiyorum. Listelenmemiş bir liste/dizi için biliyorum O ((n^2 + m)), burada n köşe sayısı ve kenar sayısıdır. Böylece O (n^2) zamana eşittir. Ama sıralı bir liste/dizi kullansaydım daha hızlı olurdu ... Çalışma süresi ne olurdu? Özütlemenin sürekli zaman olacağını biliyorum.
hep birlikte sıralı bitişiklik listelerini birleştirme:Sıralı liste/dizi tarafından uygulanan bir öncelik sırasına göre Dijkstra'nın algoritması için çalışma süresi
cevap
Peki, o zaman (örnek O (VlogE) için, genellikle köşeleri ve kenarları V ve E gibi kullanılır, ileride başvurmak üzere) Dijkstra'nın algoritması için gerekenleri gözden geçirelim O (e)
özü az: O (1)
azalış anahtar: bu yüzden, O (V) '
Dijkstra O (V kullanır) en az işlemleri özü ve O (E) anahtar işlemleri azaltmak:
O (1) * O (V) = O (V)
O (E) * O (V) = 0 (EV) = 0 (V^2)
En asimptotik olarak önemli bir kısmı almak:
Ardışık asimptotik çalışma zamanı O (V^2).
Bu daha iyi yapılabilir mi? Evet. İkili yığınlara ve öncelik sıralarının daha iyi uygulanmasına bakın.
Edit: Aslında bir hata yaptım, şimdi tekrar bakıyorum. E, V^2'den daha yüksek olamaz, başka bir deyişle E = O (V^2) olamaz.
nedenle, en kötü ihtimalle, biz (EV) O'da ishal sonucuna algoritma aslında O (V^2 * V) == O (V^3)
Ben http://blog.devarchive.net/2013/03/fast-dijkstras-algorithm-inside-ms-sql.html It SortedList kullanmak Yineleme başına bir kez listeleme listesinden 20-50 kat daha hızlıdır
- 1. Dijkstra'nın öncelik sırasına göre algoritması
- 2. Her grup tarafından grup sırasına göre sıralama ve sıralama?
- 3. R, Java'nın PriorityQueue gibi bir öncelik sırasına sahip mi?
- 4. Laravel sayfa sırasına göre sıralama
- 5. Sütun değerleri sütununa göre sıralı.
- 6. İlk sütuna göre MySQL siparişi, ikinci sütun tarafından sıralı
- 7. MYSQL Sütunların Sırasına Göre Sıra
- 8. Mysql set sırasına göre rastgele
- 9. set() python'da çalışma süresi
- 10. Duyarsız sırasına göre nesneler listesi nasıl sıralanır?
- 11. Çoklu Sınıflar tarafından uygulanan Arabirim Bağımlılık Enjeksiyonu
- 12. Minimum öncelikli sıraya sahip Dijkstra algoritması
- 13. Bazı satırların numpy dizisinde sırasına göre sıralanması
- 14. Satır sırasına göre numpy divide satırı
- 15. Sınıf üyeleri aracılığıyla bildirimleri sırasına göre yineleyin
- 16. Bir diziyi bir diğerinin aynı sırasına göre sıralayın
- 17. Sayfa sırasına göre gizleme ve gösterme iphone üzerinde kaydırma
- 18. R: Bir vektörün sırasına göre bir veri çerçevesini mi sıralıyorsunuz?
- 19. PHP çift sıralı dizgeye göre sıralama dizisi
- 20. dense_rank() emriyle nulls - nasıl sıralamanın alt sırasına göre davranılır?
- 21. sql birleştirme deyiminde tablo sırasına göre herhangi bir anlamlılık var
- 22. Çift uçlu öncelik sırası
- 23. Depolama/çalışma süresi algoritmasını optimize etmek için meta programlama, C++
- 24. Böyle uygulanan ImageViews tarafından yapılan bir ViewPager var yakınlaştırılabilen ImageView
- 25. Kompleks sıralı grup sayacı
- 26. Bir sıralama algoritması seçmek için kriterler nelerdir?
- 27. Üstel çalışma süresi ile Lua patolojik desenleri var mı?
- 28. Elasticsearch - Öncelik istisnaları ile ada göre filtre ve sıralama
- 29. Yüklenen çalışma süresi paketlerinin listesi nasıl alınır?
- 30. Çalışma süresi boyunca bayrağı ekleyin (Xcode Instruments)