diff --git a/Algos_1/Lib/main.c b/Algos_1/Lib/main.c index ba6e932993dd06bf78dc1bba4716eb83177d73f0..a93ba238fcba8d7323947ae5b31296476725af84 100644 --- a/Algos_1/Lib/main.c +++ b/Algos_1/Lib/main.c @@ -1,6 +1,7 @@ #include "../Tris/triInsertion.h" #include "../Tris/triFusion.h" #include "../Tris/triRapide.h" +#include "../Tris/triBulle.h" #include "../Lib/utils.h" int main(int argc, char **argv){ @@ -63,6 +64,22 @@ int main(int argc, char **argv){ printf("\n"); free(tab); } + else if((strcmp(argv[1], "--bulle")== 0) || strcmp(argv[1], "-b")== 0){ + int n= 0; + long *tab = readToTab(argv[2], &n); + printf("Base : "); + for(int i = 0; i<n; i++){ + printf("%ld,", tab[i]); + } + printf("\n"); + triBulle(tab, n); + printf("Bulle : "); + for(int i = 0; i<n; i++){ + printf("%ld,", tab[i]); + } + printf("\n"); + free(tab); + } else if (strcmp(argv[1], "-a") == 0) { int n= 0; diff --git a/Algos_1/Tris/triBulle.c b/Algos_1/Tris/triBulle.c new file mode 100644 index 0000000000000000000000000000000000000000..c3eaa3d0cdfd589b8d36bda547ec7f1ab284a8b8 --- /dev/null +++ b/Algos_1/Tris/triBulle.c @@ -0,0 +1,14 @@ +#include "triBulle.h" + +void triBulle(long* A, size_t n){ + for(int I = n - 2;I >= 0; I--) { + for(int J = 0; J <= I; J++) { + if(A[J + 1] < A[J]) { + int t = A[J + 1]; + A[J + 1] = A[J]; + A[J] = t; + } + } + } + +} \ No newline at end of file diff --git a/Algos_1/Tris/triBulle.h b/Algos_1/Tris/triBulle.h new file mode 100644 index 0000000000000000000000000000000000000000..3224f6932e87887b5d5dbd282544ee282b6c197a --- /dev/null +++ b/Algos_1/Tris/triBulle.h @@ -0,0 +1,18 @@ +#ifndef triBulle_h +#define triBulle_h + +#include <stddef.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <unistd.h> +#include <fcntl.h> +#include <string.h> + +#include "../Lib/utils.h" + +void triBulle(long* A, size_t n); + +#endif \ No newline at end of file diff --git a/Algos_1/makefile b/Algos_1/makefile index a0fbfc04ffc206aeca04ce66faaf7a77daac460c..299e3cfaff6a1186c42becb663481a1063cfb3b2 100644 --- a/Algos_1/makefile +++ b/Algos_1/makefile @@ -1,11 +1,14 @@ all: tri -tri: Lib/main.c Tris/triInsertion.o Tris/triFusion.o Tris/triRapide.o Lib/utils.o - gcc -Wall Lib/main.c Tris/triInsertion.o Tris/triFusion.o Tris/triRapide.o Lib/utils.o -Wall -o tri +tri: Lib/main.c Tris/triBulle.o Tris/triInsertion.o Tris/triFusion.o Tris/triRapide.o Lib/utils.o + gcc -Wall Lib/main.c Tris/triInsertion.o Tris/triFusion.o Tris/triBulle.o Tris/triRapide.o Lib/utils.o -Wall -o tri insertion: Tris/triInsertion.c Tris/triInsertion.h gcc -c Tris/triInsertion.c Tris/triInsertion.h -Wall +bulle: Tris/triBulle.c Tris/triBulle.h + gcc -c Tris/triBulle.c Tris/triBulle.h -Wall + fusion: Tris/triFusion.c Tris/triFusion.h gcc -c Tris/triFusion.c Tris/triFusion.h -Wall @@ -16,4 +19,4 @@ utils: Lib/utils.c Lib/utils.h gcc -c Lib/utils.c Lib/utils.h -Wall clear: - rm *.o \ No newline at end of file + rm Tris/*.o \ No newline at end of file