One-pass algorithm

In computing, a one-pass algorithm is one which reads its input exactly once, in order, without unbounded buffering. A one-pass algorithm generally requires O(n) (see 'big O' notation) time and less than O(n) storage (typically O(1)), where n is the size of the input.
==Example problems solvable by one-pass algorithms==
Given any list as an input:
* Count the number of elements.
* Find the nth element (or report that the list has fewer than n elements).
* Find the nth element from the end (or report that the list has fewer than n elements).
Given a list of numbers:
* Find the k largest or smallest elements, k given in advance.
* Find the sum, mean, variance and standard deviation of the elements of the list.
Given a list of symbols from an alphabet of k symbols, given in advance.
* Count the number of times each symbol appears in the input.
* Find the most or least frequent elements.
* Sort the list according to some order on the symbols (possible since the number of symbols is limited).
* Find the maximum gap between two appearances of a given symbol.
==Example problems not solvable by one-pass algorithms==
Given any list as an input:
* Find the middle element of the list.
Given a list of numbers:
* Find the median.
* Find the modes (This is not the same is finding the most frequent symbol from a limited alphabet).
* Sort the list.
Category:Algorithms