summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-09-26 12:44:40 -0600
committermo khan <mo.khan@gmail.com>2020-09-26 12:44:40 -0600
commit34267588e83be6ff9bb7fea0d56549cebf8d9cf7 (patch)
treed602d74da1bde057829af856eb6b1eb2e1068008
parent2b736960d962bb4ef51d8308c7a3ea3eca5cfdaf (diff)
Add some notes on how to implement a proof
-rw-r--r--src/03/07/README.md2
-rw-r--r--src/03/08/README.md44
2 files changed, 45 insertions, 1 deletions
diff --git a/src/03/07/README.md b/src/03/07/README.md
index 20b320e..2024b4e 100644
--- a/src/03/07/README.md
+++ b/src/03/07/README.md
@@ -1,7 +1,7 @@
+
Implement the `remove(u)` method, that removes the node `u` from a
`MeldableHeap`. This method should run in `O(log n)` expected time.
-
```java
class MeldableHeap {
Node<T> merge(Node<T> h1, Node<T> h2) {
diff --git a/src/03/08/README.md b/src/03/08/README.md
index 163f487..b2eecc3 100644
--- a/src/03/08/README.md
+++ b/src/03/08/README.md
@@ -1 +1,45 @@
+
Prove that a binary tree with `k` leaves has height at least `log k`.
+
+```plaintext
+tree = h(k)
+assert(height(tree) == log k)
+
+for each positive natural number this is true.
+```
+
+```c
+BTree *h(int k)
+{
+ BTree *tree = rb_tree_initialize();
+ // assert(true == true);
+ // generate k leaves with random data
+ return tree;
+}
+
+for (int k = 0; k < 1000; k++) {
+ assert(height(h(k)) >= log(k))
+}
+```
+
+
+```plaintext
+n: 3
+h: 3
+
+(x)
+ \
+ (y)
+ \
+ (z)
+
+n: 3
+k: 2
+h: 2
+
+ (y)
+ / \
+(x) (z)
+
+2^x == 2
+```