[ create a new paste ] login | about

Link: http://codepad.org/3Co4Qipn    [ raw code | output | fork ]

hilst_uni9 - C, pasted on Oct 22:
#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;
}


Output:
1
2
3
1 2 3 4 5 
1 2 3 4 5 
1 2 3 4 5 


Create a new paste based on this one


Comments: