בס"ד
מעקב סעיף ג'

מעקב רקורסיה דינמי - הפעולה Secret

מעקב ויזואלי אחר ריצת Secret(arr) על גבי מערך הקלט בגודל 9 איברים.

קוד המקור (#C) Secret & Pointers
public static int Secret(int[] arr) {
    return Secret(arr, 0, arr.Length - 1);
}

private static int Secret(int[] arr, int left, int right) {
    if (left == right) 
        return arr[left];
    if (What(arr[left]) < What(arr[right]))
        return Secret(arr, left + 1, right);
    return Secret(arr, left, right - 1);
}

טבלת עזר: ערכי What של המערך

אינדקס 0 1 2 3 4 5 6 7 8
איבר 777922 111 623 221333 10000 22133 211 1001 99790
What(X) 3 3 1 3 4 2 2 2 2

לוח בקרת ריצה

שלב 0 מתוך 18

אתחול הריצה

הקריאה הציבורית Secret(arr) מאתחלת את הריצה ומעבירה את השליטה לקריאה הרקורסיבית הדו-מצביעת: Secret(arr, 0, 8) – גבולות המערך המלאים.

כלים מתקדמים:
* טיפ: ניתן להשתמש במקשי החצים במקלדת: ➔ (חץ ימינה) לשלב הבא, ו-➔ (חץ שמאלה) לקודם.
עץ קריאות רקורסיית Secret עם מצביעים:
© איילת ויץ