• ベストアンサー

それぞれのソート方法の特徴の違いについて

terra5の回答

  • terra5
  • ベストアンサー率34% (574/1662)
回答No.2

用途によりますので、最強は存在しないといっていいと思います。 速度とメモリの使用量だけでなく、他にも見当すべき項目はあります。 例えば、マージソートというメモリの乗らないサイズの出たを高速にソートするというものもあります。 また、速度も条件によって変化します。 例えばヒープソートはどういうデータが入力であっても安定した速度が出ますが、 クイックソートは入力のデータの並びによっては、 極端に性能がおちます。 また、データ数が極端に少ない場合は、アルゴリズムが複雑なヒープソート、クイックソートは単純なアルゴリズムのソートに速度でまけますし、 つくるのも面倒です(^^; 他にもいろいろありますが、結局は入力のデータの量や、性質、必要とする速度、手間等で 最適なソートは異なります。

accessdb_user
質問者

お礼

ありがとうございます。とてもためになりました。 昔ヒープソートやクイックソートを習ったのですが、今では、わかりません。 要素が少なかったら、バブルソートの方がいいのですね。 今、バブルソートしかかけないので、安心しました。

関連するQ&A

  • クイックソートとヒープソートの違いは

    クイックソートとヒープソートの違いは何でしょうか?教えて下さい。

  • バブルソートとクイックソート

    まだソートについて勉強し始めたばかりですが バブルソートは対象の総数が増えるとそれに伴い比較回数は増加するのに対し クイックソートはそれほど増加しないのはなぜでしょうか?? 検索してみてもプログラムが書いてあってよくわからないので... 根本的なところなのでしょうがどなたか教えてください!

  • 文字列をソートする方法

    数値をソートする方法にはバブルソートやクイックソートなどがあり アルゴリズムは分かるのですが 文字列を五十音順にソートしたい場合にはどのようにしたら良いですか? 検索をかけてみたのですが、大抵プログラミング言語に備わったsortの方法が紹介されており 自分で処理を行う方法については書かれていません。 ExcelのSort機能を使わない方法で教えてください。

  • 挿入ソートとバブルソート

    挿入ソートとバブルソートについて教えてください。どのようなアルゴリズムでソートされるのでしょうか?

  • クイックソートって??

    どこに載せればいいのかわからなかったので ここに載せてみました。 クイックソートってなんですか?? 簡単なアルゴリズムで答えてください!?   (自分も何言っているのかわらない??) 簡単に言えばクイックソートってナに??  です。 よろしくお願いします。 わかるように簡単でね!!

  • クイックソートのアルゴリズムについて

    (1)クイックソートが使われるのは実際にはどのような場面なのでしょうか?メインメモリで使われていると聞きましたが‥ (2)クイックソートが一番早いと聞きましたがコームソートやバブルソートなどは使われないのでしょうか? (3)マージソートはどのような局面で使われるのでしょうか?

  • アルゴリズムの問題なのですが、マージソートとクイックソートについて教え

    アルゴリズムの問題なのですが、マージソートとクイックソートについて教えてください。 数列の(21 99 38 22 15 6)をマージソートで並び変えて、クイックソートでも並び変えたいのです。 マージソートで並び変えた手順は (21 99 38 22 15 6) (下矢印) (21 99 38)(22 15 6) (下矢印) (21 99)(38)(22 15)(6) (下矢印) (21)(99)(38)(22)(15)(6) (下矢印) (21 99)(38)(15 22)(6) (下矢印) (21 38 99)(6 15 22) (下矢印) (6 15 21 22 38 99) となりました。 この時、分割回数と統合回数がともに5なのですが、どう見たら5回なのでしょうか。 分割回数は3で統合回数も3ではないのでしょうか? クイックソートの方なのですが、 回答は (21 99 38 22 15 6) (下矢印) (15 6)(21)(99 38 22) (下矢印) (6)(15)(21)(22 38)(99) (15と38にした場合) (下矢印) (6)(15)(21)(22)(38)(99) となっていて、 最も効率のよいピボットを選択した場合分割回数は3となっています。 私がやってみたところ (21 99 38 22 15 6) (下矢印) (15 6)(21)(99 38 22) (下矢印) (6)(15)(21)(22)(38)(99)  (15と38を選んだ) これではいけないのでしょうか。 長くなりましたが、よろしくお願いします。

  • クイックソート

    クイックソートのアルゴリズムの問題で 9 1 8 5 3 4 2 6 7 と上記のようなデータ列を昇順に整列するときに 9 1 8 5 3 4 2 6 7 6 1 8 5 3 4 2 9 7 6 1 2 5 3 4 8 9 7 とここで詰まってしまうんですけどどうしたら昇順に導けますか?

  • クイックソート

    N個のデータを降順に並び替えるプログラムをクイックソートで書きたいのですがよく分かりません。アルゴリズムの部分をどなたか教えてください。できれば詳しい説明もお願いします。

  • ソート(データの並べ替え)の逆概念はシャッフル?

    ソートは、データの集合を一定の規則に従って並べること。 バブルソート、シェーカーソート、コムソート、選択ソート、 挿入ソート、シェルソート、ヒープソート、マージソート、 クイックソート、バケットソート、基数ソート、 逆写像ソート、ボゴソート、奇偶転置ソート、シェアソート などがあるそうです。 ではその逆概念の、データの集合を一定の規則に従ってバラバラにすることってなんといいますか? トランプ(カードマジック)でよく見かけるシャッフルのことでしょうか? ディールシャッフル、ヒンズーシャッフル、オーバーハンドシャッフル、リフルシャッフル、ファローシャッフル などがあるそうです。 それらを数学的に扱ったものってありますか?