From 47473b618c3027d73820212344934ce5c03750a3 Mon Sep 17 00:00:00 2001 From: Tzk91 Date: Tue, 26 Nov 2024 11:38:55 +0100 Subject: [PATCH] Rendu final --- Ex3/Exercice3.pdf | Bin 0 -> 48913 bytes Ex4/EX4.pdf | Bin 0 -> 37965 bytes Ex4/Exercice4.c | 89 ++++++++++++++++++++++++++++++++++++++++++++++ Ex4/Exercice4.py | 47 ++++++++++++++++++++++++ 4 files changed, 136 insertions(+) create mode 100644 Ex3/Exercice3.pdf create mode 100644 Ex4/EX4.pdf create mode 100644 Ex4/Exercice4.c create mode 100644 Ex4/Exercice4.py diff --git a/Ex3/Exercice3.pdf b/Ex3/Exercice3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f1d25ac192e76a9659bea3ad665913ff8ae9771b GIT binary patch literal 48913 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 V-toEwK%iUzOEe9Qn7lap{{d^!L4g1O literal 0 HcmV?d00001 diff --git a/Ex4/EX4.pdf b/Ex4/EX4.pdf new file mode 100644 index 0000000000000000000000000000000000000000..226439fba370f8ba38a1b63cdb33fab531c66b3b GIT binary patch literal 37965 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 WIf`N0PExb&uyGZ$=I5i;ru7dU6Zmid literal 0 HcmV?d00001 diff --git a/Ex4/Exercice4.c b/Ex4/Exercice4.c new file mode 100644 index 0000000..bf8543f --- /dev/null +++ b/Ex4/Exercice4.c @@ -0,0 +1,89 @@ +#include +#include + +// Fonction pour trier un tableau 1D +void sort_1d(int* array, int length) { + for (int i = 0; i < length - 1; i++) { + for (int j = 0; j < length - i - 1; j++) { + if (array[j] > array[j + 1]) { + int temp = array[j]; + array[j] = array[j + 1]; + array[j + 1] = temp; + } + } + } +} + +// Fonction pour calculer la somme d'un tableau 1D +int sum_1d(int* array, int length) { + int sum = 0; + for (int i = 0; i < length; i++) { + sum += array[i]; + } + return sum; +} + +// Fonction pour trier un tableau 2D basé sur la somme des lignes +void sort_2d(int** array, int rows, int cols) { + // Trier chaque ligne individuellement + for (int i = 0; i < rows; i++) { + sort_1d(array[i], cols); + } + + // Trier les lignes selon leur somme + for (int i = 0; i < rows - 1; i++) { + for (int j = 0; j < rows - i - 1; j++) { + if (sum_1d(array[j], cols) > sum_1d(array[j + 1], cols)) { + int* temp = array[j]; + array[j] = array[j + 1]; + array[j + 1] = temp; + } + } + } +} + +// Fonction pour afficher un tableau 2D +void print_2d(int** array, int rows, int cols) { + for (int i = 0; i < rows; i++) { + for (int j = 0; j < cols; j++) { + printf("%d ", array[i][j]); + } + printf("\n"); + } +} + +int main() { + // Exemple : Tableau 2D + int rows = 3, cols = 3; + int** array = (int**)malloc(rows * sizeof(int*)); + for (int i = 0; i < rows; i++) { + array[i] = (int*)malloc(cols * sizeof(int)); + } + + // Initialiser le tableau (exemple donné) + int data[3][3] = {{0, 3, 2}, {9, 4, 5}, {4, 1, 3}}; + for (int i = 0; i < rows; i++) { + for (int j = 0; j < cols; j++) { + array[i][j] = data[i][j]; + } + } + + // Affichage du tableau original + printf("Tableau original :\n"); + print_2d(array, rows, cols); + + // Trier le tableau + sort_2d(array, rows, cols); + + // Affichage du tableau trié + printf("\nTableau trié :\n"); + print_2d(array, rows, cols); + + // Libérer la mémoire + for (int i = 0; i < rows; i++) { + free(array[i]); + } + free(array); + + return 0; +} diff --git a/Ex4/Exercice4.py b/Ex4/Exercice4.py new file mode 100644 index 0000000..52c380d --- /dev/null +++ b/Ex4/Exercice4.py @@ -0,0 +1,47 @@ +def bubble_sort(array): + """ + Implémentation du tri à bulles pour un tableau 1D. + """ + n = len(array) + for i in range(n): + for j in range(0, n - i - 1): + if array[j] > array[j + 1]: + array[j], array[j + 1] = array[j + 1], array[j] + + +def bubble_sort_by_key(array, key_func): + """ + Implémentation du tri à bulles pour un tableau 2D ou supérieur + basé sur une fonction clé. + """ + n = len(array) + for i in range(n): + for j in range(0, n - i - 1): + if key_func(array[j]) > key_func(array[j + 1]): + array[j], array[j + 1] = array[j + 1], array[j] + + +def sort_nd_array(array): + """ + Trie récursivement un tableau multidimensionnel. + """ + if isinstance(array[0], list): + # Trier récursivement chaque sous-dimension + for sub_array in array: + sort_nd_array(sub_array) + # Trier cette dimension en fonction de la somme des sous-tableaux + bubble_sort_by_key(array, key_func=lambda x: sum(sum(y) if isinstance(y, list) else y for y in x)) + else: + # Si c'est un tableau 1D, appliquer le tri à bulles + bubble_sort(array) + + +# Exemple pour un tableau 2D +array_2d = [[0, 3, 2], [9, 4, 5], [4, 1, 3]] +sort_nd_array(array_2d) +print("Tableau trié 2D :", array_2d) # Résultat attendu : [[0, 2, 3], [1, 3, 4], [4, 5, 9]] + +# Exemple pour un tableau 3D +array_3d = [[[3, 2], [1, 4]], [[9, 8], [2, 1]], [[5, 5], [3, 3]]] +sort_nd_array(array_3d) +print("Tableau trié 3D :", array_3d) \ No newline at end of file