-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Aimee 👾 - Fire 🔥 #2
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice work Aimee, I had a small comment, but this is quite well done.
// Time Complexity: O(nlog(n))- both for loops are O(n), heap.add and heap.remove are O(log(n)) | ||
// Space Complexity: O(n) - the store array of minHeap has a space complexity of O(n) | ||
function heapsort(list) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
// Time Complexity: O(log(n)) - Recursive calls (uses heapUp) | ||
// Space Complexity: O(log(n)) - Recursive calls, log(n) calls in memory (because of heapUp) | ||
add(key, value = key) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
// Time complexity: O(1) - the length property is a quick look up | ||
// Space complexity: O(1) - saving the length of the array will be constant memory | ||
isEmpty() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
// Time Complexity: O(log(n)), recursive (uses heapDown, similar to heapUp) | ||
// Space Complexity: O(log(n)), log(n) recursion calls (uses heapDown) | ||
remove() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
if (index % 2 === 0) { | ||
parentIndex = (index - 2) / 2; | ||
} else { | ||
parentIndex = (index - 1) / 2; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you use floor to simplify this a bit?
// This helper method takes an index and | ||
// moves it up the heap if it's smaller | ||
// than it's parent node. | ||
heapDown(index) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
Heaps Practice
Congratulations! You're submitting your assignment!
Comprehension Questions
heap_up
&heap_down
methods useful? Why?