• ベストアンサー

ソートについて

今、色々なソートのプログラムを作っているのですが、 ソートにおいて、実行速度と実行時の使用メモリ、どちらを重要視しますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

ケースバイケースで、要求される物を見極めて、ですね。 普段は、早さ(速さ、ではありません)を求めます。 unixのsortコマンドを使う、言語や型にソート関数とかソートメソッドとかがあったら使う、過去に作ったものをコピペする。 1、2度しか使わないプログラムの実行速度を数分削るために、何時間もデバッグしたくないですから。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

noname#194317
noname#194317
回答No.1

> ソートにおいて、実行速度と実行時の使用メモリ、どちらを重要視しますか? それは時と場合、要求仕様によりけりです。メモリに余裕がないと、速度を犠牲にしてでも効率最優先にしなければいけないし、逆の場合は割と自由にできますよね。でも要求仕様が決まっていたらそれに沿って作るけど、どうしても要求仕様を満たせない場合はどこかで妥協しないといけない。 個人の趣味の場合は…速度と効率をどこまで追求できるか、やれるところまでやってみるって感じですかね。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 実行計画の「メモリを使用したソート回数」と「ディスクを使用したソート回

    実行計画の「メモリを使用したソート回数」と「ディスクを使用したソート回数」は なにによって変わってくるのでしょうか? メモリの容量におさまる程度のソートでしたら「メモリを使用したソート回数」で メモリにおさまらないくらいの大量データのソートならば「ディスクを使用したソート回数」と いうことでしょうか?

  • Oracleのソート

    Oracleのソートは、メモリソートが使用されているのでしょうか?もしくは、ディスクソートが使用されているのでしょうか?また、そのメモリや、ディスクとは、OSのメモリ、ディスクと考えてよいのでしょうか? 初心者で申し訳ありません。ご教授ください。

  • C言語、ソートの効率を考える問題について

    繰り返しソートとバブルソート、改良バブルソートの中でどれが一番効率的であるかを理論的な比較回数やプログラムの量、使用するメモリの量から考えたいんですけどわかりません。教えてください。

  • VBA Sortメソッドについて

    VBA初心者です。 並べ替えをしたくてSortメソッドというのを使っているのですが、 Sortメソッドの後にプログラムを書くと 「実行時エラー'1004':アプリケーション定義またはオブジェクト定義エラーです」 と出てしまいます。 Worksheets(sheets).Range("A1:D30").sort _ Key1:=Range("B2"), _ Header:=xlGuess, _ MatchCase:=True, _ SortMethod:=xlPinYin ↑こんなプログラムを2個続けて(sheetsを変えて)実行させ、 その後にもいろいろ続けて書きたいのですがどうしたらいいのでしょう。 「:=」という書き方を初めて使ったのでよく理解できていません。 ご教授いただけると助かります。

  • Perlのソートについて

    ハッシュを利用して今ソートできるプログラムを作成したのですが、 重複するデータは除外されてしまうようで、どうしたら除外されずに ソートできるかを教えていただきたいです。 <例> 文字 よみ  No      橋  はし  1      橋  はし  3      箸  はし  2 というデータがあったとして、今のプログラムを実行すると・・・ <結果> 箸  はし  2 キーがよみなので3番目のデータだけ残ります。キーを漢字に したとしても1番目のデータは残らないのですが、どうしてらよいのでしょうか。 <理想的な結果>      橋  はし  1      箸  はし  2      橋  はし  3 一番いいのが上のような結果で、Excelのソートのような感じで、第1キーはよみで第2キーはNoとかのソートはPerlでできないでしょうかね?? どなたか分かる方がいたら教えていただきたいです。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • ソートについて(その他質問あります)

    こんにちわ。Cプログラム初心者の学生です。 友達のプログラムについての質問なので詳しくは説明できませんが、よろしくお願いします。 ソートのプログラム(いろいろなソート)を作ったのですが、ソートする範囲を6万以上(0~59999)にすると必ずエラーが出てプログラムが終了してしまいます。 最終的には10万以上の値をソートしたいのですが、エラーが出て困っています。 値の生成についてはランダムで、配列に格納してやるという形にしています。 やはり、配列数が0万以上はサポートしていないのか、メモリの問題でしょうか? これは私の質問ですが、処理の高速化についてアドバイスいただきたいです。私が知ってるのは、掛け算割り算はあまり使わない、なるべく値の受け渡しはポインタを使った方がいい・・・という程度です。 あとこれから初心者Cプログラマとしてステップアップしていくために重要なこととかあれば教えて下さい。 ちなみに今はMFCについて少し勉強しています。 まとまりの無い文になってしまいましたが、よろしくお願いします。

  • 挿入ソートとマージソート

    挿入ソートとマージソートの問題を解いているのですが、 途中で行き詰ってしまいました。 (問題文) サイズnの入力に対して、挿入ソートの実行には8n~2ステップかかり、 マージソートの実行には64nlnnステップかかる。 挿入ソートがマージソートに勝るnの値を求めよ。 補足:ln=eを底とするlog (挿入ソートがマージソートに勝る=挿入ソートがマージソートより実行時間が早い) 8n~2 <= 64nlnn 8lnn=n e~n=n~8 こういう感じで自分なりに考えてみたのですが、nの値をどのように出して良いのかわからず困っています。 どなたかご教授いただける方いましたらよろしくお願いします。

  • MSFlexGridのSortメソッドについて

    VBの勉強をしております。(WindowsXP、VB6.0) MSFlexGridのSortは、内部的にはどの種類のソートなのでしょうか? ご存知の方がおられたら教えていただけますでしょうか? 課題で、「実行速度の効率を重視する」という項目があるのですが、 自作でクイックソートした方が良いのかどうか悩んでいます。 サンプルデータを作成して計測すればどちらが早いか分かるかもしれないですが、ソートの種類だけでもご存知の方がおられたら教えていただきたく質問させていただきました。 以上、よろしくお願いいたします。

  • 三菱電機 Q02H SORT命令

    教えて下さい。三菱電機PLC(Q02H)を使い回路を作っているのですが、今回、SORT命令を使うことになりました。非常に便利なのですがイマイチ上手くいきません。シュミレータにてプログラミングマニュアルに書いてあるプログラム例を実行すると、格納されている数を上手く並べ替えてくれるのですが、現在、使用しているPLC(Q02H)を使う為、プログラム例にあるデバイスは使用できません。空きデバイスを確認し使用していないデバイスで試すのですがダメです。状態としては回路にてSM703をONしたのち、SORT回路を実行すると格納されている数を値の大きい順に並べ替えてデバイスの一番上まで送ってくれるのですが、SM703をOFFした状態でSORT回路を実行すると値が小さい順に並べ替えてくれるのですが、一番上まで値を移動してくれず、一番小さい値の格納デバイスからスタートしてしまいます。どこがいけないのでしょうか。 プログラミングマニュアルに書いてあるプログラム例 0  LD X0 1  OUT SM703 2  LD x10 3  SORT D0 K4 K1 M0 D10 4  END 私が実行したプログラム 0  LD X0 1  OUT SM703 2  LD X10 3  SORT D151 K11 K1 M1010 D430 4  END

  • perlで比較関数を使ったソートの仕方

    今、季節をソートするようなプログラムを考えています。 my @array = ('spring','fall','winter','summer'); my @sort = sort number(@array); sub number { if ($a < $b) { return -1; } elsif ($a == $b) { return 0; } elsif ($a > $b) { return 1; } } 実行結果:spring ,summer ,fall ,winter 比較関数を使用して、「春・夏・秋・冬」とソートできるようにしたいです。上のプログラムはまだ途中なんですが、この場合比較関数はどのように実装すればうまくソートできるんでしょうか?分かる方、よろしくお願いいたします。

    • ベストアンサー
    • Perl