From 5c5c2642418bc208311c1bbc96660b034aa0dfc7 Mon Sep 17 00:00:00 2001 From: Ariel Date: Mon, 18 Dec 2023 20:33:17 +0100 Subject: [PATCH] For formulae, used Markdown math mode --- doc/signatures.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/signatures.md b/doc/signatures.md index 24315f7..3142c37 100644 --- a/doc/signatures.md +++ b/doc/signatures.md @@ -17,13 +17,13 @@ implement a dictionary. Just a few are: * Many, many more .... Each of these approaches has their own performance characteristics, -memory footprints etc. For example, a table of size n with open -addressing has no collisions and holds up to n elements, with a single -comparison for successful lookup, and a table of size n with chaining -and k keys has the minimum max(0, k-n) collisions and O(1 + k/n) +memory footprints, etc. For example, a table of size $n$ with open +addressing has no collisions and holds up to $n$ elements, with a single +comparison for successful lookup, and a table of size $n$_ with chaining +and $k$ keys has the minimum $\max(0, k-n)$ collisions and $\mathcal{O}(1 + k/n)$ comparisons for lookup. While for skip lists the performance characteristics are about as good as that of randomly-built binary -search trees - namely (O log n). So the choice of which to select +search trees - namely ($\mathcal{O}(\log n)$). So the choice of which to select depends very much on memory available, insert/read characteristics, etc. So delegating the choice to a single point in your code is a very good idea. Unfortunately, in Erlang that's so easy to do at the moment.