#include <stdio.h>
/* prints array */
void pa (int *a, int len, char *s);
int comp=0,swaps=0;
int main() {
/* unsorted array */
int a[] = {10,2,3,4,5,6,7,8,9,1};
int a_len = sizeof(a)/sizeof(int);
pa(a, a_len, "unsorted array");
/* sort array */
int issorted = 1;
do {
issorted = 1;
int c;
for (c = 1; c <a_len ; c++) {
comp++;
if (a[c] < a[c-1]) {
swaps++;
issorted = 0;
// printf("\t\tswapping a[%d]=%d and a[%d]=%d\n", c-1, a[c-1], c, a[c]);
int tmp = a[c];
a[c] = a[c-1];
a[c-1] = tmp;
}
}
} while (issorted == 0);
printf("comparisons = %d swaps=%d\n",comp
,swaps
); pa(a, a_len, "sorted array");
return 0;
}
/* prints array */
void pa (int *a, int len, char *s) {
int c;
for (c = 0; c < len; c++) {
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgovKiBwcmludHMgYXJyYXkgKi8Kdm9pZCBwYSAoaW50ICphLCBpbnQgbGVuLCBjaGFyICpzKTsKaW50IGNvbXA9MCxzd2Fwcz0wOwppbnQgbWFpbigpIHsKICAgIC8qIHVuc29ydGVkIGFycmF5ICovCiAgICBpbnQgYVtdID0gezEwLDIsMyw0LDUsNiw3LDgsOSwxfTsKICAgIGludCBhX2xlbiA9IHNpemVvZihhKS9zaXplb2YoaW50KTsKICAgIHBhKGEsIGFfbGVuLCAidW5zb3J0ZWQgYXJyYXkiKTsKCiAgICAvKiBzb3J0IGFycmF5ICovCiAgICBpbnQgaXNzb3J0ZWQgPSAxOwogICAgZG8gewogICAgICAgIHByaW50ZigiXHRzb3J0aW5nLi5cbiIpOwogICAgICAgIGlzc29ydGVkID0gMTsKICAgICAgICBpbnQgYzsKICAgICAgICBmb3IgKGMgPSAxOyBjIDxhX2xlbiA7IGMrKykgewogICAgICAgIAljb21wKys7CiAgICAgICAgICAgIGlmIChhW2NdIDwgYVtjLTFdKSB7CiAgICAgICAgICAgIAlzd2FwcysrOwogICAgICAgICAgICAgICAgaXNzb3J0ZWQgPSAwOwogICAgICAgICAgIC8vICAgICBwcmludGYoIlx0XHRzd2FwcGluZyBhWyVkXT0lZCBhbmQgYVslZF09JWRcbiIsIGMtMSwgYVtjLTFdLCBjLCBhW2NdKTsKICAgICAgICAgICAgICAgIGludCB0bXAgPSBhW2NdOwogICAgICAgICAgICAgICAgYVtjXSA9IGFbYy0xXTsKICAgICAgICAgICAgICAgIGFbYy0xXSA9IHRtcDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0gd2hpbGUgKGlzc29ydGVkID09IDApOwogICAgcHJpbnRmKCJjb21wYXJpc29ucyA9ICVkICBzd2Fwcz0lZFxuIixjb21wLHN3YXBzKTsKICAgIHBhKGEsIGFfbGVuLCAic29ydGVkIGFycmF5Iik7CgogICAgcmV0dXJuIDA7Cn0KCi8qIHByaW50cyBhcnJheSAqLwp2b2lkIHBhIChpbnQgKmEsIGludCBsZW4sIGNoYXIgKnMpIHsKICAgIHByaW50ZigiJXM6ICIsIHMpOwogICAgaW50IGM7CiAgICBmb3IgKGMgPSAwOyBjIDwgbGVuOyBjKyspIHsKICAgICAgICBwcmludGYoIiVkICIsIGFbY10pOwogICAgfQogICAgcHJpbnRmKCJcbiIpOwp9Cg==