General Information Algorithms
are the mainstay of modern computer programming. Some algorithms--such as
specific methods for sorting data, encrypting information, or creating
sorted lists of information--are taught to students in computer science
courses, and are considered common knowledge amongst computer programmers.
Other algorithms--like the methods used by the Federal Government to
encrypt and protect government secrets--are proprietary information
created by programmers to solve specific problems. Follow the links below
to learn more about algorithms.
Specific algorithms John
Horton Conway designed an algorithm he calls "Doomsday", which
predicts the day of the week for any date. Read about it at Rudy
Limeback's Web site, http://rudy.ca/doomsday.html.
Computer algorithms are frequently employed for sorting and searching.
Thomas Niemann provides an intuitive approach to these algorithms in his
sorting and searching algorithm "cookbook" at this website.
A computer can also use algorithms to explore scientific questions.
Find out how algorithms are being applied to the fields of evolution and
genetic research at http://www.obitko.com/tutorials/genetic-algorithms/. You might want to visit the Stony
Brook Algorithm Repository where you will find a collection of
algorithms for more than 70 fundamental problems. A good resource for
exploring specific algorithm questions is the Dictionary
of Algorithms and Data Structures. This dictionary is found at the
National Institute of Standards and Technology website.
Books The classic
text on algorithms is Donald Knuth's Art of Computer Programming
(Addison-Wesley, 1998), now in its third edition (originally published in
the 1970s). So far there are three volumes in this set, but Knuth is
working on volumes four and five. For a progress update, you can connect
to Knuth's home page at www-cs-staff.stanford.edu/~knuth/taocp.html.
A good book about integrating algorithms using an object-oriented
methodology is Design Patterns. You can take a look at it at here.
Additional Links http://math.ucsd.edu/~fan/math188/bonus/park/top5.html
Viewing animations of
algorithms can be an effective way to learn and understand algorithms. At
this web site, you can find links to animations of basic algorithms, such
as sorting, tree, geometric, graph, parallel, and data structure