क्या


46

एक महान कई डेटा संरचनाएं हैं जो प्राथमिकता-कतार इंटरफ़ेस को लागू करती हैं:

  • सम्मिलित करें: संरचना में एक तत्व डालें
  • गेट-मिन: संरचना में सबसे छोटे तत्व को वापस करें
  • एक्सट्रैक्ट-मिन: संरचना में सबसे छोटे तत्व को हटा दें

इस इंटरफ़ेस को लागू करने वाली सामान्य डेटा संरचनाएं (न्यूनतम) ढेर हैं

आमतौर पर, इन परिचालनों के चलने के समय (परिशोधन) निम्न हैं:

  • सम्मिलित करें: (कभी-कभी O ( लॉग एन ) )O(1)O(logn)
  • गेट-मिन: O(1)
  • एक्सट्रेक्ट-मिन: O(logn)

फाइबोनैचि ढेर उदाहरण के लिए इन चल बार प्राप्त होता है। अब, मेरा प्रश्न निम्नलिखित है:

निम्नलिखित बार (परिशोधन) के साथ एक डेटा संरचना चल रही है?

  • सम्मिलित करें: O(logn)
  • गेट-मिन: O(1)
  • एक्सट्रेक्ट-मिन: O(1)

यदि हम छांटे गए इनपुट में समय में इस तरह की संरचना का निर्माण कर सकते हैं , तो हम उदाहरण के लिए ( एन) के साथ पूर्व-छांटे गए इनपुट पर लाइन चौराहों का पता लगा सकते हैं।O(n)चौराहों कड़ाई से तेजी से अगर हम 'सामान्य' प्राथमिकता कतार का उपयोग करें।o(nlogn)


मुझे लगता है कि एक संतुलित बीएसटी का उपयोग करना, जो कि एक्सट्रैस-मिन काम कर सकता है, जब पुनर्संतुलन नहीं होगा । या शायद एक सूची छोड़ें।
svick

@svick: स्किप सूचियों को यादृच्छिक किया जाता है, जो कि मैं नहीं देख रहा हूं। यदि आप इसे BST के साथ कर सकते हैं, तो यह बहुत अच्छा है, लेकिन मुझे लगता है कि आपको किसी प्रकार का संतुलन बनाना होगा।
एलेक्स टेन ब्रिंक

एक साइड नोट पर: यह एक सीडिंग प्रश्न है और मुझे इसका उत्तर पता है, लेकिन यह देखकर अच्छा लगता है कि यह इतनी आसानी से हल नहीं हुआ है। अगर किसी को जवाब पता है, तो उसे देने में संकोच न करें :)
एलेक्स दस ब्रिंक

यदि आप अपडेट किए गए समय को स्वीकार कर रहे हैं, तो आप अपने मानक ढेर संरचनाओं को रख सकते हैं, और केवल अपने विश्लेषण में मामूली संशोधन कर सकते हैं। मेरा जवाब नीचे देखें।
जोए

जवाबों:


27

हमारा विचार थ्रेडेड स्प्ले पेड़ों का उपयोग करना है । विकिपीडिया लेख के अलावा हम पेड़ों को पिरोएंगे ताकि प्रत्येक नोड में nextक्रम-क्रम में अपने उत्तराधिकारी के लिए एक संकेतक हो; हम startपेड़ में सबसे छोटे तत्व के लिए एक संकेतक भी रखते हैं ।

यह देखना आसान है कि सबसे छोटे तत्व को निकालना सबसे खराब समय में संभव है ( : बस पॉइंटर का अनुसरण करें , न्यूनतम निकालें और पॉइंटर को न्यूनतम में बदलें । न्यूनतम बच्चे को कभी नहीं छोड़ सकते; अगर यह एक सही बच्चा है, तो हम इसे पेड़ में न्यूनतम स्थान पर रख देते हैं। हम आम तौर पर करते हैं स्प्ले ऑपरेशन स्प्ले पेड़ नहीं करते हैं। परिणाम एक खोज ट्री है जो अभी भी काफी संतुलित है: क्योंकि हम केवल बाईं तरफ के नोड्स को हटाते हैं, हम जानते हैं कि जब नोड्स (एक प्रभावित सबट्री में) विलोपन के कारण लगभग आधी मूल संख्या तक गिर जाता है, तो (उप ) पेड़ की ऊंचाई एक से कम हो जाती है।हे(1)startnext

परिशोधन समय में सम्मिलन संभव है ; ज़िग-ज़ैग (और क्या नहीं) संचालन यहां भी पेड़ को अच्छी तरह से असंतुलित करेगा।हे(लॉगn)

यह सबसे अच्छा एक मोटा स्केच है। क्रेडिट्स एफ वेनबर्ग के पास जाते हैं जिन्होंने मेरे और हमारे सलाहकार एम। नेबेल के साथ सवाल पर हैरान रह गए थे जिन्होंने केवल पेड़ों के वेरिएंट के बारे में उल्लेख किया था, हमने कोशिश नहीं की थी।


2
यह मेरे लिए स्पष्ट नहीं है कि अगर आप एक्सट्रैमिन पर नहीं छपते हैं तो काम करने के लिए परिशोधन विश्लेषण कैसे प्राप्त करें। क्या आप एक संकेत दे सकते हैं?
1:55 बजे जब्बाल

हमने इसे विस्तार से नहीं किया है। विचार यह है कि एक्सट्रेक्ट-मिन ऑपरेशंस की श्रृंखला पेड़ को असंतुलित नहीं करती है, इसलिए किसी भी तरह का छिड़काव आवश्यक नहीं है और सम्मिलन के लिए सामान्य विश्लेषण काम करना चाहिए।
राफेल

9
सावधान! सेप के पेड़ जरूरी संतुलित नहीं हैं। वे नोड्स जो लंबे समय तक एक्सेस नहीं किए गए हैं वे पेड़ में बहुत गहरे हो सकते हैं । विश्लेषण के माध्यम से जाने के लिए, आपको विश्लेषण करने के लिए उसी संभावित फ़ंक्शन के संदर्भ में बहस करनी होगी।
जेफ़ई

20
  • सम्मिलित करें: हे(लॉगn)
  • गेट-मिन: हे(1)
  • एक्सट्रेक्ट-मिन: हे(1)

अमूर्त समय

एक प्राथमिकता कतार का सरल कार्यान्वयन (जैसे कोई भी संतुलित बीएसटी, या मानक बाइनरी मिन-हीप) इन (amortized) समय को केवल निकालने के लिए एक्सट्र-मिन की लागत को चार्ज करके और न्यूनतम तत्व के लिए एक पॉइंटर बनाए रखने से प्राप्त कर सकता है। उदाहरण के लिए, आपके पास एक संभावित फ़ंक्शन हो सकता है जो कि । फिर एक नया तत्व डालने से O ( लॉग एन ) द्वारा क्षमता बढ़ जाती है , और इसलिए डालने की परिमाण लागत अभी भी हे ( लॉग एन ) है , लेकिन एक्सट्रैक्ट-मिन () Ω ( लॉग एन ) द्वारा क्षमता घट जाती है , और इसलिए परिशोधन लागत केवल ओ है (सीnलॉगnहे(लॉगn)हे(लॉगn)Ω(लॉगn)हे(1)

सबसे खराब मामला

आप साहित्य में एक मौजूदा डेटा संरचना का उपयोग कर सकते हैं: उंगली से खोज करने वाले पेड़, और बस न्यूनतम तत्व के लिए एक संकेतक बनाए रखें। एक अवलोकन के लिए इस सर्वेक्षण को देखें , और 1988 में एक लागू संस्करण के लिए Levcopoulos और Overmars द्वारा कागज जो आपकी आवश्यकताओं को पूरा करता है।


1
कितना डरपोक है। आप सही हैं, मुझे लगता है कि मुझे इसे बाहर करने के लिए कुछ मजबूत मांग करनी चाहिए थी। अच्छा विचार :)
एलेक्स दस ब्रिंक

@AlextenBrink आप सबसे खराब स्थिति हटाने की मांग कर सकते हैं । (जो प्रतीत होता है कि कुछ अन्य उत्तर क्या थे) मैंने उस मामले को संबोधित करने के लिए अपने उत्तर में एक पैराग्राफ जोड़ा। हे(1)
जो

14

2-4 पेड़ों ने ज्ञात स्थानों पर संशोधनों को संशोधित किया है। यह कहना है, यदि आपके पास पेड़ में कुछ स्थान के लिए एक संकेतक है, तो आप ( 1 ) amortized समय में एक तत्व को निकाल या जोड़ सकते हैं।हे(1)हे(1)

इस प्रकार आप केवल 2-4 पेड़ में न्यूनतम तत्व और रूट नोड के लिए एक संकेतक रख सकते हैं। आवेषण जड़ नोड के माध्यम से जाना चाहिए। डिलीट करने के बाद पॉइंटर को न्यूनतम पर अपडेट करना तुच्छ है, और डिलीटमिन (amortized) समय है।हे(1)

एक दिलचस्प पक्ष नोट: लाल-काले पेड़ सिर्फ 2-4 पेड़ों को देखने का एक तरीका है। C ++ 98 मानक लाइब्रेरी के डिज़ाइनरों को लाल-काले-पेड़-आधारित कंटेनर की आपूर्ति करने के लिए, और मानक निर्दिष्ट करता है कि डालने और हटाने के लिए ज्ञात स्थानों पर amortized समय होना चाहिए (जिसे वे "पुनरावृत्तियों" कहते हैं) )। हालांकि, यह वास्तव में 2-4 पेड़ों की तुलना में लाल-काले पेड़ों के लिए बहुत पेचीदा है, क्योंकि इसके लिए आलसी रूप से चिह्नित नोड्स की आवश्यकता होती है जिन्हें पुनरावृत्ति करने की आवश्यकता होती है। मेरी जानकारी के लिए, C ++ 98 मानक पुस्तकालय के किसी भी कार्यान्वयन ने उस विशेष आवश्यकता को पूरा नहीं किया।हे(1)


8

अनुरोध के बाद, यहां वह संरचना है जिसे मैंने प्रश्न तैयार करने के बाद पाया है:

मूल विचार न्यूनतम के लिए एक सूचक के साथ एक थ्रेडेड स्कैपेगोट पेड़ का उपयोग करना है (और अच्छे उपाय के लिए, अधिकतम अच्छी तरह से)। थ्रेडिंग का एक सरल विकल्प प्रत्येक नोड में पूर्ववर्ती और उत्तराधिकारी बिंदुओं को बनाए रखना है (जो समकक्ष, सरल है, लेकिन अधिक उपरि है)। मैं इसे एक Scapegoat ढेर कहने के लिए आया हूं , बस इसे कुछ नाम देने के लिए।

बस यह मूल संरचना आपको ये कार्य देती है:

  • खोज: एक कुंजी दी गई, समय में संबंधित नोड के लिए एक संकेतक लौटाता है ।हे(लॉगn)
  • सम्मिलित करें: एक कुंजी दी गई है, संरचना में कुंजी सम्मिलित करता है, एक पॉइंटर को समय में उस नोड पर लौटाता है ।हे(लॉगn)
  • पूर्ववर्ती / उत्तराधिकारी: एक सूचक दिया जाता है, समय में उत्तराधिकारी या पूर्ववर्ती लौटाता है ।हे(1)
  • गेट-मिन / मैक्स: पॉइंटर को न्यूनतम या अधिकतम पर लौटाता है।

Scapegoat पेड़ों के विश्लेषण में, विलोपन के संतुलन ओवरहेड का विश्लेषण रूप में किया जाता है , लेकिन विश्लेषण वास्तव में O ( 1 ) का एक ओवरहेड देता है (जो कागज में अनदेखा किया जाता है क्योंकि वे भी O ( लॉग एन) की गणना करते हैं ) समय उस नोड को खोजने के लिए लेता है जिसे हटा दिया जाना है)। इसलिए, यदि हमारे पास एक नोड के लिए एक पॉइंटर है, तो हम इसे निरंतर समय में हटा सकते हैं (आप इसे O ( 1 ) समय में थ्रेडेड बाइनरी सर्च ट्री में कर सकते हैं ) और O ( 1 ) के साथ बैलेंसिंग के ओवरहेड के साथ जोड़ सकते हैं , यह एक देता है (हे(लॉगn)हे(1)हे(लॉगn)हे(1)हे(1) समय हटाएं:हे(1)

  • हटाएं: एक पॉइंटर दिया गया है, समय में नोड को हटाता है ।हे(1)

इसका संयोजन:

  • Extract-Min / Max: समय में न्यूनतम / अधिकतम नोड को हटाता है ।हे(1)

आप पॉइंटर्स के साथ थोड़ा अधिक कर सकते हैं: उदाहरण के लिए, मध्यिका या कुछ अन्य ऑर्डर स्टेटिस्टिक के लिए पॉइंटर को बनाए रखना मुश्किल नहीं है, इसलिए यदि आप उनकी आवश्यकता है तो आप ऐसे पॉइंटर्स की निरंतर संख्या बनाए रख सकते हैं।

कुछ अन्य बातें:

  • निर्माण: छांटे गए क्रम में कुंजी, O ( n ) समय में एक Scapegoat ढेर का निर्माण ।nहे(n)
  • संतुलन: पेड़ को संतुलित करें ताकि यह समय में एक पूरी तरह से संतुलित द्विआधारी खोज ट्री (खोज के ऊपरी हिस्से को कम करता है ) का निर्माण करता है (आप ऐसा कर सकते हैं एक निरंतर कारक तेजी से कागज से पता चलता है, पूर्ववर्ती / उत्तराधिकारी का उपयोग करके) संकेत दिए गए)।हे(n)

और अंत में, मुझे पूरा यकीन है कि आप इन ऑपरेशनों का समर्थन कर सकते हैं, लेकिन मुझे यह जानने से पहले इन पर थोड़ा और सोचने की जरूरत है:

  • इन्सर्ट-न्यू-मिन / मैक्स: एक ऐसी कुंजी दी गई है जो संरचना में पहले से मौजूद किसी भी कुंजी से छोटी / बड़ी है, संरचना में कुंजी सम्मिलित करती है, जो समय में उस नोड के लिए एक पॉइंटर लौटाती है ।हे(1)

मुख्य अंतर्दृष्टि यह है कि बलि का बकरा पेड़ आपको विश्वास दिलाता है कि बिना किसी असंतुलन के किसी भी नोड को हटाने से लंबे समय में अन्य कार्यों के प्रदर्शन को प्रभावित नहीं किया जाता है, भले ही आप कई नोड्स को हटा दें।
राफेल

मैं बलि के पेड़ में विलोपन करने के दो तरीके जानता हूं। एक तरह से दर्पण सम्मिलित करता है, और amortized समय है। जिस तरह से मैंने वैश्विक पुनर्निर्माण के उपयोगों के बारे में सुना है और वह O ( 1 ) amortized है, लेकिन मुझे नहीं पता कि उस मामले में थ्रेडिंग कैसे बनाए रखी जाए। पेड़ के एक हिस्से में एक नई कुंजी डालने की कल्पना करें जिसे हटाए जाने के लिए अभी तक हटाए गए सभी कुंजी हैं। आप O- ( lg n ) समय में सम्मिलित की जाने वाली कुंजी का पूर्ववर्ती कैसे पाते हैं ? हे(एलजीn)हे(1)हे(एलजीn)
jbapple

2
@jbapple: स्कैपगेट पेड़ों के लिए समय में कैसे हटाएं, इस पर दो भिन्नताएं हैं। एक नोड को छोड़ना है, इसे हटाए गए के रूप में चिह्नित करें और इन सभी हटाए गए नोड्स को वैश्विक पुनर्निर्माण के साथ हटा दें, और दूसरा नोड को वास्तव में निकालना है। पहला विश्लेषण करना आसान है (और आपको दूसरे पर बाध्य भी करता है, यही कारण है कि यह आमतौर पर समझाया गया है) लेकिन दूसरा वह है जिसके बाद मैं हूं: आप वेनिला बाइनरी सर्च ट्री में O ( 1 ) समय में हटा सकते हैं यदि आप O ( 1 ) समय में पूर्ववर्ती / उत्तराधिकारी प्रश्न कर सकते हैं , और O ( 1 ) समय में संतुलन बनाने से आपको बाकी की सीमा मिलती है।हे(1)हे(1)हे(1)हे(1)
एलेक्स दस ब्रिंक

आह, मैं अब समझ गया।
jbapple

2

एक नरम ढेर एक द्विपद कतार का एक सूक्ष्म संशोधन है। डेटा संरचना एक त्रुटि पैरामीटर के साथ अनुमानित है । यह इन्सर्ट, डिलीट, मेल्ड और फाइंडमिन को सपोर्ट करता है। परिशोधित प्रत्येक ऑपरेशन की जटिलता है हे ( 1 ) , सम्मिलित जो लेता है के लिए छोड़कर लॉग ( 1 / ε ) समय। सॉफ्ट हीप की नवीनता तुलना-आधारित मॉडल में एक ढेर की जटिलता पर बाध्य लॉगरिदमिक को पीटने में है। सूचना सिद्धांत बाधा को तोड़ने के लिए, डेटा संरचना का एन्ट्रापी कृत्रिम रूप से कुछ कुंजियों के मूल्यों को बढ़ाकर कम किया जाता है। इसे भ्रष्टता कहा जाता हैϵO(1)log(1/ϵ)चाबियाँ। डेटा संरचना पूरी तरह से पॉइंटर-आधारित है (कोई सरणियाँ और न ही संख्यात्मक मान्यताओं) और तुलना-आधारित मॉडल में किसी भी मूल्य के लिए इष्टतम है ।ε

सॉफ्ट हीप के अनुप्रयोगों में एक ग्राफ के लिए न्यूनतम फैले हुए पेड़ की गणना करना, गतिशील रूप से प्रतिशत और रैखिक समय क्रम के आंकड़ों को बनाए रखना शामिल है। यह भी इस तरह के लगभग छंटाई के रूप में, लगभग गणना के लिए इस्तेमाल किया जा सकता है, जहां एक तत्व के पद कभी नहीं की तुलना में अधिक से अलग है सच पद से।εn

मूल, स्पष्ट और अच्छी तरह से लिखे गए पेपर के लिए, बर्नार्ड चेज़ेल, द सॉफ्ट हीप: एक अनुमानित प्राथमिकता कतार के साथ ऑप्टिमल एरर रेट, जर्नल ऑफ़ एसीएम, 47 (6), पीपी 1012-1027, 2000 देखें । वैकल्पिक कार्यान्वयन और विश्लेषण के लिए जो Soda'09 से सरल और अधिक सहज होने का दावा करता है, कपलान एच। एंड ज़्विक यू। , चेज़ेल के नरम ढेर का एक सरल कार्यान्वयन और विश्लेषण देखें


हालांकि एक उच्च दिलचस्प डेटास्ट्रक्चर, नरम ढेर सटीक नहीं हैं: फाइंडमिन एक मान लौटा सकता है जो न्यूनतम नहीं है, लेकिन केवल एक अनुमानित न्यूनतम है। वैसे भी लिंक के लिए धन्यवाद :)
एलेक्स दस ब्रिंक

1
@AlextenBrink: डेटा संरचना का बिंदु (जैसे कई संभाव्य एल्गोरिदम) यह है कि आप सटीक उत्तर प्राप्त करने के लिए अनुमानित डेटा-संरचना का उपयोग कर सकते हैं। वास्तव में नरम ढेर की अनुमानित प्रकृति ने इसे न्यूनतम फैले हुए पेड़ के लिए केवल ज्ञात रैखिक समय एल्गोरिथ्म में उपयोग करने से नहीं रोका।
Jérémie

2

ठीक है, आखिरकार आपको वह जटिलता मिल गई जिसकी आप तलाश कर रहे थे, और जो सबसे अच्छा है, मैंने इसे साहित्य में पाया:

सबसे बुरा मामला जटिलता

हटाएं : O(1)

डिलीट-मिन : O(1)

ढूँढें-मिनट : O(1)

सम्मिलित करें : O(log n)

संदर्भ

यदि MELD को रेखीय समय लेने की अनुमति दी गई है तो डिट्ज़ और रमन की उंगली खोज पेड़ों का उपयोग करके सबसे खराब स्थिति में DELETE-MIN का समर्थन करना संभव है [3]। उनके डेटा संरचना का उपयोग करके , MAKDMINQUEUE , FINDMIN , DELETEMIN , DELETE को सबसे खराब स्थिति में , INSERT को सबसे खराब स्थिति में O ( l o g n ) और MELD को सबसे खराब स्थिति O ( n ) में समर्थित किया जा सकता है ।O(1)O(log n)O(n)

ब्रोडल, गेरथ स्टाल्टिंग। Ity फास्ट मेल्डेबल प्रायोरिटी क्यू ’। एल्गोरिथ्म और डेटा संरचनाओं पर 4 वें अंतर्राष्ट्रीय कार्यशाला की कार्यवाही में, 282-290। WADS '95। लंदन, यूके, यूके: स्प्रिंगर-वर्लग, 1995।

[3]: डिट्ज़, पॉल एफ, और राजीव रमन। ए कॉन्स्टेंट अपडेट टाइम फिंगर सर्च ट्री ’। सूचना प्रसंस्करण पत्र 52, सं। 3 (1994): 147 - 154

हालांकि यह गणना के रैम मॉडल का उपयोग करता है :

हमारी डेटा संरचना यूनिट-कॉस्ट माप और लॉगरिदमिक शब्द आकार के साथ यादृच्छिक-एक्सेस मशीन (रैम) मॉडल का उपयोग करती है;

हाल ही में, गणना समाधान का एक पॉइंटर-मशीन मॉडल दिया गया है [1]

[1]: ब्रॉडल, गेरथ स्टाल्टिंग, जॉर्ज लागोगनिनिस, क्रिस्टोस माक्रिस, अथानासियोस साकिलेजिस और कोस्तास साइक्लस। 'पॉइंटर मशीन में ऑप्टिमल फिंगर सर्च ट्रीज़'। जे। कम्प्यूट। Syst। विज्ञान। 67, सं। 2 (सितंबर 2003): 381–418।


2

दो डेटा-संरचनाओं को बनाए रखते हुए इस समस्या को स्वीकार करना: एक एरे और एक बाइनरी ट्री।

सरणी में अनुक्रमण बनाए रखने के लिए, पहले आप होगा Ω(लॉगnलॉगलॉगn)Ω(लॉगn)

हे(लॉगn)हे(लॉगn)

nullहे(लॉगn)

हे(1)हे(1)

हे(लॉगn)हे(1)delete_at(idx)


1 पतरास्कु, मिहाई, और एरिक डी। डिमाइन। "सेल-जांच मॉडल में लॉगरिदमिक लोअर सीमाएँ।" सियाम जे। कम्प्यूट। ३५, नहीं। 4 (अप्रैल 2006): 932–963। डोई: 10.1137 / S0097539705447256।


1
हे(लॉगn)

"बाइनरी सर्च ट्री को एक अरेंज में पिरोया" का क्या अर्थ है?
jbapple

@AT: मैं jbapple की भावना साझा करता हूं।
राफेल

Ω(k)kO(1)

आपका अपडेट, जिसमें आप समझाते हैं कि निरंतर समय में घुमाव कैसे लागू करें, सरणियों में काम नहीं करता है। यह उत्तर अभी भी गलत है। आपके द्वारा संदर्भित टारजन पेपर नोड्स और पॉइंटर्स के साथ संग्रहीत पेड़ों के बारे में है।
jbapple

-2

हे(1)हे(एलजी एलजी n)

2007 का पेपर देखें: मिकेल थोरुप द्वारा प्राथमिकता वाले कतारों और छंटाई के बीच समानता

O(n log log n)


यद्यपि आपके द्वारा जोड़ा गया पेपर दिलचस्प है, उनके द्वारा पेश की गई प्राथमिकता कतार में निरंतर समय विलोपन नहीं है (यदि मैं सही तरीके से सार पढ़ता हूं), और इसलिए मैं जो पूछ रहा हूं वह नहीं है।
एलेक्स दस ब्रिंक

-2

विश्लेषण

o(n loजी lजी n)

(एलजी एलजी n)

हटाएं : O ( 1 हे(1)

हे(n)

हे(1)

हे(1)

कार्यान्वयन

  1. तत्वों की एक अनियंत्रित (स्थिर) संख्या से सूची तैयार करें, 6: कहेहे(1)
  2. हे(6)हे(1)
  3. ±
    ((>nआकार-1)(<n0)((<nमैं)(>nमैं+1)))
    o(log log n)

[१]: एंडरसन, अर्ने और क्रिस्टर मैटसन। 'डायनेमिक इंटरपोलेशन सर्च इन ओ (लॉग लॉग एन) टाइम'। ऑटोमेटा, भाषा और प्रोग्रामिंग में, आंद्रेजज लिंगस, रॉल्फ कार्लसन और Svante कार्लसन द्वारा संपादित, 700: 15–27। कंप्यूटर विज्ञान के व्याख्यान नोट्स। स्प्रिंगर बर्लिन / हीडलबर्ग, 1993. http://dx.doi.org/10.1007/3-540-56939-1_58


2
खैर, डालने का समय निशान से दूर है।
राफेल

nरोंमैंz-1n0nमैंnमैं+1

आपके द्वारा लिंक किए गए पेपर के सार को पढ़ते हुए, ऐसा लगता है कि ये सीमाएं किसी विशेष वितरण के इनपुट के लिए अपेक्षित सीमाएं हैं, इसलिए मैं जो देख रहा हूं वह नहीं है: मैं चाहता हूं कि मैं किसी भी इनपुट पर उल्लिखित सीमा चाहता हूं।
एलेक्स टेन ब्रिंक

हे(एलजी n)

@AT लॉगरिदमिक बाइनरी खोज को यादृच्छिक उपयोग की आवश्यकता है। अंतर्निहित सूची को किस रूप में लागू किया गया है? आपको अपनी दावा की गई सीमाओं के लिए वास्तव में बहस करनी चाहिए। इसके अलावा, "सूची में स्थान" अस्पष्ट है - क्या स्थिति और क्या प्रतीक का उल्लेख करते हैं? आपके द्वारा लिंक किए गए पेपर तक सभी की पहुंच नहीं है। कृपया अपने उत्तर (अधिक) को स्व-निहित बनाने और कम से कम तथ्यों को संक्षेप में प्रस्तुत करने का प्रयास करें। इस बिंदु पर मुझे विश्वास नहीं है कि आपका उत्तर सही है।
जूहो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.