From 9fb266b2f028238fae2ad4ac1a1d60a729da943c Mon Sep 17 00:00:00 2001
From: Ukhanov Ilya <ukhanov@unistra.fr>
Date: Fri, 31 Jan 2020 17:13:44 +0100
Subject: [PATCH] Final version TP1

---
 TP1/main    | Bin 23592 -> 24376 bytes
 TP1/main.c  |  24 +++++++++++++++---------
 TP1/tris.c  |  44 +++++++++++++++++++++++++++++++++++---------
 TP1/tris.h  |  29 +++++++++++++++++------------
 TP1/tris.o  | Bin 9592 -> 11280 bytes
 TP1/utils.c |  12 +++++++-----
 TP1/utils.o | Bin 6000 -> 6184 bytes
 7 files changed, 74 insertions(+), 35 deletions(-)

diff --git a/TP1/main b/TP1/main
index be57b07d0f235c87329d251cf13d8e044e8bcf82..75f172ca0fc8ef762645823292ccba0db606b930 100755
GIT binary patch
delta 5668
zcmZ`-3sjTW9l!TWZb%{ll8}V7XaZst6@u1+Sb?BMzaVN*L6q9T1cbIC^6+%6ZJ?B{
zDRN4B``Rg+?zE?Ko9*bKv+mS&S~r!x4xaTv*PR}^)s0P8siLD*oBi*1?-wMe`#8z}
z{$IcU<37Gi4jsiu-@<(<mX0K(JYG)F{T1Q)FB_6{oJ|UU>M`ChaOQ@AT5z_}t>LU&
zLrZYBp<3c>1MS2=PAheDE|%`+Vzi%TO7CVBeYp49Z&rUY^QTL?UN^l_VV<|;-8UHw
z3xwgrqjxGk2AZasi;HND#-R;>gm(I^^hu4AR%=plmLk4Sh$ZAu_y?o>ESjdBN6WM!
zGeVN`$Efn5=e0APt6<EYu>wx@oS<r&MjTEzc(KRpRR~hGURp-1PEog_8ZF`$EO9~~
zA`ZHb#GA%%lIrOzAU#at=`hK_8hV9zaNJ;L`ZdE-NiD%gJP6hIaSVhO{l_0Vd$%0=
zo80x~cwlpBFWCm2k$X*-Ap^O$U|AeO5nC?!OeDIX1Q3ORk$cG#jO0(Y+2kIQz{cIj
z+YFJ>L{|sHJ}D^J*C_UPY-1$zJBrQrRp+v~y*@HpufVG29R+D%hT1*la#z7AutIX^
zTwA={Qy_tSEGrU;j5Wa5De?`iGH03rK9qpaQ5JIS-R~k1`l$IfxiTtx4n$qP>$u1F
zW!D(a_g&w23WoCY@`+K6+#8sbdwgRu9+rC`&M5%Ph<a{kV1G1U(Xu5-hb(tF-it@5
zb;cz*ap7?}<eNM{`%+?(>5X{0+<I?A-_Xf&$W#tJG$x1IN99oYh#Xo6xIUm@n+u~!
zxi|SwEKwzBZ@i?)7J$W+d{oA7%RN{QNphEO63ab+)8iXvDdzhoTYg6qlQ*P(b}bSC
zRF2LH37sB0&1GlkW66u?$>d4;S#l0NZ@blU>$hOs<2%EQ5@FmoM4z*yt5wZ*?p?=&
ztQ%F*3Vpx~^I6T?t&ZSf=(Un&udF5m1u8aSP^o2iUGPHbP-^=ylzv8uH`U=0wZqVB
zRtz+R(U5QAd{K{Y0%l{X0jh1jZ*1SJo*-y<K%MKD1HdbRm$DYJ?sWMkU}7h_j!OWM
z?>o~vs08i}K+4lR*j546<o8Tck8kv*=+U*HWH=%RrxN3;a<Gp72;cy(97OLZD~HYG
z&9ev!m_@({NqyV-!sxtkoH_Lt<iNffTRRDDJ?%Tr))vq+Y<~kCX1gBfh?djQAUmNz
zFs4*++BXink@1s+(O%#2w-gVUG1oVMc(dR@tl$QV*;{Y|AjaPNuM)pQ#D84G?-TK#
z7x53O@ehgk10w!W5x*lE|Db~In-Z+Qp(HdVc$mlEz~Zk{;&*#t3Go!VWf<}-x&tue
ziF5}mVa${1u7)9RM>jhGct+jLFyu*f-w#8cmjWD3O{WB&F59ehXS(cjNJ=?KhECS^
z6>sr}J}IUj+Y=n#41~(%-YiBpm1drkyDsR*R$d*vX7}lya%+QCZZxOXy-@kyZiI=6
zKBFr)w=}x_O|5k;ZH>E|mbnq*H`X*a*47DTb$ct<z}x6n&7F^fFMCUVcrg<B5NO7D
zByt_-5}+>ub$%U*BtsW|1#}6}2QNi7MK;6W#Y>S$8_>?nk;v0P{{{4Qpd(iR2q?N5
ziA(@(0h$brc0sXAfIbCuGtgDgkT#$%0X-(sBkpwkIQ`V^A(LN4A^~bjn~mLcQJN#|
z24ofnJXD;J^q92Lq?7i?$H8=^f@mLnnrLI1E9ip!=G|<yLorgUj)8nG=s&+%FMS$C
z`76lJfxcmyo&&Hb*Wr@|<z8fEsaa_LjTr#br(zUD*P;IZm%wsx)J{YqEnpl4kak5A
zxC`_ZpnqkW{!moE5A=Tred{!RQ&iuNVWs3k;|Hc?_-iG@Rp4|C<Y%tZ`ROYRTIl&G
z%n63~^Pi1|YH<y4)338U(u9+yXWtEt@62}LXXwwfi*PmlBHLvdVCx(nw({9CuB8@F
zAs(h>9v41B_jpc=dlXzKs6Xd+L!H14(_+a%`*V^ESA}GZo{+6HAZc$|2tX2A4J#O?
z6Q0i<3PA%Hob2>^j&llTaMq%ar74!)xP4xrTOh9FZphk*aGa?QI4KO*CY_$$ozP|2
zxLWiLjP%$B#m5i9*9*{)XhNd4RkVG{J*JbOmGoM+H1$^oFD$uN3jPDexK4MkNKcss
zfW!UOaF$q#L1$wlDO_oR4C-bb2Bj1ZSndI4E@x!xMFvuDyj#&VKyqx9T*su9dS>*N
z9lqdE76DM)KhEKUxH5&~%eKEL_URndYkNUqa~P`$9}QYZ8NXEoskB2j+v2%xgJVMA
zSFj-P*de_t(-s&>;aY@J*qMw2x>8}LtW{9r{$Q1sml?Q4l*!WwWN_#JPb09Hv$CT}
zK&)e7;ISH^5WF!-WCF2<S*%iBhA>q24H)A7r$wkzI}g=hX+l9<>gKN1DCGw8oTIxV
zSwTk1mQ*~;VHVk3%&{_0P54ldXE|pk^VNh825m|ja~5#^`5;ew&N9yT1?^3X5WY?H
zD`0P0jPP8>1))K*bvFx~sdm%)EMw;jw%T5^6XAt3c+OsXO)bJ%3dd%JO~YaXZ}eTr
z{3`Qw>E5^U3Y0@fso(>sz{c)L*cEN`F)$8d*IbSqurva)E0<*qIq?Eq#hmpzz7UXQ
z92v2|?gXxdFewLFWV`O7h3l2$5QexvAGQeVojn>?S!Z@W!NIVYVS99jZ6eZdMI=7M
zDL2h<6^mujoffgCX1GnnvZyo6tFT0;*!duH)#=pjc{V75;C_~)&dGZr!^*(A*=p^Q
z2=ulvX0^wu`8X1V_GhYg$9;7O>l65HtYllkAdIV-Nh!>N7O_O&%$NlvJ_97|(3m=-
zIMnUh!IAt^Qkjd*TO47BPpk><UkOUHnOPY0Y^(_n1kEXoPZa$4!{!Byx2gJv2QMri
z#rQe;eqqY`B}kL7Y{s24@@M$1QVJX!*|^B5ism}~Rx`H5c~hQU;lwa8HWFiQ2Y>yP
zKV4MhrpF87u#*-PowrXzwqWdMbL*vr-fMpK5VsR@j+pdTLfVKENm`AE7#PtnC$kh<
zr-*S0A;98#Vy_|ulvux0(jbh_5AH73Vtkdht=O#v=~_CrA}xsZd&!zYlAtdjnnzSz
zlfa$9sE~e1ER0)DW;1dpNd<x{iH4EG1UC|IA&J+wzj>^SBs~gfL|>?HCkB8w?j?q;
z#BzWb_1VOtFChubiK&1j90VEdSh*ocW)~82nWaSX3ZcXT5(hzdg7X3WP7og?xrM|E
zVg?Z3PE1{_2PO}hp|2;VosfJNxefA=%BOYUk^3N_0|c)n^K*#xvf^!OCprKz!N<6q
z=oCl;!R<<i^5{n^zg?=XoD`yYh3MZT8p&(bv%lo;<0>I9C9}f83#)cXIn6b2>0{SE
z)Yw$J6V>i+{~@gMwwA`|eGs+oZf}JfA-@pPJ!|gF05#`OePc^&8)|OcyBogiT6VR!
z)wKW;eACy~%ye@c1_$<NS50G+@|C@ViQrNRuk3Vsea$|&Jiy7Mi9<(#I^c%DI0G72
zs1Xgo+uugNk{9D<n&x-l4*Ioh(<UOgd2IA&<5Ktq#DPcP+eTmYKY*7~bBRskL^3Td
z`2!xHc&)=ZDt^`B8xWy17)U4q!F6%11IyIE)&sYeAFX{-N}WxOrF$7@>0G>l{<74S
z8T)#3!=AQ)^SG140joSYv}~Qjxk6}TkFipk2HHe87~CiYE%gc~K^mBE@B!f)`(A$(
z<VoNq$9VM!``F|8Cqf?kvYgN466@Ub=r3~n`6%`c^O^uscXe3!{hp=kKP$AcZ`KhZ
zkG=hTA>`3xTA+Q!&{9p%8dhX%Yi<EK`;lus%7l>_4l{2|8*-VP{Y&EJfN&vD9v{fr
zMD>Ysw+neWlf&Y((&6>`tpTqP3t|;s9b(Na5b{QlCm~o@G4}1kUfqcUP$hdFpnKLk
zw2y(7WiO$FgEbp6v1$5#3I(!gpEi~LGhmrFwHbd<S6kCoqi#L^@0Zv{@Lw4<mF4Qy
z?KZfgtX>*?c~d%;#u0sIbGF$n%2(+#^lXWhrk1Cgj|h!Qlc~SlV;C0FVcJ=qNAE9B
zqG!r;%<Ao3rPb6>5ySynrm@n3iW&456=p-T=uk5~QISWFRwPM#4Ai(K+o-ND*r6-7
zti~lYw8djCbt`Q_D&0?qws<TfLaI_(8Z=fGV%Ww0tsaBA7M9Y^t$7Bu^D;fLwFq`C
z-d2QbY4Nrq<3tX}e%3^v*p_Q}qL8ySbZA?i@q97ong}&k<r=rH;p}4gy|yaX&{x9Q
dQ5vesGc<4H+%Y;-m1kU7&bc+1zO!l8{{Ss2L*f7c

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

diff --git a/TP1/main.c b/TP1/main.c
index 8730ecf..8b03e2f 100644
--- a/TP1/main.c
+++ b/TP1/main.c
@@ -5,17 +5,23 @@
 
 
 int main() {
-  long T1[5] ={3,2,5,1,4} ;
+  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 T2[8] ={3,2,8,4,1,6,7,5} ;
+  printf("Tri Rapide: \n");
+  long triRap[8] ={3,2,8,4,1,6,7,5};
+  affichertab(triRap,8);
+  triRapide(triRap, 8);
+  affichertab(triRap,8);
 
-  affichertab(T1,5);
-  printf("\n");
-
-  //triInsertion(T1,5);
-  triFusion(T1, 5);
-
-  affichertab(T1,5);
+  printf("Tri Fusion: \n");
+  long triFus[8] ={3,2,8,4,1,6,7,5};
+  affichertab(triFus,8);
+  triFusion(triFus, 8);
+  affichertab(triFus,8);
 
   return 0;
 }
diff --git a/TP1/tris.c b/TP1/tris.c
index 5d0eaf8..d3df80c 100644
--- a/TP1/tris.c
+++ b/TP1/tris.c
@@ -17,23 +17,20 @@ void triInsertion(long* A, size_t n) {
 
 void triFusion(long* A, size_t size) {
   sousTriFusion(A, 0, size);
-  printf("Tri fusion\n");
 }
 
 void sousTriFusion(long* A, size_t first, size_t size) {
-    if(first+1 <size){ // p < r - 1 
+    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);
     }
-    printf("Sous Tri fusion\n");
 }
 
 void copySousTable(long* mainT, long* underT, size_t id, size_t size) {
-  size_t i = 0;
-  for(; id < size; ++id) {
-    mainT[id] = underT[i];
+  for(size_t i = id; i < id+size; ++i) {
+    underT[i-id] = mainT[i];
   }
 }
 
@@ -46,11 +43,9 @@ void fusion(long* A, size_t first, size_t middle, size_t size) {
 
     long* ag = malloc(sizeof(long) * n1);
     long* ad = malloc(sizeof(long) * n2);
-    printf("Malloc\n");
 
     copySousTable(A, ag, first, n1);
     copySousTable(A, ad, middle, n2);
-    printf("CopySousTable\n");
 
     int i = first;
 
@@ -68,7 +63,7 @@ void fusion(long* A, size_t first, size_t middle, size_t size) {
         indg++;
       }
       else {
-        A[i] = ag[indg];
+        A[i] = ad[indd];
         indd++;
       }
       ++i;
@@ -77,3 +72,34 @@ void fusion(long* A, size_t first, size_t middle, size_t size) {
     free(ag);
     free(ad);
 }
+
+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/TP1/tris.h b/TP1/tris.h
index 5b7b1c2..619574b 100644
--- a/TP1/tris.h
+++ b/TP1/tris.h
@@ -1,12 +1,17 @@
-#ifndef TRIS_H
-#define TRIS_H
-#include <stdint.h>
-#include <stdlib.h>
-
-void triInsertion(long* A, size_t n);
-
-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
+#ifndef TRIS_H
+#define TRIS_H
+#include <stdint.h>
+#include <stdlib.h>
+
+void triInsertion(long* A, size_t n);
+
+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);
+
+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
diff --git a/TP1/tris.o b/TP1/tris.o
index 1afaba8c5e48d9b8a7900cdf5d56066d74f88a94..3ac31f9566182cf23d8866866ef876f00e45e93f 100644
GIT binary patch
literal 11280
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

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

diff --git a/TP1/utils.c b/TP1/utils.c
index df56076..be9137a 100644
--- a/TP1/utils.c
+++ b/TP1/utils.c
@@ -1,9 +1,11 @@
 #include <stdio.h>
 #include <stdlib.h>
-#include "utils.h" 
+#include "utils.h"
 
 void affichertab(long* T, int s){
-    for(int i = 0; i < s; i++){
-        printf("%d \n",T[i]);
-    } 
-} 
\ No newline at end of file
+    printf("[ ");
+    for(int i = 0; i < s-1; i++){
+        printf("%d , ",T[i]);
+    }
+    printf("%d ]\n",T[s-1]);
+}
diff --git a/TP1/utils.o b/TP1/utils.o
index 95f6e18aa652033c445c466ecc38da865e5aa1f8..25be2a52f64bb733f2762702c2b1b50f92231104 100644
GIT binary patch
delta 549
zcmeyMx58k82IGr~nrea`y|xTMumeQA01*@Ytz4cozhJa<{Zn(S+x3aZ43C2km_2#}
zet2}dzVKkY;L*+C(RmC*--MHgqZJrbQxtT-WbDML%8U~??!3puIC1g}W&>Vlkl{ce
zoXNn*zWFM%5+hI|kW-w|VY2`$E2AarQ&wIMVOG`>R!IgX7G`}`P7uXm!zu@+Q^CTF
zUaYJ@E@K+2STrjuP?C`&eX}*&O{U2boGL;SLFPO13A8ae^RhAZ@UU}CHWZSYyg-O$
za}K8q$i9tS`HVu76}iO|Wk70yfCY#JfcVdU2yg=l0s#{cvjQ<x_<sOM5D3uKH-JSE
z>Op!yplh=w_kC7Ih0T(J<sh3U3Yl|Oa6{xKOui^&&Ug{%d+EtLgn1?#2umRG3WOy%
zFG3VD@K2s7Y|i*#@=0NPCJvs-Tq1T%`Ye;ZfRqO7<Sr3A#v7AQir8~TKy7uIEGTNu
z#33}<OVo~W&g4!}d!|6n$)`l^nDRJ*wuwzv5Yu2RnCvNL&!iwUxl7EBamD15K#l|V
SWG-<#P75K3wHtu0l?MQaqlTIQ

delta 412
zcmZ2s@Ih~a2BX15O|^*$Ry=>KU7ysPoN)56YKp?dd&-PKo0%BzF);>Be#mUV>%ag3
z!kG+=Y@6j+lo){$j;!L0x|<_eSsB%MpR%%+uu3v8u`uhia)Kxh8&(-Goyy7zq#3<f
z8Cy3`XS>P7$S^sVQ(Y(sWS}FTKpT@YFB_9D4?D-?k3v$L4{&;bjOOIdmo$ai$poZX
zf%wmV2(aJ$k^4R?Bmd@$g5@B!8##q1#|W!%DsV$I7)<UIHfNkP`Jk{pkYp6G=bQvJ
zi4~$&M1^ts<VF#DrU35AheYf+pD{z^e}biDL{&KNv%ri38!oECs4%%v)Si<c<PIP(
zoP1K$oGCzXGLx7cqr+rJF?-Ih91tm4upx8AR2YRO9~84^l$gvYZqJk<IN3?ujxk_z
dqqsfi3oeLKBe2pt;wqdCf)J4n5C;nL002jZU+w?^

-- 
GitLab