#include <stdio.h>
void Look_Data(int a[], int n);
#define NUM_SU 10 /* ソートするデータの数 */
int a[] = {20, 6, 55, 74, 3, 45, 13, 87, 46, 30}; /* このデータをソート */
void bubble_sort_step(int a[], int n, int i)
{
int j, t;
for (j = n - 1; j > i; j--)
{ /* 後ろから先頭に向かってスキャン */
if (a[j - 1] > a[j])
{ /* もし隣り合う要素の大小関係が反対だったら */
t = a[j]; /* 交換する */
a[j] = a[j - 1];
a[j - 1] = t;
}
}
Look_Data(a, NUM_SU);
}
/* データを表示する関数 */
void Look_Data(int a[], int n)
{
int i;
for (i = 0; i < n; i++)
}
int main(void)
{
int i;
/* 整列前のデータを表示 */
Look_Data(a, NUM_SU);
for (i = 1; i < NUM_SU; i++)
{
bubble_sort_step(a, NUM_SU, i - 1);
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIExvb2tfRGF0YShpbnQgYVtdLCBpbnQgbik7CgojZGVmaW5lIE5VTV9TVSAxMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIOOCveODvOODiOOBmeOCi+ODh+ODvOOCv+OBruaVsCAqLwppbnQgYVtdID0gezIwLCA2LCA1NSwgNzQsIDMsIDQ1LCAxMywgODcsIDQ2LCAzMH07IC8qIOOBk+OBruODh+ODvOOCv+OCkuOCveODvOODiCAqLwoKdm9pZCBidWJibGVfc29ydF9zdGVwKGludCBhW10sIGludCBuLCBpbnQgaSkKewogIGludCBqLCB0OwoKICBmb3IgKGogPSBuIC0gMTsgaiA+IGk7IGotLSkKICB7IC8qIOW+jOOCjeOBi+OCieWFiOmgreOBq+WQkeOBi+OBo+OBpuOCueOCreODo+ODsyAqLwogICAgaWYgKGFbaiAtIDFdID4gYVtqXSkKICAgIHsgICAgICAgICAgIC8qIOOCguOBl+mao+OCiuWQiOOBhuimgee0oOOBruWkp+Wwj+mWouS/guOBjOWPjeWvvuOBoOOBo+OBn+OCiSAqLwogICAgICB0ID0gYVtqXTsgLyog5Lqk5o+b44GZ44KLICovCiAgICAgIGFbal0gPSBhW2ogLSAxXTsKICAgICAgYVtqIC0gMV0gPSB0OwogICAgfQogIH0KICBMb29rX0RhdGEoYSwgTlVNX1NVKTsKfQoKLyog44OH44O844K/44KS6KGo56S644GZ44KL6Zai5pWwICovCnZvaWQgTG9va19EYXRhKGludCBhW10sIGludCBuKQp7CiAgaW50IGk7CgogIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspCiAgICBwcmludGYoIiUzZCIsIGFbaV0pOwp9CgppbnQgbWFpbih2b2lkKQp7CiAgaW50IGk7CiAgLyog5pW05YiX5YmN44Gu44OH44O844K/44KS6KGo56S6ICovCiAgcHJpbnRmKCLmlbTliJfliY06ICIpOwogIExvb2tfRGF0YShhLCBOVU1fU1UpOwogIHByaW50ZigiXG5cbiIpOwoKICBmb3IgKGkgPSAxOyBpIDwgTlVNX1NVOyBpKyspCiAgewogICAgcHJpbnRmKCIlZOeVquebruOBruOCueOCreODo+ODs+W+jO+8miIsIGkpOwogICAgYnViYmxlX3NvcnRfc3RlcChhLCBOVU1fU1UsIGkgLSAxKTsKICAgIHByaW50ZigiXG4iKTsKICB9Cn0K