forked from menault/TD4_DEV51_Qualite_Algo
36 lines
1.0 KiB
Python
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)
|