PriorityQueue
एक सरणी के रूप में लागू एक संतुलित बाइनरी ढेर के रूप में लागू किया गया है। जब कोई तत्व हटा दिया जाता है, तो ढेर को ढेर के क्रम को रखने के लिए खुद को पुन: व्यवस्थित करना होता है।
सबूत टिप्पणी
/**
* Priority queue represented as a balanced binary heap: the two
* children of queue[n] are queue[2*n+1] and queue[2*(n+1)]. The
* priority queue is ordered by comparator, or by the elements'
* natural ordering, if comparator is null: For each node n in the
* heap and each descendant d of n, n <= d. The element with the
* lowest value is in queue[0], assuming the queue is nonempty.
*/
private transient Object[] queue;
वर्ग जावाडोक में
इसके अलावा में है
कार्यान्वयन ध्यान दें: इस कार्यान्वयन enqueing और dequeing तरीकों के लिए हे (लॉग (एन)) समय प्रदान करता है (प्रस्ताव, मतदान, हटाएं() और जोड़ें); निकालने के लिए रैखिक समय (ऑब्जेक्ट) और इसमें (ऑब्जेक्ट) विधियां हैं; और पुनर्प्राप्ति विधियों (चरम, तत्व, और आकार) के लिए निरंतर समय।
remove()
के लिए, उदाहरण के लिए, आप हीप की जड़ को हटा देते हैं। आप अंतिम तत्व लेते हैं, यानी। द्विआधारी पेड़ के अंतिम स्तर पर दाएं सबसे अधिक पत्ते, और इसे रूट के रूप में रखें और इसे तब तक खाली कर दें जब तक कि यह इसकी जगह न पाएं (Comparator
पर आधारित)। यह सबसे खराब O(log n)
समय लेता है।
स्रोत
2013-10-08 02:46:55
मैं सिर्फ प्रलेखन की जाँच की और इस बारे में कुछ भी निर्दिष्ट नहीं था। मैं जवाब सुनने के लिए उत्सुक हूँ! – templatetypedef
धन्यवाद, जानकर खुशी हुई कि मुझे कुछ भी याद नहीं आ रहा है! – chm