Меня смущает сложность следующего (операция, выполняемая внутри внутреннего цикла, выполняется в постоянном времени):
for(int i=0; i<n; i++)
for(int j=i; j<n; j++)
это O (n ^ 2) или O (n)? Я рисую O (n ^ 2). Есть идеи?
также меня интересует следующее:
for(int i=0; i<n; i++)
for(j=0; j<i; j++)