C言語 バブルソートの考え方

/****************************************
* バブルソートの考え方
* 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
 
******************************************/

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(Spamcheck Enabled)

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)