C言語を用いた基本選択法によるソートプログラムです。
# include <stdio.h>
int main(void) {
int i; //最小値判定ループ用
int j; //仮の最小値設定ループに使うカウント用変数
int min; //最小値の添え字用
int k = 5; //配列の要素数
int temp; //最小値の一時保管用
int x[] = {2,5,3,4,1};
printf("並び替え前\n");
for(i = 0; i < 5; i++) {
printf("x[%d] = %d\n",i, x[i]);
}
//ここまではソート前の出力処理
for(i = 0; i < k-1; i++) {
min = i;
for(j= i+1 ; j < k; j++) {
if(x[min] > x[j]) {
min = j;
}
}
temp = x[min];
x[min] = x[i];
x[i] = temp;
}
//ソート処理はここで終わり
printf("並び替え後\n");
for(i = 0; i < 5; i++) {
printf("x[%d] = %d\n",i, x[i]);
}
return 0;
}
イメージとしては、
最小値を探すソートに入った時、
最初に設定した最小値より小さい値がきたら、
minさんにその最小値が何番目にあったか覚えておいてよ、
って感じです。
そんで、ソートが終わったら、
「minさん、最小値より小さい数値は何番目だっけ?」
と聞いて、
「へい、〇番目でっせ。」
となって、
「じゃあ、最小値と〇番目の数値をチェーンジ!」
という動作イメージです。