昨日見た夢を教えて下さい

(8つの数字があり・・・)
1・左端から2つの値をとり、その2つを小さい順に並べ替えます
2・右隣の2つの値をとり、その2つを小さい順に並べ替えます
3・上記1と2で並べ替えた値(合計で4つの値)を小さい順に並べかえます。
4・次に上記3の右隣の4つの数字を上記1,2,3と同じ手順で並べ替えをします。
5・上記3、4で並べ替えた値(合計で8つの値がありますね)を小さい順に並べ替えます。

http://it.exinfo.biz/entry/post_17.html
より、引用。

上記手順3で4つの数字の並び替え、手順5で8つの数字の並び替えをしていますが、何故こんな事をする必要があるのでしょう?というより、わざわざ2つに分けて行く意味なんてあるんでしょうか??

御解説をお願いします。

A 回答 (2件)

>というより、わざわざ2つに分けて行く意味なんてあるんでしょうか??


大あり。比較の回数が減る。

8個の数値を普通にソートすると
1・1番小さいのを探す(7回の比較が必要)
2・2番目に小さいのを探す(6回の比較が必要)
3・3番目に小さいのを探す(5回の比較が必要)
4・4番目に小さいのを探す(4回の比較が必要)
5・5番目に小さいのを探す(3回の比較が必要)
6・6番目に小さいのを探す(2回の比較が必要)
7・7番目に小さいのを探す(1回の比較が必要)
8・残ったのが8番目(0回の比較が必要)
と言う感じで、合計、28回の比較が必要。

マージソートだと
1・左端から2つの値をとり、その2つを小さい順に並べ替えます(1回の比較が必要)
2・右隣の2つの値をとり、その2つを小さい順に並べ替えます(1回の比較が必要)
3・上記1と2で並べ替えた値(合計で4つの値)を小さい順に並べかえます(3回の比較が必要)
4・次に上記3の右隣の4つの数字を上記1,2,3と同じ手順で並べ替えをします(1+1+3=5回の比較が必要)
5・上記3、4で並べ替えた値(合計で8つの値がありますね)を小さい順に並べ替えます(7回の比較が必要)
と言う感じで、合計、17回の比較で終ります。

比較の回数が9回少なくて済むって事は「より早く並び替え出来る」って事。

ソートは「比較回数が減れば減るほど優秀」なので、大いに意味がある。
    • good
    • 0
この回答へのお礼

なるほど
小さい順に並べ替える、っていうのは、普通のソートみたいに
1番目に小さいのを探す、の繰り返しではなく、
AB CD

1・AとCを比較、A決定
2・BとCを比較、C決定
3・BとDを比較、B決定、D決定
・・・AとBの比較、CとDの比較は前段階で終わっている

ってことなんですね。

お礼日時:2008/11/04 11:08

う~ん, ではどうすればいいと思ったんでしょうか?

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報