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

נתונה הפעולה what המקבלת מערך של מספרים שלמים חיוביים arr ופרמטר נוסף exp. הפרמטר exp יכול לקבל ערכים שהם חזקות של 10 (כגון 1, 10, 100, 1000...).

public static int[] what(int[] arr, int exp) {
    int n = arr.length;
    int[] output = new int[n];
    int[] count = new int[10];
    for (int i = 0; i < n; i++) {
        int digit = (arr[i] / exp) % 10;
        count[digit]++;
    }
    // ***** סיום שלב 1 *****
    for (int i = 1; i < 10; i++) {
        count[i] += count[i - 1];
    }
    // ***** סיום שלב 2 *****
    for (int i = n - 1; i >= 0; i--) {
        int digit = (arr[i] / exp) % 10;
        output[count[digit] - 1] = arr[i];
        count[digit]--;
    }
    // ***** סיום שלב 3 *****
    return output;
}
סעיף א

נתון מערך int[] arr = {23, 15, 9, 71, 25} עקבו אחרי זימון הפעולה int[] out1 = what(arr, 1) ורשמו מה יהיה תוכן המערך out1 אחרי זימון הפעולה. יש להראות את תוכן המערך count אחרי סיום של כל אחד מהשלבים 1–3.

סעיף ב

נתון מערך int[] arr = {23, 15, 9, 71, 25} עקבו אחרי זימון הפעולה int[] out2 = what(arr, 10) ורשמו מה יהיה תוכן המערך out2 אחרי זימון הפעולה.

סעיף ג

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

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

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

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

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