From 05f56597200a31714da090672a94f58df6630429 Mon Sep 17 00:00:00 2001
From: chafiol <antonin.chafiol@gmail.com>
Date: Fri, 31 Jan 2020 15:58:25 +0100
Subject: [PATCH] fusion

---
 Algos_1/a.out    | Bin 17160 -> 17368 bytes
 Algos_1/algos.c  |  44 +++++++++++++++++++++++-------
 Algos_1/algos.h  |   5 +++-
 Algos_1/algos.o  | Bin 2360 -> 4224 bytes
 Algos_1/main.c   |  69 +++++++++++++++++++++++++++++++++++------------
 Algos_1/test.txt |   2 +-
 6 files changed, 91 insertions(+), 29 deletions(-)

diff --git a/Algos_1/a.out b/Algos_1/a.out
index 69ac26e1ad5800fffe9f63ed47736f0d3501dd2e..ce356845c9f1c0a90b7087c5a90462f4120f8863 100755
GIT binary patch
literal 17368
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
I!Il*N4NnFKSO5S3

delta 3327
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

diff --git a/Algos_1/algos.c b/Algos_1/algos.c
index 51713cf..b5ea19f 100644
--- a/Algos_1/algos.c
+++ b/Algos_1/algos.c
@@ -3,10 +3,12 @@
 
 void triInsertion(long* A, size_t n){
     long cle = 0;
+    size_t max = 0;
+    max--;
     for(size_t i = 1; i<n; i++){
         cle=A[i];
         size_t j = i - 1;
-        while (j >= 0 && A[j] > cle){
+        while (j != max && A[j] > cle ){
             A[j+1] = A[j];
             j = j-1;
         }
@@ -16,8 +18,8 @@ void triInsertion(long* A, size_t n){
 
 
 void sousTriFusion(long * A, size_t p, size_t r){
-    if(p<r-1){
-        size_t q = (size_t)(p+r/2);
+    if(p<(r-1)){
+        size_t q = (size_t)((p+r)/2);
         sousTriFusion(A, p, q);
         sousTriFusion(A, q, r);
         fusion(A, p, q, r);
@@ -25,10 +27,25 @@ void sousTriFusion(long * A, size_t p, size_t r){
 }
 
 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;
+
+    long Ad[n2];
+    memset(Ad, 0, n2);
+    int j =0;
+    for(size_t i = q; i<r; i++){
+        Ad[j] = A[i];
+        j++;
+    }
+
+    long Ag[n1];
+    memset(Ag, 0, n1);
+    j =0;
+    for(size_t i = p; i<q; i++){
+        Ag[j] = A[i];
+        j++;
+    }
+
     size_t indg = 0;
     size_t indd = 0;
     size_t i = p;
@@ -37,7 +54,7 @@ void fusion(long * A, size_t p, size_t q, size_t r){
             A[i] = Ad[indd];
             indd++;
         }
-        else if(Ad[indd] == n2){
+        else if(indd == n2){
             A[i] == Ag[indg];
             indg++;
         }
@@ -47,7 +64,7 @@ void fusion(long * A, size_t p, size_t q, size_t r){
         }
         else{
             A[i] = Ad[indd];
-            indg++;
+            indd++;
         }
         i++;
     }
@@ -58,15 +75,22 @@ void triFusion(long * A, size_t n){
 }
 
 void sousTriRapide(long* A, size_t p, size_t r) {
-    if (p<r-1) {
+    if (p<(r-1)) {
         size_t q = partition(A, p, r);
         sousTriRapide(A, p, q);
         sousTriRapide(A, q+1, r);
     }
 }
 
-void partition(long* A, size_t p, size_t r) {
-    size_t pivot = A[r-1];
+size_t partition(long* A, size_t p, size_t r) {
+    printf("r >>>>>>>>>> %d\n", r);
+    size_t max = 0;
+    max--;
+    size_t pivot = 0;
+    if(r-1 != max){
+        pivot = A[r-1];
+    } 
+    
     size_t i = p;
     long temp;
     for (size_t j = p; j < r-2; j++) {
diff --git a/Algos_1/algos.h b/Algos_1/algos.h
index 4ea67b1..ec7b0af 100644
--- a/Algos_1/algos.h
+++ b/Algos_1/algos.h
@@ -11,4 +11,7 @@
 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
+void triFusion(long * A, size_t n);
+void triRapide(long* A, size_t n);
+size_t partition(long* A, size_t p, size_t r);
+void sousTriRapide(long* A, size_t p, size_t r);
\ No newline at end of file
diff --git a/Algos_1/algos.o b/Algos_1/algos.o
index bb617f334137bd27fc78dd604ea034953514c58a..fcca01db38feaff275db7d0b477cb2e77af7d5ac 100644
GIT binary patch
literal 4224
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

literal 2360
zcmbtUO=uHA6rN4|t<}b&Qqe;WqLu1Wm5Nc3NLd}lSP&x=e`8Ix*ffycK-CsY1Hux7
zUIY&wdh{ZC^du6I#2#uq6mrZ(NU31F<sjDY&CVp-?J9yV?9Q9-z3=_aY#tjI&IB}#
zDbd&|*4inQv1996dQ_-U*3LGuIJduYd$PjqY?&902AQzdD8}Lo+T@KIf4c3XFyxI2
z*UCK4xNS6qC0Em+*O&URtFQ8l*Lkj>@u%$z4m}R~oS+AIE>+ijNsLE~#>8u3%e@EN
zoxA|J!EMk{BlH?SVU#<juPiSw&&*u^Alk`&>qSd7v{dCbQc~4aXT+$QSH<oNj1;L#
z-H2A=XeU+`0quEi7i-Oe^D(DWHylGyVjuyPAl+v^Ir;6$x5)hlxnFWSHVc=RyvM*E
z`SQjrbl{*BjgrVxG|F<i<WpG;V)$?@p|xuED73O`26b@&=&Ci;x2~ZYWo_{tqWQ8y
zKx;fw$hKj8C2jGU<5+TqZ;0^Zh@|c6)RDAA#}+9}9)W2!;m`Gyw53D7#r%ze@+x$?
z6^vlEWBU8A6{j1*>EaG#>o^2FMuQs0m2?gbr@+qk_a6^;pS>90ACBmU^<Kudkqbn7
zc!_D_A#GRt`VBLf^KM}DkbI`s=`Eorf&R_w0(0<iY$pkaOwp@pf7G;JBOG#rJ{n~Y
z4r=5;u_wp~>86*m4+%OUzCxkaupi5Q#-Q&P&R7sXKM5j|p9GofPr>C7Wb0kKmKtPh
zTN|lu#M<eqN6Zk|4vDM%6!s*0@R0uiH3$(i!`g#~@K*ss<*Z0ajNVO~`Vg}+Bj?7<
zWX2jvk1;cyH7{pI&SXv64Lb`wBmmk@8J{|*8h_#sf~5BkICtS~F8_I1k2g*jJ|tw8
zE@B@Q?-s85zvaPI|5F}Z_0M$kLCQ+p#%g7p^`6o)$<c&vCC4qM-$_^rrr$PArVpi4
zspJ^2v9y)carY0JR$}Nr(}jET-p%1mB9)Zs{(A`{0*%ajgQCDl7TiO@UXEAT=(P(E
z%`}R~EnV`8-I5@k9dYp~3h9#TUaW+BZ~S&IApO1h4*;i_UiW|H9|D(R;;&_eD1PS(
zwAH_=<2dX}cf0QM79@>c-vP<@jG1*y{&ROw=xTlnJ`crj{^LILr+)**SM#TOytyg%
qdzn8h3#M<0xL!V;t6!^CDhkr)EX}vK|E;k2@hh_a!6wsDy!_wKxSD<d

diff --git a/Algos_1/main.c b/Algos_1/main.c
index bd63d11..b60a072 100644
--- a/Algos_1/main.c
+++ b/Algos_1/main.c
@@ -1,15 +1,34 @@
 #include "algos.h"
 
-void readToTab(long* tab, char* file){
+int readToTab(long* tab, char* file){
+    int n = 0;
     int fd = open(file, O_RDONLY);
-    int i =0;
-    long tmp[2];
-    int nb = read(fd, tmp, sizeof(long)*2);
-    while(nb == 2){
-        tab[i] = tmp[0];
-        nb = read(fd,tmp,sizeof(long)*2);
-        i++;
-}
+    if(fd == -1){
+        perror("open");
+        exit(1);
+    }
+    char tmp[1000];
+    memset(tmp, 0, 1000);
+    char temp;
+    size_t j = 0, x=0;
+    read(fd,&temp,sizeof(char));
+
+    while(temp != '.'){
+        if(temp != ' '){
+            tmp[x] = temp;
+            x++;
+            n++;
+        }
+        else if(temp == ' '){
+            long t = atol(tmp);
+            tab[j] = t;
+            memset(tmp, 0, 1000);
+            j++;
+            x=0;
+        }
+        read(fd,&temp,sizeof(char));
+    }
+    return n-1;
 }
 int main(int argc, char **argv){
     if(argc!=3){
@@ -17,24 +36,40 @@ int main(int argc, char **argv){
         exit(1);
     }
 
-    long* tab = malloc(sizeof(long)*100);
-    readToTab(tab, argv[2]);
-    for(int i  = 0; i<100; i++){
-        printf("%ld - ", tab[i]);
+    long tab[100];
+    int n = readToTab(tab, argv[2]);
+    printf("Base      : ");
+    for(int i  = 0; i<n; i++){
+        printf("%ld,", tab[i]);
     }
+    printf("\n");
 
     if((strcmp(argv[1], "--insertion") == 0)){
-        
+        triInsertion(tab, n);
+        printf("Insertion : ");
+        for(int i  = 0; i<n; i++){
+            printf("%ld,", tab[i]);
+        }
+        printf("\n");
     }
     else if((strcmp(argv[1], "--fusion")== 0)){
-        
+        triFusion(tab, n);
+        printf("Fusion : ");
+        for(int i  = 0; i<n; i++){
+            printf("%ld,", tab[i]);
+        }
+        printf("\n");
     }
     else if((strcmp(argv[1], "--rapide")== 0)){
-        
+        triRapide(tab, n);
+        printf("Rapide : ");
+        for(int i  = 0; i<n; i++){
+            printf("%ld,", tab[i]);
+        }
+        printf("\n");
     }
     else{
         printf("Usage: ./tri <option> <input.txt>\n");
     }
-    free(tab);
     return 0;
 }
\ No newline at end of file
diff --git a/Algos_1/test.txt b/Algos_1/test.txt
index a968cd1..b3e0f2e 100644
--- a/Algos_1/test.txt
+++ b/Algos_1/test.txt
@@ -1 +1 @@
-3 4 5 6 1 2 9
\ No newline at end of file
+3 4 5 6 1 2 9 11 .
\ No newline at end of file
-- 
GitLab