Theoretical and practical efficiency of priority queues
نویسنده
چکیده
This is a study of the theoretical and practical efficiency of priority queues. The priority queue is an old and well studied data structure on which a great deal of theoretical and practical work has already been done. A priority queue can be realised in many ways, some of the most commonly used data structures for this are binary heaps and binomial queues. In this thesis the efficiency of priority queues is studied in three separate papers where one is focusing on the theoretical efficiency of priority queues and the other two papers focus on the practical efficiency. In the first paper studying the practical efficiency of priority queues (An extended truth about heaps) a number of alternative implementations of in-place d-ary heaps are studied. An experimental evaluation of the implementations and the C++ standard library heap are performed. The implementations are evaluated using different types of inputs and ordering functions. The results of the experimental evaluation show that no single heapifying strategy has the best performance for all the different types of inputs and ordering functions, but that bottom-up heapifying has a good performance for most types of inputs and ordering functions. In the second paper studying the practical efficiency of priority queues (An experimental evaluation of navigation piles) three different implementations of navigation pile are studied. The efficiency of the implementations is experimentally evaluated together with two implementations of binary heaps, again different types of inputs and ordering functions have been used. Furthermore, experiments using several different operation-generation models are performed. The experiments show that when element moves are expensive then navigation piles can be an alternative to binary heaps. In addition to the study of the practical efficiency of navigation piles, the first-ancestor technique and a new and simpler way to make static navigation piles dynamic are introduced. In the third paper (A framework for speeding up priority-queue operations) the theoretical efficiency of priority queues is studied, and a framework for reducing the number of element comparisons performed in priority-queue operations is introduced. The framework gives a priority queue which guarantees the worstcase cost of O(1) per find-min and insert , and the worst-case cost of O(log n) with at most log n+O(1) element comparisons per delete-min and delete . Here, n denotes the number of elements stored in the data structure prior to the operation in question, and log n equals max {1, log2 n}. Furthermore, in addition to
منابع مشابه
Fast and Lock-Free Concurrent Priority Queues for Multi-Thread Systems
We present an efficient and practical lock-free implementation of a concurrent priority queue that is suitable for both fully concurrent (large multi-processor) systems as well as pre-emptive (multi-process) systems. Many algorithms for concurrent priority queues are based on mutual exclusion. However, mutual exclusion causes blocking which has several drawbacks and degrades the overall perform...
متن کاملChapter 5 Fast and Lock - Free Concurrent Priority Queues for Multi - Thread Systems 1
We present an efficient and practical lock-free implementation of a concurrent priority queue that is suitable for both fully concurrent (large multiprocessor) systems as well as pre-emptive (multi-process) systems. Many algorithms for concurrent priority queues are based on mutual exclusion. However, mutual exclusion causes blocking which has several drawbacks and degrades the system’s overall...
متن کاملFast and Lock - Free Concurrent Priority Queues for Multi - Thread Systems 1 Håkan
We present an efficient and practical lock-free implementation of a concurrent priority queue that is suitable for both fully concurrent (large multi-processor) systems as well as pre-emptive (multi-process) systems. Many algorithms for concurrent priority queues are based on mutual exclusion. However, mutual exclusion causes blocking which has several drawbacks and degrades the system’s overal...
متن کاملComputational evaluation of hot queues
The heap-on-top (hot) priority queue data structure 6] improves on the best known times for Dijkstra's shortest path algorithm. It also has very good practical performance and is robust over a wide range of graph types. The heart of Dijkstra's algorithm is a monotone priority queue, that is, a priority queue where no element on the queue ever becomes smaller than the most recently extracted ele...
متن کاملOblivious Sorting and Queues
We present a deterministic oblivious LIFO (Stack), FIFO, double-ended and double-ended priority queue as well as an oblivious mergesort and quicksort algorithm. Our techniques and ideas include concatenating queues end-to-end, size balancing of multiple arrays, several multi-level partitionings of an array. Our queues are the first to enable executions of pop and push operations without any cha...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2006