Compare commits

1 Commits
main ... main

Author SHA1 Message Date
d6c861cfc1 il 2025-10-15 12:22:36 +02:00
4 changed files with 166 additions and 0 deletions

71
Bail.java Normal file
View File

@@ -0,0 +1,71 @@
import java.util.Arrays;
import java.util.Comparator;
public class Bail {
public static void main(String[] args) {
// Exemple de tableau à 3 dimensions
Integer[][][] tableau3D = {
{ {3, 1, 2}, {9, 0, 8} },
{ {4, 5, 1}, {2, 2, 2} }
};
// Appel de la fonction de tri
trierND(tableau3D);
// Affichage du tableau trié
System.out.println("Tableau trié : ");
System.out.println(Arrays.deepToString(tableau3D));
}
/**
* Fonction qui trie un tableau de n'importe quelle dimension.
* Si c'est un tableau d'entiers, on le trie directement.
* Sinon, on trie les sous-tableaux récursivement, puis le tableau actuel
* selon la somme des sous-tableaux.
*/
public static void trierND(Object tableau) {
if (tableau instanceof int[]) {
// Si on est au dernier niveau (tableau d'entiers)
Arrays.sort((int[]) tableau);
} else if (tableau instanceof Object[]) {
Object[] tab = (Object[]) tableau;
// On trie d'abord les sous-tableaux (appel récursif)
for (Object sousTab : tab) {
trierND(sousTab);
}
// Puis on trie le tableau courant selon la somme de ses sous-tableaux
Arrays.sort(tab, new Comparator<Object>() {
@Override
public int compare(Object a, Object b) {
int sommeA = sommeRecursive(a);
int sommeB = sommeRecursive(b);
return Integer.compare(sommeA, sommeB);
}
});
}
}
/**
* Fonction qui calcule récursivement la somme d'un tableau à N dimensions.
*/
public static int sommeRecursive(Object tableau) {
if (tableau instanceof int[]) {
int somme = 0;
for (int valeur : (int[]) tableau) {
somme += valeur;
}
return somme;
} else if (tableau instanceof Object[]) {
int sommeTotale = 0;
for (Object sousTab : (Object[]) tableau) {
sommeTotale += sommeRecursive(sousTab);
}
return sommeTotale;
} else {
return 0;
}
}
}

BIN
Ex3.class Normal file

Binary file not shown.

80
Ex3.java Normal file
View File

@@ -0,0 +1,80 @@
import java.util.Arrays;
public class Ex3{
private int somme(int[]tab){
int somme =0
for(int i =0 ; i<tab.length();i++){
somme =+ tab[i];
}
return somme
}
public static void bubblesort(int[] array,int profondeur){
if (profondeur ==1){
}
boolean swapped;
int valeur;
int length = array.length;
do
{
swapped = false;
for(int i=1;i<length;i++)
{
if(array[i-1] > array[i])
{
valeur = array[i-1];
array[i-1] = array[i];
array[i] = valeur;
swapped=true;
}
}
} while(swapped);
}
public static void test(List<Integer> tab,int profondeur){
for (int i=0;i<tab.length;i++){
bubblesort(tab[i]);
}
boolean swapped;
int[] tmp;
do {
swapped = false;
for (int i = 1; i < tab.length; i++) {
if (somme(tab[i - 1]) > somme(tab[i])) {
tmp = tab[i - 1];
tab[i - 1] = tab[i];
tab[i] = tmp;
swapped = true;
}
}
} while (swapped);
}
public static void main(String[] args) {
int[][] tableau = {
{0, 3, 2},
{9, 4, 5},
{4, 1, 3}
};
System.out.println("Avant tri :");
for (int[] ligne : tableau) {
System.out.println(Arrays.toString(ligne));
}
// Appel du tri
test(tableau);
System.out.println("\nAprès tri :");
for (int[] ligne : tableau) {
System.out.println(Arrays.toString(ligne));
}
}
}

15
Exo2.md Normal file
View File

@@ -0,0 +1,15 @@
Marvin Lebreton et Maxime AUbert
# Ex2
## 1:
La réponse est o(n*m) car y'a un tableau imbriqué dans un autre tableau
## 2:
La réponse est o(n) parce que le nombre d'itération de la boucle dépend de la val de n
## 3:
La réponse est o(1), peu importe la val de x, on va toujours toujours au max faire 3 instruction