TD4_DEV51_branco-g/ex4.py
2024-11-26 11:43:34 +01:00

36 lines
1.0 KiB
Python

def sort_array_nd(array):
def insertion_sort(arr):
# Implémentation d'un tri par insertion pour un tableau 1D
for i in range(1, len(arr)):
key = arr[i]
j = i - 1
while j >= 0 and arr[j] > key:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
def sum_sort_2d(arr):
# Trier un tableau 2D par la somme de ses sous-tableaux
for i in range(1, len(arr)):
key = arr[i]
key_sum = sum(key)
j = i - 1
while j >= 0 and sum(arr[j]) > key_sum:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
# Étape 1 : Trier chaque sous-tableau individuellement
for sub_array in array:
insertion_sort(sub_array)
# Étape 2 : Trier le tableau selon la somme des sous-tableaux
sum_sort_2d(array)
return array
# Exemple
array = [[0, 3, 2], [9, 4, 5], [4, 1, 3]]
sorted_array = sort_array_nd(array)
print("Tableau trié :", sorted_array)