What is the asymptotic running time of the following piece of code? I am working with this problem:

What is the asymptotic running time of the following piece of code?

if (N &lt; 1000)
   for (int i = 0; i &lt; N*N*N; i = i+1) A[i] = j;
else if (N &lt; 10000)
   for (int i = 0; i &lt; N; i = i+1) A[i] = j;
else
  for (int i = 0; i &lt; N*N; i = i+1) A[i] = i;


Where the possible answers are:


A) linear in N
B) linearithmic in N
C) cubic N
D) quadratic in N


I am unsure how to calculate it, but when I look at the code I think A and B is not the right answer, because of the for-loops multiply with the variable x-times. If possible, could someone also explain what "Asymptotic time" means?
An easy way to intuit asymptotic notations goes like this. Say you have a number $n$ and a constant $c$. Now $n^2$ will always be greater than $n*c$ for any choice of $c$ where $c &lt; n$. So no matter what the constant coefficient is, it will never exceed $n^2$.

Now your question. Asymptotic notations are calculated for sufficiently large values of n where sufficiently large is usually taken as infinity. So although your algorithm has $n^3$ and $n$ time complexities for smaller values of $n$, for large values ($n$ tends to infinity), the time complexity is $n^2$.