- הגשות
- פתרונות
- פתרון רשמי
- תיאור
נתונה השגרה הבאה, המקבלת כקלט מערך A בן n איברים:
Return_What(A, n)
m ← A[1]
c ← 1
i ← 2
while i ≤ n
if A[i] > m then
m ← A[i]
c ← 1
else
c ← c + 1
i ← i + 1
return c
א. מה מחזירה השגרה עבור הקלט \(A=[3,1,4,2,8,5,7]\) ו-\(n=7\)?
ב. מה מחזירה השגרה כפונקציה של הקלט? ענו במשפט מילולי קצר.
ג. נסחו שמורת לולאה מתאימה, שבאמצעותה ניתן להוכיח את טענתכם מסעיף ב'. אין צורך להוכיח את נכונות השמורה.
הבהרות:
- האינדקס הראשון במערך A הוא 1.
- ניתן להניח כי איברי המערך A ייחודיים (ללא חזרות).
- בשמורת הלולאה יש להתייחס למשתנים \(c\) ו-\(i\).
עקבו אחר ערכי המשתנים \(m\) ו-\(c\) במהלך ריצת הלולאה. שימו לב מתי \(c\) מאותחל ל-1 ומתי הוא גדל. מה מייצג ערכו של \(c\) ביחס למיקום של האיבר המקסימלי שנמצא עד כה?