হ্রাস কী এবং বৃদ্ধি কী উভয় ক্রিয়াকলাপের সাথে অগ্রাধিকারের সারি


11

একটি ফিবননসি হিপ নিম্নলিখিত ক্রিয়াকলাপগুলিকে সমর্থন করে:

  • insert(key, data) : ডেটা স্ট্রাকচারে একটি নতুন উপাদান যুক্ত করে
  • find-min() : ন্যূনতম কী সহ উপাদানকে একটি পয়েন্টার প্রদান করে
  • delete-min() : ন্যূনতম কী সহ উপাদানটি সরিয়ে দেয়
  • delete(node) : দ্বারা নির্দেশিত উপাদান মোছা node
  • decrease-key(node) : দ্বারা নির্দেশিত উপাদানটির চাবি হ্রাস করে node

সমস্ত মুছে ফেলা অপারেশনগুলি হ'ল (amorised) সময়, এবং মোছা অপারেশনগুলি হ'ল মোড়ের সময়।O(1)O(logn)

সেখানে একটি অগ্রাধিকার কিউ যা সমর্থন কোন বাস্তবায়নের হয় increase-key(node)মধ্যে (amortized) সময়?O(1)


@ রাফেল যদি আপনি ন্যূনতম উপাদানের চাবি বাড়ান তবে এটি এখন সবচেয়ে বড় কী, এটি অবিলম্বে সুস্পষ্টভাবে নয় (কমপক্ষে আমার কাছে) যে আপনাকে পুনরায় ভারসাম্যহীন পরিমাণের খুব বেশি পরিমাণে ভারসাম্য বজায় রাখতে হবে না।
জো

উত্তর:


10

মনে করুন আপনি একটি অগ্রাধিকার কিউ আছে যে আছে , এবং । তারপরে নিম্নলিখিতটি বাছাই করা অ্যালগরিদম যা সময় নেয় :( এন )O(1) find-minincrease-keyinsertO(n)

vector<T>
fast_sort(const vector<T> & in) {
  vector<T> ans;
  pq<T> out;
  for (auto x : in) {
    out.insert(x);
  }
  for(auto x : in) {
    ans.push_back(*out.find_min());
    out.increase_key(out.find_min(), infinity);
  }
  return ans;
}

1
আমি ধরে নিয়েছিলাম যে (de|in)crease-keyকেবলমাত্র প্লাস বা বিয়োগ একটি করেছে।
রাফেল

এবং এমন কোনও ডিএস রয়েছে কি যা স্থির সময়ে বৃদ্ধি-কী অপারেশন করতে দেয় তবে লগারিদমিক (বা আরও) হ্রাস পায়? (একটি মিনিটের গাদা জন্য)
গঞ্জালো সোলেরা

2
@ গঞ্জালোসোলেরা: এই উত্তরের অসম্ভবতার প্রমাণটি হ্রাস-কী সম্পর্কে চিন্তা করে না; O (1) ফাইন্ড-মিনিট, বৃদ্ধি-কী এবং সন্নিবেশ একত্রে একসাথে সমস্যা (এবং সন্নিবেশের উপর প্রমাণের নির্ভরতা সত্যই প্রয়োজনীয় নয়; ও (এন) হিপিফাই যথেষ্ট, অথবা আমরা সম্ভবত একাধিকের উপরে একই গাদা পুনরায় ব্যবহার করতে পারি এটিকে প্রমাণ করার জন্য হ্যাপিফাই বা সন্নিবেশনের ব্যয় নির্বিশেষে তুলনা বাছাই সীমা লঙ্ঘন করে)
ব্যবহারকারী 2357112

ঠিক আছে দুঃখিত, আমি এটি পড়ে মিস করেছি। আপনার মন্তব্যের জন্য ধন্যবাদ!
গঞ্জালো সোলেরা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.