auto update

This commit is contained in:
Jet Hughes 2022-04-07 13:58:28 +12:00
parent 3534565782
commit 6439b75894
2 changed files with 11 additions and 12 deletions

View File

@ -8,11 +8,11 @@ tags:
- lecture - lecture
--- ---
## 1 Overview ## 0.1 Overview
[[notes/heap]] [[notes/heap]]
## 2 Operations ## 0.2 Operations
### 2.1 Add element ### 0.2.1 Add element
Assumptions Assumptions
- access first vacant position - access first vacant position
- set (or find) the value $H.q$ stored in any (occupied) position $q$ - set (or find) the value $H.q$ stored in any (occupied) position $q$
@ -31,7 +31,7 @@ end while
``` ```
### 2.2 Remove the maximum ### 0.2.2 Remove the maximum
Outcome: Change H by removing its maximum (i.e., root) value wile maintaining the heap conditions Outcome: Change H by removing its maximum (i.e., root) value wile maintaining the heap conditions
``` ```
@ -52,14 +52,14 @@ return v
``` ```
### 2.3 Complexity ### 0.2.3 Complexity
In addition, we move along a branch from an added element up to the root, fixing violations as we go In addition, we move along a branch from an added element up to the root, fixing violations as we go
In removal, we move from the root down through some branch until all violations are fixed (can only occur if node has children) In removal, we move from the root down through some branch until all violations are fixed (can only occur if node has children)
So both loops do most Ο(lg n) So both loops do most Ο(lg n)
### 2.4 Storage ### 0.2.4 Storage
![](https://i.imgur.com/04qVrGQ.png#invert) ![](https://i.imgur.com/04qVrGQ.png#invert)
- Array - Array
@ -72,18 +72,18 @@ So both loops do most Ο(lg n)
- get children of q --> (2 * q) ± 2 - get children of q --> (2 * q) ± 2
- identify if q is root --> q == 0 - identify if q is root --> q == 0
### 2.5 Implementation ### 0.2.5 Implementation
Use java.util.PriorityQueue Use java.util.PriorityQueue
## 3 Heap Sort ## 0.3 Heap Sort
In place and ϴ(n lg n) In place and ϴ(n lg n)
- start with array - start with array
- using itself as a heap, add the elements one at a time until all been added - using itself as a heap, add the elements one at a time until all been added
- Then remove them one at a time - the largest elements gets removed first and the place where is needs to be put gets freed from the map - Then remove them one at a time - the largest elements gets removed first and the place where is needs to be put gets freed from the map
## 4 Heap vs Merge ## 0.4 Heap vs Merge
heap --> in place, ϴ(n lg n) heap --> in place, ϴ(n lg n)
merge --> not in place, Ο(n lg n) merge --> not in place, Ο(n lg n)

View File

@ -6,15 +6,14 @@ tags:
- course - course
- cosc201 - cosc201
--- ---
links: [[_index]] links: [_index](_index.md)
--- ---
- [[notes/cosc-201-outline]] - [[notes/cosc-201-outline]]
- [[notes/cosc-201-lectures]] - [[notes/cosc-201-lectures]]
## 1 Assignments ## 0.1 Assignments
- [[notes/assignment-01]] - [[notes/assignment-01]]
- [[notes/assignment-02]] - [[notes/assignment-02]]