#include <stdio.h>
void
printar (int ar[], int len)
{
int i = 0;
while (i < len)
printf ("%d ", ar[i++]);
putchar ('\n');
}
void
cpyar (int dst[], int src[], int len)
{
while (--len >= 0)
dst[len] = src[len];
}
void
bsort (int ar[], int len)
{
int control = 1, i, tmp;
while (control--) {
for (i = 0; i < len - 1; i++)
if (ar[i] > ar[i + 1]) {
tmp = ar[i], ar[i] = ar[i + 1], ar[i + 1] = tmp;
control = 1;
}
}
}
void
isort (int ar[], int len)
{
int i, j, tmp;
for (i = 1; i < len; i++, ar[j + 1] = tmp)
for (j = i -1, tmp = ar[i]; j >= 0 && ar[j] > tmp; j--)
ar[j + 1] = ar[j];
}
void
ssort (int ar[], int len)
{
int i, j, lesser, tmp, at;
for (i = 0; i < len - 1; tmp = ar[i], ar[i] = lesser, ar[at] = tmp, i++)
for (j = i + 1, lesser = ar[i], at = i; j < len; j++)
if (lesser > ar[j])
lesser = ar[j], at = j;
}
int
main (void)
{
int i;
int len = 5;
int ar[] = {5,1,2,4,3};
int ar_cpy[len];
cpyar (ar_cpy, ar, len);
/* sort, copy and print */
ssort (ar, len); /* selection */
printar (ar, len);
cpyar (ar, ar_cpy, len);
isort (ar, len); /* insertion */
printar (ar, len);
cpyar (ar, ar_cpy, len);
bsort (ar, len); /* bubble */
printar (ar, len);
return 0;
}