Pythonにおけるネストされたループの時間複雑度は、ループがどのように構造化されているかによって決まります。forループの中にwhileループがある場合でも、特定のケースではO(N)の複雑度になる可能性があります。最初の例では、whileループはforループの各イテレーションごとに1回だけ実行され、定数時間の作業を行うため、O(N)の複雑度になります。2番目の例では、whileループはforループの各イテレーションごとに一定回数実行され、再びO(N)の複雑度になります。3番目の例では、whileループの条件により、変数は合計でNまでしかインクリメントされないため、O(N)の複雑度になります。重要なポイントは、内側のwhileループのイテレーションの数が外側のforループに依存しない場合、組み合わせた複雑度はO(N)のままになるということです。内側のwhileループが外側のforループの各イテレーションごとにN回実行される場合、複雑度はO(N^2)になります。O(N^2)の複雑度の例は、whileループがforループの各イテレーションごとにN回実行される場合です。この場合、forループはN回実行され、whileループはforループの各イテレーションごとにN回実行されるため、O(N^2)の複雑度になります。ネストされたループの構造が全体の時間複雑度を決定します。
dev.to
TIL: Nested for/while loops can have O(N) time complexity in some cases (DSA for technical interviews)
Create attached notes ...
