A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
下記はわかった上でわからないということですか?
プログラムの説明として
各行の下にコメントを挿入しました。
ダブルスラッシュ(//)はCの構文で、コメントの前につけます。
また、この書籍では、代入命令に←を使ってますが、通常=をつかいます。
---------------------
big←bigD[1];
//bigにD[1]の内容を代入
for(i=1; i≦n; i=i+1){
//for()に続く{}内を
//繰り返す。
//()内の意味は
// ( 変数iを1で初期化;
// i≦nなら{}内を実行;
// 最後にiをi+1で
// 置き換えて,ここに戻る)
if(D[i]>big){
//分岐命令
//()内の条件が成立したら
//続く{}内を実行する
big←D[i];
//bigにD[i]を代入。
}
//ifの終わり
}
//forの終わり
print(big);
//bigを出力する
---------------------
No.1
- 回答日時:
この文章で前提にしているのは、アルゴリズムの行を最小単位として、最悪何行実行されるか(繰り返しの場合は実行されるごとに1回とカウントする)ということだと思います。
最悪の場合、3行目の条件が必ず真になり、4行目が毎回実行されることになります。これを数えてみると3nになるということです。nを3とか5とかと仮定して、実際にそれぞれ何回実行されるか数えてみるとわかると思います。ちなみに、実際のコンピュータに計算させる場合はこんなに単純ではありません。
この説明では、2行目のfor文も4行目の代入も7行目の印刷もすべて同じ計算量として取り扱っていますが、実は行によって計算量は全然違います。
2行目のfor文は、
1回目だけ
iに2を代入する
1回目からn-1回目まで、
iとnを比較し、大小関係を割り出す
大小関係の結果が偽だった場合に7行目にジャンプする
2回目からn-1回目まで
iに1を加える
また、3行目のif文は次のような処理です。
D[i]のメモリ上の場所(番地)を計算によって求める
D[i]の値をメモリの上記で求めた場所から読む
読んだ値とbigを比較し、大小関係を割り出す
大小関係の結果が偽だった場合に2行目へジャンプする
4行目は、既に3行目でD[i]の値をメモリから読んであり、値を保持している前提で、
bigにその値を代入する
また、計算式が見えない6行目には、2行目へ無条件でジャンプする、という処理があります。
7行目のprint文は、上記の計算よりもはるかにたくさんの処理が必要です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 医療・介護・福祉 点滴の計算問題についての質問です。 多分、普通の算数の問題だと思うんですけど ネットの解説がわからな 2 2022/11/30 18:25
- 工学 等分布荷重の曲げモーメント計算について 1 2022/08/16 14:36
- 高校 勉強ができない。 4 2022/07/03 08:13
- 数学 【大至急】数学のレポートの問題なんですが分からないので是非教えていただきたいです!本当にお願いします 5 2022/07/25 06:52
- 経済学 「政府支出乗算」の求め方を教えてください。 2 2022/11/20 19:52
- 数学 数学 x軸に関して対称に移動した放物線の式は x軸に関して対称に移動された放物線の式のyに−をつけて 1 2022/07/14 21:03
- 工学 非言語分野が全くできない人にオススメの参考書を教えてください 1 2023/06/01 16:15
- 統計学 統計学の問題 2 2022/07/24 19:57
- 大学受験 大学受験 記憶力がマジでないです。私は大学受験する資格がないのでしょうか? 1日目1問解いてもわから 7 2022/10/08 14:02
- 物理学 こんにちは。高三なのですが、物理をやっていて、 写真のような条件のもとで、与式である一次式の加速度、 2 2023/04/18 18:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エラーの意味は? Lvalue req...
-
VBAでダブルコーテーション入り...
-
EXCEL/VBA 変数の値をクリップ...
-
C言語 列挙型(enum型)変数について
-
processing エラーで、 "cannot...
-
テキストボックスの値を変数に...
-
umu *= 2;てどんな意味があるの...
-
[VBS]変数を定数に変換する方法...
-
【VBA】複合代入演算子
-
7行テトリスコードで分からな...
-
datagridviewに行...
-
Variant型で宣言してるのにEmpt...
-
整数xxxが大き過ぎますというエ...
-
i++と++i ってどう違うのですか?
-
画像のプログラムに関して質問...
-
C言語(高校1年の内容)について
-
Java認定試験3級の問題です。 ...
-
C言語 exitの使い方
-
フォームを開くときに、コンボ...
-
エクセルへのデータの貼付時に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでダブルコーテーション入り...
-
エラーの意味は? Lvalue req...
-
C言語 列挙型(enum型)変数について
-
EXCEL/VBA 変数の値をクリップ...
-
整数xxxが大き過ぎますというエ...
-
テキストボックスの値を変数に...
-
[VBS]変数を定数に変換する方法...
-
Variant型で宣言してるのにEmpt...
-
jsp~jspにhiddenを使って変数...
-
processing エラーで、 "cannot...
-
python の 連鎖代入の文法
-
i++と++i ってどう違うのですか?
-
プログラミングで変数と関数の...
-
C言語 アロー演算子について質...
-
「%」を使って、偶数か奇数かを...
-
JavaScriptをURLから直接実行し...
-
VBA 1行で複数の代入を行った...
-
ExcelのVBAでをA列に第0〜19項...
-
無名関数のメリットがよくわか...
-
コマンドプロンプト バッチ|結...
おすすめ情報