• 検索結果がありません。

種々の 目安として、 に対するバブルソートの実行時間を 求めよ

N/A
N/A
Protected

Academic year: 2021

シェア " 種々の 目安として、 に対するバブルソートの実行時間を 求めよ"

Copied!
2
0
0

読み込み中.... (全文を見る)

全文

(1)

演習

コマンド行引数として を与えたとき、 個の整数を格納する領域を動的に確保し、その領 域に 個の乱数を格納してから、それをバブルソートし、正しくソートされていることを確 認するするプログラムを作成せよ。プログラムでは、バブルソートにかかった時間(乱数の生 成にかかった時間やソートされていることを確認するためにかかった時間は含めない)も出力 するようにすること。

種々の 目安として、 に対するバブルソートの実行時間を 求めよ。実行時間は、最適化オプション無しでコンパイルした場合と、最適化オプション付き でコンパイルした場合について求め、レポートでは、 とこれら両者の実行時間の関係が一目 でわかるように記載すること。この結果から、 と実行時間の関係を類推し、この類推が理論 的に正しいと言えるかどうか考察せよ。

【ヒントコメント】

¯ プログラムの中に、

を記載してコンパイルエラーになるとの質問があった。構造体はインクルードファ イル の中で定義されているので、プログラム中に記載すると、重定義のエ ラーになる。プログラム例を見れば、上記のような記述は無い事が分かる。

¯ 最適化コンパイルを行っても実行時間が変わらないというレポートがあるが、最適化オプショ ンに必要な「(大文字のオー)ではなく、間違って「(数字のゼロ)を指定したた めと考えられる。演習資料節の脚注に記載されているので、演習資料を良く読んでい れば、このようなミスをしなくてすむ。

¯ この課題で「 」や「」が出るのは、多くの場合、確保した配列の 範囲外の要素にアクセスしていることが原因と考えられる。 型へのポインタ変数と

し、 のようにメモリを動的に確保した場合、ア

クセス可能なのはであり、にアクセスすると、

になる可能性が高い。バブルソートでは、配列の隣の要素との比較を行 うので、このようなエラーが出た場合は、隣の要素がになってしまっていないかを チェックすること。

¯ バブルソートのアルゴリズムの概略として、演習資料に

½º 先頭から順に¾つずつデータを比較し大きい方のデータが後ろになるようにデータを交換 するという操作をデータの最後まで繰り返す。これにより、最後のデータは、最大のデー タとなる。

¾º 最後のデータを取り除いて、再び上記½ºを行う。これをデータが½個になるまで繰り返す。

と記載しているが、これをプログラムにすると、ヒントに記載しているように二重のループ になる。の部分が内側のループで、の部分が外側のループに対応する。

(2)

¯ 上記のの部分で、「最後のデータを取り除いて、再び上記を行う。」と指示しているが、

最後のデータを取り除かずに、の操作を 回繰り返しているプログラムが見受けられた。

この方法でもソーティングは出来るが、無駄な比較を行うことになるので遅くなる。

¯ の目安として、 を指示しているが、この規模のデータ数で の実験結果を記載していないレポートは問題である。

¯ 一つの の値に対する実行時間しか載せていないレポートがあるが、 と実行時間の関係を 類推するためには、複数個の に対して実行時間を求める必要がある。

¯ バブルソートの時間複雑度は最悪の場合も平均の場合も ¾ であるので、ソートに要する 時間が ¾にほぼ比例していれば理論通りの結果が得られていることになる。

¯ ソート前やソート後のデータを出力しているプログラムがあるが、プログラム内でソート出 来ていることをチェックしているので、データの出力は不要である。½

¯ バブルソートは非常に有名なソート法なので、演習資料を見ても良く理解出来なかった人は、

「茨木俊秀 によるアルゴリズムとデータ構造!」などの書籍を参考にして勉強しておく こと。

¯ 参考までに、"#$% &" '#$(() '* 上での実験結果を示 す。関数+*の精度などを考えると、実験結果としては小数点以下桁程度の記載 で十分である。

この結果と大幅に異なる場合は、無駄な計算を行っていたり時間を計る場所を間違えている 可能性があるので、プログラムを見直すこと。

演習資料の方法 の操作を 回繰り返す方法 データ数 ソート時間 ソート時間

最適化無 最適化有 最適化無 最適化有

, &

& - , ,,

- & &

& , -- &

½デバッグのためにデータを出力するのは構わない。

参照

関連したドキュメント

太宰治は誰でも楽しめることを保証すると同時に、自分の文学の追求を放棄していませ

・マネジメントモデルを導入して1 年半が経過したが、安全改革プランを遂行するという本来の目的に対して、「現在のCFAM

燃料デブリを周到な準備と 技術によって速やかに 取り出し、安定保管する 燃料デブリを 安全に取り出す 冷却取り出しまでの間の

その限りで同時に︑安全配慮義務の履行としては単に使

・分速 13km で飛ぶ飛行機について、飛んだ時間を x 分、飛んだ道のりを ykm として、道のりを求め

この設備によって、常時監視を 1~3 号機の全てに対して実施する計画である。連続監

を育成することを使命としており、その実現に向けて、すべての学生が卒業時に学部の区別なく共通に

を育成することを使命としており、その実現に向けて、すべての学生が卒業時に学部の区別なく共通に