このソートは?

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
リマー

このソートは?

#1

投稿記事 by リマー » 16年前

配列 x[10] に入っている数値をソートするプログラムで、

for ( i = 1 ; i < 10 ; i + + )
  for ( j = 0 ; j < i ; j + + )
    if ( x [ i ] < x [ j ] ) { tmp = x [ i ] ; x [ i ] = x [ j ] ; x [ j ] = tmp ; }

このソート法は世間一般に何と呼ばれているソート法なのでしょう?
「バブルソート」で合ってますか?

ibis

Re:このソートは?

#2

投稿記事 by ibis » 16年前

交換ソートかな。

バブルソートはこんな感じです。
for(i = 0; i < 10; i ++)
  for(j = 0; j < 9 - i; j ++)
    if(x[j] < x[j + 1]){tmp = x[j] ; x[j] = x[j + 1] ; x[j + 1] = tmp ;}

バブルソートには「単純交換ソート」という別名がありますが、
"単純"というのはつまり、ある要素とその隣の要素(上の例ではx[j]とx[j+1])のみを比較する、ということです。
これは隣の要素ではなくて、無関係な要素とも比較してますから単純交換ソートではないですね。

リマー

Re:このソートは?

#3

投稿記事 by リマー » 16年前

ありがとうございます。
単純というのはそういった意味もあるのですね。
すっきりしました^^

閉鎖

“C言語何でも質問掲示板” へ戻る