# Definition of near-linear algorithm

There are quite a lot papers describing near-linear algorithms. They are usually iterative, with linear complexity of one iteration. Others have $O(n\log^k n)$ time compexity.

I'm failed to find a decent source with the definition of "near-linear" time, which covers both types. Please, help me find one.

• I don't think there is a universally agreed upon definition of near-linear time. Sep 30 '16 at 17:55
• Why do you think so?
– ov7a
Sep 30 '16 at 18:05
• I have never heard of the concept, so it can't be universally agreed upon. In my field there is a similar concept, quasilinear, which could mean $O(n\log^{O(1)}n)$, or perhaps $O(n^{1+o(1)})$. Sep 30 '16 at 18:07
• It is much better to use an explicit upper bound rather than some term which means different things to different people, unless you explain what you mean by the term. We do use $\tilde O$ notation, which usually means "up to logarithmic terms" (i.e. $\tilde O(n) = O(n\log^{O(1)}n)$). Sep 30 '16 at 18:15
• Near linear time is not a formal term usually, so, like Yuval said, you should check the papers for what they mean exactly. Usually, the meaning is either $O(n \log^{O(1)} n)$ (as in the nearly linear time Laplacian solvers and algorithms that use them, and the nearly linear time PTAS for TSP and related algorithms), or, less often $O(n^{1 + o(1)})$ Sep 30 '16 at 20:57

A function $f:\mathbb{N}\to\mathbb{N}$ is near-linear, if $~f(n)\in O(n^{1+\varepsilon})~$ for all $\varepsilon>0$.
• Even $\varepsilon > 1$?
• @ChelovekChelovechnii It is crucial that $\varepsilon$ can be arbitrarily small, large epsilons do not matter. If $f(n) \in O(n^{1+0.5})$ then obviously $f(n) \in O(n^{1+\varepsilon})$ for all $\varepsilon > 1$. Oct 4 '16 at 0:20
• We can note that this definition includes the family of algorithms in $O\big(n.log(n)\big)$. Jul 28 '20 at 13:58