forked from menault/TD4_DEV51_Qualite_Algo
62 lines
1.6 KiB
Java
62 lines
1.6 KiB
Java
|
import java.util.*;
|
||
|
import java.util.stream.Collectors;
|
||
|
|
||
|
public class Algorithme {
|
||
|
public static void Algo(int[][] a) {
|
||
|
if (a == null) throw new IllegalArgumentException("Tableau null");
|
||
|
int n = a.length;
|
||
|
if (n == 0) throw new IllegalArgumentException("Tableau vide");
|
||
|
|
||
|
int m = a[0].length;
|
||
|
for (int i = 0; i < n; i++) {
|
||
|
if (a[i] == null || a[i].length != m)
|
||
|
throw new IllegalArgumentException("Tous les sous-tableaux doivent avoir la même taille");
|
||
|
}
|
||
|
|
||
|
for (int i = 0; i < n - 1; i++) {
|
||
|
int min = i;
|
||
|
for (int j = i + 1; j < n; j++) {
|
||
|
if (sum(a[j]) < sum(a[min])) min = j;
|
||
|
}
|
||
|
int[] tmp = a[i];
|
||
|
a[i] = a[min];
|
||
|
a[min] = tmp;
|
||
|
}
|
||
|
|
||
|
for (int i = 0; i < n; i++) selection(a[i]);
|
||
|
}
|
||
|
|
||
|
public static void selection(int[] arr) {
|
||
|
int n = arr.length;
|
||
|
for (int i = 0; i < n - 1; i++) {
|
||
|
int min = i;
|
||
|
for (int j = i + 1; j < n; j++) {
|
||
|
if (arr[j] < arr[min]) min = j;
|
||
|
}
|
||
|
int tmp = arr[i];
|
||
|
arr[i] = arr[min];
|
||
|
arr[min] = tmp;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public static int sum(int[] arr) {
|
||
|
int s = 0;
|
||
|
for (int x : arr) s += x;
|
||
|
return s;
|
||
|
}
|
||
|
|
||
|
public static void main(String[] args) {
|
||
|
int[][] t = {
|
||
|
{0, 3, 2},
|
||
|
{9, 4, 5},
|
||
|
{4, 1, 3},
|
||
|
{77, 12, 56},
|
||
|
{6, 4, 9}
|
||
|
};
|
||
|
Algo(t);
|
||
|
for (int[] r : t) {
|
||
|
for (int x : r) System.out.print(x + " ");
|
||
|
System.out.println();
|
||
|
}
|
||
|
}
|
||
|
}
|