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 zcmeHPeQ;FQb-%0SL$+ZhFc^ZJu*GJIp;}}N6pX>ULJLnB2^1_jZW4RFXcx4Dq}A-c zb%YCz?DaaluGdyQwaa8WsoG8{<9afrQ#+KJc=-q-9^wd3!pO1PDjAck47KId1l6&< z{hfR7S?xY{?Q}ZRf2yl_d+z<6k9+RtyZ60!^$maXmMVusaBzxEf>NWk3h`>j!Mk+? z#4FZ`8}R#iaf_IN^fZYnzE=@&Rp_iLrPUgDf|A~0&9~EAv>a3RkSOU@3P)xt4pX7a zL3-1PrPFr$)7eUoDf0{YxfNg7=!Ev4X|W#FO|DMq<u;bmgIaG;Q`Vy-=}l<839ZL; zlpI1}%JoTgLf2_+&rTaj34tleQfR$shA2Mhrqs36RIp&mdS8Mb`T4sBuJ#=|ze@G8 zQ2WnR7gwz8itJpwdSzFrt}D`$=&S2nx3+HWYEL}sStZLo4~|fu+PbY>tom-<y{WFP zw>~rH;*Vzh$;!9HijChTzsU!(M=}&ho~xg5zKHj`25P3cWrPQSxy#@SfR&S{eqIh= zQvs*pSWbR(1-!EY9;|@B0Njns9t;5G@@=VrQ=ONSzo7#DFTmZn>|qChC3cX~=ocN- z4c3ZqU&Iu>;aDsh6TJyDE&_qL8SK~-=;+)N*cFU)5!%ri1UDAxF?WgXaCbaxidZ-p z5<xTCC8E9I9%yy+1p~VxJ;AQXBViFYV;$YSKq(_K7&8Oi!AOtT+T7HzIk3vJx)59C zSt9~XZ7qRNI2PU=iJReATg&FIXivB;xU(w^8@s!sJ=#V<iIx>av8Z2Gp@&u#{wS^f zDCUsY<a9PK5}8ds`Vr_+ohKGWt|Pg}5vRcO56>6Fa}++V=NHENHQwh{e8xFFa*x7k z?DN<mWV8rp9l~=(`1J(nFkXb$FbFzPgi|><EcB`vP45l{LET=JAe_cChh<(BBb?_f zLh8NrD+J;4ejrmqtn;b};l=Zsw+JU52g9pkgrTAfq1CIRgi{~qaKBf@2%p6u=tEwW zARG-?2%TOPCEQg&ry^4|FjWInH852JQ#CME15-8dzpsJ+tog!+M)GpCk)Hm>N+FC? z)~w188_Cnvr=;=xnqL6UFMS)oHH*E7QM!|OW21S5r9Y!IEy>1)W%_kW)6#G(E7Px1 znwDl`M`ZdWrD;hvHYn4_C{0VTu>qO>M@rKYY^-0VpQkh}gT{Jg`fn&rOU$u{Wcpi_ zrX|=|t4u#bX<BNId6A~_-SHny*7*kw>la4y?eW&O=FIdnSb`au+1n-A_$a*1&wt$` z#0LXLW@7{fjLh_%MAlE3^HDY50gtNYy8LL(;(pi`r!<B9dMUqV6_MLNF|2Xp#Jl$x zCnlVR<BW0s6LTI6q_lzR{OGQl#f_8t<X`{BD`1Pno$W?)<4%ei)<tu+k=}R#iTwOl z{N_4Pm^0JQA?kSG)GklWVzshAwQDj??L+p)c0;xuHjGCv*Q2Hl>-flT^LfL1aTp|I zq^B)iCNuF*+>sqhjRQnd80i%8zc1s~&{3kfCqK#Ot<(p=lgH^dpSTG{eho|2+@oN< zLJgn$CSpb=Rr^sse=LWlW)nFVF@{nToWoE`Kt^Ve$-D<NElnRID~9!&HI%#jaXvqG z63LpEQY3J<+gzceMkYf!80lxph~aqkK$Ve{1|3OR2*;(~f>t7|9Wr3_doXHPscNY$ zy)iQLejwdQr)1SQPNMXZZ&j5oNh6s^N?iv^^jXDN3UT(uQ<GYWic3o$lR1ZxZkY%f zcg~WHU{25d5N`eOly0wwP<__%7sylV#X%5Tb0sCuX;Le+qWk9l7&59A9OPm;MM_38 zTWh3iQIcV4=>pZlJK$TXa|C2Iu7$2@;jaJ~O1+F<s*p=7(lTxwG}4d%Kxv<W{EY?q z<&aED8HW<xAZ_j&dW8mE?oBk>q!*Z1FqYQ*3|k>`;S11BWouIXkW4FAI)+QV{4x3h z^7|)fDF2SZ;7}@C<R8WD{>2OOe+v1el!t#LTI$~hu*bGjCWWffPHxjq?uEo>IQc!y zS8#G^A=CNN$<swnQrzz3Yp5YrsEZ$xlOzKtiIh6|9N1&eqmr(1@@1Hyn*0eQQrX1* z3bklp!i0l=QOMAQ{7~v_k%JVsJ6KncZ<G#_3>+j<>fn|C%I7c5LJsFJ^X9H1CCg>+ z+V6s)ySBA|#IO>>#*lv;<r1J1k|w(+FrfUSGzE+uB2L;rIypT3BZgy`I+5icmmC^E zmOpoC4N|#l<l1va@}$Ga%=)P`o^FTwt5O|vMK_H-C~fdhn75Qw$As@6-}iTtm(0Qr z&l2PYrU>|e`5_5!5g&!2;hM*qF}4Q=9#8`~dAZ)O_UBO2QNu#!X(*D%>;0qg`;Bz_ zs6<er^N{gR0KwHlDAKP{!@dY}fT7v~RssIDgj)cU2CPfg5Y4t?Kvl8t%f9=3ZTDi* zAEauuj(3ud^&;IS4eQzaCCSiDvUpAzxg%>>aP}0sniN@)QVRaVKuFqHp%|9`2y#7Q zSSO9-J7|RVqfORHA3d-WO;*<T&lKSrJ4(-PWXT=F->3L7$-Vj;V-IGg+fP%L$?Qzy zM9yiP7<Hm9vapS-{Yc^FasDcG*?sUp>T35a|KO#ykR9Z#;H4}mbrXzae>VLr=@=ca z8`iAhq%`0_n+;N%4H_F{nPSJ0IE*Dhll7Cy0-eQ8f))*!;0>K^lXb@Tip*d4h2oOE zQdF|56-x%c{J7c=7fN>ZH@1@L8b2sYcCb>(hAWipAeHPON=EI6k`4I>q{l=41G?t4 z{r)k!=|Ok^UH5RJ9<hFVW|>)4fT<-8V4*N<SX6fh9Ai%?%>&Rpl9&l>z;P)7Nh;ZZ zk)8!wq_zIU{<_N6wGLZ{r4^NhuW<!=_fv`cbz9avwjAYdw%#_Zx8R9?1UFZ;!okh8 z>k67P6CVAl?`ysXeSyL-t;H~%z%U($`?&lQg~nNp$xe?bER1c#Sq^E87P=)i;wGSG z^97Vi@lbDpRT{ygKzU%VrwS}T<_D<H!3QH_pkOi&)=Gdi=}jxVMkh^R$hIGa#!=<T zX)N-TCz%hZ_v$G&**#8E>xk+E5LPqMxVcEG(zwgCVm9%gEzGfS8m(wyZc{YJ?Or_9 zviN%cNGuG&;^~@svY;sY<P54fm;omzXFxnTQ$3Z)(rk+c(z9*SFXwJ5LKP;{T+L&0 z%zs+mN9Dv)T)@hC+hhxQ!@j<KB`;U*G3T+cLL13-J*~feUvAE9OuL2f-PdGY@U=Ht zSA1<g>!WrfQ@0QBz0J3OOna`}H-3%QI`Og7TztoydOy)@{kqwDx6%5QFF)_!jpQlZ zI{r2B4(-Rj`T)A{1JsF&*Zh><DKs!qxsNOC+^E&3!c+}>dJWKfBntA?7ifDtxI288 z+q2S)Mcj8sd(B9+XOsKxNDtnfdCWd@lV}LW!)_Vwa*L&1p+69Hb&;NUI7XtPiDPbX z>*{tT;)HIIL_x7&ZzL2JJ0u}!X~<pY#?SR4=H65YK(H7Uj+>nu=-o5D8|i;9pFa%h z9mjYBUH^VQKMXpCVKfeU8q;ts){)QS_F516`&dA<f_@2W**?&{pa(%`VzGV{G>Msh z1oQ~#1gIP1*sH2T(EDTxjz@L~M_;Yu=2<hV2OvW@y{kP8U$EiF3-y_`L~g^i8rSf< z`Fs{sxN5h!7JjkjhObxmi+dJrSbpbiO9&?2ui*-!3`by3_*}J5RBfI;!}$*mWFh(c z0Kbp2y-B_l_!p{}|CfMYz(oH`&;q~e=fsx!F9VLDF7}u3`y`+Id<)l)!Cy{`N4CH1 zY3EbZo}8YX;auQ^<Sk%LgMa5I@_Bk#P>}18W@J9Mf&T{hPZjg4tb!kn;BUnaU|&f& zzg{S32>9QkP0HDCgw4mnKLUQ3>~C?^K3&!1TKJUH?{a6R`CZGNoZjfFe`1E=T9=%; z)#dGRt@F9+eXeB<E_Z`#VS}r-!Bs8ag`R_*5!k`~dMZrSz*G%P)xcB@Ox3_t4NTR* zR1Hkk!2gRH;P3tT`#xHdQ(%hMJ1WTC%;dLdXFspt&uKP)M|iVNW6L4KB2D>wLfSu2 zVE&a)@==+lJqH4>#j|*HMS))UQdp+>wD+SRpW}n#O^XZ*HJz_16Rn2Lp+fXFPE_jx z@_vq9BvYX8a48(t88e>Kj<MfaDK+_xALoxPq%05EQWP&bW%{Vr$74I0=K95UPo|&K zd~Azky5P6Y=l`1Ucjfkc*Xn+-MbrB<-KFWnnm(cFbDAE~^d(KtXnH|Y&Zp0-Vp}(F zzRSG~Uu56zUhi4usb~JDQ73vWpBE^WqpxN8yZ2JuDRSH)iWp9O8CqSY0i5Wa+z*Sy z@qOtG!Tq%qpDDOqOYv&K{h<`UPH;af#jh{)$5I@<-&TLbcj8M@cUgRP;rvFa9hczo zT#DD=;YTr|;!b2bSQein7XDs2`MHJfjElKWaiidQp%kAd%Jn~|m@oJ{<5KyX3gf#J zUm$wD#fXYK#X`|v7U$V)QisOrH1WQC)ijB!!Cel&5kggXDpjk$mu4NBmk9UT@MRk3 z`IqH4A>t_Vll-92g3D2+-b~<RpXYOurO=PdfiLZOekP2<U*Rg}|Dg&vO=jifzXRMM z=7<lLAYu#U<mnj{efe*1_a6au;3=BD-7jc)yZ>VnzqTKKB<)<=AD+fIucEt!ZCuPn z#m+^&eNNxF<TESSaBDoP?{j=#qUVPs|GvJlQTtK2OX4bC{7YXHxQhWD-vEEyxZBwK z=N@Tiws=GL6ZtF<IthtiYv`L={_nN_@|haM{tS36?A!Y}J?A9<zo>6?@>w9{4{7{X zU0yENa>A>wogc`rx!1ZQ=$TqMd{o;X()r3~jL`p81^M4<`4F0tf_$b4T8(-uXMa%z zd_8cg2YWqlsUZIq;BLy$79zmsR4ovEe`5B-gp0{}QZHLXO4^?-T6KMfwZd7@T8!%h zUbdj<Jz9QL_s^A@{VZ^j@3+bSwU)PN!a<PFgh3BUTtX#3M=Rj3R>1$Q0zM9$>Y?9T zVqSa%++7OE)J?dLE-8bHNKeG{bcl|a88;L7Sgk`$o{kBa-GL4|A46w#LeaqPuISES zS0H3YWAQ*R(I+~h-Mw95GaT~#;hpPOl^3F;I*~vy77OkTgnP``Ua>0{><$M)iSF*b zP$^0U$e9vRI>`f<f?d0#anL|u%MM?QKj7ci7{CFYQu&YwH2%>xUrW>GQjR<m1PF_m zfZxy-jK&=zu(f%6gReQTean`6{cV9ZUqiD$AmY(Pye$?{??0d>&lPpV6S5ovuU*v3 z5<aZt_3}ZZ&pKX2=a|}}IBFzMKb7kB;@DC|zMu(&LqRjhUg*4#Yr&t=GgFghR_kL^ zlL$GaU+}1-RHZB!ExZkqhpbB3*PN)bv&m0&SV|wlvI~@+rV51O(LiUgCqyT$nzlnT z6zK^h;$gJgWF=D%Kze69u1(9cTy*-Y)H=NnD@D}FvQmtWoRuPhKwHaZ?mu)Etn2}= z(lchI7KA6hx7$Q3dT{hi(N2!x*jhN&D?B|>Gwj*jlkn_JL~tZB64H>bp{dRc?iP~Q z8H{%dPiSus>?vx-6zAb^Oum+rVmc83FBa|!l7f!)cA3H>E6iht`w*v*23}P5AWyhc zkFCxSbUCFo)F4wD9EagxcccR@L}3d*9+`nMh6WKH4EJsf;d0Z+{}iL!ByKHO3#h>R z1*W_|)odxtaiX{4qCFw&pVkqkw~<g$;QIkXYY{2d=lus$Hw$WN*KY)l*O*bxpZ6(D z*?(TI(7LTSY(s+f%&gD*8K$&8pg`MSin2cMZ|?&}TO-!bY6qF}z8oSlXmgwt4<bf; zVAkjT5z{4FlKp2nrhCArJvFC!AH}p@>)ZX;usjDzF0(%Gx0q(NAm?u{|Ks43euI|d z=LAgoxdQ3a(#5V%>r1K=@=pd{k7~-#PnfN%my^OmtXSWz^_XT0k}6^|FaF%7&+84Q z7Yh%3O7+?7w`}^nZ)8gE<BNmc|3NUxf3APwMuLJ{{)%raQuyWiW8g3%#rlJ8#bIin zB<%UWWYg#UD$`LiUKH&4XTfvf;>QELFX40Rc6m-SJqKN^77O~k4;rrnh`@3xHJN6d zKH8$b!};@miT^JE`_KK0^|&AW9J*9Q*6027h+c3m1Ftx+KGR=<S*$O-TDo4*UY%sZ zdQ9H~qgbEU<-J;;{j}?I`U)asi~aBSDo(%F=X?~Z^5Qtr4{=fcTAUymSl_lim$D>4 zIuwW&`mRLO&p~bQtbSlf<Jg0X{o(oZI$-R((p0|>ty6TBjmi14Ecs^>k*sGnC<&)c 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