I have theorised a indexing algorithm (like a B-tree).
However, there's a mental block stopping me actually implementing it.
The algorithm comes in to forms:
A look up time of O(1) to O(log2(n))
Each value in the index will have metadata associated to it that is of the size log2(n)*memory address size
A look up time of O(1) to O(log2(n)/2)
Each value in the index will have metadata associated to it that is of the size log2(n)*2*memory address size
Unlike B-tree/other index algorithms, there's no time penalty for a add/deletion.
You can for example do a add, then do a search straight after (with no waiting in between).
You get a faster search at the expense of more metadata (memory) along with being able to insert/delete in real time.
You can also do sequential access/search sequential data values fast.
I can't find any other algorithm that has that attributes and time complexity.
If I can get it to work, I plan to sell it.
My question is; would this actually worth anything to anyone/or useful in any particular application?
Or is the amount of memory it uses too much of a deal breaker?