Files
TD4_DEV51_chenet/exercice_3.py
gastonchenet d5d07915af fini
2025-10-15 10:08:01 +02:00

37 lines
719 B
Python

def sort1d(arr):
"""
Cet algo à une complexité de O(n log n)
"""
if len(arr) < 2:
return arr
mid = len(arr) // 2
left = sort1d(arr[:mid])
right = sort1d(arr[mid:])
result = []
i = j = 0
while i < len(left) and j < len(right):
lv = left[i] if type(left[i]) is int else sum(left[i])
rv = right[j] if type(right[j]) is int else sum(right[j])
if lv < rv:
result.append(left[i])
i += 1
else:
result.append(right[j])
j += 1
result.extend(left[i:])
result.extend(right[j:])
return result
def sort2d(arr):
"""
Cet algo à une complexité de O(m n log n + m log m)
"""
sorted_rows = [sort1d(row) for row in arr]
return sort1d(sorted_rows)