Презентация CSE 326: Data Structures. Mergeable Heaps. Lecture 22 онлайн
На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему CSE 326: Data Structures. Mergeable Heaps. Lecture 22 абсолютно бесплатно. Урок-презентация на эту тему содержит всего 46 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » CSE 326: Data Structures. Mergeable Heaps. Lecture 22
Оцените!
Оцените презентацию от 1 до 5 баллов!
- Тип файла:ppt / pptx (powerpoint)
- Всего слайдов:46 слайдов
- Для класса:1,2,3,4,5,6,7,8,9,10,11
- Размер файла:238.00 kB
- Просмотров:73
- Скачиваний:0
- Автор:неизвестен
Слайды и текст к этой презентации:
№2 слайд
![Summary of Heap ADT Analysis](/documents_6/ff02af4e27fc71f545e67ca1705a2535/img1.jpg)
Содержание слайда: Summary of Heap ADT Analysis
Consider a heap of N nodes
Space needed: O(N)
Actually, O(MaxSize) where MaxSize is the size of the array
Pointer-based implementation: pointers for children and parent
Total space = 3N + 1 (3 pointers per node + 1 for size)
FindMin: O(1) time; DeleteMin and Insert: O(log N) time
BuildHeap from N inputs: What is the run time?
N Insert operations = O(N log N)
O(N): Treat input array as a heap
and fix it using percolate down
Thanks, Floyd!
№3 слайд
![Other Heap Operations Find](/documents_6/ff02af4e27fc71f545e67ca1705a2535/img2.jpg)
Содержание слайда: Other Heap Operations
Find and FindMax: O(N)
DecreaseKey(P,,H): Subtract from current key value at position P and percolate up. Running Time: O(log N)
IncreaseKey(P,,H): Add to current key value at P and percolate down. Running Time: O(log N)
E.g. Schedulers in OS often decrease priority of CPU-hogging jobs
Delete(P,H): Use DecreaseKey (to 0) followed by DeleteMin. Running Time: O(log N)
E.g. Delete a job waiting in queue that has been preemptively terminated by user
№4 слайд
![But What About... Merge H ,H](/documents_6/ff02af4e27fc71f545e67ca1705a2535/img3.jpg)
Содержание слайда: But What About...
Merge(H1,H2): Merge two heaps H1 and H2 of size O(N).
E.g. Combine queues from two different sources to run on one CPU.
Can do O(N) Insert operations: O(N log N) time
Better: Copy H2 at the end of H1 (assuming array implementation) and use Floyd’s Method for BuildHeap.
Running Time: O(N)
Can we do even better? (i.e. Merge in O(log N) time?)
№5 слайд
![Binomial Queues Binomial](/documents_6/ff02af4e27fc71f545e67ca1705a2535/img4.jpg)
Содержание слайда: Binomial Queues
Binomial queues support all three priority queue operations Merge, Insert and DeleteMin in O(log N) time
Idea: Maintain a collection of heap-ordered trees
Forest of binomial trees
Recursive Definition of Binomial Tree (based on height k):
Only one binomial tree for a given height
Binomial tree of height 0 = single root node
Binomial tree of height k = Bk = Attach Bk-1 to root of another Bk-1
№16 слайд
![Binomial Queue Properties](/documents_6/ff02af4e27fc71f545e67ca1705a2535/img15.jpg)
Содержание слайда: Binomial Queue Properties
Suppose you are given a binomial queue of N nodes
There is a unique set of binomial trees for N nodes
What is the maximum number of trees that can be in an N-node queue?
1 node 1 tree B0; 2 nodes 1 tree B1; 3 nodes 2 trees B0 and B1; 7 nodes 3 trees B0, B1 and B2 …
Trees B0, B1, …, Bk can store up to 20 + 21 + … + 2k = 2k+1 – 1 nodes = N.
Maximum is when all trees are used. So, solve for (k+1).
Number of trees is log(N+1) = O(log N)
№17 слайд
![Binomial Queues Merge Main](/documents_6/ff02af4e27fc71f545e67ca1705a2535/img16.jpg)
Содержание слайда: Binomial Queues: Merge
Main Idea: Merge two binomial queues by merging individual binomial trees
Since Bk+1 is just two Bk’s attached together, merging trees is easy
Steps for creating new queue by merging:
Start with Bk for smallest k in either queue.
If only one Bk, add Bk to new queue and go to next k.
Merge two Bk’s to get new Bk+1 by making larger root the child of smaller root. Go to step 2 with k = k + 1.
№28 слайд
![Binomial Queues Merge and](/documents_6/ff02af4e27fc71f545e67ca1705a2535/img27.jpg)
Содержание слайда: Binomial Queues: Merge and Insert
What is the run time for Merge of two O(N) queues?
O(number of trees) = O(log N)
How would you insert a new item into the queue?
Create a single node queue B0 with new item and merge with existing queue
Again, O(log N) time
Example: Insert 1, 2, 3, …,7 into an empty binomial queue
№37 слайд
![Binomial Queues DeleteMin](/documents_6/ff02af4e27fc71f545e67ca1705a2535/img36.jpg)
Содержание слайда: Binomial Queues: DeleteMin
Steps:
Find tree Bk with the smallest root
Remove Bk from the queue
Delete root of Bk (return this value); You now have a new queue made up of the forest B0, B1, …, Bk-1
Merge this queue with remainder of the original (from step 2)
Run time analysis: Step 1 is O(log N), step 2 and 3 are O(1), and step 4 is O(log N). Total time = O(log N)
Example: Insert 1, 2, …, 7 into empty queue and DeleteMin
№44 слайд
![Implementation of Binomial](/documents_6/ff02af4e27fc71f545e67ca1705a2535/img43.jpg)
Содержание слайда: Implementation of Binomial Queues
Need to be able to scan through all trees, and given two binomial queues find trees that are same size
Use array of pointers to root nodes, sorted by size
Since is only of length log(N), don’t have to worry about cost of copying this array
At each node, keep track of the size of the (sub) tree rooted at that node
Want to merge by just setting pointers
Need pointer-based implementation of heaps
DeleteMin requires fast access to all subtrees of root
Use First-Child/Next-Sibling representation of trees
№45 слайд
![Other Mergeable Priority](/documents_6/ff02af4e27fc71f545e67ca1705a2535/img44.jpg)
Содержание слайда: Other Mergeable Priority Queues:
Leftist and Skew Heaps
Leftist Heaps: Binary heap-ordered trees with left subtrees always “longer” than right subtrees
Main idea: Recursively work on right path for Merge/Insert/DeleteMin
Right path is always short has O(log N) nodes
Merge, Insert, DeleteMin all have O(log N) running time (see text)
Skew Heaps: Self-adjusting version of leftist heaps (a la splay trees)
Do not actually keep track of path lengths
Adjust tree by swapping children during each merge
O(log N) amortized time per operation for a sequence of M operations
We will skip details… just recognize the names as mergeable heaps!
Скачать все slide презентации CSE 326: Data Structures. Mergeable Heaps. Lecture 22 одним архивом:
Похожие презентации
-
Analysis and Design of Data Systems. Complex SQL Queries (Lecture 13)
-
Analysis and Design of Data Systems. Functional Dependencies and Normalization Theory (Lecture 15)
-
Analysis and Design of Data Systems. Relational Algebra 2 (Lecture 18)
-
Data Types and Operators (Java, Lecture 04)
-
Module 1. Lecture 03 - Data Modeling
-
Pointers. Lecture18-20
-
Files. Lecture 25
-
Two-Level Logic Minimization Algorithms. Lecture 3
-
Пирамидальная сортировка HeapSort. Пирамида Хеопса
-
Structure of the program in Prolog. Execution management