- ベストアンサー
ソート(乱数・比較・交換・時間)
noname#9414の回答
- ベストアンサー
前の質問からソースを見て、一応コンパイルが通るように変更して、その後確認しましたが、clock関数の返す値がintであるのはいいのですが、そこから秒数に変更する部分がおかしいかと思います。ヘルプに書いてあると思いますので、再度読んでみてはどうでしょうか? #Visual C++ならMSDNに載っています。 #clock関数のところにサンプル付きで。 それから他のところの質問でも回答しておきました。 参考URLのところです。 ご確認ください。それから、前に質問していた「コンパイルができない」というやつで'直った'というのにもかかわらず、未だにコンパイルができないソースをアップロードしておくというのは、回答者を試しているのですか?すべてを見ている人がいると気分を害するかもしれませんよ。 #試すのであれば試すと書いた方がいいかも・・・ #↑個人的な意見ですが。 ではでは☆
関連するQ&A
- 比較回数が少なくなるソート
大量にある画像に人間が優劣を判定し、その結果をソートしたいです。(順位を付けたい) 画像はすでにデジタルデータ化されてパソコンの中にあります。 二つの画像を人間に見せて判断を求める事を繰り返すプログラムを作成しようと思うのですが、人間が行う操作(比較の判断)をなるべく少なくする為には、どのようなソートのアルゴリズムを選択したら良いでしょうか? ソートのアルゴリズムの説明などを読むと、例えば、「バブルソート」及び「選択ソート」ではn(n-1)/2の比較が必要になるそうですが、この比較の回数が最も少ない方法を探しています。 また、例えばA,B,Cの比較に置いて、 A>B、B>Cの比較後にはAとCは比較せずともA>Cの関係が成り立つのですが、こういった事も考慮した上での比較回数の最も少ないソートの方法が知りたいです。 以上、ご指導のほど、よろしくお願い申し上げます。
- ベストアンサー
- その他(プログラミング・開発)
- ソートアルゴリズム(選択法とバブルソート)の交換回数
バブルソートと選択法について、交換回数がわかりません。 比較回数については、ネットで検索したり、本に載っているので分かりやすいのですが、交換回数があまり載っていなく…。 選択法の交換回数の最大値は、n-1でしょうか? バブルソートの交換回数の最大値は、nでしょうか? 交換回数については、選択法のほうがバブルソートより少なくてすむそうですが、上の答えでいいのかわかりません。 どなたか教えてください。お願いしますm(_ _)m
- 締切済み
- その他([技術者向] コンピューター)
- バブルソートとクイックソート
まだソートについて勉強し始めたばかりですが バブルソートは対象の総数が増えるとそれに伴い比較回数は増加するのに対し クイックソートはそれほど増加しないのはなぜでしょうか?? 検索してみてもプログラムが書いてあってよくわからないので... 根本的なところなのでしょうがどなたか教えてください!
- ベストアンサー
- C・C++・C#
- 挿入ソートの性能評価
挿入ソートの要素比較回数と要素交換回数を数えるプログラムを作りたいのですがうまくいきません。。。 学校で出された演習課題ですので、解答そのものをいただくよりは、プログラム作成のヒントになるような回答をしていただきたいと思っています。どうかよろしくお願いします。
- ベストアンサー
- Java
- コンパイルできない!助けてください!
以下のプログラムがコンパイル出来ません。 なぜでしょうか? それと、このプログラムにソート対象の比較回数や書き換え回数を付け加えたいのですが、どうもうまくいきません。 あと、乱数を発生させて実験もしてみたいのですが、うまくいきません。 どうしても、コームソート自体が納得いかず、色々、実験しています。 何か、いい情報があれば、教えていただければありがたいです。 質問が多くてすみません。 よろしくお願いします! #include <stdio.h> #include <time.h> /* * コームソート * */ void comb_sort11 (KEY x[], int n) { int i, gap; KEY hold; enum {BREAK, CONT} flag; gap = n; flag = CONT; while (flag == CONT !! gap > 1) { flag = BREAK; gap gap / 1.3; if (gap == 0) gap = 1 ; else if (gap == 9 !! gap == 10) gap = 11; for (i = 0; i + gap < n; i++) if( x[i] > x[i+gap]) { hold = x[i]; x[i] = x[i+gap]; x[i+gap] = hold; flag = CONT; } } } #include <stdio.h> main() { int s, e; int n=5,i; int x[] = {5,8,3,6,2}; s = clock(); comb_sort11(x,n); e = clock(); for (i = 0; i <= n-1; i++){ printf("%d",x[i]);} fprintf(stderr,"time = %d\n", e - s ); return 0; }
- ベストアンサー
- C・C++・C#
お礼
ありがとうございました!