मैं एक समस्या को हल कर रहा हूं और मुझे एहसास हुआ कि मुझे निम्नलिखित गुणों के साथ डेटा संरचना की आवश्यकता है लेकिन गुगलिंग के कुछ घंटों के बाद भी उसे नहीं मिल सकता है। मेरा मानना है कि एसटीएल लाइब्रेरी बहुत अमीर है, इसलिए यह यहां नहीं पूछ रहा है।ओ (लॉग एन) समय में किसी दिए गए रेंज में तत्वों की संख्या को खोजने के लिए कौन सी डेटा संरचना?
- किसी भी तत्व सम्मिलित
O(log(n))
समय - में रूप में अच्छी तरह
O(log(n))
समय में एक तत्व निकालें (repetetive लोगों को रोकने के लिए सक्षम होना चाहिए)। - i श्रेणी [क, ख], मैं कि गिनती
O(log(n))
समय में मिलना चाहिए में elemenes की संख्या के लिए क्वेरी करने के लिए ..
मैं खरोंच से यह लिखने के लिए थे, तो भाग 1 के लिए चाहते हैं और 2, मैं एक set
या multiset
और मैं को संशोधित करेगा उनके find()
विधि (जो O(log(N))
समय में चलता है) का उपयोग iterators के बजाय सूचकांक वापस जाने के लिए चाहते हैं, ताकि मैं (एन) समय abs(find(a)-find(b))
तो मैं लॉग में तत्वों की संख्या प्राप्त कर सकते हैं । लेकिन दुर्भाग्य से मेरे लिए, find()
रिटर्न और इटेटरेटर।
मैंने multiset()
में देखा है और मैं O(log(n))
समय में आवश्यकता 3 को पूरा नहीं कर सका। इसमें O(n)
लगता है।
इसे आसानी से करने के लिए कोई संकेत?
टिप्पणी के बिना कोई डाउनवॉट कृपया !! – Anoop
मेरे पास मेरी भरोसेमंद मार्गदर्शिका पुस्तक नहीं है, लेकिन यदि आप 'स्कीनिया, स्टीवन एस' द्वारा 'एल्गोरिदम डिजाइन मैनुअल' पकड़ सकते हैं तो ऐसा करें। क्या मुझे एल्गोरिदम का स्रोत जाना है। – ntroncos
इम यकीन है कि हैश तालिकाओं सब कुछ है, लेकिन मैं नहीं यकीन है कि –