票3まず最初に、Big-O表記では定数倍の違いは無視するので、O(log2(n))という書き方はしません。×ループ1回あたりの計算量となります。「ループ1回あたりの計算量」がO(1)であることが条件となります。意図せずO(1)より計算量の多いメソッド等を使用していないかも注意すべきです。いうわけでループしているところを順番にチェック。?リスト操作は呼び出し1回がO(N)になるものが多数あるので要注意です。appendの場合でいうと、内部領域が不足したときに、領域を拡張する操作はO(N)なんですが、そのような拡張は1/Nの確率でしか発生しないように調整されているので、平均ではO(1)と考えて良いです。appendではなく、insertを使用すると話が変わってくる場合もありますので、要注意。1)]ご質問中では無視されているようですが、リスト内包表記も入力のシーケンス長Nに対してN回ループします。1回のループ内では2**xの計算を行いますが、これはO(1)操作と考えて良い(*1)でしょう。よってここも全体ではO(log(n))ですね。値により計算量が変化する可能性もあるんですが、上限もあるので無視しておきます。?ループ内の処理ではリストの要素参照([])数値型の掛け算(*)数値型の累積加算(+=)などが行われていますが、どれもO(1)と考えて良いでしょう。よって、ループ全体の計算量はO(log(n))ということになります。言うわけでどのループも同じオーダーで処理ができるので、全体としても同じオーダーでO(log(n))は正解と言ってしまって良いと思います。(私的には、ご質問中のtotalって、何を計算しているのかよくわからないのですが...。sortなど)を正しく評価してやる必要があります。リスト用の関数など呼ぶ場合には特に気をつけないといけません。個の銅バッジご回答いただきましてありがとうございます。totalは、深さx要素数を計算して足し込んでいって、和を求める計算です。7:282コメントありがとうございます。「何を計算しているのか」と言うのは、「何に使われるものなのか」と言う意味です。アルゴリズムの話にちょくちょく首を突っ込んでいながら、その辺の統計量にどう言う意味があるのかがまるでわかっていないので、ちょっと疑問に思ったものです。10:13アルゴリズムを適用させる問題に寄るかと思います。今回の場合、単純にプログラミングの勉強のために計算しました。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。