סעיף א
נתונה הפעולה why המקבלת מערך של מספרים שלמים:
public static void why (int[] arr){
int[] temp = new int[arr.length];
int k = 0;
for (int i = 0; i < arr.length; i++)
if (arr[i] < 0)
temp[k++] = arr[i];
for (int i = 0; i < arr.length; i++)
if (arr[i] >= 0)
temp[k++] = arr[i];
for (int i = 0; i < arr.length; i++)
arr[i] = temp[i];
}
- נתון מערך
int[] arr = {12, 0, -344, -46, 670, 0};. מה יהיה תוכן המערך אחרי זימון הפעולה why(arr)? - מה מבצעת הפעולה why באופן כללי?
סעיף ב
נתונה הפעולה what המקבלת מערך מספרים שלמים:
public static void what (int[] arr){
int start = 0;
int end = arr.length - 1;
while (start < end)
{
if (arr[start] > 0)
start ++;
else if (arr[end] >= 0)
end --;
else
{
int temp = arr[end];
arr[end] = arr[start];
arr[start] = temp;
}
}
}
- נתון מערך
int[] arr = {123, -45, -678, 12, -345, 67};. מה יהיה תוכן המערך אחרי זימון הפעולה what(arr)? - תנו דוגמה למערך brr בגודל של חמישה תאים, כך התוכן של המערך לא ישתנה אחרי ביצוע הפעולה what(brr).
- מה מבצעת הפעולה what באופן כללי?
סעיף ג
האם קיים מערך crr בגודל של שישה תאים, שעבורו שני זימונים why(crr) ו-what(crr) יביאו לאותן תוצאות? אם כן – תנו דוגמה של המערך crr, אם לא – הסבירו למה.
סעיף ד
מה הן סיבוכיות זמן הריצה של הפעולות what ו-why?
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.