मैं डेटा संरचना (या संरचनाओं) की तलाश में हूं जो मुझे मुझे पूर्णांक की एक क्रमबद्ध सूची, कोई डुप्लिकेट, इंडेक्स और मानों के साथ रखने की अनुमति नहीं देगी रेंज।तेजी से यादृच्छिक अभिगम, खोज, सम्मिलन और हटाने के लिए कुशल डेटा संरचना
मैं चार मुख्य संचालन की जरूरत है, कुशल होने का महत्व के किसी न किसी क्रम में:
- किसी दिए गए सूचकांक
- से मूल्य लेने किसी दिए गए मूल्य
- के सूचकांक एक पर एक मूल्य डालने की खोज सूचकांक
- किसी दिए गए सूचकांक
में एक मूल्य को हटाने में कोई सरणी हे (1) में मैं 1 है का उपयोग करते हुए दिए गए, लेकिन 2 हे है (एन) और सम्मिलन और हटाना महंगा है (ओ (एन) साथ ही, मुझे विश्वास है)।
एक लिंक्ड लिस्ट में ओ (1) सम्मिलन और हटाना (एक बार आपके पास नोड है), लेकिन 1 और 2 ओ (एन) इस प्रकार लाभ को अस्वीकार कर रहे हैं।
मैंने दो सरणी [इंडेक्स] = मान और बी [वैल्यू] = इंडेक्स को रखने की कोशिश की, जो 1 और 2 को ओ (1) में बदल देता है लेकिन 3 और 4 को और भी महंगा संचालन में बदल देता है।
क्या कोई डेटा संरचना इसके लिए बेहतर अनुकूल है?
आप किस भाषा का उपयोग कर रहे हैं? –
वास्तव में कोई फर्क नहीं पड़ता, लेकिन यह सी ++ – Leonel
इससे कोई फर्क नहीं पड़ता; सभी भाषाएं समान डेटा संरचनाओं की पेशकश नहीं करती हैं। उदाहरण के लिए, इस विशेष समस्या को सी जूडी सरणी या सी # सीपीटीरी द्वारा बहुत कुशलता से हल किया जा सकता है। (या, निश्चित रूप से, कुछ प्रकार के संतुलित बाइनरी पेड़ के रूप में अयमान ने सुझाव दिया।) – Qwertie