View difference between Paste ID: JW1vMP61 and 8uAdRbtU
SHOW: | | - or go back to the newest paste.
1
#include <stdio.h>
2
3
void print(int array[], int length) {
4
    int i;
5
    printf("{ %d", array[0]);
6
    for (i = 1; i < length; i++)
7
        printf(", %d", array[i]);
8
    printf(" }\n");
9
}
10
11-
void scambiamin(int array[], int start, int length) {
11+
12-
    int i, min = start;
12+
    int i, j, min, first;
13-
    for (i = start + 1; i < length; i++)
13+
    for (i = 0; i < length -1; i++) {
14-
        if (array[i] < array[min]) min = i;
14+
15
        // find the index of the minimum
16-
    int primo = array[start];
16+
        min = i;
17-
    array[start] = array[min];
17+
        for (j = i +1; j < length; j++)
18-
    array[min] = primo;
18+
            if (array[j] < array[min]) min = j;
19
20
        // put the minimum on top
21
        first = array[i];
22
        array[i] = array[min];
23-
    for (i = 0; i < length -1; i++)
23+
        array[min] = first;
24-
        scambiamin(array, i, length);
24+
    }
25
}
26
27
void insertionsort(int array[], int length) {
28-
    int test[] = {5, 7, 86, 2, -7, 6, 6};
28+
    int i, j, curr;
29-
    print(test, 7);
29+
    for (i = 0; i < length; i++) {
30-
    selectionsort(test, 7);
30+
        curr = array[i];
31-
    print(test, 7);
31+
        for (j = i-1; j >= 0 && array[j] > curr; j--)
32
            array[j+1] = array[j];
33
        array[j+1] = curr;
34
    }
35
}
36
37
main() {
38
    int a[] = {5, 7, 86, 2, -7, 6, 6};
39
    printf("selection sort:\n");
40
    print(a, 7);
41
    selectionsort(a, 7);
42
    print(a, 7);
43
44
    int b[] = {98, -72, 45, 3, 5, -1};
45
    printf("insertion sort:\n");
46
    print(b, 6);
47
    insertionsort(b, 6);
48
    print(b, 6);
49
}