/**************************************** * バブルソートの考え方 * 2010/12/14 ****************************************/ #include <stdio.h> #define SIZE 5 int main(void) { int i, j, max, work; int data[SIZE] = {2,5,3,4,1}; for(i = 0; i < SIZE; i++){ /* 最初、iは0なので配列dataの0番目と0番目以外を比較していく*/ for(j = i + 1; j < SIZE; j++){ if(data[i] > data[j]){ /* 添字が小さい方の要素が大きい場合 */ work = data[i]; /* 交換する場所の要素をバックアップ */ data[i] = data[j]; /* 大きい値を移す */ data[j] = work; /* 大きい値のあった場所にリストアする */ } } } for(i = 0; i < SIZE; i ++ ) { printf("%d ", data[i]); } return 0; } /****************************************** 実際の配列内の動き 2 5 3 4 1 5 2 3 4 1 5 4 3 2 1 ******************************************/
0 Comments.