O (n) समय में तत्व विशिष्टता?


21

हम सभी जानते हैं कि तुलना आधारित मॉडल में तत्व भिन्नता समय में नहीं की जा सकती है । हालांकि, शब्द-रैम पर, कोई संभवतः बेहतर हासिल कर सकता है।o(nlogn)

बेशक, अगर कोई एक सही हैश फ़ंक्शन के अस्तित्व को मानता है जिसे रेखीय समय में गणना की जा सकती है, तो हमें तत्व विशिष्टता के लिए एक रेखीय समय एल्गोरिथ्म मिलता है: बस संख्याओं को एक-एक करके रखें और टकराव होने पर 1 लौटें।

हालाँकि, दो मुद्दे हैं: 1) परफेक्ट हैश फ़ंक्शंस के अधिकांश निर्माण जिन्हें मैं यादृच्छिकता का उपयोग कर सकता हूं और 2) मुझे कहीं भी पूर्व-प्रसंस्करण समय की चर्चा नहीं मिल सकती है, अर्थात, यह निर्धारित करने के लिए आवश्यक समय है कि हैश फ़ंक्शन एक क्या है संख्याओं के इनपुट सेट के आधार पर उपयोग करने के लिए।

फ्रेडमैन एट अल। " ( 1 ) सबसे खराब स्थिति एक्सेस टाइम के साथ एक स्पार्स टेबल स्टोर करनाO(1) " सबसे खराब मामले में एक्सेस समय के साथ हैश फ़ंक्शन प्रदान करके पहले मुद्दे को हल करता है , लेकिन दूसरे मुद्दे के बारे में कुछ नहीं कहता है ।O(1)

इसलिए योग करने के लिए, यहाँ मैं क्या चाहता हूँ:

एक एल्गोरिथ्म डिजाइन कि एक सेट दिया के एन संख्या (प्रत्येक संख्या में किया जा रहा w शब्द लंबाई के साथ एक शब्द-रैम पर लंबे समय बिट्स) डब्ल्यू , एक हैश समारोह पाता है : एस { 1 , ... , मीटर } में हे ( एन ) समय , जहां m = O ( n ) । समारोह संपत्ति होनी चाहिए कि किसी भी के लिए जे { 1 , ... , मीटर } , के तत्वों की संख्याSnwwh:S{1,,m}O(n)m=O(n)hj{1,,m} कि j कामानचित्रएक स्थिरऔरकंप्यूटिंग h है ( i ) को"उचित" शब्द-रैम मॉडल में O ( 1 ) का समयलेना चाहिए, अर्थात, मॉडल को O में मूल्यांकन किए जाने वाले शब्दों पर "विदेशी" कार्यों की अनुमति नहीं देनी चाहिए ( 1 ) समय।Sjh(i)O(1)O(1)

मैं यह भी जानना चाहूंगा कि क्या शब्द-रैम पर तत्व भिन्नता को हल करने के लिए एल्गोरिदम हैं जो हैश फ़ंक्शन का उपयोग बिल्कुल नहीं करते हैं।


8
पुन: "मैं यह भी जानना चाहूंगा कि क्या शब्द-रैम पर तत्व भिन्नता को हल करने के लिए एल्गोरिदम हैं जो हैश फ़ंक्शन का उपयोग बिल्कुल नहीं करते हैं।" - जब तक आप केवल और रैखिक नहीं है, रैम शब्द पर छंटनी पर बहुत काम है (देखें । en.wikipedia.org/wiki/Integer_sorting )। इनमें से कुछ एल्गोरिदम हैशिंग का उपयोग करते हैं लेकिन अन्य नहीं करते हैं। o(nlogn)
डेविड एप्पस्टीन

क्या अनुमानित समाधानों की अनुमति है?
एटी

(मुझे लगता है कि) आपकी सोच की प्रक्रिया एक कदम लंघन है: 1. आप की मान्यता है कि तुलना मॉडल में सबसे अच्छा जटिलता है 2. आप से पूछना है कि यह कैसे रैम मॉडल में सुधार किया जा सकता 3. आप सीधे पूछना रैम मॉडल में O ( n ) समय में समाधान के लिए । बल्कि, आपको रैम मॉडल में ( एन लॉग एन ) में समाधान का अध्ययन करना चाहिए और देखें कि क्या आप उन्हें सुधार सकते हैं? Θ(nlogn)O(n)o(nlogn)
जेरेमी

क्या मूलांक आपके लिए बहुत धीमा है?
थॉमस मुलर

जवाबों:


8

O(nloglogn)o(nlogn)

O(nloglogn)nwहे(nलॉगलॉगn)

जहाँ तक मुझे पता है, यह इस दिन के लिए जाना जाने वाला सबसे अच्छा परिणाम है।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.