के लिए पाइथन डेटा संरचना मैं एक अंतर्निहित पायथन डेटा संरचना की तलाश में हूं जो add
एक नया तत्व, remove
एक मौजूदा तत्व, और एक यादृच्छिक तत्व चुन सकता है, सब कुछ बेहतर से बेहतर समय पर।कुशल जोड़ने, निकालने और यादृच्छिक.चॉइस
मुझे उम्मीद थी कि set
ऐसा कर सकता है, लेकिन AFAIK, पायथन सेट से यादृच्छिक तत्व चुनने का एकमात्र तरीका random.choice(list(my_set))
है, जो ओ (एन) समय लेता है।
मैं पाइथन में निर्मित एक समाधान को बहुत पसंद करता हूं, क्योंकि मुझे दक्षता और आसान तैनाती की आवश्यकता होती है। दुर्भाग्य से, पाइथन में अंतर्निहित पेड़ डेटा प्रकार प्रतीत नहीं होते हैं।
यह शायद इंटरफ़ेस डिज़ाइन की समस्या है। वृक्ष/हैशपैप में यादृच्छिक चयन कठिन नहीं है, लेकिन सी ++ एसटीएल का नक्शा/unordered_map यादृच्छिक चयन का समर्थन नहीं करता है। – richselian