#include <stdio.h>
int cmp(int x, int y) // compare x and y
{
return x > y; // 1 if x > y, 0 otherwise
}
void swap(int *x, int *y)
{
int tmp = *x;
*x = *y;
*y = tmp;
}
int main(void)
{
int a[] = {3, 1, 4, 1, 5, 9, 2, 6, 5}; // array to be sorted
size_t n = sizeof a / sizeof a[0]; // number of elements
int count=0;
int totalcount=0;
for (size_t i = 0; i < n - 1; ++i) {
count=0;
for (size_t j = 0; j < n - 1 - i; ++j) {
if (cmp( a[j] , a[j+1] )) {
swap( &a[j] , &a[j+1] );
count++;
totalcount++;
}
}
if(count==0){
break;
}
}
for (size_t i = 0; i < n; ++i) {
}
printf("swapの回数 %d 回",totalcount
);
return 0;
}
ICNpbmNsdWRlIDxzdGRpby5oPgoKIGludCBjbXAoaW50IHgsIGludCB5KSAvLyBjb21wYXJlIHggYW5kIHkKIHsKIHJldHVybiB4ID4geTsgLy8gMSBpZiB4ID4geSwgMCBvdGhlcndpc2UKIH0KCiB2b2lkIHN3YXAoaW50ICp4LCBpbnQgKnkpCiB7CiBpbnQgdG1wID0gKng7CgogKnggPSAqeTsKICp5ID0gdG1wOwogfQoKIGludCBtYWluKHZvaWQpCiB7CiBpbnQgYVtdID0gezMsIDEsIDQsIDEsIDUsIDksIDIsIDYsIDV9OyAvLyBhcnJheSB0byBiZSBzb3J0ZWQKIHNpemVfdCBuID0gc2l6ZW9mIGEgLyBzaXplb2YgYVswXTsgLy8gbnVtYmVyIG9mIGVsZW1lbnRzCiBpbnQgY291bnQ9MDsKIGludCB0b3RhbGNvdW50PTA7CgogZm9yIChzaXplX3QgaSA9IDA7IGkgPCBuIC0gMTsgKytpKSB7CiAJIGNvdW50PTA7CiBmb3IgKHNpemVfdCBqID0gMDsgaiA8IG4gLSAxIC0gaTsgKytqKSB7CiBpZiAoY21wKCBhW2pdICwgYVtqKzFdICkpIHsKIHN3YXAoICZhW2pdICwgJmFbaisxXSApOwogY291bnQrKzsKIHRvdGFsY291bnQrKzsKIH0KIH0KIGlmKGNvdW50PT0wKXsKIAlicmVhazsKIH0KIH0KIAogCiBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG47ICsraSkgewogcHJpbnRmKCIlZCAiLCBhW2ldKTsKIH0KIHByaW50ZigiXG4iKTsKIHByaW50Zigic3dhcOOBruWbnuaVsCAlZCDlm54iLHRvdGFsY291bnQpOwoKIHJldHVybiAwOwogfQ==