From 27d2e423d667f6f035782a1c6b9bb35d1022bd45 Mon Sep 17 00:00:00 2001 From: Simoes Lukas Date: Mon, 10 Nov 2025 16:12:23 +0100 Subject: [PATCH] tri fusion --- DEV3.2/TP05/01_Fusion/Main.class | Bin 0 -> 2793 bytes DEV3.2/TP05/01_Fusion/Main.java | 94 +++++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 DEV3.2/TP05/01_Fusion/Main.class create mode 100644 DEV3.2/TP05/01_Fusion/Main.java diff --git a/DEV3.2/TP05/01_Fusion/Main.class b/DEV3.2/TP05/01_Fusion/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..46cc90a0dbb7bf2b3841927929741a7b1b7ca387 GIT binary patch literal 2793 zcmX^0Z`VEs1_pD6RxSn|21j-VCoTpi21gL#3?f|E8C*fM8;Ee{W?*CR0I@u|7_=F@ zK!i7l@L^~0Wpi+w2?DdY82A|c*bZnmFn|D?Lzn}IW?*yRR6KQ{Sty^)!RJ{T2(TS+ zI|Bk|*&O=qU$@Hb2x4>aaAT2}T(XDFK_6t+%vqca{tN*e41rt>K@7nln?tx6>=;5p zM3@i*149%CLo`S(hMggnogt2qfz2i}FSEpsk%3u5GmMde#W_DEm63tpCo?bAuQWF) zwJ0PpDJPYYfxS36GcP5zh><~G!zU}TEK$F-Br`|fv8X7q(j~R9G}T%&8oM|n18;Ci zVsf@`Vgb}F&fv`Syu^~yqEtqPD4P%~D~QIN#JqHU=ltA)#3GQLHo74p)^^r**sZex zOX9E-BFV_WnO0hynV**ja<&V0bF3kDV|WI;Fe5_=MefCFD#W##c;pxvSWAjBLB7z# z;S21#tr;02DRM7%V<8S^WMIin%*vtpki?J-Qvfy>kuZ1|QW#Qs7}6M$ zc^J|eGI$s=8M1g73>l1g7%UmAco@tW%o!O3z(#|0y5yH8<)nhF%w}iE;bF*S$YW$+ zjAm!Z=V2&dDCA)%VkqWeC;?eo3bItdDL=oYxTGktz&EudBR{2>pN*l6gQ1*#Ggus@A)0AgPYEfcIei0)BduFj~Zb3;UIIBf5 zGH@5A=H{2Bx@8s>moPGjXh6dn>|}^R){G47i76>Qi68}{(3nS-2j|#=)YNQ72F_$~ z#z_syXJo*t)RU2cr8u)H6>L3-qu~P5jucM8mBl5gxr_|V`K2X{45E%oP18V_D5t`NTq`=6)kqHk6F_=$L!UyEnjKpHU)QS>D29~_k ziV`k{YK9s{24+Sb1x5z(+{Elu=ls0n#FFsLk__kkyyB9?ypm!@1~uexfkd@6a!^7Y z!N|Z4c4AH*J3}ofCL0+URKQ*V2WVzqS$=k^K14CZ9=F8glKi4dc7|p~1~#Ak{Or;K zMg|^FP-)_vlUQ7wTFl5W1KDz@8IVNdk(if~lUl3-(FiSNz*a%*Ko&vK7*bh~iYy6L zj-17ysRP-UP$QfZb8><+OH!@b8Cn<_R5ARA&25Yfa`@FTC^Bd>=zuFFRt82;&ShX^ z&}U#^kY!+GU}RumVAa~rz_^itfq{|1fPsO54I;?E1wrvdT%Nh7|5WE&<#^wL7 zv+iYJvSN{BVb%_oWMR<>mSow$z`(!+w%m$=kAZ=Ki-Cm!RQd8T@GSXeM{ zf=XIwSVS-|F|aT&FeqznW8h+0%)qL(L2CyCw~scn(GCV4Uu_l;<)@>&gMk;}N+||5 z1_lN@1`Y;$1}+9C27U%-1~CQ~23ZDIunU+O7`dRfSu=1l*f7{a(j22b11s3J^U#p@ z(caC#7b(KPznwu46oe3-5DHHOg(rr>lR)C}A+bdmq)>P=C_Fh7o&uD&gMr6q6N8eF z@-_w)?QIOIzB)S@)EF6NGRWxcWKd^hIKaT?w~0YXcNc>O1H(23mF52*f|P4+W6%QS z9!LWAVgR+%JQ+9`ycxt8d>B+1d>M=w{1_Y<{2BZh0vMtg0vR$Gf*8sef*D#ELKr47 zgfUEKh+vq{5XrEeA&TKJLo~xNh8Tu(46)#l> ArrayDeque[] scinder(ArrayDeque file) { + + if (file == null) { + return null; + } + + ArrayDeque file1 = new ArrayDeque<>(); + ArrayDeque file2 = new ArrayDeque<>(); + int compteur = 0; + while (!file.isEmpty()) { + if (compteur % 2 == 0) { + file1.addLast(file.removeFirst()); + } else { + file2.addLast(file.removeFirst()); + } + compteur++; + } + + ArrayDeque[] files = (ArrayDeque[]) new ArrayDeque[2]; + files[0] = file1; + files[1] = file2; + return files; + } + + + private static > ArrayDeque fusionner(ArrayDeque file1, ArrayDeque file2) { + ArrayDeque fileFusionnee = new ArrayDeque<>(); + while (!file1.isEmpty() && !file2.isEmpty() && file1 != null && file2 != null) { + T element1 = file1.peek(); + T element2 = file2.peek(); + + if (element1.compareTo(element2) <= 0) { + fileFusionnee.addLast(element1); + file1.removeFirst(); + } else { + fileFusionnee.addLast(element2); + file2.removeFirst(); + } + } + + while (!file1.isEmpty() && file1 != null) { + fileFusionnee.addLast(file1.removeFirst()); + } + + while (!file2.isEmpty() && file1 != null) { + fileFusionnee.addLast(file2.removeFirst()); + } + + return fileFusionnee; + } + + + public static > ArrayDeque trier(ArrayDeque file) { + + if (file.size() <= 1) { + return file; + } + + ArrayDeque[] files = Main.scinder(file); + ArrayDeque file1 = Main.trier(files[0]); + ArrayDeque file2 = Main.trier(files[1]); + return Main.fusionner(file1, file2); + } + + public static void main(String[] args) { + ArrayDeque file = new ArrayDeque<>(); + + file.addLast(new Double(45.2D)); + file.addLast(new Double(-12.75D)); + file.addLast(new Double(89.0D)); + file.addLast(new Double(3.1415D)); + file.addLast(new Double(57.8D)); + file.addLast(new Double(0.0D)); + file.addLast(new Double(-45.6D)); + file.addLast(new Double(999.99D)); + file.addLast(new Double(48.547D)); + file.addLast(new Double(15.8D)); + + file = Main.trier(file); + + System.out.print("["); + for (Double nombre : file) { + System.out.print(nombre + ", "); + } + System.out.println("]"); + } +} \ No newline at end of file