में चोटियों को खोजने के लिए एल्गोरिदम मान लें कि मेरे पास जावा int[][] array
में 2 डी संचयक सरणी है। सरणी ऐसा दिखाई दे सकता:2 डी सरणी
(एक्स और z अक्ष सरणी में अनुक्रमित प्रतिनिधित्व करते हैं, वाई अक्ष मान का प्रतिनिधित्व करता है - इन ~ 4500 0 से मूल्यों के साथ एक int[56][56]
के चित्र हैं)
या
मैं क्या करने की जरूरत सरणी में चोटियों लगता है - पहले एक में 2 चोटियों और दूसरी सरणी में 8 चोटियों देखते हैं। ये शिखर हमेशा 'स्पष्ट' होते हैं (चोटियों के बीच हमेशा एक अंतर होता है), लेकिन इन छवियों पर समान होने की आवश्यकता नहीं है, वे कम या ज्यादा यादृच्छिक हो सकते हैं - ये छवियां वास्तविक डेटा पर आधारित नहीं हैं, केवल नमूने । वास्तविक सरणी में 5000x5000 जैसे आकार हजारों से कई सौ हजारों तक चोटी के साथ हो सकते हैं ... एल्गोरिदम सार्वभौमिक होना चाहिए, मुझे नहीं पता कि सरणी या चोटियों कितनी बड़ी हो सकती है, मुझे यह भी नहीं पता कि वहां कितने चोटियों हैं कर रहे हैं। लेकिन मुझे कुछ प्रकार की सीमा पता है - कि चोटियों को किसी दिए गए मूल्य से छोटा नहीं किया जा सकता है।
समस्या यह है कि एक चोटी में पास के कई छोटे चोटियों (पहली छवि) शामिल हो सकते हैं, ऊंचाई काफी यादृच्छिक हो सकती है और आकार एक सरणी के भीतर काफी अलग हो सकता है (आकार - मेरा मतलब है कि इकाइयों की संख्या सरणी में लेता है - एक चोटी 6 इकाइयों और 90 से दूसरे में हो सकती है)। यह भी तेज होना चाहिए (सभी 1 पुनरावृत्ति में किया जाता है), सरणी वास्तव में बड़ी हो सकती है।
किसी भी मदद की सराहना की जाती है - मुझे आपके द्वारा कोड की अपेक्षा नहीं है, सिर्फ सही विचार :) धन्यवाद!
संपादित करें: आप डोमेन के बारे में पूछा - लेकिन यह काफी जटिल है और imho यह समस्या के साथ मदद नहीं कर सकता। यह वास्तव में 3 डी बिंदुओं के साथ ऐरेलिस्ट्स की एक सरणी है, जैसे ArrayList < प्वाइंट 3 डी> [] [] और प्रश्न में मूल्य ArrayList का आकार है। प्रत्येक चोटी में एक क्लस्टर (विमान, इस मामले में) से संबंधित बिंदु होते हैं - यह सरणी एक एल्गोरिदम का परिणाम है, जो पॉइंटक्लाउड को विभाजित करती है। मुझे चोटी में उच्चतम मूल्य खोजने की ज़रूरत है, इसलिए मैं 'सबसे बड़ी' सरणीसूची से एक विमान में बिंदुओं को फिट कर सकता हूं, इसके कुछ पैरामीटर की गणना कर सकता हूं और चोटी से अधिकांश बिंदुओं को ठीक से क्लस्टर कर सकता हूं।
क्या शिखर को परिभाषित करता है? –
चोटियों के बीच निश्चित विभाजक क्या है? यही है, जब दो चोटियों एक साथ होते हैं (जैसा कि पूर्व में 1) और आप कब चाहते हैं कि वे अलग हों (जैसा कि पूर्व में 2)? – DerMike
@JamesMontagne: मैंने कुछ ब्रूटफोर्स एल्गोरिदम की कोशिश की है जो अच्छी तरह से काम नहीं करते हैं, मुझे लगता है कि कुछ प्रकार का चालाक समाधान हो सकता है जो मुझे नहीं दिखाई देता है :) –