I do not think that such a list exists. The sheer number of well-known algorithms and data structures is staggering, and new ones are being developed all the time. Moreover, many of these algorithms and data structures are specialized, which means that even if you had a list in front of you, it would be difficult to know which ones were applicable to the specific problems you were trying to solve.
Another problem with such a list is how to quantify effectiveness. If you were to evaluate algorithms in terms of asymptotic complexity (big-O), then you could put certain algorithms and data structures that are asymptotically optimal, but impractical at small inputs in front of algorithms, which are known to be fast for practical cases, but theoretically cannot be theoretically. As an example, consider the search for the median median algorithm for linear temporal order statistics, which has such a huge constant coefficient that other algorithms are much better in practice. Or consider quicksort, which in the worst case is O (n 2 ), but in practice has an average complexity of O (n log n) and is much faster than other sorting algorithms.
On the other hand, it was necessary to try to list the algorithms for performance, the list would be misleading. Performance is based on a number of factors that depend on the machine and input (for example, locality, input size, input form, machine speed, processor architecture, etc.). This can be useful, usually a trick, but in many cases you can mislead numbers to choose one algorithm when the other is much superior.
There is also implementation complexity. Many algorithms exist only in documents or have reference implementations that are not optimized or written in a language that is not what you are looking for. If you find the Holy Grail algorithm that does exactly what you want but don’t implement it, it can be difficult to compile and debug your own version. For example, if there was no predominance of red / black tree implementations, do you think you can encode it yourself? How about a Fibonacci heap? Or (from personal experience) van Emde Boas? It can often be a good idea to choose a simpler algorithm that is "good enough" but easy to implement with a much more complex algorithm.
In short, I would like for such a table to exist, which really had all this information, but practically speaking, I doubt that it can be constructed in such a way that it is useful. The Wikipedia links from @hammar's comments are actually pretty good, but the best way to find out which algorithms and data structures to use in practice is to practice testing them.