No.3ベストアンサー
- 回答日時:
バブルソート、挿入ソートとかでアルゴリズムは調べてください。
時間を出さないといけないのが面倒ですね。単純なのは配列長を増やして
いきながら、時間を計測してファイルに書き出し100秒を超えた時点で終了
したらどうでしょう。
ソートの部分を関数化して、その前後でGetSystemTimeを使って経過時間を
算出して個数と経過時間をファイルに書いてそれが100秒以上だったら終了。
使うのは、do{ 前述の処理 }while(~);
1秒から100秒という事なら1秒以下はファイル書き出しから条件分岐で弾き
ましょう。
ソートの関数の引数は、ソートする配列長・ソートする配列へのポインタでい
いんじゃないでしょうか。
<<do、whileループの中ですること>>
前処理:配列長を初期化例えば,length=10
1.配列確保、malloc関数で動的配列確保。
int *ptr;
ptr=(int *)malloc(sizeof(int)*length); <== intの配列を用意したい場合
double *ptr;
ptr=(double *)malloc(sizeof(double)*length); <== doubleの配列を用意したい場合
以降、ptr[~]の様に普通の配列として使えます。
2.作った配列に乱数設定
ループの中でptr[i]=rand()%100;って感じで。
3.GetSystemTimeで現在の開始時ののシステム時間を取得。
4.ソートの関数呼び出し
5.GetSystemTimeで現在の終了時ののシステム時間を取得。
6.開始時と終了時の時間差を計算。
7.時間差が1~100ならファイルに書き出し。
8.free(ptr)でメモリ開放。
とこんな感じです。時間計算は他の方法もあります。
time、difftimeとGetSystemTimeはどっちでもいいです。
time、difftime <== <time.h>
GetSystemTime <== <windows.h>
出来そうですか?余裕があるならqsort関数と自分の作ったソート関数の速度差を計算してみるといいと思います。大雑把な流れだけの説明ですが、出来そうですか?再質問受け付けます。
※お礼といってはなんですが、以下のアンケートにご協力下さい。
参考URL:http://oshiete1.goo.ne.jp/qa4815745.html
No.4
- 回答日時:
うっかり!!!忘れてました。
9.として、length++を追加して置いてください。
※データ採取中なので、以下のアンケートに協力して頂けると嬉しいなぁ・・・。
宜しくお願いいたします。協力して頂けると、更に詳しく・・・。
http://oshiete1.goo.ne.jp/qa4815745.html
http://oshiete1.goo.ne.jp/qa4818502.html
No.1
- 回答日時:
作業の流れとしては以下のような感じになりますかね。
(1)使用するアルゴリズムを決める
(2)決めたアルゴリズムでN件のデータをソートするプログラムを作る
(3)プログラムを実行して、結果を集計する
もうちょっと噛み砕くと以下のようになるでしょうか。
(1)ソートのアルゴリズムはいろいろあります。
<http://ja.wikipedia.org/wiki/%E3%82%BD%E3%83%BC% …
最も処理が早いとされているのは"クイックソート"
直感的に思いつくのは"バブルソート"
あたりがわかりやすいでしょうか。好みで選べばOKだと思います。
(2)きっとここが難関ですよね。。(>_<;
以下のサイトではソートのアルゴリズムがいくつかjavaで書かれていますので参考になると思います
<http://www.ics.kagoshima-u.ac.jp/~fuchida/edu/al …
以下のサイトでは実行時間の測定方法が出てるので参考にしてはいかがでしょうか
<http://kzk9.net/column/time.html>
(3)ここまでくれば終わったも同然ですよね(笑)
では
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
VB.NETでファイル名順にファイ...
-
DataGridViewの複数列を連動し...
-
複数キーを利用したソートの仕...
-
C# DataTableの行をソートしてD...
-
C# DataGridView のヘッダーセ...
-
C# ArrayListを二次元配列のよ...
-
あるディレクトリ内のファイル...
-
C言語・要素除去
-
DataGridViewのソートを止めたい
-
数字文字列のソート方法
-
datatablesのソートを数字順に...
-
ファイル名「1.jpg ~10.jpg~...
-
VBScriptで重複レコードを削除...
-
C++ 入力した3つのint型の整数...
-
Double型ソート方法
-
VBA基本構文の作り方 2列の...
-
C言語 配列の長さの上限
-
VBAのプログラムで、DIAG = 1# ...
-
配列を使わずに、変数名を動的...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
C# DataGridView のヘッダーセ...
-
VB.NETでファイル名順にファイ...
-
あるディレクトリ内のファイル...
-
VBA基本構文の作り方 2列の...
-
ファイル名「1.jpg ~10.jpg~...
-
Excelですべての組合せ(重複組...
-
vbでDataTableの抽出コピー
-
C# DataTableの行をソートしてD...
-
listboxの並び替え
-
(VBA) Dir 関数で取得するファ...
-
コレクションの数値をSortで並...
-
C言語・要素除去
-
Fortran77で多次元配列を並び替...
-
C# DataTable ソートについて
-
excel VBA の条件をつけての列...
-
VBScriptで重複レコードを削除...
-
文字列をソートする方法
-
n番目に大きい数を求めるアル...
-
C言語でアナグラムを求めるプロ...
おすすめ情報