מבני נתונים ואלגוריתמים - מחברת קורס/שיעורי בית 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
עריכההיא פונקציה חיובית ממש, מונוטונית עולה, ושואפת לאינסוף. אנא הוכח שקיימת פונקציה כך שמתקיים אבל הגבול אינו קיים.