Please see my comments to the question: there is no one single algorithms.
Also, hash functions are different for different purposes. There are at least two distinct classes of them:
http://en.wikipedia.org/wiki/Hash_function[
^],
http://en.wikipedia.org/wiki/Cryptographic_hash_function[
^].
It depends on your purpose, which you did not bother to share with us.
You can learn the algorithms starting from the articles referenced above, but a good number of them are readily available from .NET FCL.
First of all, each and every .NET object of any type has one:
http://msdn.microsoft.com/en-us/library/system.object.gethashcode.aspx[
^].
And on the cryptographic side, a number of them are available:
http://msdn.microsoft.com/en-us/library/system.security.cryptography.hashalgorithm.aspx[
^].
—SA