מימוש (חלק 1)
שיעור 5 מתוך 9 בקורס מיון מהיר – סדרת DSA של Coddy.
נבנה את Quick Sort מלמטה למעלה, החל מפעולת הליבה שלו.
אתגר
קלהלב של Quick Sort הוא שלב החלוקה. בואו נבנה אותו קודם.
כתבו פונקציה בשם partition שמשתמשת באיבר האחרון של arr כציר ומחזירה מערך חדש שבו:
- כל האיברים הקטנים מהציר (בסדר המקורי שלהם),
- אחר כך הציר,
- ואחר כך כל האיברים הנותרים, אלה שגדולים מהציר או שווים לו (בסדר המקורי שלהם).
לדוגמה, [3, 7, 1, 8, 5] הופך ל-[3, 1, 5, 7, 8] (הציר הוא 5).
נסו בעצמכם
#include <stdlib.h>
int* partition(int* arr, int arr_size, int* returnSize) {
// כתבו כאן את הקוד
*returnSize = arr_size;
return arr;
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה מיון מהיר – סדרת DSA
תרגלו בעצמכם: קומפיילר C אונליין