Results 1 -
8 of
8
The Role of Lazy Evaluation in Amortized Data Structures
- In Proc. of the International Conference on Functional Programming
, 1996
"... Traditional techniques for designing and analyzing amortized data structures in an imperative setting are of limited use in a functional setting because they apply only to singlethreaded data structures, yet functional data structures can be non-single-threaded. In earlier work, we showed how lazy e ..."
Abstract
-
Cited by 13 (2 self)
- Add to MetaCart
Traditional techniques for designing and analyzing amortized data structures in an imperative setting are of limited use in a functional setting because they apply only to singlethreaded data structures, yet functional data structures can be non-single-threaded. In earlier work, we showed how lazy evaluation supports functional amortized data structures and described a technique (the banker's method) for analyzing such data structures. In this paper, we present a new analysis technique (the physicist's method) and show how one can sometimes derive a worst-case data structure from an amortized data structure by appropriately scheduling the premature execution of delayed components. We use these techniques to develop new implementations of FIFO queues and binomial queues. 1 Introduction Functional programmers have long debated the relative merits of strict versus lazy evaluation. Although lazy evaluation has many benefits [11], strict evaluation is clearly superior in at least one area:...
A General Technique for Implementation of Efficient Priority Queues
- In Proc. 3rd Israel Symposium on Theory of Computing and Systems
, 1994
"... This paper presents a very general technique for the implementation of mergeable priority queues. The amortized running time is O(log n) for DeleteMin and Delete, and \Theta(1) for all other standard operations. In particular, the operation DecreaseKey runs in amortized constant time. The worst-ca ..."
Abstract
-
Cited by 9 (0 self)
- Add to MetaCart
This paper presents a very general technique for the implementation of mergeable priority queues. The amortized running time is O(log n) for DeleteMin and Delete, and \Theta(1) for all other standard operations. In particular, the operation DecreaseKey runs in amortized constant time. The worst-case running time is O(logn) or better for all operations. Several examples of mergeable priority queues are given. The examples include priority queues that are particular well suited for extenal storage. The space requirement is only two pointers and one information field per item. The technique is also used to implement mergeable, double-ended priority queues. For these queues, the worst-case time bound for insertion is \Theta(1), which improves the best previously known bound. For the other operations, the time bounds are the same as the best previously known bounds, worst-case as well as amortized. 1 Introduction A mergeable priority queue is one of the fundamental data types. It is used...
Two new methods for transforming priority queues into double-ended priority queues
- CPH STL Report
, 2006
"... Abstract. Two new ways of transforming a priority queue into a double-ended priority queue are introduced. These methods can be used to improve all known bounds for the comparison complexity of double-ended priority-queue operations. Using an efficient priority queue, the first transformation can pr ..."
Abstract
-
Cited by 5 (5 self)
- Add to MetaCart
Abstract. Two new ways of transforming a priority queue into a double-ended priority queue are introduced. These methods can be used to improve all known bounds for the comparison complexity of double-ended priority-queue operations. Using an efficient priority queue, the first transformation can produce a doubleended priority queue which guarantees the worst-case cost of O(1) for find-min, find-max, and insert; and the worst-case cost of O(lg n) including at most lg n + O(1) element comparisons for delete, but the data structure cannot support meld efficiently. Using a meldable priority queue that supports decrease efficiently, the second transformation can produce a meldable double-ended priority queue which guarantees the worst-case cost of O(1) for find-min, find-max, and insert; the worst-case cost of O(lg n) including at most lg n + O(lg lg n) element comparisons for delete; and the worst-case cost of O(min {lg m, lg n}) for meld. Here, m and n denote the number of elements stored in the data structures prior to the operation in question, and lg n is a shorthand for log 2 (max {2, n}). 1.
A Generalization of Binomial Queues
- Information Processing Letters
, 1996
"... We give a generalization of binomial queues involving an arbitrary sequence (mk )k=0;1;2;::: of integers greater than one. Different sequences lead to different worst case bounds for the priority queue operations, allowing the user to adapt the data structure to the needs of a specific application. ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
We give a generalization of binomial queues involving an arbitrary sequence (mk )k=0;1;2;::: of integers greater than one. Different sequences lead to different worst case bounds for the priority queue operations, allowing the user to adapt the data structure to the needs of a specific application. Examples include the first priority queue to combine a sub-logarithmic worst case bound for Meld with a sub-linear worst case bound for Delete min. Keywords: Data structures; Meldable priority queues. 1 Introduction The binomial queue, introduced in 1978 by Vuillemin [14], is a data structure for meldable priority queues. In meldable priority queues, the basic operations are insertion of a new item into a queue, deletion of the item having minimum key in a queue, and melding of two queues into a single queue. The binomial queue is one of many data structures which support these operations at a worst case cost of O(logn) for a queue of n items. Theoretical [2] and empirical [9] evidence i...
Exercise 23.1-6 in [6].
, 2000
"... 2: Array initialization Section III.8.1 of [15] contains a description of how a bitvector can be intitialized in worst case constant time. ..."
Abstract
- Add to MetaCart
2: Array initialization Section III.8.1 of [15] contains a description of how a bitvector can be intitialized in worst case constant time.
Literature Notes on Homeworks and the Takehome Exam
, 2000
"... lgorithm Exercise 2 of homework 4 in [13]. Prim's algorithm for computing a minimum spanning tree is, e.g., described in Section 24.2 of [6]. 5: The Stable Marriage Problem Exercise 1 of homework 6 in [13]. Gale and Shapley were the rst to investigate the stable marriage problem and gave an O(n ..."
Abstract
- Add to MetaCart
lgorithm Exercise 2 of homework 4 in [13]. Prim's algorithm for computing a minimum spanning tree is, e.g., described in Section 24.2 of [6]. 5: The Stable Marriage Problem Exercise 1 of homework 6 in [13]. Gale and Shapley were the rst to investigate the stable marriage problem and gave an O(n 2 ) solution in [8]. 1 Algorithms January 17, 2000 Homework 3 1: Minimum Spanning Trees A linear time algorithm for nding a minimum spanning tree for planar graph was rst given in [5]. The O(m log n) time algorithm for nding a minimum spanning tree in a general graph was described in [7]|the paper introducing Fibonacci heaps. The current best dertministic minimum spanning tree algorithms use time O(m(m;n)), where is an inverse of Ackerman's function [4, 17]. A randomized
Literature Notes on Homeworks
, 2001
"... cise 2 of homework 4 in [13]. Prim's algorithm for computing a minimum spanning tree is, e.g., described in Section 24.2 of [6]. 5: The Stable Marriage Problem Exercise 1 of homework 6 in [13]. Gale and Shapley were the rst to investigate the stable marriage problem and gave an O(n 2 ) solution ..."
Abstract
- Add to MetaCart
cise 2 of homework 4 in [13]. Prim's algorithm for computing a minimum spanning tree is, e.g., described in Section 24.2 of [6]. 5: The Stable Marriage Problem Exercise 1 of homework 6 in [13]. Gale and Shapley were the rst to investigate the stable marriage problem and gave an O(n 2 ) solution in [8]. 1 Algorithms February 13, 2001 Homework 3 1: Minimum Spanning Trees A linear time algorithm for nding a minimum spanning tree for planar graph was rst given in [5]. The O(m log n) time algorithm for nding a minimum spanning tree in a general graph was described in [7]|the paper introducing Fibonacci heaps. The current best dertministic minimum spanning tree algorithms use time O(m(m;n)), where is an inverse of Ackerman's function [4, 17]. A randomized linear time algorit
Reflected Min-Max Heaps
- Information Processing Letters 86
, 2003
"... In this paper we present a simple and e#cient implementation of a min-max priority queue, reflected min-max priority queues. The main merits of our construction are threefold. First, the space utilization of the reflected min-max heaps is much better than the naive solution of putting two heaps b ..."
Abstract
- Add to MetaCart
In this paper we present a simple and e#cient implementation of a min-max priority queue, reflected min-max priority queues. The main merits of our construction are threefold. First, the space utilization of the reflected min-max heaps is much better than the naive solution of putting two heaps back-to-back. Second, the methods applied in this structure can be easily used to transform ordinary priority queues into min-max priority queues. Third, when considering only the setting of min-max priority queues, we support merging in constant worst-case time which is a clear improvement over the best worst-case bounds achieved by Hyer.

