טוען...
טוען...
שים לב
בכל שאלה שנדרש בה מימוש אתה יכול להשתמש בפעולות של המחלקות תור, מחסנית, עץ בינרי וחוליה, בלי לממש אותן. אם אתה משתמש בפעולות נוספות, עליך לממש אותן.
לפניך תכנית הכתובה ב-Java.
הפעולה what מקבלת מערך חד־ממדי המכיל מספרים שלמים, ומספר שלם k>0. כל המספרים במערך הם בין 0 ל-k (כולל).
public class Program
{
public static int[] what(int[] arr, int k)
{
int n = arr.length;
int[] b = new int[n];
int[] c = new int[k+1];
for (int i=0; i<k+1; i++) c[i]=0;
for (int j=0; j <n; j++) c[arr[j]]=c[arr[j]]+1; //*
for (int i=1; i <k+1; i++) c[i] = c[i] + c[i-1]; //**
for (int j=n-1; j >= 0; j--) //***
{
b[c[arr[j]]-1]=arr[j];
c[arr[j]]=c[arr[j]]-1;
}
return b;
}
public static void main(String[] args)
{
int[] arr = new int[] {5,0,2,1,3,0,5};
arr = what(arr,5);
for (int i=0; i < arr.length; i++) System.out.println(arr[i]);
}
}סרטט את המערך c לאחר ביצוע הלולאה המסומנת //*.
סרטט את המערך c לאחר ביצוע הלולאה המסומנת //**.
עקוב אחר ביצוע הלולאה המסומנת //***. במעקב עליך להראות את j, arr[j], c[arr[j]], b[c[arr[j]]-1], המערך b והמערך c.
מה מבצעת הפעולה what?
מהי סיבוכיות זמן הריצה של הפעולה what? נמק את תשובתך.
שים לב
בכל שאלה שנדרש בה מימוש אתה יכול להשתמש בפעולות של המחלקות תור, מחסנית, עץ בינרי וחוליה, בלי לממש אותן. אם אתה משתמש בפעולות נוספות, עליך לממש אותן.
לפניך תכנית הכתובה ב-Java.
הפעולה what מקבלת מערך חד־ממדי המכיל מספרים שלמים, ומספר שלם k>0. כל המספרים במערך הם בין 0 ל-k (כולל).
public class Program
{
public static int[] what(int[] arr, int k)
{
int n = arr.length;
int[] b = new int[n];
int[] c = new int[k+1];
for (int i=0; i<k+1; i++) c[i]=0;
for (int j=0; j <n; j++) c[arr[j]]=c[arr[j]]+1; //*
for (int i=1; i <k+1; i++) c[i] = c[i] + c[i-1]; //**
for (int j=n-1; j >= 0; j--) //***
{
b[c[arr[j]]-1]=arr[j];
c[arr[j]]=c[arr[j]]-1;
}
return b;
}
public static void main(String[] args)
{
int[] arr = new int[] {5,0,2,1,3,0,5};
arr = what(arr,5);
for (int i=0; i < arr.length; i++) System.out.println(arr[i]);
}
}סרטט את המערך c לאחר ביצוע הלולאה המסומנת //*.
סרטט את המערך c לאחר ביצוע הלולאה המסומנת //**.
עקוב אחר ביצוע הלולאה המסומנת //***. במעקב עליך להראות את j, arr[j], c[arr[j]], b[c[arr[j]]-1], המערך b והמערך c.
מה מבצעת הפעולה what?
מהי סיבוכיות זמן הריצה של הפעולה what? נמק את תשובתך.