diff --git a/Algos_1/algos.c b/Algos_1/algos.c new file mode 100644 index 0000000000000000000000000000000000000000..0235e354a5d050d310e6887479407eb8932c5b10 --- /dev/null +++ b/Algos_1/algos.c @@ -0,0 +1,55 @@ +#include "algos.h" +#include <string.h> + +void triInsertion(int* A, int n){ + int cle = 0; + for(int i = 1; i<n; i++){ + cle=A[i]; + int j = i - 1; + while (j >= 0 && A[j] > cle){ + A[j+1] = A[j]; + j = j-1; + } + A[j+1] = cle; + } +} + + +void sousTriFusion(int * A, int p, int r){ + if(p<r-1){ + int q = (int)(p+r/2); + sousTriFusion(A, p, q); + sousTriFusion(A, q, r); + fusion(A, p, q, r); + } +} + +void fusion(int * A, int p, int q, int r){ + int* Ad, Ag; + memset(Ad, 0, p); + memset(Ag, 0, q); + int n1 = q-p; + int n2 = r-q; + int indg = 0; + int indd = 0; + int i = p; + while (i < r){ + if(indg == n1){ + A[i] = Ad[indd]; + indd++; + } + else if(Ad[indd] == n2){ + A[i] == Ag[indg]; + indg++; + } + else if(Ag[indg] < Ad[indd]){ + A[i] = Ag[indg]; + indg++; + } + else{ + A[i] = Ad[indd]; + indg++; + } + i++; + } +} \ No newline at end of file diff --git a/Algos_1/algos.h b/Algos_1/algos.h new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Algos_1/main.c b/Algos_1/main.c new file mode 100644 index 0000000000000000000000000000000000000000..66182a152b7aba96829c5c7311a2028bc4e0c5c9 --- /dev/null +++ b/Algos_1/main.c @@ -0,0 +1,8 @@ +#include "algos.h" +#include <stdio.h> +#include <string.h> + +int main(int argc, char **argv){ + if() + return 0; +} \ No newline at end of file diff --git a/Algos_1/makefile b/Algos_1/makefile new file mode 100644 index 0000000000000000000000000000000000000000..966a11e83b37b2412898baeb92fce69d49ecec01 --- /dev/null +++ b/Algos_1/makefile @@ -0,0 +1,10 @@ +all: algo + +algo: main.c algos.o + gcc -Wall main.c algos.o -Wall + +algos: algos.c algos.h + gcc -c algos.c algos.h -Wall + +clear: + rm *.o \ No newline at end of file