Merge sort هو ترتيب divide-and-conquer، مستقر يعمل في وقت مضمون O(n log n). يقسم المصفوفة إلى نصين، يرتب كل نصف بشكل متكرر، ثم يدمج النصين المرتبين.
الفكرة
عنصر واحد مرتب بالفعل (حالة الأساس). دمج قائمتين مرتبتين خطي، ونحن نقوم بـ log n مستويات من الدمج.
مثال
python
():
(arr) <= :
arr
mid = (arr) //
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
merge(left, right)
():
result, i, j = [], ,
i < (a) j < (b):
a[i] <= b[j]:
result.append(a[i]); i +=
:
result.append(b[j]); j +=
result.extend(a[i:]); result.extend(b[j:])
result
merge_sort([, , , , ])
