回答:
このように考えてください。Nに関係なく、最も内側の関数は2番目のループの実行ごとに1回だけ実行されます。つまり、実行回数はNに線形に依存します。これは、最初のループ内のすべてを線形(O(n))時間操作として扱うことができることを意味します({do stuff}も一定時間であると想定)。最も外側のループを検討すると、O(n)をn回取る処理を実行していることがわかります。これは、全体的なランタイムがO(n ^ 2)であることを意味します
Nを2倍にすると、合計でN ^ 2回の反復が追加されます。したがって、全体のランタイムはN ^ 2です。