שאלת מבחן במבוא למדעי המחשב - הטכניון 2020 - חיפוש בינארי
שאלה 2 (25 נקודות):
נתון מערך
תזכורת: סדרה חשבונית היא סדרה של מספרים, שבה ההפרש בין כל שני איברים עוקבים הוא קבוע: , כאשר הוא האיבר ה--י בסדרה.
ממשו את הפונקציה
שמוצאת את האינדקס במערך בו היה אמור להופיע האיבר הראשון בתת-הסדרה החסרה.
דוגמה: עבור המערך הפונקציה תחזיר , כי זהו האינדקס בו היה אמור להופיע האיבר הבא אחרי המספר בסדרה החשבונית.
דרישות:
• ממשו את הפונקציה בסיבוכיות זמן .
אם לא עמדתם בדרישות הסיבוכיות, אנא ציינו כאן את הסיבוכיות שהגעתם אליה:
זמן ____________ מקום נוסף _______
נתון מערך
arr באורך שמכיל רצף של איברים עוקבים מסדרה חשבונית. תת-סדרה אחת של הסדרה החשבונית (באורך של איבר אחד לפחות) חסרה.תזכורת: סדרה חשבונית היא סדרה של מספרים, שבה ההפרש בין כל שני איברים עוקבים הוא קבוע: , כאשר הוא האיבר ה--י בסדרה.
ממשו את הפונקציה
שמוצאת את האינדקס במערך בו היה אמור להופיע האיבר הראשון בתת-הסדרה החסרה.
דוגמה: עבור המערך הפונקציה תחזיר , כי זהו האינדקס בו היה אמור להופיע האיבר הבא אחרי המספר בסדרה החשבונית.
דרישות:
• ממשו את הפונקציה בסיבוכיות זמן .
אם לא עמדתם בדרישות הסיבוכיות, אנא ציינו כאן את הסיבוכיות שהגעתם אליה:
זמן ____________ מקום נוסף _______
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
הטכניוןמועד ב2020סמסטר א
★★★★★
חיפוש בינארימערכיםסיבוכיות זמןסיבוכיות מקוםתת-סדרה
שימו לב שאם לא חסר כלום עד אינדקס , מתקיים בדיוק. תכונה זו מונוטונית — נסו להשתמש בה לחיפוש בינארי לאחר שתקבעו את מתוך שלושת האיברים הראשונים.
רעיון מרכזי: נשתמש בחיפוש בינארי כדי למצוא את האינדקס הראשון שבו הערך במערך סוטה מהערך הצפוי בסדרה.
שלב 1 – מציאת ההפרש
מכיוון שיש רק פער אחד רציף, לפחות שניים מתוך שלושת האיברים הראשונים
שלב 2 – תנאי העקביות
אם לא חסר כלום עד אינדקס , אז הערך הצפוי הוא:
ברגע שהפער מופיע, כל האיברים מאותו מקום ואילך יסטו מהערך הצפוי.
שלב 3 – חיפוש בינארי
מחפשים את האינדקס הקטן ביותר שבו :
מימוש:
אימות עם הדוגמה: ,
סיבוכיות:
שלב 1 – מציאת ההפרש
מכיוון שיש רק פער אחד רציף, לפחות שניים מתוך שלושת האיברים הראשונים
arr[0], arr[1], arr[2] הם עוקבים בסדרה המקורית. לכן:שלב 2 – תנאי העקביות
אם לא חסר כלום עד אינדקס , אז הערך הצפוי הוא:
ברגע שהפער מופיע, כל האיברים מאותו מקום ואילך יסטו מהערך הצפוי.
שלב 3 – חיפוש בינארי
מחפשים את האינדקס הקטן ביותר שבו :
- אם — הפער נמצא מימין, נעביר את .
- אחרת — הפער נמצא כאן או שמאלה, נעביר .
מימוש:
אימות עם הדוגמה: ,
- חיפוש בינארי: : צפוי
- : צפוי
- : צפוי
- , מוחזר 3 ✓
סיבוכיות:
- זמן: — חיפוש בינארי על מערך באורך .
- מקום נוסף: — רק משתנים בודדים.