たなしょのメモ

日々勉強していることをつらつらと

バブルソート(先頭からソートする)

久しぶりのC言語

なんだかんだしばらく離れていたC言語に再度挑戦。

今日も元気に頑張ろう。

バブルソート

アルゴリズムを少々。基本的なアルゴリズムですね。情報系の大学出てるならこれくらい書けなくちゃねぇ。(ちなみに僕は書けませんでした。。。)

どうも知り合いの先輩の会社では、OJTの最終課題にこのバブルソートの問題を出しているらしい。

僕が社会人3年目の時に、OJTを担当した新人の子はそもそもアルゴリズムすらまともに理解してくれていなかったので一生懸命「自販機でジュースを買う」ことを題材にしたアルゴリズムの初歩的な説明にすごく苦労した。

さて今回は身長を5人まで入力させて先頭からソートしていくタイプ。

コード

#include <stdio.h>

#define NUMBER 5

void bsort_kai(int a[], int n)
{
int i, j;

for (i = n - 1; i >= 0; i--){
for(j = 0; j < i; j++){
if(a[j] > a[j+1]){
int temp = a[j];
a[j] = a[j+1];
a[j + 1] = temp;
}
}
}
}

int main(void)
{
int i;
int height[NUMBER];

printf("%d人の身長を入力してください。\n", NUMBER);
for(i = 0; i < NUMBER; i++){
printf("%2d番:", i + 1);
scanf("%d", &height[i]);
}

bsort_kai(height, NUMBER);

puts("昇順にソートしました。");
for(i = 0; i < NUMBER; i++){
printf("%2d番:%d\n", i + 1, height[i]);
}

return 0;
}

こんな感じ。今更説明するまでもないよね。

ではでは。