मैं थेटा नोटेशन में इस फ़ंक्शन की समय जटिलता को खोजने का प्रयास कर रहा हूं। अब, एन एक सकारात्मक पूर्णांक है, और lst 2 संख्याओं के साथ एक सूची है।योजना में इस कार्य की समय जटिलता क्या है?
(define (func n lst)
(if (= n 0) lst
(accumulate append null
(map (lambda (x)
(func (- n 1) (list x x)))
lst))))
आप जानते हैं, संलग्न के समय जटिलता Θ (एन) जहां n सूचियों का कुल आकार है। मैंने यह देखने की कोशिश की कि क्या होता है यदि मैं संलग्न करता हूं और Θ (1) कार्यों के रूप में जमा करता हूं, तो मुझे मिलता है:
टी (एन) = 2 टी (एन -1) + Θ (1) जो है -> Θ (2^एन)
क्या इसका मतलब यह है कि थेटा नोटेशन में इस चीज़ की वास्तविक समय जटिलता Θ (2^एन) से बड़ी है?
मैं भी लगता है कि मैं अकेला इस धारणा के साथ सही हूँ, और वैसे भी, मैं अगर मैं विचार दोनों जमा होते हैं और संलग्न में लेने की जरूरत क्या करना है पर पता कर रहा हूँ नहीं कर रहा हूँ ...
मैं इस पर घंटों बर्बाद हो गए हैं, और मैं वास्तव में समझ में नहीं आता कि मैं इसे अपने आप क्यों नहीं समझ सकता ... किसी भी मदद की खुशी से सराहना की जाएगी।
(define (accumulate op init lst)
(if (null? lst)
init
(op (car lst)
(accumulate op init (cdr lst)))))
मैं और अधिक सटीक और उचित रूप से समझाया गया उत्तर पाने के लिए भी कोशिश कर रहा हूं लेकिन अब मुझे लगता है कि आप सही रास्ते पर हैं, क्योंकि आप प्रत्येक कॉल में 2 नए रिकर्सन को जन्म दे रहे हैं, यह ओ (2^एन) जटिलता। – ivanjovanovic