From b800dc2ab8114d5c3b23a77ec203c0a8a29493c9 Mon Sep 17 00:00:00 2001 From: Joshua Potter Date: Mon, 29 Apr 2024 09:11:05 -0600 Subject: [PATCH] Additional heap/heapsort flashcards. --- .../plugins/obsidian-to-anki-plugin/data.json | 6 +- notes/algorithms/heaps.md | 290 ++++++++++++++++++ notes/algorithms/images/max-heapify-1.png | Bin 0 -> 16497 bytes notes/algorithms/images/max-heapify-2.png | Bin 0 -> 16421 bytes 4 files changed, 294 insertions(+), 2 deletions(-) create mode 100644 notes/algorithms/images/max-heapify-1.png create mode 100644 notes/algorithms/images/max-heapify-2.png diff --git a/notes/.obsidian/plugins/obsidian-to-anki-plugin/data.json b/notes/.obsidian/plugins/obsidian-to-anki-plugin/data.json index 602ba69..9d99430 100644 --- a/notes/.obsidian/plugins/obsidian-to-anki-plugin/data.json +++ b/notes/.obsidian/plugins/obsidian-to-anki-plugin/data.json @@ -116,7 +116,9 @@ "perfect-tree.png", "non-complete-tree.png", "max-heap-tree.png", - "max-heap-array.png" + "max-heap-array.png", + "max-heapify-1.png", + "max-heapify-2.png" ], "File Hashes": { "algorithms/index.md": "3ac071354e55242919cc574eb43de6f8", @@ -373,7 +375,7 @@ "_journal/2024-04/2024-04-23.md": "20514052da91b06b979cacb3da758837", "_journal/2024-04-25.md": "10c98531cb90a6bc940ea7ae3342f98b", "_journal/2024-04/2024-04-24.md": "4cb04e0dea56e0b471fc0e428471a390", - "algorithms/heaps.md": "b12c70ec85e514ce912821d133d116d4", + "algorithms/heaps.md": "ed37002a7600a05794f668e092265522", "_journal/2024-04-26.md": "3ce37236a9e09e74b547a4f7231df5f0", "_journal/2024-04/2024-04-25.md": "5a81123af29f8ebf0a0d28f820a3a52e", "_journal/2024-04-28.md": "46726bf76a594b987c63ba8b9b6d13d3", diff --git a/notes/algorithms/heaps.md b/notes/algorithms/heaps.md index b9713f2..1fa10a2 100644 --- a/notes/algorithms/heaps.md +++ b/notes/algorithms/heaps.md @@ -11,6 +11,8 @@ tags: The **binary heap** data structure is an array object that can be viewed as a [[trees#Positional Trees|complete binary tree]]. +The primary function used to maintain the max-heap property is `MAX_HEAPIFY_DOWN`. This function assumes the left and right- subtrees at a given node are max heaps but that the current node may be smaller than its children. An analagous function and assumptions exist for `MIN_HEAPIFY_DOWN`. + %%ANKI Cloze A binary heap is an {array} that can be viewed as a {binary tree}. @@ -147,6 +149,294 @@ Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition ( END%% +%%ANKI +Basic +What preconditions must hold before invoking `MAX_HEAPIFY_DOWN` on a node? +Back: The node's left and right subtrees must be max-heaps. +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +When is `MAX_HEAPIFY_DOWN` a no-op? +Back: When the current node is already larger than both its children. +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +If not a no-op, which child should `MAX_HEAPIFY_DOWN` swap its current value with? +Back: The larger of its two children. +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Given a heap of height $h$, *why* is `MAX_HEAPIFY_DOWN`'s worst case runtime $O(h)$? +Back: Each invocation may violate the max-heap property of a child node. +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What is the runtime of `MAX_HEAPIFY_DOWN`? +Back: $O(h)$ where $h$ is the height of the heap. +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What is the result of calling `MAX_HEAPIFY_DOWN` on the highlighted node? +![[max-heapify-1.png]] +Back: +![[max-heapify-2.png]] +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What is the runtime of `MIN_HEAPIFY_DOWN`? +Back: $O(h)$ where $h$ is the height of the heap. +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What preconditions must hold before invoking `MIN_HEAPIFY_DOWN` on a node? +Back: The node's left and right subtrees must be min-heaps. +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +When is `Min_HEAPIFY_DOWN` a no-op? +Back: When the current node is already smaller than both its children. +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +If not a no-op, which child should `MIN_HEAPIFY_DOWN` swap its current value with? +Back: The smaller of its two children. +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Given a heap of height $h$, *why* is `MIN_HEAPIFY_DOWN`'s worst case runtime $O(h)$? +Back: Each invocation may violate the min-heap property of a child node. +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What does the "heapify" operation of a heap refer to? +Back: Repeatedly swapping a node's value with a child until the heap property is achieved. +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +How many internal nodes does a binary heap of size $n$ have? +Back: $\lfloor n / 2 \rfloor$ +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +How many internal nodes precede the first external node of a heap of size $n$? +Back: $\lfloor n / 2 \rfloor$ +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What is the height of a binary heap? +Back: The height of the heap's root when viewed as a complete binary tree. +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What is the input of `MAX_HEAPIFY_DOWN`? +Back: The index of a node in the target heap. +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What is the input of `BUILD_MAX_HEAP`? +Back: An array. +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What is the runtime of `BUILD_MAX_HEAP` on an array of $n$ elements? +Back: $O(n)$ +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +How is the `BUILD_MAX_HEAP` function usually implemented? +Back: As calling heapify on each internal node. +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Which node does `BUILD_MAX_HEAP` start iterating on? +Back: The last internal node. +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Why does `BUILD_MAX_HEAP` "ignore" the external nodes of a heap? +Back: Because they are already max-heaps of size $1$. +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Given heap $H[0{..}n{-}1]$, what is `BUILD_MAX_HEAP`'s loop invariant? +Back: Each node in $H[i{+}1{..}n{-}1]$ is the root of a max-heap. +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What is initialization of `BUILD_MAX_HEAP`'s loop invariant? +Back: Every external node is the root of a max-heap. +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What is maintenance of `BUILD_MAX_HEAP`'s loop invariant? +Back: Calling `MAX_HEAPIFY_DOWN` maintains the max-heap property of the current node. +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +In pseudocode, how is `BUILD_MAX_HEAP` implemented? +Back: +```c +void BUILD_MAX_HEAP(int n, int H[static n]) { + for (int i = (n / 2) - 1; i >= 0; --i) { + MAX_HEAPIFY_DOWN(i, H); + } +} +``` +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What is the input of `BUILD_MIN_HEAP`? +Back: An array. +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What is the runtime of `BUILD_MIN_HEAP` on an array of $n$ elements? +Back: $O(n)$ +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +How is the `BUILD_MIN_HEAP` function usually implemented? +Back: As calling heapify on each internal node. +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Which node does `BUILD_MIN_HEAP` start iterating on? +Back: The last internal node. +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Why does `BUILD_MIN_HEAP` "ignore" the external nodes of a heap? +Back: Because they are already max-heaps of size $1$. +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Given heap $H[0{..}n{-}1]$, what is `BUILD_MIN_HEAP`'s loop invariant? +Back: Each node in $H[i{+}1{..}n{-}1]$ is the root of a min-heap. +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What is initialization of `BUILD_MIN_HEAP`'s loop invariant? +Back: Every external node is the root of a min-heap. +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What is maintenance of `BUILD_MIN_HEAP`'s loop invariant? +Back: Calling `MIN_HEAPIFY_DOWN` maintains the min-heap property of the current node. +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +In pseudocode, how is `BUILD_MIN_HEAP` implemented? +Back: +```c +void BUILD_MIN_HEAP(int n, int H[static n]) { + for (int i = (n / 2) - 1; i >= 0; --i) { + MIN_HEAPIFY_DOWN(i, H); + } +} +``` +Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + ## Bibliography * Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). \ No newline at end of file diff --git a/notes/algorithms/images/max-heapify-1.png b/notes/algorithms/images/max-heapify-1.png new file mode 100644 index 0000000000000000000000000000000000000000..87da739aadf45d0aff1577b6935fc47907bc5d5e GIT binary patch literal 16497 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 R0OjI9(&7qY)gp$0{|_w?W}N^4 literal 0 HcmV?d00001