- 締切済み
困っています
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- tea_sheep
- ベストアンサー率53% (8/15)
問題の意図が明確ではないです。次のどれなのか(もしくは別の意図なのか)が不明。 ・要素数が100個のデータをソートする時間を計測? (100個程度なら一瞬で終わると思いますが) ・10秒以内に終わらなければ中断? ・データのセット(集合)が100通りあって、すべての場合に対して時間を計測し、 10秒以内に処理完了したものだけを表示? Windows APIを使っていいのかどうか不明なので、とりあえずC標準関数の clock() あたりを使っておくのが妥当ではないかと思います。
- Oh-Orange
- ベストアンサー率63% (854/1345)
★『GetTickCount』関数で簡単に計測できます。精度はイマイチだが。 ・下に簡単な擬似コードを載せます。 サンプル: DWORD dwStart; DWORD dwFinish; dwStart = GetTickCount(); ソート処理 dwFinish = GetTickCount(); if ( (dwFinish - dwStart) < 10000 ){ ←10'000ミリ秒 10秒以内でソートされたデータを表示 } 解説: (1)ソート処理の開始時間を取得して『dwStart』に保存。 (2)ソート処理をする。→qsort など (3)ソート処理の終了時間を取得して『dwFinish』に保存。 (4)『dwFinish』から『dwStart』を引くとソート処理にかかった時間(ms)が計算できます。 このミリ秒が『10'000』=『10秒』以内のデータを表示させれば良いのです。 表示する内容がソート前のデータならば、ソート前のデータをソート用データにコピーして コピーしたデータをソート処理します。そして、表示はソート前のデータを表示すれば良い。 ・以上。おわり。
関連するQ&A
- 完全な乱数を生成する方法
C言語で乱数を生成するときに、今まで srand(time(NULL)); を使用していたのですが、それだと1秒以内に複数の処理を行った際に、 同一の乱数が生成されてしまいます。 時間にとらわれずに完全にランダムな数字を出現させるにはどのような方法を取るのが簡単なのでしょうか? よろしくお願いします。
- ベストアンサー
- C・C++・C#
- ソートに関する質問です
C言語でのプログラム作成の課題が解けなくて困っています。 バブルソートを使って、1000000個の整数データを昇順に並べ替えるプログラムを作成するというものです。 自分なりに作成したプログラムは、mallocでデータを格納する動的領域を確保して、後はシンプルにバブルソートの処理を行っています。 データ数が5,6万程度なら正常な動作が確認できるのですが、それより大量のデータ数だと、処理に時間が掛かりすぎるせいか、もしくは処理しきれずに動かなくなってしまったのか分かりませんが、プログラムの処理がいつまでたっても終わりません。 おそらくバブルソートの2重ループのあたりで、膨大な処理になってしまうのだと思うのですが、この問題についての改善策をどなたかご教授いただけませんでしょうか。
- ベストアンサー
- C・C++・C#
- C言語のCSV形式からのソート
C言語初心者です。 C言語でCSV形式のテキストファイルを読み込み そのファイルの内容(数値)を昇順にソートして表示するプログラムを作りたいのですが中々上手く行きません・・・。 調べても分からず困っています。 どなたか教えていただけませんか?
- ベストアンサー
- C・C++・C#
- C言語でcsvファイル入出力に関する質問です。
data.csvオープン、data.csvのデータを読み込んで、a>b>cの優先順位で昇順にソートし、result.csvに書き込み、result.csvクローズです。 手順自体はわかっていますが、なにせC言語の初心者なので、ネットでソースコード見てもちんぷんかんぷんです。ソートも一次配列だけなら自力でできるが、優先順にソートするプログラムはどう書いたらよいでしょうか? ご教授お願いします。 C言語の初心者です、助けてください。 以下が例です:
- ベストアンサー
- C・C++・C#
- 数字文字列のソート方法
文字列に数字を含むデータのソートを行うプログラムを C言語で作成したいのですが、どうすれば良いでしょうか? 具体的に言うと、a12、a2、a10という順序で並んでいる データを昇順にソートした場合にa10、a12,a2というように ソートせず、ちゃんとa2,a10,a12とソートされるように したいのですが、簡単にできるものでしょうか? 質問がわかりにくいかもしれないのですが、どうかご回答をお願いします。
- ベストアンサー
- C・C++・C#
- バブルソートを入れたいのですが
こんにちは、Perlを始めたばかりの初心者です。 さっそく質問の方失礼します。 乱数1~100までの数字のうち20個をとりだし配列にいれ、数字を昇順に入れ替えして昇順前と昇順後の数字を表示する問題なのですが。 @a[100]=(1..100); srand(time()); for($i=0 ; $i<20 ; $i++){ $a=int(rand(@a)); print"$a\n"; } と上記の乱数20個を取り出すことができたのですが、 そのあとの昇順させようとしてバブルソートを利用したいのですが、どのように組み込めばいいかわかりません。 どのように組み込めばいいのでしょうか? お答えの方ヨロシクお願いします。
- ベストアンサー
- Perl
- 構造体のソートの記述について
C言語で自己参照構造体(beforeとnextで繋げてます)で名簿をつくり、年齢で昇順ソートをしようと考えています。 そこで、ソート関数の「qsort」というものを使ってソートしたいのですが、どのように使ったらいいのでしょうか? 参考例などがありましたら、教えていただけますか? よろしくお願いします。
- ベストアンサー
- C・C++・C#