मैं उककोन के एल्गोरिथ्म के स्पर्शोन्मुख चल रहे समय के सवाल से चिंतित हूं , शायद रैखिक (?) समय में प्रत्यय पेड़ों के निर्माण के लिए सबसे लोकप्रिय एल्गोरिथ्म ।
यहाँ डैन गुसफ़ील्ड (खंड 6.5.1) द्वारा "स्ट्रिंग्स, पेड़ों और दृश्यों पर एल्गोरिदम" पुस्तक का उद्धरण दिया गया है:
"... Aho-Corasick, वेनर, Ukkonen और McCreight एल्गोरिदम सब या तो आवश्यकता स्थान, या हे ( मीटर ) समयबद्ध की न्यूनतम के साथ प्रतिस्थापित किया जाना चाहिए हे ( मीटर लॉग मीटर ) और हे ( मीटर लॉग | Σ | ) "।
[ स्ट्रिंग की लंबाई है और Σ वर्णमाला के आकार का है]
मुझे समझ नहीं आता कि यह सच क्यों है।
- अंतरिक्ष: ठीक है, मामले में हम शाखाओं आकार की सरणियों का उपयोग कर नोड्स के बाहर प्रतिनिधित्व करते हैं , तो वास्तव में, हम ऊपर के साथ समाप्त Θ ( मीटर | Σ | ) स्थान उपयोग। हालाँकि, जहाँ तक मैं देख सकता हूँ, यह भी हैश तालिकाओं का उपयोग करके स्टोर करना संभव है (जैसे, पायथन में शब्दकोशों)। तब हमारे पास सभी हैश टेबल में केवल ers ( m ) पॉइंटर्स संग्रहीत होते हैं (क्योंकि पेड़ में Θ ( m ) किनारे होते हैं), जबकि अभी भी O ( 1 ) में बच्चों के नोड्स तक पहुंचने में सक्षम हैं समय, सरणियों का उपयोग करते समय उपवास।
- समय : जैसा कि ऊपर बताया गया है, हैश टेबल का उपयोग करने से हमें समय में किसी भी नोड की आउटगोइंग शाखाओं तक पहुंचने की अनुमति मिलती है । चूंकि उकोकोन के एल्गोरिथ्म को ओ ( एम ) संचालन की आवश्यकता होती है ( बच्चों के नोड्स तक पहुंचने सहित), समग्र चलने का समय तब भी ओ ( एम ) होगा ।
मैं किसी भी संकेत के लिए आपका बहुत आभारी रहूंगा कि मैं अपने निष्कर्षों में गलत क्यों हूं और गुस्कफील्ड ने वर्णमाला पर उककोन के एल्गोरिथ्म की निर्भरता के बारे में सही क्यों है।