जब जावा (या उस मामले के लिए कोई अन्य प्रक्रियात्मक भाषा) में प्रोग्रामिंग करते हैं, तो मैं अक्सर को बनाम को हल करने के दौरान इसे हल करने के बीच चुनता हूं। रिकर्सिव विकल्प अक्सर एक पुनरावर्तक समाधान से अधिक सुरुचिपूर्ण होता है, इसलिए मैं आमतौर पर रिकर्सिव समाधान के लिए जाता हूं। एक अपवाद के साथ:ठीक है कुछ इनपुट आकार के लिए रैखिक गहराई रैखिक आनुपातिक है?
ढेर के बारे में चिंता मैं पुनरावर्ती समाधान से बचने के लिए अगर अधिकतम ढेर गहराई रैखिक इनपुट (या बुरा) के आकार के लिए आनुपातिक है करते हैं overflows। मुझे एहसास है कि कई अन्य भाषाओं में (स्कैला और क्लोजर जैसे जेवीएम को लक्षित करने वाले भी) कई एल्गोरिदम, उदाहरण के लिए मूल सूची एल्गोरिदम, अक्सर बार-बार व्यक्त किए जाते हैं जहां अधिकतम स्टैक गहराई सूची की लंबाई के समान होती है। (1) तो, रैखिक-स्टैक-गहराई-एल्गोरिदम में स्टैक ओवरफ़्लो के बारे में मेरी चिंताएं उचित हैं?
टीएल; डीआर: क्या "स्टैक गहराई जटिलता" उचित मानी जाती है? लघुगणक जटिलता, उदाहरण के लिए पुनरावर्ती द्विआधारी खोज, हे (लॉग एन) निश्चित रूप से ठीक है, लेकिन के बारे में कैसे हे (एन), हे (एन लॉग ऑन एन), हे (एन)? आप आम तौर पर रेखा को कहां आकर्षित करेंगे? (2)
(1) मुझे लगता है कि ऐसी भाषाओं कभी कभी @tailrec जैसी चीजों का समर्थन करता है, लेकिन इस सवाल जावा, सी # चिंताओं आदि
(2) ध्यान दें कि मैं सीपीयू भूमि के ऊपर के बारे में चिंतित नहीं हूँ आदि बस ढेर गहराई।
ढेर गहराई जटिलता पर विचार करना एक बात है, लेकिन दूसरी बात इनपुट आकार ही है। यदि समस्या अपने डोमेन के बड़े इनपुट (विकास में विस्तारित अवधि के समय के लिए) को छोड़ देती है, तो हम रिकर्सिव समाधान के लिए जा सकते हैं (धारणा के साथ जटिलता ढेर की क्षमता से अधिक नहीं है)। यदि इनपुट आकार परिभाषित नहीं किया गया है, तो ओ (1) स्टैक गहराई या ओ (लॉग एन) स्टैक गहराई स्वीकार्य है आईएमओ (ओ (लॉग एन) स्वीकार्य नहीं हो सकता है यदि ** व्यावहारिक ** इनपुट आकार पर ऊपरी सीमा भी टूट जाती है ढेर का आकार, लेकिन मुझे लगता है कि यह मामला काफी दुर्लभ होगा)। – nhahtdh
"रिकर्सिव विकल्प अक्सर एक पुनरावर्तक समाधान से अधिक सुरुचिपूर्ण होता है" 90% मामलों में मुझे विपरीत लगता है। यह उस समस्या के प्रकार पर निर्भर हो सकता है जिसे आप हल करने की कोशिश कर रहे हैं और आप किस शैली के साथ अधिक सहज हैं। ;) मैं आमतौर पर ओ (लॉग एन) रिकर्सिव गहराई के साथ सहज हूँ। –
क्या यह [टैग: भाषा-अज्ञेयवादी] –