From 5bb0f224483fbc1d57fd1c5a2f4a22dd7263ecd6 Mon Sep 17 00:00:00 2001 From: Andinus Date: Tue, 19 Jan 2021 18:20:23 +0530 Subject: Re-implement octans, move subroutines to respective modules MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- README.org | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) (limited to 'README.org') 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. -- cgit 1.4.1-2-gfad0