From 6a93eda97317262e62ef964c72dbd27a11e3bff0 Mon Sep 17 00:00:00 2001 From: hugogogo Date: Mon, 27 Sep 2021 02:13:21 +0200 Subject: [PATCH] special sort for 5 ok --- Makefile | 3 +- builds/algo.o | Bin 104768 -> 104552 bytes builds/algo_bubble_sort.o | Bin 101200 -> 101216 bytes builds/minisort_2ways_bubble_sort.o | Bin 101672 -> 101704 bytes builds/sort_utils.o | Bin 0 -> 100792 bytes builds/special_sorts_3_5.o | Bin 100760 -> 101696 bytes includes/push_swap.h | 29 ++++++++----- push_swap | Bin 213120 -> 216072 bytes srcs/algo.c | 21 +--------- srcs/algo_bubble_sort.c | 2 +- srcs/minisort.c | 22 ---------- srcs/minisort_2ways_bubble_sort.c | 6 +-- srcs/sort_utils.c | 63 ++++++++++++++++++++++++++++ srcs/special_sorts_3_5.c | 27 ++++++++++-- tester.sh | 2 +- 15 files changed, 114 insertions(+), 61 deletions(-) create mode 100644 builds/sort_utils.o create mode 100644 srcs/sort_utils.c diff --git a/Makefile b/Makefile index d1ffce9..e3d47e4 100644 --- a/Makefile +++ b/Makefile @@ -31,7 +31,8 @@ SRCS = push_swap.c \ minisort.c \ minisort_by_rank.c \ minisort_2ways_bubble_sort.c \ - special_sorts_3_5.c + special_sorts_3_5.c \ + sort_utils.c ODIR = ./builds diff --git a/builds/algo.o b/builds/algo.o index e1e99f8d4ca8c63010f86106d2ff9c323e828b10..b06c8b18106086d186e7b6ba3ee01dc0d10d7477 100644 GIT binary patch delta 13861 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 diff --git a/builds/algo_bubble_sort.o b/builds/algo_bubble_sort.o index 1e8fb0d78c3f2976d02c3bd377c8fd937f32d080..d22287caf28e6a1c3580ddfed582f0f188844b1c 100644 GIT binary patch delta 15786 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 delta 15760 zcmZ{r33!uL*2ldC3I!1&V0g>cu$N*(WT{~f2qi2+*b8b2h_a|9vXqKY0gQxYkVP;92xa}w?K#ae&w0Mj=OL##zyCS+zIT7$ zH~#CD^siq@U*BG>k7TFi+Y3kaFYG^J%xLeh0a^d`cX^Nek=68_slM{fgQqqrAMr%< zUggWT`J2@qGipHLFz=}TS+4Sv`&OsbnLKy$n>*Pthb#)xMy@Gbpj-Tw-*5>49Q7X1j`+jn&emaPn_tuhT zwaBnhN09#1m)v1NztIV#t7ecpDrhrpJ7rgMA<;qET~}Tv8W*B2FOuU2;kWC+DW}@3 z!>8<4!>$CIDY8`!WY_Ui_RI~BledSUwO`R`r*qYL?K*9@+B-<}mJoH){?ks?TZjHj z^NY}E9Xq{Fg|+WzyY)yP%Ht%HYRf;C2Y;@qRJtxZb42~3{b%i}mo7Q$RE2uS*+R8l zXPhfmF&#Wts7iF=oZUOMA7z*$3hUj4{H4Ob;2H9-5dH$~Iqy`j=)n1Wbwx+-x0gf-^0zgC2Qdo_byHzu;7U zU2&mM73+eFh03F&7oF;ReFi@dLb6cV)nx7Z)o$&YOnK~NQcd)4?f=!Ow(1aS=FTT5 zn{kbfp~j|@sHxqWH2ES=N9{=3t&==yMhP0zzNAyl)IrodKb+u9p?OzFkREJG?qWg9 zbRub2>vcuaX-(s4u})|fXwQG_)_R^%+<>Vo9j*gN-ODIwyNEri!${*i)5--Mr{hT5 zjwJV9L9b|a$*vyI)}?$^rv3Q$FkOOwM|JFy-I_LrcACy z+N~aX)sK`O|IMzP zy5zTfoQyG4uHh!zBb2pt@;AHpERWC61nrzl`40*IX9eW{M)>oz@2cH8$K&KjK^;1X z^fg|_&I!6rN07eB1LCTn>vZC(-8(NtUJcJ7Mcp}yY5uA zb?~~~+S!vdJB6mXjv!S$8$J@Ww@x7am7DAnK`(3D4U8Q|nZFYB1MNY2z6sIq1ns2* zNW;9sofh<@4&N~6l;{noHNZg`?g-6pt!~<_hguS?Q;lrZ-cX`lNYh>=uU*jJYd_M} zJY-u5iaP+(KM$u^r=U}H45{5mw1=Qgb@Ha!LmapA)dfBMmeYD-7Aa>6<+nO=%Wi$V zifFN*F`YoVf(QCiK__e5ZM*eYe~Miv=;PXh^cwfe7D4Oj0MeGc5NsE8mJTB=Z$_ER z1s$#9x9wg}E24V^tlPnp&Imdui|TMu z_`B*D=A5>O=nX-4=;R%z+Oxr-oGQG*r?8jvNZFz~*{bogV?z+>Hcj3fLI1uXf^^FL zMDqmw>xKkU{T$K$g02IbLfnE^#Nh(xfd}ye%lZ5Y zYRc)V){4}}gnEAq^8YCO4hUAmI_%{o>72kDAY!of0!3dHcq=5Tsr*dfy}4cul2vtU zW=rT-9jjOff$Es$$Y8?lglsK@4L;1vQ)hweK)gDRpcSBMpsL+UN-{*K?gm#4m2dTO z5}qRPX$WDo>*zy-iv&KohWvAd{}(t`13UQW^MqFjyd50rc+d@jI~`S-ymD_9stph{ zswS|>sDABDxjquA5F`+*Ltv|km$_~_slF1bQt%jjn3w7A1ilJ^n%D~O@Lkj;fsaGn zL|@=Ra!23^plV@7kAPJRE83421A97ErK(q#fFD(^8}rEBO5kKM`Ll(;H|#K3r|}Zd zL*OJNF{||vA5roJ9tn;NtXgYuXDDY{PFI+bp$4i(5Ha2-U_W}TRm-U4r6RU5*lJ_y z4|ok&CvXmU5UabOpfJD*KrB!G+TUX^;n-`O8wU9Lj*F9ME@42Hu;1%FE_^*#q^frO-g^-4AwFM9_#1(P;4`@HCc-}o+z5j8a7MS{ zF1sr5I!Ku4mb`~lt3_F=hRZat)knOZm)1H&Q+KA*z+-S$U-H`pejNe^-{EzQSBq41 zM+h6dj2ASUh`tDMgV#Puem>-+qKiP;aH5R^mkm|V@w&~Ac2cTF;5VvAA!JnhT$GFV zo0RJB5JRjMz%d(6+G23ri{JhN?t5`yeLS9Gc;86H*dT~1YakySUJZ0>lk&&v#DO1U>+&A>tZ* zdzh|>S9R$+a2f39>uD%(L+~5?HlLPS3Va+w29M-JVkd#uLd@W*n)ep?A|w&x^<^}| zmhIJ(YBoWrhJmjUCYjC0xoHBghM>U?#`6T83=vGOl8`XwTd>`SW;%H8!x%3wF>;{# zAz<(%4^@b_w^UdE2f_yb#49fkwG_^WxWS8j6y1YN3g-e|a^*lZ<_+-MQCugBRGcy; z-VY&zf8@zNQ{?hP%;5KClfPKt>41-#?ACr>XqF1x6da8a|Lt+|hXk$wUt>H1_U4)P zw!oRo$?=}><0fjdw&v3I2%HBA#OigZz~t7M_JofJ)mPxLuyyu8z`|T#6cN58R9zu# z@c%3#zY<+P3F0OR9-A{&e%k3(FgR1?dXFw7wOgn?ykqng{*8Q=%NPE~A(n}Sf83VR zjS=`GNE*CmBH<|lKLL&=i1%>U$dz<6_zxe@O|c6; zgE*>G88{}O`75Yq7;~E&T&~exa3S_)OrcyJkusC@`NBVGE;;xple&P>5Hh9BeU`Ai zfb|eVoLOrqVR-?k=EHxQ;XOxpa5Tp(#V?bLk7lVtJ_Mh^D|sZ!OBxM9#A+REYL0`x zF`sy3O}9b9s2V_pQ7wFeikeC$Rn(W@X@Nx@;G*Qn=?b>?$_^`As7`7!L|fnn_CBaA zQ}=0@o0{U*ur)`ZK2>Nwb1qN*Qcw?x&U>4Xmo)g}lS zRd*;esvdj-I3ZMPA&x3*3!gcX0zU$(72@y^^4}4-8@O8GMZX7rRC#MXOt^_y39j?r zDYw=?u|8Yqw?YilsWos6lUutxQ`P}OH5(kQQMC}g&cXz)~MFO9N zh)Hr3_M0TXcBG=@L-96XYlEs;5EzbT5O~_)MGu7lI;~H6sJ9YLvjW11)07i-x4~n0 zm&L^8(6obUi#f9({1}=>;A)E_aWe1PawgA#kP+{M0L~9p4l(>@)#p=@JT7j6q`|<= zC+G8H;An?9a~ai3&gbdiGkEJ`ggsp`TdBgAi3PFU;B zN62p%_zUphe736byps)i69R}c`fvw3!SBb}|4w^V-&!7`RI*X`K-^>;%12Z=-^)Q| zW98ogS2n6*ys5}(|0(zlPVkv+rl|FD2qDImen++{w7QKZEa&?iaNx^Z>k;0WybR-#`#mYCdejZ`MLSVDA+r4zGL>Y(2?SRnGUtV9UXxZgGDf5z#M#2XR_{SD284 z=kk9-7{B82+%^ z^c49=3A_-Jri?f^?nl*@7YXwzC^gJRfbV`(?T4T-PeH_p$8vY4iS0p<(#6 zr86HAnh4cU?oWA!_!d05m^_{PS)L(W5HR>vP3hzr;(Z7ke7FN)-fC0Vu@&OEcmXd0 ze%P()0aEd9l~R2PF2w3MBpyby5&TAcm=|t2sis26;J4dSE;*@=K+NFo^9ajHH5TwC zuig6B2EtA+&sxUvt6A!1a2gG49HwSp8{JKENwhLH;}(0 zxdI-8Gqb2PuZSK8fiBp09tfjKU4tlovWD_?B~L3PDkCudNupvbigTn2}Df~^xc z4g3ao?o83I3H$+s5UU-qqpNayUu{pSs8HSF?PQ zcnq%jDB)}ojZbF`Zq$Qtp1=(toQFMk5aLGl;q#;#B~&kfdJyp(AnX_TAK)@Lhj%sk zn%ND0#9r?fie4z9o$bi~g7E*N3;9%rC?Gk*fv-7#~&wG^6BjciqaoP~f{bvX(Lou zcsuMU{G}@>TW8_l3#td!_eOWZ9)X*J%i!;MzZov@a_}46oDZFk3j76x48EJEoP1Bb z24V(Bc?&5K(Jdiqa3`KLD+I>L(G&55tEuK21kMGY!Gkvv-X?H&2paqj@5T{<3n0=H zd*(1CP*r-HPr8SM>h@wv{;lx;fj8dogg>nt>HjVKEBF%StKg>}sMJGoFJ-gd;fZ)v z1RsKMFWhNYEuq{Es*|l6HoHLe#tU7?Ta!azJjoh7V-7_*1-649vG+keB=DQ@W0O|m8HUe zjz`Wa;lIgSKuGvIzFJu>eAEYf{;9TxHgj9Qk3LkCv#S7iN znecvrpM`+IH@Vf12%HaLgFEsr^OL|EA#U*6HkAC5z*|6h5FdYh5O0CF!Cm>-^o_uO2K5kDExQdBl@Qp$C-|R*|I_}YzbO1g z;Ky{<&6f$^68Iws8Qh@iwjrHlRU@MaVg~n~MQ%&rdmw4>72ast3A_ay18_yn1K$8t z?HWr-`U}+;5Hza25J45bAKs7OtReGB{In3?2eyHjD~Ct&0)g@OCI$~$MbTvf4~M`& zENVW4QRRJ>x3J#{)oosNe=q#+&ZMm6!aoM^nIb;gnL;=wumfBM-{&FxmB8uXH@F+G z#y<$GA!P8CwiJC%V0@}$@MnDHst|Y|BrB6opy--4$yRkQzB(O*(G7U@Yb5Yq@EN>> zkE*Q%{uqLTur<>mVpMhcwy%#+Jpl=WeLU5M3A_w!Uc`fW#>to1Gr?o<%_phi(?#?n z5HPssWWvP)kASej5BUf$6Zl<-8@#YPVJ$GeC>)H~Q$jc_@XO#bc<*S!@}+hu_z~mJ zhe`(Hcs|1qHV%p;afl7Zo&0PTB{?ndIB*QXGXBPU$`yg5Nl_28&6^bxQdsg2E>_mQNGr1ulgPz-92$ zoX#dn<7Zj>!9Nz8>c`5bLDp+4NF}ek2En{2bqx$-4ajssM3Q9_6wsUBG2<&cl>k zHuq%k8~kBY!m<;0LZ|>Q$tX?}Rand8Iv2}4dNoCh>gb+%t z2l$jMyWRycgWdfpS}v}8A!+bFKG+nHDm8GXfa6ibSGnu!3OojU27kzRUUH9|1;IzL z-3~*9OajH~2dKbrRv!1KT*lf~ZW%ECF&qK-TcgJ?{o`C|d1>1#Uwv8;?s|D?uS48K z-xs7x%S$T-d<0jhEbtfNUYf&utnAmL5G%wa1sy1f#Lraz?|0S)9-|WP0LLV3fQjIn zgh>|i!Y&8L&k!{Dil54m^J@h}41Q}BVcB3qD}OQK9S|TahsSNcnUK@xI#*dXY8~+S zv9yj|D4lFn+eZPvT2WUmhKgs@9o%Fqiqu}U3!<}Bsrd;*K$WIly9m1jY7y=_?q|`v z7^22xfqOQZ#t=1T61eA}839pa-T?PpG!H`57>t{TraeTBnFa1*G)Ez7%wllQNAo#E zjoAn85;Wr>YRpk^KZgdh7*ikI3y2vr0^HA|SqV{N-U0W*N@o;J+O?6;eG%3di&%u- zY2YqJ(-)$~VDXF5ya7>T?gDoZ&3cF$gT*gF^Dl@RGalSa(O?nAU=c5%sRdDEJ^=SJ zG>su@%zAJyM}yTi<_&PKK=U<3jlmLDqUi)tV-|zE4A-aS5G+%9_1ruw8+KcE8# t?t}WPRD07_t5hF+D?f`1}}k-XB4&R(Tnp^G_RM;3-lq{ui`CP{#lO diff --git a/builds/minisort_2ways_bubble_sort.o b/builds/minisort_2ways_bubble_sort.o index 0468880365f053df564b684f1d897723e2070dc2..6e113051f276361a1a2a1276fd6753d2a9d4425c 100644 GIT binary patch delta 9142 zcmZu$33yaRwx${gGkev_lD-po4sgp-i#$PX3U$tdqlxIBX?i5|7;U` z!l9A7JG|Y^(MlnCi{>v}+{hmHZu0K2?>1|)d)uLV9ZeeX&+eqdX>F}SXQM{#8})B= zM5_3wqfoNg4jyxh7wdk@>wfpv{rf@Q>7u)xP+xNm;MK3q3+Ky3*gND8s(Z0f+)~8tMs|ouTxP8T$G#<%Ygh!2a+=sz|nL zPk60m;$;F8}p_*k~{Ntw>C61?P#B4Z#|PLa_q`8nPQRcI_nlbJLPO%a?Tx!f6*{& zJ;B~_HkCBeYD1F zje1g%rWmB2w&z@?_4|DaU1Xqd*^zT@5w}au$;yqN^IA=4l>a+K{k1Knjui9Q!qXk(+c zy4w}CZbzFb_OaRwao+Y^a9ax|D{3!;I?)ai-3)~eFwj$WY;CV>Ux%da1 zjT!M@$ZyPu?NCBtwHT{hZZK>HA}(2YU-> z6GWSeOi_rVQWV3J!~uRjT7~PSj=P2}>t6^aG2B^1qzEG>$xGHLa+X215Km$nhv9EV zax%irM5fjAK}B9`kPA@NjLF7OO|mssH`UVy>vi~=lXV4w=AuCCK?R?zUHQu8CkFW= zB*?P9*2msy1MZE8lOyhdN-1{0)q=hP190eCPma`0*xHsMPpnc#8w{iIh)bjQQQMXa zzGIqVJ!`Ns;BUvsm-Gg@%YZv0Ea6RIWxdaUx1+QjGa7>Gc8qbW-fq4zSfk-{u`+Wv zDktX*_yD3VvC}bd3x>288NRl26wR$fLukW;9p(t2r&D9YNQ8y#nAWLrW8r$p^5la%wd<#t^PJ$-yWmkx|&mXz20!m%i}8uUoE_jwsWxK zYB5a=1`~8!&+A=ujuGo9e1ydW1l*jX&k=QVj`koSm4LI8$g@7qQ)zmQ^oJnQiJs@y zA58{43o%-AuX9<x)std;?*Nq2egCxGL=yDVDDN238PNlC=lbmdFdtS)*7l zE78DeK3geXGxQ6!yM2cKQACsJbv4S8MS;($r~4;^^^?B!oi_9y1Uqy1eOD^IFeWw! zk|3<7cCw35OcCdB~6 z|3nX$P%BM0Em1Z)n}#*n0sl1|+e!dbSX6?dJqZ8>IA2UN6Ghy zc^DXadm3s4ei(6&@Z!}mqB%Ns6Sr7z>Lu1|*x>b3guBsCrOwH0j$Xy0fv)qM|#&K{(o-tMN0Of2Np>bSe5FUy6Mwp|GCT8~PO^&1(>stP;3- zFo_HGg=CcB*YFb-&m*^oIAA4omxK(~Lil>p$w@tZ^9}f8ga|uY7h`!(ks+p_f{)@Y zc!Cr@Bzm$PVo2}Bajiy4FOlgOy#?R(5*f}{3su%lZE@C(QN2ZP@dLuWX?6yMy=gWI zReZAMJgRtR5$u6TA^fmD^Zdpf42CbIZVp0ZaU)-r!d_c5Rk6%t$5Ev8=CShwoP9XY zkL$THH_AK&`v|x1ji|CVtHrri>CMz4DCxuTMG>bpZ^N~HIRDp+H~9}s=%YbpYLndo8N=LZbd{JL)%)>?hK9yZ|DQ9)~7;uC$jPBjSj<6Y?s zRQBT`5!VYp*s%E){#0iFGICRCx*dh7Bv(DISbAq|$Z|W#k!9=iGQcH7y)+#H|5)M1 zL9ZBP_0%0=?qHS5KRTx(8b$2$nuR&b0-a>R7#c{ZNoUsqaDRN6A@c{fj z&e%E>`q+C{ZN{5Ek>Th#7mhTMVZEd)L|^e5LgXWq#trK!z1`__8{iUDq%r0`easaY zF{dFxSnP*$07E~E-~i6Xc|@dm0x>GBY44 zxd7|yU%-q6_;HM%L=M3k#470-QKIf zzaTM)Yup3D>*?zx@~@|_{rV6wzj@3?jI2NtJ)IFFRFZD}b%s8s>!8TcbL9tfMlZuZ zSnRa+>f6ER2CFl~4RvK=-N41L5TdX;uTrCJZM@tMM+M22C!pZY2K)gM5eAspuA)ow8px*Z#VS!A(qbRDbr>l18%NMW{#oH(rrH9(C5N6gaZ#F zWe5lUF~ahx5`{y!LVfg9?=);aMwMi}hH7c^8+=2#xPC;3@||$0esgm+R>P{l$9@6N zjkLK5={M5zbNZ^?!(d&92wB!gdXpSrz~3N7YcURS$-1OleyqV-3fE19=jpTLP6JMc zU&4LossznXCods<6JuP9QVL&-rHb{0;bhGQr7t%04?x^Z=PS1;_*ny92j9(fo{f+c z-4T`K>@|w~kwMNz1!3_Fj^51qeGcivD2||H7$biiM}Z0ll6W``MTTibq}g;VUv7ctl)RLS~^U5dDbx9TQnYrwf!8+d*B-(v(&{9 zHar|ch_L92Wg}>_A7vwW*&L4GNZQouL;F3$=2JvQ@&m|zxH5Rd@)e^`2EPO}tv}Y1 z{y2mw2$N<_TcFgI0Z&CKVTLTvV77OIKW<+5txW#oSA^u#Cs>v#ynzzk2KO2svUDFW zHuZW=R~Y)vNYJabdA&-g(17Q|Gm2C3K7ymjI;b1?ZwBiUB80_?#*5qi$P3Zgkux5Xp%~^;_ zcY_KNe1kO^o-D#WW+*2G20R2o!lFO&vzT-z#3Z?BnIe}O z zn#8Amb=N@a{u8PQixa3G%MlOL8C?iz#3rljHRu-POWR141nK%y-S~ry1STO)SUdn% z4qYGDK5sKvUEr7Sr0GiE(tyhl&Y_c$D9z#Q_S8bj0ETd2sT#m#U|X5=q*qnkA_48h5C_&M??v-|Q9=abb{ z|M#;wX<2Yh;b8c^Uy3aVPob$7h4SeOluzLlj@XLisbZRSME8VQE+-M4N~2>ao61w> zAcA-DDGT{`GSzCt?xd&fh)ZQ=9fo$(I0-i)Wf}*uN^k#uV+HO)m@q$1lul#zZScEK~9sZBuobmsdRB7CxD zMU*Eq-fM_W=T+aWJ6fNh4e7K-IK)6Xb^irz?blZbll2vopnl|f9A&3Uw&+JTeJ16j9D{ja^G-U-L|Qq=4xDr#0;kF-{YAn zo^CDnqGEx#A~vETEDmsbBMZe!zU_%c6h{z|;snHEis^_@U|2rCU^QPNmddx#CDh*n zPW?(AMiD7ifrYx#(aD3=1>zxTyOfX3dt>!dK8}M}M$%qHq?it|oZ@*zq<98m1;q`B zNU;~<0qJK9RzE<)-yj}TpcMT<)k-l35h>PzKXnO6aRg!&1w%+N3L-*rEh17d{A!9- zh)D4*#KRN|5Rro6AE7vih!i(KJW9a`QZT|AiW7)Pu@Pb|1&1%i0*G}KOk0Xo5QP-4 zA|eGNtmh!w&A{sQ%y>G)1{UTk2y768`N=A>K@1ZvR7lYY;xUS)@Jq1~5enyT$J83W OjmpPpaS-Bh(d$24hCIdq delta 9110 zcmZWu33QZ2wx${gG}nvg9uR(n#CAFNh2r`12hGE zB>Dy$RLF5gZR0|8W*}}uP{)Z28lFCl8^lqu*+K}&`~FlV=e&BHLtpBC-@SFK>Q>eL zi(^Fzhl&z*^b^ZsN!@Zv=H|RTuI=5~_urMddU^1^`hiC!yq489eD0 z(fZ$)>VIFX|9z$Y_ci;sNEG5BS@EM=d?BlU%(S9e%HMD$ znzW*{|2{5*Ke??BXDhYeKu5~RPhPQCmhrczjQ`{oUrFbwbWte-r`*2X_b7U)VRd`z2UmNunodVU(lvHC8hA8zO? zq+E46dHmT`3Vy_ZpIoH$Pa67$Zb}XPzqZMrPbZ7!(yI1ai5be++|96;J?Fe4Bm?K%B12}MOJ^T3{^rYC>X*o*^Iow^W}Nq0XSb^8OO$BLj2$w1-tD*= zkZ+z(79(W!`E+FU6D{R!7dnV;(tjb-8ZlFu)ESnS;JH<}<(C%{#h+#Tg4?=#g<^Cx zX7d5*x#$-EkV7w~i>5Ms(cPuby^1-+V1B%5MO zTjb8VWHC>c)w#tQSy`7O#>l`GFEcfK#clQ1EB1zAoFZda+>R5F$FC$?|D${O*dT3| zuB%=#U#4E&?l>2gpIl9|dg>W>H&sD3?7Teb`@=03N&g>SQ7Ci&@LK1mD#mbw>5ygQ z{9VTXNEh$Oq1U|r&`QO;*I>S>Pn?jUuX{rAa}51=GIq@?e6s3Vy7+u|lJHtJa}@KS z!5p_cByy}wom(Fm=s5@>ykatZLS%~RhzQ}fqK_z7bq4uWl-aD4@HlAm9Rd!LyB8_) zP0f^Sn5DlUOqNyis8WwG;15x5!*}Z3n_|FA;A$$|;s}zOvd7Pn-;_N%QA%N5n5H-l)wFkVNn1RaAv1JuyE0-S|u5xK2Mu11+n{%M;cr5og}h_@2kMNfoV(`F(H zTXX#HpxhRfsI|q%NNOVviY!#LA*Bk{ZKy1P)t26GMX)WEy^-6NN(;qpIo5ITv}2cx zbOq3(#s7`30)ckI+vRM&Qu_?}@(vWW6UkOwABtlPd_Jmd?~^n<#en<3)t+$eM&*5; z0iQuCVKEpP?HT@RMA>ruN8-))?DEq*Wwg~Wngr2-Mlo0&xZni~73+Y(@*zl;bxNP0 zFBxzGA~w7sq^#dE;Cz&IU_^c3bg_?f`n>tZV2we*#mt%;@V~ z1PF^M$aZs%jw0sf9PNiIk;;uoN)(w^X{Ivu8sYarlq_pzK8sMK(8&nns;)P>8u}$D?9LfI ztgnC+1I|EIcRK$bwPcBpkaPpdUY+$WgPe#EVevAewkSY_EpCA5K@X>3^`Pm7waP{x znT=~wfFN1cI=!&^T4;n{Ld13wN9tsX9w_UdZPwbmm6IiguNUC*kku4P9^M?gQNfnAahYP7nSMV+FHT4R zzFv&}IlY{Ey&8x579zdqk zH#_r!U2^y>g2>gjoPUwkSVZfyb6LuWmg`z)+G?9iXn_awFMbz2|tQ%Z?xe=a5MqiF{ zIZD}b)B%ouBF%bA->+uQ_z~>K(R_kPKZg4aiu=*UK*ZUyrt6N(+}ICK65;#x&6jG# zk%9nATuxA!EFR~DN!)Rv`HE#;K6SbhF)yD_kkp?k^`M?O^SGRYP=Dd}y%bSi%_KUn z4>dEi0VwUy@vVoriJ^T5>n1Kv>lw<4zE~P_Y&YU$S-bV7f65r<5qNH<0$?BC2RD?u6?Wu2~gAx3FR=Lp590hdL{U7&adun9S(+A~%_) z`6x~%`ELb^rO(&KLFB{ZCF^+vyzHP9F)vN~AUH+1@hv;HTzc=AXIgWlrjU9Z87X4B zwI-z8>rLC}{uc-zS;dG=rKo_9E$fx3ifkt6AOwA!vDGN{aaVq_8z+4t&2cRoy#_Et zp)+Ksnz+IW zHlIBfAky`}67p0CZH4rW774+_(3k3%a_?({AWrlvR-sdX}{aE;hao|hgAI5=~B4W2*Me#7M(DnM5 zJ!sgJB5t#mz&V^Y|Bb+KF7C~U4dj?D7Q-P%kabG$`6&i#F?=>WTVE^-47fRhHtg2(*krC{pHOeS_ z7xcE>W;h9LRm0nD=$FEC2c4(r@1g?+yc&T!=zIvmwrGc#O&+4}gpUmJ5L6KsTTy!l z=Qo0kkreNsbR;LRNbh}*@$^syF^Vqp*QoHk2K*CzHauG=iTRqsPs34+YY-x2@fmY{Ts~DeHX({2F4ZbbiAG1;1s$ z{307o>o4`AQMmy>j8q%$uFuae4EP3wMsq6fL50owak=V4=nAAEV_ENwA-q{{g7yZS z3?E@J8~!nzvS*MxhA!uz(rzt-b1ZkpECj~VgVf0oGCY(ZOjvYA;aJ)nLit!0p~(o1 zqsG&cPEfL82x*9rX8BhtwPnERC?m`+ zE7KTl7Ch-}6<{c92XPuwNez2a?b%s6xt~(h}_zC4M z-+<>L^-fMj3?ZBKg5JQ-8LU%?5*Dwal;kc47As$62J7N%IQ+Z?XTtC2c>aNipRTu~ z%un0qsI*%*z&YM7MK@#Gc#$kdB0Qe`ex*zMku8+xhS{8gm<{LcQ0hqrd@riT)8_)X zCXm%aA5Pf@YaCK-xWgjlB*%dJAVgSnMg9Z^-4qoz`Jr4zjvC~B5EBXS(q*Fgl9K}; zVb*T`iQLBL?^8}bFr4t)Y$8j$zrs0*te3JBt7%Im8^*o@fk_N#J_^YaVbky99opVI8qh>YUrWCg$Zf9X%I5X&KJpvhQ{kwiWke9&^ zlGmVOaTy^Mqsq2OLegCJ`o7-T=KA+XXf7QdMgClFw=NL#IJ+(N|3R1&HW$pXYz;>K z0!I58Di+XnJ~(@BF`ynp%0iJS`oX`DI_3 zB8%m{LuZY?H5qjr!Tji~=mXsbk*4JPXt;x=n6Jd0Rizpj(nT<()ng<$T8a$P5x zYk3G^y0gC4cb<7}b+zBw+}2e6`C_I`cl+3ITZvDpPR-Tm4A)|YJnW6s#bRGuetK7} z6xaB)Q56zL#Dj>g5*t`7cve#!M${I^;8{a43Q-Ejw{G-WD<0uvQ*hwPq64C~ zU`3Ea&ZVB%pF<8UA7t}%U+jO7%@lZYN!p93Ek?of5XBZmZIK7hI*LR@ZNV?i^|qf$ z*uS2J|Ayyb1=^wmJdaS^iKs1>!Ly-W8MVb>c=9ONg)REQ6Q*c_s4dw2Mv5#%ZE+Ny zM=7QvY72J1iQ*YVZIKAiW(xLT3-<6B#W6%}u@augDL8yvOoe9)1;e&Q7CiYBI}o)6 zdw7C__&tdIPjC>U;MvNwd=}YT#Srl|qFcpC(E?SrXbI1g6mt-?MINFQ&Tmhu6+DdU NCu#8vJO!ff{{q@wLsI|% diff --git a/builds/sort_utils.o b/builds/sort_utils.o new file mode 100644 index 0000000000000000000000000000000000000000..b07298724ad58c4cdd51257b8abb55ed461ffc9d GIT binary patch literal 100792 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 literal 0 HcmV?d00001 diff --git a/builds/special_sorts_3_5.o b/builds/special_sorts_3_5.o index f214ecba7c2d01d9fff02a8d6e18ca84b891ed07..9aa377446ee4c06879165cb069757e1077e7024e 100644 GIT binary patch delta 20429 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 delta 19535 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 Kd`^!^>i+;dw^v^P diff --git a/includes/push_swap.h b/includes/push_swap.h index dfdeb5a..1dd5765 100644 --- a/includes/push_swap.h +++ b/includes/push_swap.h @@ -14,9 +14,9 @@ typedef struct s_stack } t_stack; /* -** luke's algo +** algo_bubble_sort.c // sort_luke.c */ -int bubble_sort(t_stack **a, t_stack **b, t_list *solution); +int luke_bubble_sort(t_stack **a, t_stack **b, t_list *solution); /* ** pushswap.c @@ -35,9 +35,8 @@ void ps_error(int i); void ps_stop(t_stack *stack, t_list *lst, int i); /* -** algo.c +** algo.c // sort.c */ -int sublist_size(t_stack *list); int nbr_element_smaller(t_stack *list, int size, int pivot); int find_pivot(t_stack *list, int size); int divide_a(t_stack **a, t_stack **b, t_list *solution); @@ -46,7 +45,18 @@ void send_sublist_to_a(t_stack **a, t_stack **b, t_list *solution); void hugo_sort(t_stack **a, t_stack **b, t_list *lst); /* -** spcecial_sorts_3_5.c +** sort_recursif.c +*/ + +/* +** sort_utils.c +*/ +int find_biggest(t_stack *list, int size); +int find_smallest(t_stack *list, int size); +int sublist_size(t_stack *list); + +/* +** spcecial_sorts_3_5.c // sort_specials_3_5.c */ void special_sort_3(t_stack **a, t_list *solution); void special_sort_5(t_stack **a, t_stack **b, t_list *solution); @@ -54,11 +64,10 @@ void special_sort_5(t_stack **a, t_stack **b, t_list *solution); /* ** minisort.c */ -int find_biggest(t_stack *list, int size); void minisort(t_stack **list, t_list *solution); /* -** minisort_by_rank.c +** minisort_by_rank.c // minisort_rank.c */ int find_rank(t_stack *list, int nbr, int i); int order_is(t_stack *list, int nbr); @@ -69,11 +78,11 @@ void sort_2(t_stack **a, t_list *solution); void mini_sort(t_stack **a, t_list *solution); /* -** minisort_2ways_bubble_sort.c +** minisort_2ways_bubble_sort.c // minisort_bubble.c */ void mark_sublist(t_stack *list); -int find_smallest(t_stack *list); -void sort_big(t_stack **a, t_stack **b, t_list *solution); +int find_smallest_bubble(t_stack *list); +void bubble_sort(t_stack **a, t_stack **b, t_list *solution); /* ** print.c diff --git a/push_swap b/push_swap index b29a48e4e5163dcc1f6f28a0206e5a9099465d83..c03bef8f4c6800dc66010e6dd7deab717224d303 100755 GIT binary patch delta 17909 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 Nm0!dgGU7BL{|Eg0?PCA{ delta 16805 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 diff --git a/srcs/algo.c b/srcs/algo.c index c0c8d07..b59bcac 100644 --- a/srcs/algo.c +++ b/srcs/algo.c @@ -1,22 +1,5 @@ #include "push_swap.h" -// size is initialized to 1 because the loop check the next element, so it will end one step before reaching it -// it checks the next one to avoid handle the first one with ->limit set to 1 -int sublist_size(t_stack *list) -{ - int size; - - if (list == NULL) - return (0); - size = 1; - while (list->next != NULL && list->next->limit != 1) - { - list = list->next; - size++; - } - return (size); -} - int nbr_element_smaller(t_stack *list, int size, int pivot) { int nbr; @@ -126,7 +109,7 @@ void recursif_sort(t_stack **a, t_stack **b, t_list *solution) else { - // sort_big(a, b, solution) + // bubble_sort(a, b, solution) mini_sort(a, solution); // minisort(a, solution); if (sublist_size(*b) > 4) @@ -143,10 +126,8 @@ void hugo_sort(t_stack **a, t_stack **b, t_list *solution) { if (sublist_size(*a) <= 3) special_sort_3(a, solution); - /* else if (sublist_size(*a) <= 5) special_sort_5(a, b, solution); - */ else recursif_sort(a, b, solution); } diff --git a/srcs/algo_bubble_sort.c b/srcs/algo_bubble_sort.c index 01812fc..c4c9e17 100644 --- a/srcs/algo_bubble_sort.c +++ b/srcs/algo_bubble_sort.c @@ -33,7 +33,7 @@ static int search_smaller(t_stack *stack, int *smaller) return (i_small); } -int bubble_sort(t_stack **a, t_stack **b, t_list *solution) +int luke_bubble_sort(t_stack **a, t_stack **b, t_list *solution) { int smaller; diff --git a/srcs/minisort.c b/srcs/minisort.c index 5a49e4e..7b1869d 100644 --- a/srcs/minisort.c +++ b/srcs/minisort.c @@ -1,28 +1,6 @@ #include "push_swap.h" /* -int find_biggest(t_stack *list, int size) -{ - int biggest; - int position; - int i; - - biggest = list->n; - position = 1; - i = 1; - while (list && --size) - { - i++; - list = list->next; - if (biggest < list->n) - { - position = i; - biggest = list->n; - } - } - return (position); -} - void push_biggest(t_stack **list, t_list *solution, int size, int big) { t_stack *head; diff --git a/srcs/minisort_2ways_bubble_sort.c b/srcs/minisort_2ways_bubble_sort.c index 4a9f54a..4e3dcf8 100644 --- a/srcs/minisort_2ways_bubble_sort.c +++ b/srcs/minisort_2ways_bubble_sort.c @@ -12,7 +12,7 @@ void mark_sublist(t_stack *list) } } -int find_smallest(t_stack *list) +int find_smallest_bubble(t_stack *list) { int i; int smallest; @@ -36,7 +36,7 @@ int find_smallest(t_stack *list) return (position); } -void sort_big(t_stack **a, t_stack **b, t_list *solution) +void bubble_sort(t_stack **a, t_stack **b, t_list *solution) { int list_size; int next; @@ -47,7 +47,7 @@ void sort_big(t_stack **a, t_stack **b, t_list *solution) while (--list_size >= 0) { i = 0; - next = find_smallest(*a); + next = find_smallest_bubble(*a); if (next > 0) while (++i < next) ra(a, &solution); diff --git a/srcs/sort_utils.c b/srcs/sort_utils.c new file mode 100644 index 0000000..a37764e --- /dev/null +++ b/srcs/sort_utils.c @@ -0,0 +1,63 @@ +#include "push_swap.h" + +// size is initialized to 1 because the loop check the next element, so it will end one step before reaching it +// it checks the next one to avoid handle the first one with ->limit set to 1 +int sublist_size(t_stack *list) +{ + int size; + + if (list == NULL) + return (0); + size = 1; + while (list->next != NULL && list->next->limit != 1) + { + list = list->next; + size++; + } + return (size); +} + +int find_smallest(t_stack *list, int size) +{ + int smallest; + int position; + int i; + + smallest = list->n; + position = 1; + i = 1; + while (list && --size) + { + i++; + list = list->next; + if (smallest > list->n) + { + position = i; + smallest = list->n; + } + } + return (position); +} + +int find_biggest(t_stack *list, int size) +{ + int biggest; + int position; + int i; + + biggest = list->n; + position = 1; + i = 1; + while (list && --size) + { + i++; + list = list->next; + if (biggest < list->n) + { + position = i; + biggest = list->n; + } + } + return (position); +} + diff --git a/srcs/special_sorts_3_5.c b/srcs/special_sorts_3_5.c index 98357b5..c8a1543 100644 --- a/srcs/special_sorts_3_5.c +++ b/srcs/special_sorts_3_5.c @@ -27,9 +27,30 @@ void special_sort_3(t_stack **a, t_list *solution) sa(a, &solution); } -/* void special_sort_5(t_stack **a, t_stack **b, t_list *solution) { -} -*/ + int size; + int position; + int i; + + size = sublist_size(*a); + i = size - 3; + while (size > 3) + { + position = find_smallest(*a, size); + if (size - position >= position - 1) + { + while(--position) + ra(a, &solution); + } + else + while(position++ <= size) + rra(a, &solution); + pb(b, a, &solution); + size--; + } + special_sort_3(a, solution); + while (i--) + pa(a, b, &solution); +} diff --git a/tester.sh b/tester.sh index aec71c1..1402dda 100644 --- a/tester.sh +++ b/tester.sh @@ -29,7 +29,7 @@ LIST=($(shuf -i 0-$RANGE -n $SIZE)) echo -e "${WHITE}test lancé avec la liste de nombres suivantes :${NC}" echo -e "${LIST[@]}" -OUTPUT=$(./$PRGM ${LIST[@]}) +OUTPUT=`./$PRGM ${LIST[@]}` COUNT=$(echo "$OUTPUT" | wc -l) RESULT=$(echo "$OUTPUT" | ./checker ${LIST[@]})