बढ़त वजन में पूर्णांक हैं, तो , आप लागू कर सकते हैं डिज्कस्ट्रा के दशक में चलाने के लिए हे ( कश्मीर | वी | + | ई | ) समय है, तो निम्न @ rrenaud के सुझाव। यहाँ एक अधिक स्पष्ट व्याख्या है।{0,1,…,K}O(K|V|+|E|)
किसी भी समय, प्राथमिकता कतार में (परिमित) कुंजियाँ कुछ रेंज , जहाँ D प्राथमिकता कुंजी से हटाए गए अंतिम कुंजी का मान होता है। (हर कुंजी कम से कम डी है , क्योंकि दिज्कस्ट्रा के एल्गोरिदम द्वारा हटाए गए कुंजी का क्रम गैर-घट रहा है, और प्रत्येक कुंजी अधिकांश डी + के पर है , क्योंकि हर कुंजी का मूल्य d [ u ] + w t ( u , w ) है कुछ बढ़त ( यू ,{D,D+1,…,D+K}DDD+Kd[u]+wt(u,w) जहां घ [ यू ] कुछ शीर्ष के स्त्रोत से दूरी ही है यू कि पहले से ही हटा दिया गया है, इसलिए घ [ यू ] ≤ डी ।)(u,w)d[u]ud[u]≤D
इस वजह से, आप प्राथमिकता पंक्ति को एक गोलाकार सरणी आकार K + 1 के साथ लागू कर सकते हैं , जिसमें प्रत्येक कक्ष एक बाल्टी होता है। कुंजी के साथ एक शिखर स्टोर कश्मीर सेल में बाल्टी में एक [ ज ( कश्मीर ) ] जहां ज ( कश्मीर ) = कश्मीर आधुनिक ( कश्मीर + 1 ) । डी का ध्यान रखें । संचालन निम्नानुसार करें:A[0..K]K+1kA[h(k)]h(k)=kmod(K+1)D
हटाना मिनट : एक ओर जहां खाली है, वेतन वृद्धि डी । तब हटाएं और A [ h ( D ) ] से एक शीर्ष को लौटाएं ।A[h(D)]DA[h(D)]
कुंजी साथ डालें : A [ h ( k ) ] की बाल्टी में शीर्ष जोड़ें ।kA[h(k)]
कमी-कुंजी को कश्मीर ' : से शिखर पर ले जाएँ एक [ ज ( कश्मीर ) ] के लिए एक [ ज ( कश्मीर ' ) ] ।kk′A[h(k)]A[h(k′)]
सम्मिलित करें और कमी-कुंजी, निरंतर समय संचालन कर रहे हैं तो कुल समय उन कार्यों में खर्च किया जाएगा । डिलीट-मिन में बिताया गया कुल समय O ( | V | ) प्लस D का अंतिम मान होगा । D का अंतिम मूल्य स्रोत से किसी भी शीर्ष पर अधिकतम (परिमित) दूरी है (क्योंकि एक डिलीट-मिन जो मुझे पुनरावृत्तियों में लेता है वह D को i से बढ़ाता है )। अधिकतम दूरी K ( | V | - 1) पर हैO(|V|+|E|)O(|V|)DDiDi क्योंकि प्रत्येक पथ में सबसे अधिक है | वी | - 1 किनारे। इस प्रकार, एल्गोरिथम द्वारा बिताया गया कुल समय O ( K | V | + | E | ) है ।K(|V|−1)|V|−1O(K|V|+|E|)