This preview shows pages 1–2. Sign up to view the full content.
CS251: Data Structures
1/30/2006  2/3/2006 Class Notes
Selection Sort and Priority Queues (PQ)
•
With a list, O(n
2
) is the best we can do to sort a PQ
•
Heaps are a more efficient representation of a PQ
•
Heaps are a special binary tree
o
A heap stores keys at its internal nodes and satisfies the following
properties:
Heap Order:
for every internal node 'v' other than the root, key(v)
≤ key(parent(v))
Complete binary tree:
let h be height. For i = 0.
.. h1, there are
2
i
nodes of depth i.
At depth h1, the internal nodes are to the left of the external
nodes.
The heap must be leftfull (Filled from left to right)
•
To reorder the heap on insertion, we use a mehtod called
upheap
.
•
Inserting
into the heap is O(log
2
(n)).
•
Removal
is O(log
2
(n)) as well.
•
To reorder the heap on removal, use a
downheap
by checking the children and
swapping with the smallest child.
•
On removal, you grab the last element in the heap and swap it with the one you
want to remove. Therefore, an array is the best implementation of a heap. On a
zero indexed array:
o
Left(i) = 2i + 1
o
Right(i) = 2i + 2
Heap Sort
•
Heap sort is O(n log(n)) instead of O(n
2
).
Heaps
•
Heaps are an efficient implementation of PQs.
•
A heap is a binary tree that satisfies:
This preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
This is the end of the preview. Sign up
to
access the rest of the document.
 Fall '08
 Staff
 Data Structures, Selection Sort

Click to edit the document details