I have an algorithm similar to this:
i=1
while(i < n) {
//something in O(1)
while(i < n && cond) {
//something in O(1)
i++
}
i++
}
Where "cond" is some condition which can be checked in $\mathcal O(1)$. It is clear that this algorithm is $\mathcal O(n^2)$. But is it also $\mathcal O(n)$?
I'd say yes because the statement "i++" is executed $\mathcal O(n)$-times since both loops end when i reaches n.
Is it possible to rewrite the algorithm in a form with equivalent runtime so that it can be seen more clearly?