diff --git a/algo_tri.py b/algo_tri.py new file mode 100644 index 0000000..8c7133f --- /dev/null +++ b/algo_tri.py @@ -0,0 +1,60 @@ +#Trie les éléments dans un tableau +def trie_bulle(arr): + n = len(arr) + for i in range(n): + for j in range(0, n - i - 1): + if arr[j] > arr[j + 1]: + arr[j], arr[j + 1] = arr[j + 1], arr[j] # Échange les éléments + +# Trie les tableau en fonction de la somme de leurs éléments +def trie_bulle_somme(array): + n = len(array) + for i in range(n): + for j in range(0, n - i - 1): + if sum(detache_tab(array[j])) > sum(detache_tab(array[j + 1])): + array[j], array[j + 1] = array[j + 1], array[j] # Échange les sous-tableaux + +# Détache les tableaux entre eux +def detache_tab(array): + if isinstance(array, int): # Si val unique + return [array] + else: + return [value for subarray in array for value in detache_tab(subarray)] + +def trie_tab(array): + if isinstance(array[0], int): # Si c'est un tableau 1D + trie_bulle(array) # Trie le tableau 1D + return array + else: # Si multu dimension + for i in range(len(array)): + array[i] = trie_tab(array[i]) # Trie chaque sous-tableau + # Trie les sous-tableaux par somme des valeur + trie_bulle_somme(array) + return array + + +array = [[0, 3, 2], [9, 4, 5], [4, 1, 3]] +result = trie_tab(array) +print(result) + +array_4d = [ + [ + [ + [1, 3, 2], [4, 6, 5] + ], + [ + [7, 1, 9], [2, 1, 3] + ] + ], + [ + [ + [3, 4, 1], [5, 2, 6] + ], + [ + [9, 6, 8], [3, 1, 2] + ] + ] +] + +result2 = trie_tab(array_4d) +print(result2) \ No newline at end of file diff --git a/rapport_td4_landrin.odt b/rapport_td4_landrin.odt new file mode 100644 index 0000000..92bf111 Binary files /dev/null and b/rapport_td4_landrin.odt differ diff --git a/rapport_td4_landrin.pdf b/rapport_td4_landrin.pdf new file mode 100644 index 0000000..9bb44ae Binary files /dev/null and b/rapport_td4_landrin.pdf differ