מבני נתונים ואלגוריתמים - מחברת קורס/שיעורי בית 1/שאלות
![]() |
שימו לב: *נא להגיש רק את שאלות 1-5.
|
1עריכה
אנא הוכח או הפרך את הטענות הבאות:
- .
- .
- .
- .
- .
שימו לב: הכוונה בסעיף הראשון לפונקציה הקבועה , ולא לקבוע 80. |
2עריכה
נתונות שתי פונקציות:
כאשר
.
- האם ?
- האם ?
3עריכה
נתבונן בפסוודו-קוד הבא:
Foo(n)
1 Bar-1(n)
2 Bar-2(n)
3 Bar-3(n)
נתון:
- זמן הריצה של
Bar-1(n)
הוא . - זמן הריצה של
Bar-2(n)
הוא . - זמן הריצה של
Bar-3(n)
הוא .
עבור כל אחד מהחסמים הבאים, אנא ציין האם הוא בהכרח מתקיים, בהכרח לא מתקיים, או שאי אפשר לקבוע בוודאות האם הוא בהכרח מתקיים או לא:
- זמן הריצה של
Foo(n)
הוא . - זמן הריצה של
Foo(n)
הוא . - זמן הריצה של
Foo(n)
הוא .
4עריכה
אנא כתוב מימוש יעיל לפונקציה Find-Num-In-Range(A, a, b)
, המקבלת:
- מערך ממויין
A
של מספרים שלמים חיוביים - מספר שלם חיובי
a
- מספר שלם חיובי
b
גדול ממש מa
ומחזירה את מספר האיברים בA
שכל אחד מהם נמצא בתחום .
דוגמה: אם
|
- הערה: אנא מצא מימוש הפועל בזמן לוגריתמי באורך המערך.
5עריכה
להלן הפונקציה Merge
המקבלת שני מערכים ממויינים:
# Merge.
# Takes two sorted arrays (L, R).
# Returns a sorted array of L ∪ R.
Merge(L, R)
1 Merged = Make-Array( Length(L) + Length(R) )
2 l = r = m = 1
3 while l <= Length(L) or r <= Length(R)
4 if r > Length(R)
5 Merged[m++] = L[l++]
6 else if l > Length(L)
7 Merged[m++] = R[r++]
8 else if L[l] < R[r]
9 Merged[m++] = L[l++]
10 else
11 Merged[m++] = R[r++]
12 return Merged
אנא הוכח שהפונקציה מחזירה מערך ממויין המכיל את איחוד ערכי מערכי הכניסה, ונתח את סיבוכיות הפונקציה.
6עריכה
אנא הוכח אחד מחסמי האינטגרלים הבאים (שתי ההוכחות דומות מאד זו לזו):
- אם מונוטונית לא יורדת, אז
- אם מונוטונית לא עולה, אז
7עריכה
ו הן פונקציות חיוביות ממש, והגבול קיים ושווה ל . אנא הוכח או הפרך את הטענה הבאה: אם או , אז .
8עריכה
אנא הוכח או הפרך כ"א מהכללים הבאים:
9עריכה
היא פונקציה חיובית ממש, מונוטונית עולה, ושואפת לאינסוף. אנא הוכח שקיימת פונקציה כך שמתקיים אבל הגבול אינו קיים.