אתם מתרגלים שאלה מתוך מה"ט אלגוריתמיקה ותכנות — הנדסאי תוכנהמבחן 2024 · אביב מועד א · שאלה 14כל שאלות המבחן ←
אלגוריתמים בסיסייםרקורסיה

נתונה הפעולה הרקורסיבית secret:

public static int secret(int[] a)
{
    return secret(a,a.length-1);
}
public static int secret(int[] a, int i)
{
    if(i == 0) return 0;
    int k = secret(a,i-1);
    if(a[i] < a[k])
        return i;
    return k;
}
סעיף א

נתון המערך הבא של מספרים שלמים:

int[] a = {3,5,1,2,10,9}

עקבו אחרי זימון secret(a) רשמו את תוצאת הזימון. יש להראות מעקב!

סעיף ב

מה מבצעת הפעולה secret(a) באופן כללי?

סעיף ג

נתונה הפעולה הרקורסיבית mystery הבאה:

public static void mystery(int[] a)
{
    mystery(a, a.length-1);
}
public static void mystery(int[] a, int i)
{
    if(i > 0)
    {
        int k = secret(a,i);
        int temp = a[i];
        a[i] = a[k];
        a[k] = temp;
        mystery(a, i-1);
    }
}

נתון המערך הבא של מספרים שלמים:

int[] a = {3,5,1,2,10,9}

עקבו אחרי זימון mystery(a) ורשמו את תוצאות הזימון. יש להראות מעקב אחרי הפעולה mystery, אין צורך במעקב אחרי הפעולה secret.

סעיף ד

מה מבצעת הפעולה mystery(a) באופן כללי?

שאלות ותגובות על השאלה

🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות

שאלו כאן — ותקבלו מענה מוסמך.

🎓 מרצה לתכנות עונה כאן — תקבלו מענה מקצועי