バブルソートを実装してみた。 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