60 likes | 158 Vues
Learn about the O(log n) insertion and ordering properties of AVL Trees and Skip Lists. Implement the Yet Another Sorting Algorithm using sorted data structures for efficient sorting. Analyze the execution time and compare it with other sorting methods.
E N D
CS 261 - Winter 2010 Tree Sort
Useful Properties of Sorted Data Structures • Skip Lists (as well as AVL Trees, and various other data structures we will eventually see) have two useful properties • They have O(log n) insertion • They keep their elements in order Together, these combine for a particularly simple sorting algorithm
YASA - Yet Another Sorting Algorithm How to sort an Array (lets call it A) Step 1. Copy elements from A into a sorted data structure Step 2. Copy elements from the data structure back into A
Lets Analyze the Execution Time Assume there are N elements Step 1. Copy elements from A into a sorted data structure O( ?? ) Step 2. Copy elements from the data structure back into A O( ?? )
We couldn’t we do this with arrays? • Why couldn’t we do tree sort with a sorted dynamic array? • Why not an ordinary dynamic array?
That’s pretty good • The execution time O(n log n) is the best we have seen so far - pretty good. And it is simple • Anybody see a downside?