1
0
forked from cheng/wallet
wallet/docs/notes/merkle_patricia_dag.md
reaction.la 5e116784bf
new file: images/gpt_partitioned_linux_disk.webp
new file:   images/msdos_linux_partition.webp
modified:   images/nobody_know_you_are_a_dog.webp
modified:   libraries.md
new file:   notes/merkle_patricia_dag.md
modified:   pandoc_templates/style.css
new file:   pandoc_templates/vscode.css
modified:   scale_clients_trust.md
modified:   setup/contributor_code_of_conduct.md
modified:   setup/set_up_build_environments.md
modified:   setup/wireguard.md
modified:   social_networking.md
modified:   ../libsodium
modified:   ../wxWidgets
2023-02-19 15:15:25 +08:00

1.3 KiB

title: Big Circ notation # katex ... The definition of \bigcirc used by mathematicians is not convenient for engineers. So in practice we ignore that definition and use our own. The mathematical definition is, roughly, that if f(n)=\bigcirc\big(g(n)\big) then f(n) grows no faster than g(n), that there exists some value K such that for values of n of interest and larger than of interest $f(n)\le Kg(n)$ Which is kind of stupid for engineers, because by that definition an algorithm that takes time \bigcirc(n) also takes time \bigcirc(n^2), \bigcirc(n!), etcetera. So, Knuth defined \large\Omega, which means, roughly, that there exists some value K such that for values of n of interest and larger than of interest $f(n)\ge Kg(n)$ Which is also stupid for the same reason. So what all engineers do in practice is use \bigcirc to mean that the mathematical definition of \bigcirc is true, and Knuths definition of \large\Omega is also largely true, so when we say that an operation take that much time, we mean that it takes no more than that much time, and frequently takes something like that much time. So, by the engineer's definition of \bigcirc, if an algorithm takes \bigcirc(n) time it does not take \bigcirc(n^2) time. Which is why we never need to use Knuth's \large\Omega