All funtions written in c and wrapped in swift. Build in xcode if you wish.
The Algorithms:
Note: I renamed and made up a few - which are the best ones. But 90% you know.
Boyer-Moore algorithm
Alpha Skip
Apostolico-Crochemore algorithm
Apostolico-Giancarlo algorithm
BMH-SBNDM
BRUTE FORCE SEARCH
BackwardOracle
Berry-Ravindran algorithm
Boyer-Moore-Horspool
Colussi algorithm
Deterministic Finite Automaton algorithm
Extended-BOM
Franek-Jennings-Smyth
Galil-Giancarlo algorithm
Galil-Seiferas
KMP Skip Search algorithm
Karp-Rabin algorithm
Knuth-Morris-Pratt
Morris-Pratt
Optimal Mismatch algorithm
Ordered Alphabets
Quick Search
Railgun String Search (CAN'T BE BEAT OR BROKEN)
Research with an automaton search
Reverse Colussi algorithm
Reverse Fuck All
SIMON!
ShiftAnd
Shifty and Fuzzy
Skip Search
Turbo-BM algorithm
Two Way Search
Viva Hate
Zhu-Takaoka algorith
Good Read: https://arxiv.org/abs/1012.2547 #
It's very simple to use Swift and c side by by side.
Fun Swift opinion - If you're not low level engineers, you probably don't realize that Swift (or Golang - my new favorite) could easily replace c. But c is awesome. C++ can die already.
I took the TDD approach on this so every implementation is right in the unit tests.
These are most of the full text search algos out there I think.
I even found some esoteric ones that are blazing compared to the "standard" ones. You'll know them by their name as you'll have never heard of it.
This has been an interesting exercize'. Each one of these excell in specific scenarios. Some more universal than others. Lots of unexpected on specific data types. This is exciting because there is a strong possibility it's quite easy to improve every search platform/algo in existence via simple genetic algos and ML. That's a big one. But in dev. Similar to https://github.com/mikewlange/Kettle--Tpot-for-GPU-AI but for search critera/algo deduction/content.
Hopefully no one reads that last sentance as you now have a billian dollar search platform if you put in the work before me.
Here they are in no particular order.
https://github.com/mikewlange/35-Super-Fast-Search-Algorithms/tree/master/Motekim%20Search