לפניך תכנית הכתובה ב-Java וב-C#
הפעולה what ב-Java (או What ב-C#) מקבלת מערך חד־ממדי המכיל מספרים שלמים, ומספר שלם k>0. כל המספרים במערך הם בין 0 ל-k (כולל).
1public class Program
2{
3 public static int[] what(int[] arr, int k)
4 {
5 int n = arr.length;
6 int[] b = new int[n];
7 int[] c = new int[k+1];
8 for (int i=0; i<k+1; i++) c[i]=0;
9 for (int j=0; j <n; j++) c[arr[j]]=c[arr[j]]+1; //*
10 for (int i=1; i <k+1; i++) c[i] = c[i] + c[i-1]; //**
11 for (int j=n-1; j >= 0; j--) //***
12 {
13 b[c[arr[j]]-1]=arr[j];
14 c[arr[j]]=c[arr[j]]-1;
15 }
16 return b;
17 }
18 public static void main(String[] args)
19 {
20 int[] arr = new int[] {5,0,2,1,3,0,5};
21 arr = what(arr,5);
22 for (int i=0; i < arr.length; i++) System.out.println(arr[i]);
23 }
24}סרטט את המערך c לאחר ביצוע הלולאה המסומנת //*.
סרטט את המערך c לאחר ביצוע הלולאה המסומנת //**.
עקוב אחר ביצוע הלולאה המסומנת //***. במעקב עליך להראות את arr[j], c[arr[j]], b[c[arr[j]]-1], המערך b והמערך c.
מה מבצעת הפעולה what / What?
מהי סיבוכיות זמן הריצה של הפעולה what ב-Java או What ב-C#? נמק את תשובתך.
לפניך תכנית הכתובה ב-Java וב-C#
הפעולה what ב-Java (או What ב-C#) מקבלת מערך חד־ממדי המכיל מספרים שלמים, ומספר שלם k>0. כל המספרים במערך הם בין 0 ל-k (כולל).
1public class Program
2{
3 public static int[] what(int[] arr, int k)
4 {
5 int n = arr.length;
6 int[] b = new int[n];
7 int[] c = new int[k+1];
8 for (int i=0; i<k+1; i++) c[i]=0;
9 for (int j=0; j <n; j++) c[arr[j]]=c[arr[j]]+1; //*
10 for (int i=1; i <k+1; i++) c[i] = c[i] + c[i-1]; //**
11 for (int j=n-1; j >= 0; j--) //***
12 {
13 b[c[arr[j]]-1]=arr[j];
14 c[arr[j]]=c[arr[j]]-1;
15 }
16 return b;
17 }
18 public static void main(String[] args)
19 {
20 int[] arr = new int[] {5,0,2,1,3,0,5};
21 arr = what(arr,5);
22 for (int i=0; i < arr.length; i++) System.out.println(arr[i]);
23 }
24}סרטט את המערך c לאחר ביצוע הלולאה המסומנת //*.
סרטט את המערך c לאחר ביצוע הלולאה המסומנת //**.
עקוב אחר ביצוע הלולאה המסומנת //***. במעקב עליך להראות את arr[j], c[arr[j]], b[c[arr[j]]-1], המערך b והמערך c.
מה מבצעת הפעולה what / What?
מהי סיבוכיות זמן הריצה של הפעולה what ב-Java או What ב-C#? נמק את תשובתך.