আমার একটি র্যান্ডম কিউ লিখতে হবে যা কনস্ট্যান্ট টাইমে (ও (1)) এম্পেন্ডস এবং এলোমেলো অপসারণের অনুমতি দেয়।
আমার প্রথম চিন্তাটি এটিকে কোনও প্রকার অ্যারে (আমি একটি অ্যারেলিস্ট চয়ন করেছি) দিয়ে ফিরে আসার কথা ছিল, যেহেতু অ্যারেগুলির একটি সূচকের মাধ্যমে অবিচ্ছিন্ন অ্যাক্সেস থাকে।
যদিও ডকুমেন্টেশনটি অনুসন্ধান করে, আমি বুঝতে পেরেছি যে অ্যারেলিস্টগুলির সংযোজনগুলি নিয়মিত সময় হিসাবে গণ্য করা হয়েছে, কারণ এটি সংযোজনকে অন্তর্নিহিত অ্যারে পুনর্নির্মাণের প্রয়োজন হতে পারে, যা হ'ল (এন)।
কি ইমোরাইজড কনস্ট্যান্ট টাইম এবং কনস্ট্যান্ট টাইম কার্যকরভাবে একই রকম, বা আমার কোনও কাঠামোর দিকে নজর দেওয়া দরকার যে প্রতিটি সংযোজনে সম্পূর্ণ পুনর্নির্মাণের প্রয়োজন হয় না?
আমি এটি জিজ্ঞাসা করছি কারণ অ্যারে ভিত্তিক স্ট্রাকচারগুলি একপাশে রেখে দেওয়া হয়েছে (যা আমি জানি যতক্ষণ না সবসময় এমোরিটাইজড কনস্ট্যান্ট টাইম সংযোজন থাকবে), আমি প্রয়োজনীয়তা মেটাবে এমন কোনও কিছুই ভাবতে পারি না:
- যে কোনও গাছের ভিত্তিতে সর্বোত্তম ও (লগ এন) অ্যাক্সেস থাকবে
- একটি লিঙ্কযুক্ত তালিকায় O (1) সংযোজনগুলি থাকতে পারে (যদি পুচ্ছের একটি রেফারেন্স রাখা হয়) তবে এলোমেলো অপসারণটি সর্বোত্তম O (n) হওয়া উচিত।
এখানে সম্পূর্ণ প্রশ্ন; যদি আমি কিছু গুরুত্বপূর্ণ বিবরণ দেখেছি:
একটি র্যান্ডম কিউ ডিজাইন এবং প্রয়োগ করুন। এটি সারি ইন্টারফেসের একটি বাস্তবায়ন যেখানে মুছে ফেলা () অপারেশন এমন একটি উপাদান সরিয়ে দেয় যা বর্তমানে সারিতে থাকা সমস্ত উপাদানগুলির মধ্যে এলোমেলোভাবে বেছে নেওয়া হয়েছে। (একটি ব্যাগ হিসাবে একটি র্যান্ডম কিউকে ভাবুন যাতে আমরা উপাদানগুলি যুক্ত করতে পারি বা কিছু এলোমেলো উপাদান অন্ধভাবে মুছে ফেলতে পারি)) একটি র্যান্ডমকুইয়ে অ্যাড (এক্স) এবং অপসারণ () অপারেশন প্রতি ক্রিয়াকলাপে স্থির সময়ে চলতে হবে।
1/a
একটি হে (ঢ) অপারেশন জন্য সুযোগ), কিন্তু একটি ধ্রুবক গুণক দ্বারা ক্রমবর্ধমান a > 1
হে (1) উপরন্তু জন্য amortized: আমরা একটি আছে (1/a)^n
ক্ষেত্রের একটি হে রয়েছে সম্ভাবনা (এন) অপারেশন, তবে সেই সম্ভাবনাটি বৃহত্তর শূন্যের কাছে পৌঁছে n
।