Поскольку шаг один и шаг два (шаг третий) выглядят как запускаемые несколько раз. Может кто-нибудь сказать мне, почему он должен быть скомпилирован таким образом.
int i = 0, j = 0;
int k = l;
while (i < n1 && j < n2) { ----step one
if (L[i] <= R[j]){
arr[k] = L[i];
i++;
}
else{
arr[k] = R[j];
j++;
}
k++;
}
while (i < n1){ ---step two
arr[k] = L[i];
i++;
k++;
}
while (j < n2){ ----step three
arr[k] = R[j];
j++;
k++;
}
}