मेरे पास रेस कोर्स ऑब्जेक्ट है जो एक ऐरेलिस्ट है जो हॉर्स ऑब्जेक्ट्स लेता है। मैंने ऐरेलिस्ट को चुना क्योंकि इसे कार्यान्वित करना आसान है। हालांकि, एक ऐरेलिस्ट का उपयोग करने का नकारात्मक हिस्सा यह है कि मैं आसानी से संग्रह के माध्यम से तेजी से चलने के बिना प्रत्येक घोड़े की स्थिति का ट्रैक नहीं रख सकता। उदाहरण के लिए, यदि मैं एक दूसरे के लिए एक्स दूरी की दूरी के भीतर 2 घोड़े ढूंढना चाहता हूं, तो मुझे n^2
बार के माध्यम से फिर से शुरू करना होगा।घोड़े की दौड़ का प्रतिनिधित्व करने के लिए एक अच्छा डेटा संग्रह क्या है?
क्या ऐसा करने के लिए कोई बेहतर रणनीति है?
संपादित करें: मेरे रेस मॉडल पर बहुत से अनुरोध विशिष्ट हैं, इसलिए मैं यहां विस्तृत जानकारी दूंगा।
मॉडल प्रत्येक पुनरावृत्ति को अद्यतन किया जाता है। इसलिए प्रत्येक घोड़े की अपनी गति, त्वरण, दूरी यात्रा आदि होती है और संग्रह के माध्यम से प्रत्येक पुनरावृत्ति इन मानों को अद्यतन करता है। अगर कोई घोड़ा दूसरे के नजदीक है तो इसकी आवश्यकता है, यह धीमा हो जाएगा, जिसे मैं अपने 'दूरी की यात्रा' मूल्यों की तुलना करके करने की योजना बना रहा हूं।
आप अपने पदों और पुनरावृत्तियों को क्रमबद्ध करके घोड़ों के ऐसे जोड़े पा सकते हैं, जो 'ओ (एन लॉग एन)' है। –
विशिष्ट हो: 1. क्या आपको मूल्यों को यादृच्छिक रूप से क्वेरी करना और बदलना है? या 2. क्या आप (बार-बार) {अद्यतन मान फिर क्वेरी करते हैं}? मामला 1. -> निकालने के साथ पेड़ और पुनः सम्मिलित करें, केस 2. -> सरणी: {अद्यतन मान, क्रमबद्ध करें, प्रश्नों को निष्पादित करें} – BeyelerStudios
एक तीसरा मामला भी है: क्या मूल्य (यानी दौड़ की स्थिति) यादृच्छिक रूप से कूद सकते हैं? या वे केवल ऊपर और नीचे जा सकते हैं? इस तीसरे मामले में आप एक स्कैन सूची (जो एक क्रमबद्ध सरणी है) चाहते हैं और ऊपर या नीचे बढ़ना सरणी में स्वैपिंग स्थिति के बराबर है। – BeyelerStudios