اكتب دالة باسم mergeSort تُطبق خوارزمية Merge Sort لترتيب قائمة من الأرقام.
المطلوب:
- الدالة تأخذ معامل واحد:
arr(قائمة من الأرقام) - الدالة تُرجع قائمة مرتبة تصاعديًا
- يجب استخدام خوارزمية Merge Sort (Divide and Conquer)
- التعقيد الزمني يجب أن يكون O(n log n)
مثال:
mergeSort([38, 27, 43, 3, 9, 82, 10])
# [3, 9, 10, 27, 38, 43, 82]
mergeSort([5, 2, 8, 1, 9])
# [1, 2, 5, 8, 9]
ملاحظات:
- قسّم القائمة إلى نصفين
- رتب كل نصف بشكل منفصل (recursion)
- ادمج النصفين المرتبين في قائمة واحدة مرتبة