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

נתונה הפעולה arrange המקבלת מערך מספרים שלמים.

public static void arrange(int[] arr)
{
    int left = 0;
    int right = arr.length - 1;

    while (left < right)
    {
        if (arr[left] % 2 == 0)
            left++;
        else if (arr[right] % 2 != 0)
            right--;
        else
        {
            int temp = arr[right];
            arr[right] = arr[left];
            arr[left] = temp;
        }
    }
}

הפעולה order לסעיפי ב':

public static void order(int[] arr)
{
    int[] temp = new int[arr.length];
    int k = 0;

    for (int i = 0; i < arr.length; i++)
        if (arr[i] % 2 == 0)
            temp[k++] = arr[i];

    for (int i = 0; i < arr.length; i++)
        if (arr[i] % 2 != 0)
            temp[k++] = arr[i];

    for (int i = 0; i < arr.length; i++)
        arr[i] = temp[i];
}
סעיף א-1

נתון מערך int[] arr={123, 45, 678, 12, 345}. מה יהיה תוכן המערך אחרי זימון הפעולה arrange(arr)?

סעיף א-2

תן דוגמה למערך brr בגודל של חמישה תאים, כך שתוכן המערך לא ישתנה אחרי ביצוע הפעולה.

סעיף א-3

מה מבצעת הפעולה arrange באופן כללי?

סעיף ב-1

נתונה הפעולה order המקבלת מערך של מספרים שלמים. נתון מערך int[] arr={12, 55, 34, 46, 67}. מה יהיה תוכן המערך אחרי זימון הפעולה order(arr)?

סעיף ב-2

מה מבצעת הפעולה order באופן כללי?

סעיף ב-3

האם קיים מערך crr בגודל של חמישה תאים, שעבורו שני זימונים arrange(crr) ו-order(crr) יביאו לאותן תוצאות? אם כן - תן דוגמה של המערך crr, אם לא - הסבר למה.

סעיף ג

מה הן סיבוכיות זמן הריצה של הפעולות order ו-arrange?

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

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

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

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