As already mentioned, algorithms are functions taking some input, processing it, and returning an output. Usually, an algorithm in the context of the STL implies a function processing a collection of data. Collections of data are presented in the form of containers, such as std::vector, std::list, and others.
Choosing an efficient algorithm is a common task in a programmer's routine. For example, searching a sorted vector using the binary search algorithm will be much more efficient than using sequential searching. To compare the efficiency of algorithms, a so-called asymptotic analysis is performed, which takes into consideration the speed of the algorithm with regard to the input data size. This means that we shouldn't actually compare two algorithms by applying them to a container with ten or a 100 elements.
The actual difference of algorithms...