मैं एक रिकर्सिव इमेज प्रोसेसिंग एल्गोरिदम पर काम कर रहा हूं (जावा में) जो एक बिंदु बिंदु से बाहर, छवि के पिक्सल को दोबारा घुमाता है।जावा कतार का सर्वोत्तम कार्यान्वयन?
दुर्भाग्य से, यह एक स्टैक ओवरफ़्लो का कारण बनता है। इसलिए मैंने एक कतार-आधारित एल्गोरिदम पर स्विच करने का निर्णय लिया है।
अब, यह सब ठीक और बेवकूफ है- लेकिन इस तथ्य पर विचार करते हुए कि यह कतार बहुत ही कम समय में पिक्सल के हजारों का विश्लेषण कर रही है, जबकि एक अनुमानित स्थिति को बनाए रखने के बिना लगातार पॉपिंग और धक्का दे रहा है (यह कहीं भी हो सकता है लंबाई 100, और 20000 के बीच); कतार कार्यान्वयन में तेजी से पॉपिंग और क्षमताओं को धक्का देना आवश्यक है।
एक लिंक्ड सूची सूची में किसी और चीज को पुन: व्यवस्थित किए बिना तत्वों को धक्का देने की अपनी क्षमता के कारण आकर्षक लगती है, लेकिन इसके लिए पर्याप्त तेज़ होने के लिए, इसे अपने सिर, और इसकी पूंछ दोनों तक आसान पहुंच की आवश्यकता होगी (या दूसरा-से-अंतिम नोड यदि यह दोगुना-लिंक नहीं था)। अफसोस की बात है, हालांकि मुझे जावा में लिंक्ड सूचियों के अंतर्निहित कार्यान्वयन से संबंधित कोई जानकारी नहीं मिल रही है, इसलिए यह कहना मुश्किल है कि एक लिंक की गई सूची वास्तव में जाने का तरीका है ...
यह मुझे मेरे प्रश्न पर लाता है। जावा में कतार इंटरफ़ेस का सबसे अच्छा कार्यान्वयन क्या होगा जो मैं करना चाहता हूं? (मैं कतार के सिर और पूंछ के अलावा किसी अन्य चीज़ को संपादित या यहां तक कि एक्सेस करना नहीं चाहता हूं - मैं किसी भी प्रकार की पुनर्व्यवस्थित या कुछ भी नहीं करना चाहता हूं। फ्लिप पक्ष पर, मैं बहुत धक्का देने का इरादा रखता हूं और पॉपिंग, और कतार काफी आकार बदल जाएगी, इसलिए प्रीलोकेटिंग अक्षम होगी)
हो सकता है कि आपको वापस कदम उठाने और सोचने की आवश्यकता हो कि हजारों व्यक्तिगत पिक्सल को डेटा संरचना में एक-एक करके धक्का देने से बेहतर तरीका है (यदि वास्तव में आप क्या कर रहे हैं)। – Thilo
यह एक ब्लॉब डिटेक्शन एल्गोरिदम है, विचार यह है कि यह ब्लॉब पर एक बिंदु से शुरू होता है और ब्लॉब के किनारे से बाहर की ओर जाता है। मुझे विश्वास नहीं है कि ऐसा करने का कोई अन्य (सरल) तरीका है। इसके अलावा, कतार सिर्फ रुचि के बिंदु संग्रहीत करती है - यह वास्तव में पिक्सल को कतार में नहीं रखती है, कतार मुख्य रूप से यह कहां है कि यह कहां है इसका ट्रैक रखने के तरीके के रूप में कार्य करता है। कई पथदर्शी एल्गोरिदम –