In computer science, an online algorithm[1] is one that can process its input piece-by-piece in a serial fashion, i.e., in the order that the input is fed to the algorithm, without having the entire input available from the start.
In contrast, an offline algorithm is given the whole problem data from the beginning and is required to output an answer which solves the problem at hand.
In computer science, streaming algorithms are algorithms for processing data streams in which the input is presented as a sequence of items and can be examined in only a few passes (typically just one). In most models, these algorithms have access to limited memory (generally logarithmic in the size of and/or the maximum value in the stream). They may also have limited processing time per item.
In computer science, real-time computing (RTC), or reactive computing describes hardware and software systems subject to a "real-time constraint", for example from event to system response.[1] Real-time programs must guarantee response within specified time constraints, often referred to as "deadlines".
从维基百科的定义可以,他们侧重的点不同,个人总结如下:
1.online algorithm 只能看到数据的一部分,必须基于此做决定(可能不是最优的)
2.offline algorithm 可以看到解决问题的所有数据
3.streaming algorithms 处理序列流(内存有限,流大小有限,单个序列项处理时间有限)
4.real-time computing 强调响应时间,有时间限制。
参考自https://en.wikipedia.org/wiki/Online_algorithm 及其See also:
展开