द्वारा कार्यान्वित प्राथमिकता कतार पर डिजस्ट्रा के एल्गोरिदम के लिए चलने का समय तो मुझे यह जानकर उत्सुकता है कि एल्गोरिदम के लिए चलने वाला समय एक क्रमबद्ध सूची/सरणी द्वारा लागू प्राथमिकता कतार पर चल रहा है। मुझे एक अपरिवर्तित सूची/सरणी के लिए पता है यह ओ ((एन^2 + एम) है) जहां एन शिखर की संख्या है और किनारों की संख्या एम है। इस प्रकार यह ओ (एन^2) समय के बराबर है। लेकिन अगर मैं एक क्रमबद्ध सूची/सरणी का उपयोग करता तो यह तेज़ होगा ... चलने का समय क्या होगा? मुझे पता है कि extractmin निरंतर समय होगा।
एक साथ सभी क्रमबद्ध समीपता सूचियों विलय:क्रमबद्ध सूची/सरणी
उत्तर
ठीक है, की समीक्षा क्या हम डिज्कस्ट्रा एल्गोरिथ्म के लिए की जरूरत है (भविष्य में संदर्भ के लिए, आम तौर पर कोने और किनारों वी और ई के रूप में उपयोग किया जाता है, उदाहरण के ओ (VlogE) के लिए) चलो ओ (ई)
निकालें न्यूनतम: हे (1)
घटाएँ कुंजी: हे (वी)
डिज्कस्ट्रा हे (वी का उपयोग करता है) कम से कम संचालन निकालने, और हे (ई) मुख्य संचालनों में कमी है, इसलिए:
हे (1) * ओ (वी) = ओ (वी)
ओ (ई) * ओ (वी) = ओ (ईवी) = ओ (वी^2)
सबसे असम्बद्ध रूप से महत्वपूर्ण भाग लेना:
अंतिम एसिम्प्टोटिक रनटाइम ओ (वी^2) है।
क्या इसे बेहतर बनाया जा सकता है? हाँ। बाइनरी ढेर में देखें, और प्राथमिकता कतारों के बेहतर कार्यान्वयन।
संपादित करें: मैंने वास्तव में एक गलती की, अब मैं इसे फिर से देखता हूं। ई V^2 से अधिक नहीं हो सकता है, या दूसरे शब्दों में ई = ओ (वी^2)।
इसलिए, सबसे खराब स्थिति में, एल्गोरिथ्म है कि हम हे में रन निष्कर्ष निकाला (EV) वास्तव में हे (वी^2 * वी) == हे है (वी^3)
मैं SortedList का उपयोग http://blog.devarchive.net/2013/03/fast-dijkstras-algorithm-inside-ms-sql.html यह एक बार प्रति पुनरावृत्ति
सूची क्रमबद्ध करने की तुलना में 20-50 गुना तेज है- 1. क्रमबद्ध सरणी (प्राकृतिक क्रमबद्ध)
- 2. क्रमबद्ध
- 3. क्रमबद्ध सेट
- 4. क्रमबद्ध बुलेट
- 5. क्रमबद्ध NSArray
- 6. DataGridView क्रमबद्ध
- 7. क्रमबद्ध सरणी
- 8. Topological क्रमबद्ध
- 9. क्रमबद्ध जगह
- 10. क्रमबद्ध awk
- 11. क्रमबद्ध हैश
- 12. क्रमबद्ध सरणी
- 13. क्रमबद्ध orderby
- 14. क्रमबद्ध सूची
- 15. अवरोही क्रम में आदिम प्रकारों के क्रमबद्ध क्रमबद्ध करें
- 16. पूर्णांक की 2 क्रमबद्ध सरणी के कुशल क्रमबद्ध कार्टेशियन उत्पाद
- 17. जटिल वस्तुओं की क्रमबद्ध सारणी क्रमबद्ध रूप से
- 18. अजगर Collections.DefaultDict क्रमबद्ध क्रम
- 19. एक (क्रमबद्ध) JTable
- 20. क्रमबद्ध tuples अजगर
- 21. क्रमबद्ध बिल्टिन फ़ंक्शन
- 22. क्रमबद्ध NSArray तरह
- 23. `Dir.entries` में क्रमबद्ध क्रम
- 24. दूरी से क्रमबद्ध करें
- 25. क्रमबद्ध सरणी, जबकि "लागत"
- 26. अद्वितीय/क्रमबद्ध data.frame
- 27. क्रमबद्ध वर्गीकृत किया नोड्स
- 28. क्रमबद्ध दो तत्वों
- 29. घटनाओं को क्रमबद्ध करना
- 30. क्रमबद्ध एक और एक