diff --git a/Algo$1.class b/Algo$1.class new file mode 100644 index 0000000..6500450 Binary files /dev/null and b/Algo$1.class differ diff --git a/Algo.class b/Algo.class new file mode 100644 index 0000000..a43f8cb Binary files /dev/null and b/Algo.class differ diff --git a/Algo.java b/Algo.java new file mode 100644 index 0000000..75c1ff8 --- /dev/null +++ b/Algo.java @@ -0,0 +1,70 @@ +import java.util.*; + +public class Algo { + + public static Object sortNDArray(Object array) { + if (array instanceof int[]) { + int[] arr = (int[]) array; + Arrays.sort(arr); + return arr; + } else if (array instanceof Object[]) { + Object[] arr = (Object[]) array; + + for (int i = 0; i < arr.length; i++) { + arr[i] = sortNDArray(arr[i]); + } + + Arrays.sort(arr, new Comparator() { + @Override + public int compare(Object o1, Object o2) { + int sum1 = getSum(o1); + int sum2 = getSum(o2); + return Integer.compare(sum1, sum2); + } + }); + + return arr; + } + + return array; + } + + public static int getSum(Object array) { + if (array instanceof int[]) { + int sum = 0; + for (int val : (int[]) array) { + sum += val; + } + return sum; + } else if (array instanceof Object[]) { + int sum = 0; + for (Object sub : (Object[]) array) { + sum += getSum(sub); + } + return sum; + } + return 0; + } + + public static void printArray(Object array) { + if (array instanceof int[]) { + System.out.println(Arrays.toString((int[]) array)); + } else if (array instanceof Object[]) { + for (Object sub : (Object[]) array) { + printArray(sub); + } + } + } + + public static void main(String[] args) { + Object[] array2D = new Object[] { + new int[] {0, 3, 2}, + new int[] {9, 4, 5}, + new int[] {4, 1, 3}, + new int[] {4, 1, 3} + }; + + Object sorted = sortNDArray(array2D); + printArray(sorted); + } +} diff --git a/fonction2.class b/fonction2.class new file mode 100644 index 0000000..85a3b70 Binary files /dev/null and b/fonction2.class differ diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..289f82b --- /dev/null +++ b/readme.md @@ -0,0 +1,13 @@ + +# TD 4 + +## Ex 2 + +Fonction 1 : n1*n2 +Le résultat dépend de 2 valeurs différentes. + +Fonction 2 : 0(n) +La fonction tourne x fois car on a x qui représente un compteur et quand x vaut 0 la fonction se termine. + +Fonction 3 : 0(1) +La fonction de ne s'exécute que 4 instructions.