diff --git a/Algos_1/a.out b/Algos_1/a.out new file mode 100755 index 0000000000000000000000000000000000000000..ff6643c3c1a68569c95521e4a8374e0627eaf525 Binary files /dev/null and b/Algos_1/a.out differ diff --git a/Algos_1/algos.c b/Algos_1/algos.c index 0235e354a5d050d310e6887479407eb8932c5b10..f5cbd3df03ffca9c0d95f6b519c3a1d669b9a83f 100644 --- a/Algos_1/algos.c +++ b/Algos_1/algos.c @@ -1,11 +1,11 @@ #include "algos.h" #include <string.h> -void triInsertion(int* A, int n){ - int cle = 0; - for(int i = 1; i<n; i++){ +void triInsertion(long* A, size_t n){ + long cle = 0; + for(size_t i = 1; i<n; i++){ cle=A[i]; - int j = i - 1; + size_t j = i - 1; while (j >= 0 && A[j] > cle){ A[j+1] = A[j]; j = j-1; @@ -15,24 +15,23 @@ void triInsertion(int* A, int n){ } -void sousTriFusion(int * A, int p, int r){ +void sousTriFusion(long * A, size_t p, size_t r){ if(p<r-1){ - int q = (int)(p+r/2); + size_t q = (size_t)(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; +void fusion(long * A, size_t p, size_t q, size_t r){ + long* Ad; + long* Ag; + size_t n1 = q-p; + size_t n2 = r-q; + size_t indg = 0; + size_t indd = 0; + size_t i = p; while (i < r){ if(indg == n1){ A[i] = Ad[indd]; @@ -52,4 +51,8 @@ void fusion(int * A, int p, int q, int r){ } i++; } +} + +void triFusion(long * A, size_t n){ + sousTriFusion(A, 0, n); } \ No newline at end of file diff --git a/Algos_1/algos.h b/Algos_1/algos.h index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..5bbc17747aaf2f55cb59b1fc0abc5fa192ff324f 100644 --- a/Algos_1/algos.h +++ b/Algos_1/algos.h @@ -0,0 +1,6 @@ +#include <stddef.h> + +void triInsertion(long* A, size_t n); +void sousTriFusion(long * A, size_t p, size_t r); +void fusion(long * A, size_t p, size_t q, size_t r); +void triFusion(long * A, size_t n); \ No newline at end of file diff --git a/Algos_1/algos.o b/Algos_1/algos.o new file mode 100644 index 0000000000000000000000000000000000000000..3cc998179e57f471a1117bd503656878702af708 Binary files /dev/null and b/Algos_1/algos.o differ diff --git a/Algos_1/main.c b/Algos_1/main.c index 66182a152b7aba96829c5c7311a2028bc4e0c5c9..0e48bd11954f41a4c60164669d6ae93661e9b155 100644 --- a/Algos_1/main.c +++ b/Algos_1/main.c @@ -2,7 +2,7 @@ #include <stdio.h> #include <string.h> + int main(int argc, char **argv){ - if() return 0; } \ No newline at end of file