From 567cb2b71d25b73adc88ae88611d1a57be9e2e4e Mon Sep 17 00:00:00 2001 From: malric litiere <litiere@unistra.fr> Date: Fri, 14 Feb 2020 14:27:26 +0100 Subject: [PATCH] =?UTF-8?q?s=C3=A9paration=20des=20tris=20dans=203=20fichi?= =?UTF-8?q?er?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 5 ++ TP1/main | Bin 23584 -> 24712 bytes TP1/main.c | 24 +++++----- TP1/tridec.c | 108 ++++++++++++++++++++++++++++++++++++++++++ TP1/tridec.h | 17 +++++++ TP1/tris.o | Bin 9584 -> 11272 bytes TP1/utils.c | 8 ++++ TP1/utils.h | 3 +- TP1/utils.o | Bin 5992 -> 6920 bytes TP2/Makefile | 18 +++++++ TP2/main | Bin 0 -> 27672 bytes TP2/main.c | 29 ++++++++++++ TP2/tri_fusion.c | 62 ++++++++++++++++++++++++ TP2/tri_fusion.h | 9 ++++ TP2/tri_fusion.o | Bin 0 -> 8696 bytes TP2/tri_insertion.c | 16 +++++++ TP2/tri_insertion.h | 7 +++ TP2/tri_insertion.o | Bin 0 -> 6128 bytes TP2/tri_rapide.c | 36 ++++++++++++++ TP2/tri_rapide.h | 10 ++++ TP2/tri_rapide.o | Bin 0 -> 7608 bytes TP2/utils.c | 20 ++++++++ TP2/utils.h | 5 ++ TP2/utils.o | Bin 0 -> 6864 bytes 24 files changed, 364 insertions(+), 13 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 TP1/tridec.c create mode 100644 TP1/tridec.h create mode 100644 TP2/Makefile create mode 100755 TP2/main create mode 100644 TP2/main.c create mode 100644 TP2/tri_fusion.c create mode 100644 TP2/tri_fusion.h create mode 100644 TP2/tri_fusion.o create mode 100644 TP2/tri_insertion.c create mode 100644 TP2/tri_insertion.h create mode 100644 TP2/tri_insertion.o create mode 100644 TP2/tri_rapide.c create mode 100644 TP2/tri_rapide.h create mode 100644 TP2/tri_rapide.o create mode 100644 TP2/utils.c create mode 100644 TP2/utils.h create mode 100644 TP2/utils.o diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..0f06797 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.associations": { + "stdio.h": "c" + } +} \ No newline at end of file diff --git a/TP1/main b/TP1/main index d1487facee325fdb0d5f18151a49b23445190c91..e1c2a656341bd0b46333d87f12c91f9830e88306 100755 GIT binary patch literal 24712 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 b19rw_T(v8>bnlj5e>YtiQP!ChOep&=BDz0n delta 6136 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 diff --git a/TP1/main.c b/TP1/main.c index 8b03e2f..902db23 100644 --- a/TP1/main.c +++ b/TP1/main.c @@ -6,22 +6,22 @@ int main() { printf("Tri Insertion: \n"); - long triIns[8] ={3,2,8,4,1,6,7,5}; - affichertab(triIns,8); - triInsertion(triIns,8); - affichertab(triIns,8); + long* triIns = listeAlea(100,300); + affichertab(triIns,100); + triInsertion(triIns,100); + affichertab(triIns,100); printf("Tri Rapide: \n"); - long triRap[8] ={3,2,8,4,1,6,7,5}; - affichertab(triRap,8); - triRapide(triRap, 8); - affichertab(triRap,8); + long* triRap = listeAlea(100,300); + affichertab(triRap,100); + triRapide(triRap, 100); + affichertab(triRap,100); printf("Tri Fusion: \n"); - long triFus[8] ={3,2,8,4,1,6,7,5}; - affichertab(triFus,8); - triFusion(triFus, 8); - affichertab(triFus,8); + long* triFus = listeAlea(100,300); + affichertab(triFus,100); + triFusion(triFus, 100); + affichertab(triFus,100); return 0; } diff --git a/TP1/tridec.c b/TP1/tridec.c new file mode 100644 index 0000000..96fab4e --- /dev/null +++ b/TP1/tridec.c @@ -0,0 +1,108 @@ +#include <math.h> +#include <stdlib.h> +#include <stdio.h> +#include "tris.h" + +void triInsertionDec(long* A, size_t n) { + for(size_t i = 1; i <= n-1; i++){ + long cle = A[i]; + size_t j = i - 1; + size_t ecriture=0; + while(j+1 >= j && A[j] > cle){ + ecriture++; + A[j+1] = A[j]; + j = j-1; + } + ecriture++; + A[j+1] = cle; + } +} + +void triFusionDec(long* A, size_t size) { + sousTriFusionDec(A, 0, size); +} + +void sousTriFusionDec(long* A, size_t first, size_t size) { + if(first+1 <size){ // p < r - 1 + size_t middle = floor((first+size)/2); + sousTriFusionDec(A, first, middle); + sousTriFusionDec(A, middle, size); + fusionDec(A, first, middle, size); + } +} + +void copySousTableDec(long* mainT, long* underT, size_t id, size_t size) { + for(size_t i = id; i < id+size; ++i) { + underT[i-id] = mainT[i]; + } +} + +void fusionDec(long* A, size_t first, size_t middle, size_t size) { + size_t n1 = middle - first; // Nb elem dans A[p , q] q exclu + size_t n2 = size - middle; // Nb elem dans A[q , r] r exclu + + size_t indg = 0; + size_t indd = 0; + + long* ag = malloc(sizeof(long) * n1); + long* ad = malloc(sizeof(long) * n2); + + copySousTableDec(A, ag, first, n1); + copySousTableDec(A, ad, middle, n2); + + int i = first; + + while(i < size) { + if(indg == n1) { + A[i] = ad[indd]; + indd++; + } + else if(indd == n2) { + A[i] = ag[indg]; + indg++; + } + else if(ag[indg] < ad[indd]) { + A[i] = ag[indg]; + indg++; + } + else { + A[i] = ad[indd]; + indd++; + } + ++i; + } + + free(ag); + free(ad); +} + +void triRapideDec(long* A, size_t n) { + sousTriRapideDec(A,0,n); +} + +void sousTriRapideDec(long* A, size_t first, size_t size){ + if(first+1 < size){ + size_t middle = partitionDec(A,first,size); + sousTriRapideDec(A,first,middle); + sousTriRapideDec(A,middle+1,size); + } +} + +size_t partitionDec(long* A, size_t first, size_t size) { + long pivot = A[size-1]; + size_t i = first; + for(int j = first; j+2 <= size; j++){ + if(A[j] <= pivot){ + permuterDec(A,i,j); + i++; + } + } + permuterDec(A,i,size-1); + return i; +} + +void permuterDec(long* A,size_t i,size_t j) { + long inter = A[i]; + A[i] = A[j]; + A[j] = inter; +} diff --git a/TP1/tridec.h b/TP1/tridec.h new file mode 100644 index 0000000..6b4dbf8 --- /dev/null +++ b/TP1/tridec.h @@ -0,0 +1,17 @@ +#ifndef TRIS_H +#define TRIS_H +#include <stdint.h> +#include <stdlib.h> + +void triInsertionDec(long* A, size_t n); + +void triFusionDec(long* A, size_t size); +void sousTriFusionDec(long* A, size_t first, size_t size); +void fusionDec(long* A, size_t first, size_t middle, size_t size); + +void triRapideDec(long* A, size_t n); +void sousTriRapideDec(long* A, size_t first, size_t size); +size_t partitionDec(long* A, size_t first, size_t size); +void permuterDec(long* A,size_t i,size_t j); + +#endif //TRIS_H \ No newline at end of file diff --git a/TP1/tris.o b/TP1/tris.o index a60fc51aa905726e26b581fcbdde9c80d5f4adfe..3efd234b62b12a752cf80fdb172ff874b2259a64 100644 GIT binary patch literal 11272 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 delta 3318 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 diff --git a/TP1/utils.c b/TP1/utils.c index be9137a..3715ef2 100644 --- a/TP1/utils.c +++ b/TP1/utils.c @@ -9,3 +9,11 @@ void affichertab(long* T, int s){ } printf("%d ]\n",T[s-1]); } + +long* listeAlea(size_t longeur, size_t N){ + long liste[longeur]; + for(size_t i = 0; i < longeur; i++){ + liste[i] = rand() % N; + } + return liste; +} \ No newline at end of file diff --git a/TP1/utils.h b/TP1/utils.h index 9bc1d22..d36682b 100644 --- a/TP1/utils.h +++ b/TP1/utils.h @@ -1,4 +1,5 @@ #include <stdio.h> #include <stdlib.h> -void affichertab(long* T, int s); \ No newline at end of file +void affichertab(long* T, int s); +long* listeAlea(size_t longeur, size_t N); \ No newline at end of file diff --git a/TP1/utils.o b/TP1/utils.o index 4ff1808805cf14b0b2307154829db41bcb7d719c..1efc08401d93d50fd87c0b5a4cc61da2ae97ead8 100644 GIT binary patch literal 6920 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 W+!cv>kjmM&(1Gl1QBw%2{eJ<@o-;-O literal 5992 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 VN$vuSVYaegq4=)^nnF<R{{xv+b|(M; diff --git a/TP2/Makefile b/TP2/Makefile new file mode 100644 index 0000000..0cdad9a --- /dev/null +++ b/TP2/Makefile @@ -0,0 +1,18 @@ +all: main + +main : tri_fusion.o tri_insertion.o tri_rapide.o utils.o main.c + gcc -o main -Wall utils.o tri_fusion.o tri_insertion.o tri_rapide.o -g main.c + +tri_fusion.o : tri_fusion.c tri_fusion.h + gcc -c -Wall -g tri_fusion.c + +tri_insertion.o : tri_insertion.c tri_insertion.h + gcc -c -Wall -g tri_insertion.c + +tri_rapide.o : tri_rapide.c tri_rapide.h + gcc -c -Wall -g tri_rapide.c + +utils.o : utils.c utils.h + gcc -c -g utils.c +clean : + rm *.o diff --git a/TP2/main b/TP2/main new file mode 100755 index 0000000000000000000000000000000000000000..8aa7e2f6f98de4951ed757f8241c66127d10640d GIT binary patch literal 27672 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 Xl&gA0DedtJ%a?2w9IGt?7L@%jp<UAA literal 0 HcmV?d00001 diff --git a/TP2/main.c b/TP2/main.c new file mode 100644 index 0000000..15f22bf --- /dev/null +++ b/TP2/main.c @@ -0,0 +1,29 @@ +#include <stdio.h> +#include <stdlib.h> +#include "tri_insertion.h" +#include "tri_rapide.h" +#include "tri_fusion.h" +#include "utils.h" + + +int main() { + printf("Tri Insertion: \n"); + long* triIns = listeAlea(100,300); + affichertab(triIns,100); + triInsertion(triIns,100); + affichertab(triIns,100); + + printf("Tri Rapide: \n"); + long* triRap = listeAlea(100,300); + affichertab(triRap,100); + triRapide(triRap, 100); + affichertab(triRap,100); + + printf("Tri Fusion: \n"); + long* triFus = listeAlea(100,300); + affichertab(triFus,100); + triFusion(triFus, 100); + affichertab(triFus,100); + + return 0; +} diff --git a/TP2/tri_fusion.c b/TP2/tri_fusion.c new file mode 100644 index 0000000..7453f70 --- /dev/null +++ b/TP2/tri_fusion.c @@ -0,0 +1,62 @@ +#include <math.h> +#include <stdlib.h> +#include <stdio.h> +#include "tri_fusion.h" + +void triFusion(long* A, size_t size) { + sousTriFusion(A, 0, size); +} + +void sousTriFusion(long* A, size_t first, size_t size) { + if(first+1 <size){ // p < r - 1 + size_t middle = floor((first+size)/2); + sousTriFusion(A, first, middle); + sousTriFusion(A, middle, size); + fusion(A, first, middle, size); + } +} + +void copySousTable(long* mainT, long* underT, size_t id, size_t size) { + for(size_t i = id; i < id+size; ++i) { + underT[i-id] = mainT[i]; + } +} + +void fusion(long* A, size_t first, size_t middle, size_t size) { + size_t n1 = middle - first; // Nb elem dans A[p , q] q exclu + size_t n2 = size - middle; // Nb elem dans A[q , r] r exclu + + size_t indg = 0; + size_t indd = 0; + + long* ag = malloc(sizeof(long) * n1); + long* ad = malloc(sizeof(long) * n2); + + copySousTable(A, ag, first, n1); + copySousTable(A, ad, middle, n2); + + int i = first; + + while(i < size) { + if(indg == n1) { + A[i] = ad[indd]; + indd++; + } + else if(indd == n2) { + A[i] = ag[indg]; + indg++; + } + else if(ag[indg] < ad[indd]) { + A[i] = ag[indg]; + indg++; + } + else { + A[i] = ad[indd]; + indd++; + } + ++i; + } + + free(ag); + free(ad); +} \ No newline at end of file diff --git a/TP2/tri_fusion.h b/TP2/tri_fusion.h new file mode 100644 index 0000000..093102c --- /dev/null +++ b/TP2/tri_fusion.h @@ -0,0 +1,9 @@ +#ifndef TRIS_F +#define TRIS_F +#include <stdint.h> +#include <stdlib.h> + +void triFusion(long* A, size_t size); +void sousTriFusion(long* A, size_t first, size_t size); +void fusion(long* A, size_t first, size_t middle, size_t size); +#endif //TRIS_H \ No newline at end of file diff --git a/TP2/tri_fusion.o b/TP2/tri_fusion.o new file mode 100644 index 0000000000000000000000000000000000000000..57f848076bf3faccd72cae9955c14a7837cafb19 GIT binary patch literal 8696 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 literal 0 HcmV?d00001 diff --git a/TP2/tri_insertion.c b/TP2/tri_insertion.c new file mode 100644 index 0000000..b276ebd --- /dev/null +++ b/TP2/tri_insertion.c @@ -0,0 +1,16 @@ +#include <math.h> +#include <stdlib.h> +#include <stdio.h> +#include "tri_insertion.h" + +void triInsertion(long* A, size_t n) { + for(size_t i = 1; i <= n-1; i++){ + long cle = A[i]; + size_t j = i - 1; + while(j+1 >= j && A[j] > cle){ + A[j+1] = A[j]; + j = j-1; + } + A[j+1] = cle; + } +} \ No newline at end of file diff --git a/TP2/tri_insertion.h b/TP2/tri_insertion.h new file mode 100644 index 0000000..7e92151 --- /dev/null +++ b/TP2/tri_insertion.h @@ -0,0 +1,7 @@ +#ifndef TRIS_I +#define TRIS_I +#include <stdint.h> +#include <stdlib.h> + +void triInsertion(long* A, size_t n); +#endif //TRIS_H \ No newline at end of file diff --git a/TP2/tri_insertion.o b/TP2/tri_insertion.o new file mode 100644 index 0000000000000000000000000000000000000000..49e4a2c00719cbbe22e5c5c9ea0109ae57777da4 GIT binary patch literal 6128 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 V?V*kz{Wh{cOYy%^Gv$(M|8Jm1xFi4o literal 0 HcmV?d00001 diff --git a/TP2/tri_rapide.c b/TP2/tri_rapide.c new file mode 100644 index 0000000..41eaa3b --- /dev/null +++ b/TP2/tri_rapide.c @@ -0,0 +1,36 @@ +#include <math.h> +#include <stdlib.h> +#include <stdio.h> +#include "tri_rapide.h" + + +void triRapide(long* A, size_t n) { + sousTriRapide(A,0,n); +} + +void sousTriRapide(long* A, size_t first, size_t size){ + if(first+1 < size){ + size_t middle = partition(A,first,size); + sousTriRapide(A,first,middle); + sousTriRapide(A,middle+1,size); + } +} + +size_t partition(long* A, size_t first, size_t size) { + long pivot = A[size-1]; + size_t i = first; + for(int j = first; j+2 <= size; j++){ + if(A[j] <= pivot){ + permuter(A,i,j); + i++; + } + } + permuter(A,i,size-1); + return i; +} + +void permuter(long* A,size_t i,size_t j) { + long inter = A[i]; + A[i] = A[j]; + A[j] = inter; +} diff --git a/TP2/tri_rapide.h b/TP2/tri_rapide.h new file mode 100644 index 0000000..e17099f --- /dev/null +++ b/TP2/tri_rapide.h @@ -0,0 +1,10 @@ +#ifndef TRIS_R +#define TRIS_R +#include <stdint.h> +#include <stdlib.h> + +void triRapide(long* A, size_t n); +void sousTriRapide(long* A, size_t first, size_t size); +size_t partition(long* A, size_t first, size_t size); +void permuter(long* A,size_t i,size_t j); +#endif //TRIS_H \ No newline at end of file diff --git a/TP2/tri_rapide.o b/TP2/tri_rapide.o new file mode 100644 index 0000000000000000000000000000000000000000..5c547850da988abefed5dc776249e3da5b941119 GIT binary patch literal 7608 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 literal 0 HcmV?d00001 diff --git a/TP2/utils.c b/TP2/utils.c new file mode 100644 index 0000000..21dbdcc --- /dev/null +++ b/TP2/utils.c @@ -0,0 +1,20 @@ +#include <stdio.h> +#include <stdlib.h> +#include "utils.h" + +void affichertab(long* T, int s){ + printf("[ "); + for(int i = 0; i < s-1; i++){ + printf("%d , ",T[i]); + } + printf("%d ]\n",T[s-1]); +} + +long* listeAlea(size_t longueur, size_t N){ + long* liste = malloc(sizeof(long) * longueur); + for(size_t i = 0; i < longueur; i++){ + liste[i] = rand() % N; + } + + return liste; +} \ No newline at end of file diff --git a/TP2/utils.h b/TP2/utils.h new file mode 100644 index 0000000..d36682b --- /dev/null +++ b/TP2/utils.h @@ -0,0 +1,5 @@ +#include <stdio.h> +#include <stdlib.h> + +void affichertab(long* T, int s); +long* listeAlea(size_t longeur, size_t N); \ No newline at end of file diff --git a/TP2/utils.o b/TP2/utils.o new file mode 100644 index 0000000000000000000000000000000000000000..9b445ec832566072ed2ebcd07857d1dbb23ba6e5 GIT binary patch literal 6864 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 literal 0 HcmV?d00001 -- GitLab