Implementation (Part 2)
الدرس 6 من 9 في دورة Quick Sort - سلسلة DSA على Coddy.
الآن نقوم بدمج المحور (pivot)، والتقسيم (partition)، والعودية (recursion) في الخوارزمية الكاملة.
التحدي
سهلالآن قم بتجميع كل شيء في الخوارزمية الكاملة.
اكتب دالة باسم quickSort تأخذ مصفوفة من الأعداد الصحيحة وتعيدها مرتبة ترتيباً تصاعدياً.
استخدم العنصر الأخير كعنصر محور (pivot)، وقم بتقسيم البقية إلى مجموعة أصغر ومجموعة أكبر، ثم استدعِ quickSort بشكل متكرر (recursively) لكل مجموعة، وقم بدمجهم كـ sorted-smaller + pivot + sorted-larger. المصفوفة التي تحتوي على 0 أو 1 من العناصر تعتبر مرتبة بالفعل، لذا قم بإعادتها كما هي.
يمكنك إعادة استخدام فكرة التقسيم (partition) من الدرس السابق.
جرّب بنفسك
#include <stdlib.h>
int* quickSort(int* arr, int arr_size, int* returnSize) {
// اكتب الكود هنا
*returnSize = arr_size;
return arr;
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Quick Sort - سلسلة DSA
2The Algorithm
How it works?Pseudo CodeImplementation (Part 1)Implementation (Part 2)