1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | /**************************************** * バブルソートの考え方 * 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.