バブルソートを実装してみた。 2013年5月21日
久しぶりにプログラミングネタ書いてみます。
https://twitter.com/0x00e6/status/336612233138282497
なんこつちゃんがこんなことをいってた。
…バブルソートってなんだ…?
[NOTE] バブルソート
バブルソート (bubble sort) は、ソートのアルゴリズムの一つ。隣り合う要素の大小を比較しながら整列させること。最悪計算時間がO(n2)と遅いが、アルゴリズムが単純で実装が容易なため、また並列処理との親和性が高いことから、しばしば用いられる。安定な内部ソート。基本交換法、隣接交換法ともいう。(単に交換法と言う場合もある)
引用:Wikipedia
[/NOTE]
というわけで、早速書いてみた。もちろん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