線性時間

在计算复杂性理论，一个被称为线性时间或 Ο(n)时间的算法，表示此算法解题所需时间与输入数据的大小成正比，通常以n表示。换句话说，运行时间与输入数据大小为线性比例。例如将一列数字加总的所需时间，正比于串列的长度。
然而实际情况常有差距，真实的运行时间很可能与预期的比率相差甚大，尤其在n的值很小时。在技术讨论时，在足够大的量n之下算法的运行时间从到（a、ｂ为正实数）时，就可称线性时间。详情请看大O符号。
达到线性时间的运行性能通常是一个算法的最佳目标。很多学者研究并创造了许多接近线性或更佳的算法，包括了软件或硬件方面的研究。硬件方面，借由诸如平行运算的硬件架构，使得某些数学认为无法在标准计算模型下达到线性时间的算法，现在都可以在线性时间内运行完毕。例如内容可定址存储器）。
某些排序算法可以在特殊的数据结构及排列下拥有线性时间的效率。但在一般情况下以比较元素大小来排序的算法，最多只能到达Ο(nlog(n))。最低限度复杂性的证明已被小O符号含括；通用排序算法被认为是Ω(n log(n))。另外，要找到一个集合中最大的元素是Ω(n)，因为算法必须至少比较过（n-1）次才能找到最大元素。
任何必须依赖全部输入内容才能得解的问题，它最少也得要线性时间才能得解，因为它至少得花线性时间来读取输入数据。