বিভক্ত স্ট্যাক


22

নিম্নলিখিত দুটি ক্রিয়াকলাপ সাপেক্ষে আইটেমগুলির ক্রম বজায় রাখতে পারে এমন ডেটা স্ট্রাকচার সম্পর্কে কী জানা যায়?

  • পুশ (এক্স): অনুক্রমের শেষে x যুক্ত করুন, এবং ক্রমটির অবস্থানের জন্য একটি শনাক্তকারীকে ফিরিয়ে দিন
  • এক্সট্রাক্ট (এস): শনাক্তকারীদের একটি আনর্ডারড সেট দেওয়া হয়েছে, সিকোয়েন্স থেকে সেই অবস্থানগুলিতে আইটেমগুলি সরিয়ে ফেলুন এবং সিকোয়েন্স ক্রমে মুছে ফেলা আইটেমগুলির একটি তালিকা ফিরিয়ে দিন

আপনি যদি পছন্দ করেন তবে এটি স্ট্যাক বা একটি বিভক্ত ক্রিয়াকলাপের একটি সারি হিসাবে মনে করতে পারেন যা এটি দুটি স্ট্যাকের মধ্যে বিভক্ত হয়: এক্সট্রাক্ট অপারেশনটি একটি পপ বা শনাক্তকরণ ক্রিয়াকলাপ বাস্তবায়নের জন্য ব্যবহার করা যেতে পারে এবং আইটেমগুলির উত্তোলিত ক্রমটিও স্থাপন করা যেতে পারে আবার আলাদা স্ট্যাক বা কাতারে ফিরে আসুন।

আমি ইতিমধ্যে যা জানি: দ্বিগুণ-সংযুক্ত তালিকা হিসাবে একটি ক্রম বজায় রাখতে পারে, যেখানে প্রতিটি শনাক্তকারী কোনও সংযুক্ত-তালিকা নোডের কেবলমাত্র একটি পয়েন্টার এবং প্রতিটি নোড এমন একটি পজিশন নম্বরও সঞ্চয় করে যা দুটি অপ্রাসঙ্গিক উপাদানগুলির অবস্থানের মধ্যে দ্রুত তুলনা করার অনুমতি দেয় অনুক্রমের মধ্যে। ডাটা স্ট্রাকচারের অগ্রগতির সাথে অবস্থানের সংখ্যাগুলি আপডেট করা কঠিন নয় যাতে এগুলি সর্বাধিক মান এর ইতিবাচক পূর্ণসংখ্যার হয় , যেখানে তালিকার আইগুলির বর্তমান সংখ্যা হ'ল । এই ডেটা কাঠামোর সাহায্যে এক্সট্রাক্ট অপারেশনের একমাত্র কঠিন অংশটি উত্তোলিত আইটেমগুলিকে তাদের অবস্থানের সংখ্যা অনুসারে বাছাই করা। আইটেমগুলির একটি নিষ্কাশন নেয়O(n)কে ( কে √)nkO(kloglogk) উদাহরণস্বরূপ, FOCS 2002 থেকে হান এবং থারুপের পূর্ণসংখ্যা বাছাইয়ের অ্যালগরিদম ব্যবহার করে এলোমেলোভাবে সময় প্রত্যাশিত হয়েছিল এবং ধাক্কা দেওয়ার জন্য অবিচ্ছিন্ন সময় লাগে।

যা আমি জানি না: সময়ে এক্সট্র্যাক্ট পরিচালনা করা এবং ধ্রুবক সময়ে ধাক্কা দেওয়া কি সম্ভব ? এই সমস্যা আছে কি সাহিত্য আছে? এটি কি পূর্ণসংখ্যার বাছাইয়ের মতো শক্ত?O(k)

অনুপ্রেরণা: কফম্যান-গ্রাহাম শিডিয়ুলিং অ্যালগরিদমের আইটেমগুলি অর্ডার করার জন্য এটি প্রয়োজনীয় প্রাথমিক পদক্ষেপ, যার গ্রাফ অঙ্কনে অ্যাপ্লিকেশন রয়েছে। কফম্যান-গ্রাহামের শক্ত অংশটি একটি অভিধান সংক্রান্ত টপোলজিকাল ক্রম। এটি প্রতিটি পৃথক gনগ্রাহীকরণের জন্য, বাকী অনুচ্ছেদের দ্বারা অনুপ্রাণিত সাবগ্রাফ্টে সেই অনগ্রহের সাথে অনুভূমিকগুলির একটি ক্রম বজায় রেখেই করা যায়। তারপর, বারবার প্রথম প্রান্তবিন্দু অপসারণ শূন্য indegree ছেদচিহ্ন ক্রম থেকে টপোলজিকাল অর্ডার থেকে এটি যোগ; তারা পূর্ববর্তী ডিগ্রি থেকে এর প্রতিবেশীদের সরিয়ে ফেলুন এবং পরবর্তী ছোট ডিগ্রির জন্য অনুক্রমের দিকে ঠেলে দিন। সুতরাং একটিভি ( কে )vvO(k) এই ডেটা স্ট্রাকচারে এক্সট্রাক্ট অপারেশনের সময় কফম্যান-গ্রাহাম অ্যালগরিদমের লিনিং টাইম প্রয়োগের দিকে নিয়ে যায়।

যেহেতু প্রাথমিকভাবে এটি জিজ্ঞাসা করা হয়েছিল সেহেতু আমি 1976 সাল থেকে একটি কাগজ পেয়েছি যা কফম্যান – গ্রাহাম অ্যালগরিদমকে রৈখিক সময়ে প্রয়োগ করার অনুমতি দেয় এবং এটি আমার উইকিপিডিয়া নিবন্ধে কফম্যান – গ্রাহাম অ্যালগরিদমের অন্তর্ভুক্ত করে , তাই মূল প্রেরণাটি কম অর্থবহ। যদিও এখনও উত্তরটি কী তা আমি উত্সাহী।


যদি সন্নিবেশগুলি কেবল ক্রমের শেষে হয়, আপনি আইটেমের অবস্থানগুলির একটি ডাবল লিঙ্কযুক্ত তালিকা এবং একটি হ্যাশ টেবিল উভয়ই তৈরি করতে পারেন। সন্নিবেশ: মোড়কযুক্ত ও (1) (কেবলমাত্র শেষ আইটেমটির জন্য একটি পয়েন্টার রাখুন)। কে আইটেমগুলির নিষ্কাশন: মোড়কযুক্ত ও (কে) (এস এর প্রতিটি উপাদানগুলির জন্য, পয়েন্টার পান এবং এটি হ্যাশ টেবিল থেকে সরান, তালিকা থেকে আইটেমটি পান এবং সরান এবং নিষ্কাশন ফলাফলে যুক্ত করুন)।
মারজিও দে বিয়াসি

3
এটি তালিকা থেকে আইটেমগুলিতে নিষ্কাশন নয় যা সময় নেয়, এটি তাদেরকে সঠিক ক্রম ক্রমের ক্রমে এক্সট্রাক্ট করার আর্গুমেন্টের অর অর্ডার করা থেকে পুনরায় সাজানো ging
ডেভিড এপস্টিন

উত্তর:


1

আমি মনে করি এটা পূর্ণসংখ্যার একটি সেট বাছাই হিসাবে হার্ড হিসাবে অন্তত হয় মাপ বহুপদী এর "র্যান্ডম পরামর্শ" সঙ্গে । এলোমেলো পরামর্শ দিয়ে আমি বলতে চাইছি যে কোনও জন্য একটি নির্দিষ্ট বিতরণ রয়েছে ( কেবলমাত্র উপর নির্ভর করে ) আকারের পলি ( ) এর উপর এবং আমাদের অ্যালগরিদম (একটি র‌্যাম মেশিন দ্বারা মডেল করা) একটি এলোমেলো অ্যাক্সেস দেওয়া হয় single থেকে একক নমুনা । হ'ল (এলোমেলোভাবে) ধাক্কা দেওয়ার পরে ডেটা স্ট্রাকচার যাতে ক্রম ক্রমানুসারে, একটি হ্যাশ টেবিলের সাথে থাকে যা প্রত্যাশিত সময়ে সনাক্তকারীদের পূর্ণসংখ্যার মানচিত্র করে ।এন এন ডি এন এন এন ডি এন ডি এন [ এন ] হে ( 1 )S[n]nnDnnnDnDn[n]O(1)

সেই সেটআপটি দেওয়া হয়েছে, উদাহরণস্বরূপ পূর্ণসংখ্যার বাছাইয়ের সমস্যার জন্য , আমরা এক্সট্র্যাক্ট ( ) জারি করতে পারি (আসলে আমাদের এর শনাক্তকারীদের প্রয়োজন তবে এই ম্যাপিংটি আইটেমটি সময়ে প্রতিটি আইটেম ব্যবহার করে করা যেতে পারে হ্যাশ টেবিল যা পরামর্শের অংশ) এবং ইনপুটটি এক্সট্রাক্ট কার্যকর করতে সময় লাগে তা অনুসারে সাজানো হবে।এস এস ( 1 )S[n]SSO(1)

সুতরাং, বার্তাটি হ'ল, যদি না কিছু "ফ্রি" পার্শ্ব সম্পর্কিত তথ্য যা কেবলমাত্র পূর্ণসংখ্যার উপরের সীমানার উপর নির্ভর করে পূর্ণসংখ্যাকে বাছাই করা সহজ করতে পারে না, এক্সট্র্যাক্টটি পূর্ণসংখ্যা বাছাইয়ের মতোই শক্ত।

এটি কি অদ্ভুত মডেল ব্যতীত দুটি সমস্যার মধ্যে সম্পর্ক বোঝায়? এলোমেলো পরামর্শের এই ধারণাটি কি কিছু জানা যায়? এটি এমএ প্রোটোকলের মতো ধরণের, তবে মার্লিনের বার্তাটি ইনপুটটির উপর নির্ভর করতে অনুমোদিত নয় এবং আমরা আর্থারের চলমান সময়টি যত্ন করি।


ঠেলে সম্মুখের প্রয়োজন তাই বিনামূল্যে অ্যাক্সেস থাকার সময়, এর থাকার মত হয় গণনার ইতিমধ্যে অ্যালগরিদম শুরুতে সম্পন্ন। আপনি সাজানোর পারেন থেকে টানা পূর্ণসংখ্যার মধ্যে সময়, যে এই ডাটা স্ট্রাকচার বিনামূল্যে অ্যাক্সেস সঙ্গে বাছাই চেয়ে বেশি গ্রহণ করা হবে আশা কোনো কারণ সময়। ডি এন Ω ( এন ) ডি এন Ω ( এন ) কে [ এন ] ( এন + কে ) ( কে )[n]DnΩ(n)DnΩ(n)k[n]O(n+k)O(k)
ডেভ

আপনার কাছে গণনা নিখরচায় দেওয়া হয়েছে, তবে অ্যাক্সেসটি নিখরচায় নয়: প্রতিটি ক্যোয়ারীর সময়-পদক্ষেপ হিসাবে চার্জ করা হয়। আপনি কি ডিজাইন করতে পারেন যাতে আপনি ক্যোয়ারী দিয়ে পূর্ণসংখ্যাকে থেকে আঁকা একটি স্ট্রিংয়ের সাথে বাছাই করতে পারেন ? ডি এন কে ( কে ) ডি এনΩ(n)DnkO(k)Dn
সাশো নিকোলভ

এই উত্তরটি পুরোপুরি বিশ্বাসযোগ্য না হওয়ার কারণ এখানে। আপনি যদি একটি সংখ্যক পূর্ণসংখ্যা সেট করতে চান যা আপনি বাছাই করতে চান, সবকিছু লিনিয়ার টাইম (কেবল হে (এন + কে) এর মধ্যে গণনা অনুসারে করুন)। তবে আপনি যদি এই ডাটা স্ট্রাকচারটি অনেক ছোট ধরণের ক্রমের অনুকরণের জন্য ব্যবহার করার চেষ্টা করছেন (যাতে গণনা বাছাই যথেষ্ট ভাল না হয়) তবে কেবলমাত্র এই ছোট ধরণের মধ্যে প্রথমটি সম্পূর্ণ নিয়ন্ত্রণহীন: এর পরে, আপনি কিছু সরিয়েছেন [এন] এর উপাদানগুলির মধ্যে, তাই আপনার ক্রম অনুসারে প্রতিটি ক্রম পূর্ববর্তীগুলির থেকে পৃথক হতে হবে। সুতরাং বাছাইয়ের কাজ থেকে কমিয়ে আনা কঠিন বলে মনে হচ্ছে।
ডেভিড এপস্টিন

@David Eppstein জন্য প্রকারের আপনি গ্রহণ করতে পারেন প্রাথমিক ডাটা স্ট্রাকচার কপি। অবশ্যই, অদ্ভুত "এলোমেলো পরামর্শ" মডেল পুরোপুরি বিশ্বাসযোগ্য নয়, আমরা স্বাভাবিক অর্থে হ্রাস চাই। তবে আমি যে বার্তাটি পৌঁছে দিচ্ছি তা হ'ল ক্যোয়ারির সময় থেকে বোঝা যায় যে কোনও পূর্ণসংখ্যার বাছাই করা অ্যালগরিদম কোনও স্মৃতি-অ্যাক্সেস দক্ষতার সাথে তার ইনপুট থেকে স্বাধীন পরামর্শ থেকে উপকার পেতে পারে। এটি আমার কাছে বিপরীতমুখী, তবে আমার স্বজ্ঞাততা এখানে দুর্বল। বিটিডাব্লু, আমি ভেবেছিলাম আপনি যে ধরনের লিনিয়ার সময় নিয়ে খুশি হন না? ( কে ) ( এন + কে )O(k)O(n+k)
সাশো নিকোলভ

আপনি যদি প্রতিটি ব্যবহারের জন্য ডেটা স্ট্রাকচার একবারে অনুলিপি করেন তবে আপনি প্রতিটি ধরণের জন্য একটি অনুলিপি তৈরির জন্য সময় ব্যবহার করছেন , সুতরাং এর ফলে দ্রুত বাছাইয়ের ফল হয় না। যদি আপনি কেবল স্ট্রিংয়ে query করছেন বলে মনে করছেন, তবে এটি অস্পষ্ট যে এটি সময়ে বাছাই করার পক্ষে যথেষ্ট । এক্সট্রাক্ট অপারেশনের সময় ডেটা কাঠামো পরিবর্তন হতে পারে এবং স্ট্যাটিক সংস্করণে চালানো রানটাইম বাড়িয়ে তুলতে পারে। ডি এন( কে )Ω(n)DnO(k)
ডেভ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.