about summary refs log tree commit diff stats
path: root/README.org
diff options
context:
space:
mode:
authorAndinus <andinus@nand.sh>2021-01-19 18:20:23 +0530
committerAndinus <andinus@nand.sh>2021-01-19 18:20:23 +0530
commit5bb0f224483fbc1d57fd1c5a2f4a22dd7263ecd6 (patch)
tree1623478ad72521793c499522a88bf258a39f6464 /README.org
parenta5fd4afc258afe61adc298101cf2665e0dfb6b9f (diff)
downloadoctans-5bb0f224483fbc1d57fd1c5a2f4a22dd7263ecd6.tar.gz
Re-implement octans, move subroutines to respective modules
Initially it went over the list of words & checked if they exist in
the grid. This was very slow.

Currently it walks the grid & checks if the current string exist in
the dictionary. This is faster for these reasons:

• The dictionary is sorted, we perform binary range search on the
  dictionary to return the list of all words that start with specific
  string.
• Starting positions are limited.

If the dictionary wasn't sorted then this probably would've been
Diffstat (limited to 'README.org')
-rw-r--r--README.org28
1 files changed, 22 insertions, 6 deletions
diff --git a/README.org b/README.org
index 0895433..d657291 100644
--- a/README.org
+++ b/README.org
@@ -18,19 +18,35 @@ This was recorded with =asciinema(1)=.
 + alt-link (download): https://andinus.nand.sh/static/octans
 
 * Documentation
-The url to be passed must be in either format:
+** Implementation
+Initially it went over the list of words & checked if they exist in the
+grid. This was very slow.
 
-- Link when you view it from your local instance:
-  https://tilde.zone/web/statuses/105531207939242077
+Currently it walks the grid & checks if the current string exist in the
+dictionary. This is faster for these reasons:
 
-- Link from Algot's profile:
-  https://mastodon.art/@Algot/105333136907848390
+- The dictionary is sorted, we perform binary range search on the
+  dictionary to return the list of all words that start with specific
+  string.
+- Starting positions are limited.
+
+If the dictionary wasn't sorted then this probably would've been slower
+than previous implementation.
 
 ** Options
 *** dict
 Octans's default dictionary file is =/usr/share/dict/words=, use =--dict=
 flag to change the dictionary. The words in dictionary must be seperated
-by a newline (=\n=).
+by a newline (=\n=) & sorted alphabetically.
+
+*** url
+The url to be passed must be in either format:
+
+- Link when you view it from your local instance:
+  https://tilde.zone/web/statuses/105531207939242077
+
+- Link from Algot's profile:
+  https://mastodon.art/@Algot/105333136907848390
 
 *** verbose
 This will increase verbosity.