טוען...
טוען...
שים לב
בכל שאלה שנדרש בה מימוש אתה יכול להשתמש בפעולות של המחלקות תור, מחסנית, עץ בינרי וחוליה, בלי לממש אותן. אם אתה משתמש בפעולות נוספות, עליך לממש אותן.
לפניך הפעולות sod ו־ what המקבלות מערך a שאיבריו מטיפוס שלם, ממוין בסדר עולה, ומספר שלם k. לשתי הפעולות אותה טענת יציאה.
public static boolean sod(int[] a, int k)
{
for (int i=0; i < a.length-1; i++)
{
int j=i+1;
while (j < a.length)
{
if (a[i]+a[j] == k)
return true;
j++;
}
}
return false;
}
public static boolean what(int[] a, int k)
{
int left = 0, right = a.length-1;
while (left < right)
{
if (a[left]+a[right] == k)
return true;
if (a[left]+a[right] < k)
left++;
else
right--;
}
return false;
}נתון מערך a:
עקוב בעזרת טבלת מעקב אחר ביצוע הפעולה sod בעבור המערך הנתון a והמספר k = 11. רשום את הערך המוחזר. בטבלת המעקב יש לכלול עמודות בעבור i, j, a[i], a[j], ועמודה נוספת שבה יצוין אם התנאי שבפקודת if מתקיים או אינו מתקיים.
עקוב בעזרת טבלת מעקב אחר ביצוע הפעולה sod בעבור המערך הנתון a והמספר k = 10. רשום את הערך המוחזר.
בטבלת המעקב יש לכלול את העמודות שפורטו בסעיף א.
מהי טענת היציאה של הפעולה sod?
מהי סיבוכיות זמן הריצה של הפעולה sod? נמק את תשובתך.
עקוב בעזרת טבלת מעקב אחר ביצוע הפעולה what בעבור המערך הנתון a והמספר k = 11. רשום את הערך המוחזר. בטבלת המעקב יש לכלול עמודות בעבור left, right, a[left], a[right], ושתי עמודות נוספות לכל אחת מפקודות if. בכל עמודה יצוין אם התנאי בפקודת if מתקיים או אינו מתקיים.
מהי סיבוכיות זמן הריצה של הפעולה what? נמק את תשובתך.
מי מבין שתי הפעולות — sod או what — יעילה יותר? נמק את תשובתך.
טענת הכניסה של הפעולות sod ו־what שונתה כך שאפשר להעביר אליהן מערך a לא ממוין.
(1) האם טענת היציאה של הפעולה sod תשתנה? נמק את תשובתך.
(2) האם טענת היציאה של הפעולה what תשתנה? נמק את תשובתך.
שים לב
בכל שאלה שנדרש בה מימוש אתה יכול להשתמש בפעולות של המחלקות תור, מחסנית, עץ בינרי וחוליה, בלי לממש אותן. אם אתה משתמש בפעולות נוספות, עליך לממש אותן.
לפניך הפעולות sod ו־ what המקבלות מערך a שאיבריו מטיפוס שלם, ממוין בסדר עולה, ומספר שלם k. לשתי הפעולות אותה טענת יציאה.
public static boolean sod(int[] a, int k)
{
for (int i=0; i < a.length-1; i++)
{
int j=i+1;
while (j < a.length)
{
if (a[i]+a[j] == k)
return true;
j++;
}
}
return false;
}
public static boolean what(int[] a, int k)
{
int left = 0, right = a.length-1;
while (left < right)
{
if (a[left]+a[right] == k)
return true;
if (a[left]+a[right] < k)
left++;
else
right--;
}
return false;
}נתון מערך a:
עקוב בעזרת טבלת מעקב אחר ביצוע הפעולה sod בעבור המערך הנתון a והמספר k = 11. רשום את הערך המוחזר. בטבלת המעקב יש לכלול עמודות בעבור i, j, a[i], a[j], ועמודה נוספת שבה יצוין אם התנאי שבפקודת if מתקיים או אינו מתקיים.
עקוב בעזרת טבלת מעקב אחר ביצוע הפעולה sod בעבור המערך הנתון a והמספר k = 10. רשום את הערך המוחזר.
בטבלת המעקב יש לכלול את העמודות שפורטו בסעיף א.
מהי טענת היציאה של הפעולה sod?
מהי סיבוכיות זמן הריצה של הפעולה sod? נמק את תשובתך.
עקוב בעזרת טבלת מעקב אחר ביצוע הפעולה what בעבור המערך הנתון a והמספר k = 11. רשום את הערך המוחזר. בטבלת המעקב יש לכלול עמודות בעבור left, right, a[left], a[right], ושתי עמודות נוספות לכל אחת מפקודות if. בכל עמודה יצוין אם התנאי בפקודת if מתקיים או אינו מתקיים.
מהי סיבוכיות זמן הריצה של הפעולה what? נמק את תשובתך.
מי מבין שתי הפעולות — sod או what — יעילה יותר? נמק את תשובתך.
טענת הכניסה של הפעולות sod ו־what שונתה כך שאפשר להעביר אליהן מערך a לא ממוין.
(1) האם טענת היציאה של הפעולה sod תשתנה? נמק את תשובתך.
(2) האם טענת היציאה של הפעולה what תשתנה? נמק את תשובתך.