यहाँ है समस्या है, यह सिडगविक उत्तम एल्गोरिदम से जावा में (क्यू 3,54)गणना संख्या कि परिपत्र हो सकता है
एक अकेले लिंक्ड सूची में एक नोड के लिए एक लिंक नहीं होता है कि यह देखते हुए है शून्य लिंक (यानी प्रत्येक नोड या तो सूची में स्वयं या किसी अन्य नोड से लिंक) किसी नोड्स को संशोधित किए बिना और निरंतर मेमोरी स्पेस से अधिक का उपयोग किए बिना विभिन्न नोड्स की संख्या निर्धारित करता है।
आप यह कैसे करते हैं? खरगोश और कछुआ एल्गोरिदम का उपयोग करके एक बार सूची में स्कैन करें कि यह किसी भी तरह से परिपत्र है या नहीं, और फिर सूची को परिपत्र बनने के लिए फिर से स्कैन करें, फिर इस स्थिति में नोड्स की संख्या गिनने के बाद स्कैन करें? मुझे थोड़ा सा बल-बल लगता है, मुझे लगता है कि बहुत अधिक सुरुचिपूर्ण समाधान है।
हाहा, मैं अपनी अंतर्दृष्टि के आधार पर एक विस्तृत उत्तर देने के बीच में था कि कछुआ और खरगोश के लिए जो कदम उठाएंगे, वह चक्र की लंबाई के बारे में जानकारी देता है, जब मुझे इसे अभी देखना चाहिए था। – Joren
मुझे भी। :(Google मेरा मित्र है, Google मेरा मित्र है, Google मेरा मित्र है ... – TonyOssa
+1। लेकिन आपके एल्गोरिदम की समय जटिलता क्या है? चक्र ओ (लैम्ब्डा + यू) खोजें, चक्र की लंबाई ओ (लैम्ब्डा) ढूंढें, गर्दन की लंबाई ओ (लैम्ब्डा * यू) ढूंढें। कुल मिलाकर यह अभी भी ओ (एन^2) एन = मिनट (लैम्ब्डा, यू) मान रहा है। क्या वर्गवार से बेहतर तरीका है? – Akusete