I'm a little suprised nobody has mentioned the Simplex algorithm yet. I don't think it's importance in the history of optimization problems could be overstated.
Also: does the Monte Carlo method count as an algorithm?
I still haven't groked exactly what is so special about them. Incredibly useful, sure, but aren't they just simulations?
Ie, isn't it something anyone would have come up with(sorry if I'm just ignorant here)?
I have to second simulated annealing if only because it gets too ignored normally. It's a wonderful technique for attacking the optimization of intractable problems, and one that belongs in any good mental toolkit for optimization.
But the more I think about it, I'd have to give Dijkstra's shortest path routing algorithm my highest marks...
http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm
it probably was used to route this message to all you who are reading this... and also used in the routing of the board design on which your screen is attached.,,and is the basis of many other technology and efficient scheduling applications in common use today...
Basic algorithms for arithmetic, when first originated thousands of years ago, have probably had a far more profound effect on the world than any recent computer-based algorithm. Particularly in accounting and engineering, they would have contributed to the ability to have economies that could support large civilizations. The earliest records found of ancient languages are sometimes accounting records.
Interpreting "algorithms in computing" more widely than the questioner meant of course. :-)
Algebra itself started out as a bunch of recipes for doing computations back in Babylonian times, "fathered" by Diophantus, and Al-Khwarizmi who named and codified Algebra.
The point in polygon problem for arbitrary polygons I believe was first solved by Robert Sedgewick and published in his awesome algorithms book... it is discussed here...
http://bit.ly/i1u1
In most computer applications today we assume we can easily tell whether or not a point is within (or without)...
But I think Robert published the first algorithm on how...
Is it a good candidate as an algorithm though? The novel part of pagerank is representing hyperlinks as a connectivity matrix and using the eigenvalues as search ranking. Finding the eigenvalues themselves was not new, and the rest doesn't seem as important in an algorithmic sense.
The Deutsch-Jozsa Algorithm, while not immediately "practical" in the sense that it solved some real-world problem that had been vexing computer scientists, was instrumental in showing conclusively that quantum computers could be asymptotically faster than classical computers for some problems. This then led the way for more applied quantum algorithms such as Shor's Algorithm (itself a special case of QFT and period-finding algorithms). So I'd like to nominate DJA for an algorithm that changed the world.
Lempel-Ziv compression: Though it's hard to point to things that would have been impossible without it, it's saved so much transfer and storage capacity in its time that the economic impact would be huge.
Apriori association mining: Of fairly limited application, but it's use in market basket data has probably had quite a large impact on our retail sector for one.
I'd go with something like Reed-Solomon error correction. It makes CDs and DVDs work. Programmers have to be insulated from the flawed physical world and error correction codes do that.
russell... I would perhaps nominate bubble sort above quicksort...for us old timers, it was easy to understand, code, and install in our programs where ever we need a sort... bubble sort I would argue first brought sorting to our discipline.
Early in my career I implemented a cross reference function using bubble sort and was ridiculed by a Real Computer Scientist. I opted for quick sort, because I wasnt going to expose myself to that here. :-)
[+] [-] notaddicted|17 years ago|reply
I think I'll nominate FFT.
[+] [-] greendestiny|17 years ago|reply
[+] [-] michael_dorfman|17 years ago|reply
Also: does the Monte Carlo method count as an algorithm?
[+] [-] schtog|17 years ago|reply
I still haven't groked exactly what is so special about them. Incredibly useful, sure, but aren't they just simulations? Ie, isn't it something anyone would have come up with(sorry if I'm just ignorant here)?
[+] [-] DaniFong|17 years ago|reply
The Fast Fourier Transform.
Max-Flow-Min-Cut. (Ford-Fulkerson)
Simulated annealing.
Carrier sense multiple access with collision detection (the protocol used by ethernet)
And if it counts, dynamic programming, in its many variants. If it doesn't, Dijkstra's algorithm.
[+] [-] cgranade|17 years ago|reply
[+] [-] gne1963|17 years ago|reply
[+] [-] 10ren|17 years ago|reply
Interpreting "algorithms in computing" more widely than the questioner meant of course. :-)
[+] [-] russell|17 years ago|reply
[+] [-] gne1963|17 years ago|reply
[+] [-] russell|17 years ago|reply
[+] [-] 10ren|17 years ago|reply
[+] [-] greendestiny|17 years ago|reply
[+] [-] shrughes|17 years ago|reply
[+] [-] fgimenez|17 years ago|reply
[+] [-] dfranke|17 years ago|reply
[+] [-] brl|17 years ago|reply
[+] [-] russell|17 years ago|reply
[+] [-] shrughes|17 years ago|reply
[+] [-] cgranade|17 years ago|reply
[+] [-] greendestiny|17 years ago|reply
Lempel-Ziv compression: Though it's hard to point to things that would have been impossible without it, it's saved so much transfer and storage capacity in its time that the economic impact would be huge.
Apriori association mining: Of fairly limited application, but it's use in market basket data has probably had quite a large impact on our retail sector for one.
[+] [-] slackerIII|17 years ago|reply
[+] [-] prakash|17 years ago|reply
[+] [-] 10ren|17 years ago|reply
I think that's the hardest part of the question.
[+] [-] unknown|17 years ago|reply
[deleted]
[+] [-] gne1963|17 years ago|reply
[+] [-] russell|17 years ago|reply
[+] [-] jff|17 years ago|reply
[+] [-] webmaven|17 years ago|reply
[+] [-] brl|17 years ago|reply
[+] [-] mhb|17 years ago|reply
[+] [-] hs|17 years ago|reply