バブルソートを実装してみた。 2013年5月21日


 

 

久しぶりにプログラミングネタ書いてみます。

 

https://twitter.com/0x00e6/status/336612233138282497

 

なんこつちゃんがこんなことをいってた。

…バブルソートってなんだ…?

 

バブルソート

バブルソート (bubble sort) は、ソートのアルゴリズムの一つ。隣り合う要素の大小を比較しながら整列させること。最悪計算時間がO(n2)と遅いが、アルゴリズムが単純で実装が容易なため、また並列処理との親和性が高いことから、しばしば用いられる。安定な内部ソート。基本交換法、隣接交換法ともいう。(単に交換法と言う場合もある)

引用:Wikipedia

 

というわけで、早速書いてみた。もちろんCで実装。

 

#include<stdio.h>

int main(){

  int num,i,j,tmp;
  int x[num];

  puts("Put numbers you want to sort.");
  scanf("%d",&num);

  for(i = 0;i < num;++i){
    //読み込み
    scanf("%d",&x[i]);
  }

  for(i = 0;i < num;++i){
    //後ろからチェックしていく 
    for(j = num-1;j > i;--j){
      if(x[j] < x[j-1]){
        //交換
        tmp = x[j-1];
        x[j-1] = x[j];
        x[j] = tmp;
      }
    }
  }

    for(i = 0;i < num;++i){
      printf("%d ",x[i]);
    }

    puts("nSorting is done.");
    return 0;
}

 

ささっとかいたので、ちょっとアレかもしれないです。

昇順にソートしてるけど、ソートしてる時の処理の、

if(x[j] < x[j-1]) を if(x[j] > x[j-1])

とすれば降順になります。

 

ソートたのしいですね!(ぁ

Leave a Reply