একটি গাদা এবং একটি অগ্রাধিকার সারির মধ্যে পার্থক্য


36

আমি সবসময় মনে করতেন যে গাদা এবং অগ্রাধিকার সারিগুলি প্রতিশব্দের ছিল - একটি বিমূর্ত ডাটা স্ট্রাকচার যে সমর্থন insert, findMinএবং deleteMinঅপারেশন।

কিছু সাহিত্য আমার সাথে একমত বলে মনে হচ্ছে - উদাহরণস্বরূপ ক্রিস ওকাসাকির খাঁটি ফাংশনাল ডেটা স্ট্রাকচারস (অধ্যায় 3)।

অন্যদিকে, উইকিপিডিয়ায় হিপ পৃষ্ঠা এটি গাছ-ভিত্তিক ডেটা কাঠামো হিসাবে সংজ্ঞায়িত করেছে এবং উল্লেখ করেছে যে স্তূপগুলি অগ্রাধিকারের সারিগুলির একটি দৃ concrete় বাস্তবায়ন।

আমি একের অধিক স্তরের বাস্তবায়ন - বামপন্থী স্তূপ, দ্বিপদী গাদা, স্প্লে হিপস সম্পর্কে এই ভাবতে পারি যে সত্যের সাথে আমি এই বিষয়টির সাথে পুনরায় মিলন করতে চাই ...

বিভিন্ন উপাত্ত কাঠামো দিয়ে একটি গাদা বাস্তবায়িত করা যেতে পারে তার সাধারণ সত্যটি কি সংজ্ঞার দ্বারা বোঝানো যায় না যে এটি একটি বিমূর্ত ডেটা কাঠামো? এবং যদি এটি হয় তবে অগ্রাধিকারের সারির সাথে কি প্রকৃত পার্থক্য রয়েছে?


11
অগ্রাধিকারের সারিগুলিতে উইকিপিডিয়া পৃষ্ঠাটি পড়ুন ( en.wikedia.org/wiki/Priority_queue ), এতে বলা হয়েছে "একটি অগ্রাধিকারের সারিটি একটি গাদা বা বিভিন্ন পদ্ধতি যেমন একটি আনর্ডারড অ্যারে দিয়ে প্রয়োগ করা যেতে পারে" - এবং এটিই আসলে উত্তর তোমার প্রশ্ন.
ডক ব্রাউন

2
ঠিক আছে, সত্যিই নয় - এটি আমাকে বুঝতে বুঝতে সহায়তা করে না যে গাদাটি কোনও কংক্রিটের ডেটা কাঠামো বা বিমূর্ত একটি। আমি একটি বিমূর্ত কথা বলতে চাই, যেহেতু স্তূপের অনেকগুলি কংক্রিট বাস্তবায়ন রয়েছে। যদি এটি হয়, এবং অগ্রাধিকারের তালিকা এবং একটি হিপ উভয় একই বৈশিষ্ট্যযুক্ত বিমূর্ত তথ্য কাঠামো, তবে আমার পার্থক্যটি বোঝার জন্য সহায়তা প্রয়োজন, এবং বলছেন যে একটির অপরটির সম্ভাব্য বাস্তবায়ন ভয়াবহভাবে সহায়ক নয় যদি উভয়ই প্রকৃতপক্ষে না হয় কংক্রিট বাস্তবায়ন।
নিকোলাস রিনাডো

বিষয়গুলি আরও খারাপ: বাইনারি হিপগুলি অ্যারে বা বাইনারি গাছ হিসাবে প্রয়োগ করা যেতে পারে। ভাগ্যক্রমে, আমি এখনও অন্য কিছু হিসাবে প্রয়োগ করা অ্যারের কথা শুনিনি।
অ্যালেক্সি

উত্তর:


25

অগ্রাধিকারের সারিতে কোনও প্রয়োগ থাকতে পারে যেমন অ্যারে যেমন আপনি পপ করার সময় লাইনারি অনুসন্ধান করেন। এর অর্থ হ'ল আপনি যখন পপ করবেন আপনি সর্বনিম্ন বা সর্বাধিক নির্ভর করে মান পাবেন।

একটি ক্লাসিক হিপ হিসাবে এটি সাধারণত উল্লেখ করা হয় সাধারণত একটি মিনি হিপ। একটি বাস্তবায়ন যা ভাল সময় জটিলতা ( O(log n)ধাক্কা এবং পপ উপর) এবং মেমরি ওভারহেড নেই।


4
আপনি বলতে পার্থক্য যে তারা একই কার্যকলাপ (ভাগ সময় যে মানে কি findMin, deleteMin, insertতাদের জন্য), গাদা নিশ্চিত করেছেন "ভালো" জটিলতার অগ্রাধিকার সারিগুলি না কোথায়?
নিকোলাস রিনাডো

বিভিন্ন সময় জটিলতা (উদাহরণস্বরূপ একটি লিঙ্কযুক্ত বাইনারি ট্রি) উদাহরণস্বরূপ হিপগুলিরও বিভিন্ন বাস্তবায়ন থাকতে পারে না? এছাড়াও, সময় জটিলতা ব্যবহৃত মেমরির উপর নির্ভর করে। যদি এটি চৌম্বকীয় টেপ হয় তবে O(log(n))ধাক্কা এবং পপ করার কোনও ব্যবস্থা থাকবে না , আমি মনে করি।
অ্যালেক্সি

6

এই ওয়েবসাইটটি একটি সত্যই পরিষ্কার ব্যাখ্যা সরবরাহ করে। http://pages.cs.wisc.edu/~vernon/cs367/notes/11.PRIORITY-Q.html

সংক্ষেপে, আমরা ইতিমধ্যে অধ্যয়ন করেছি এমন অনেকগুলি ডেটা স্ট্রাকচার (একটি অ্যারে, একটি লিঙ্কযুক্ত তালিকা, বা বাইনারি অনুসন্ধান ট্রি) ব্যবহার করে একটি অগ্রাধিকার সারি প্রয়োগ করা যেতে পারে। তবে, সেই ডেটা স্ট্রাকচারগুলি সবচেয়ে কার্যকর অপারেশন সরবরাহ করে না। সমস্ত ক্রিয়াকলাপকে খুব দক্ষ করে তোলার জন্য, আমরা একটি হ্যাপ নামে একটি নতুন ডেটা স্ট্রাকচার ব্যবহার করব।


1
নোট করুন যে পৃষ্ঠায় আপনি লিঙ্ক করেছেন তার সংক্ষিপ্তায়, অগ্রাধিকার সারি নিজেই একটি ডেটা স্ট্রাকচার বলে
অ্যালেক্সি

2

আমি মনে করি আপনি কংক্রিট বনাম বিমূর্ত সম্পর্কে যা লিখেছেন তা সঠিক। আপনি যেখানে বলছেন যে স্প্লে হিপস, দ্বিপদী হ্যাপগুলি হিপগুলির বিভিন্ন বাস্তবায়ন, যদিও আমি মনে করি যে তারা বিভিন্ন ধরণের স্তূপ বলা আরও বেশি সঠিক। গাদা আমি বাস্তবায়নের একটি বিভাগ হিসাবে মনে করি যা সাধারণত একই ইন্টারফেসটিই নয়, একই অ্যাক্সেসের বারও গ্যারান্টিযুক্ত।

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

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