בתחרות האירוויזיון מתמודדים שירים ממדינות שונות באירופה, וחלק מהדירוג נקבע על פי הצבעות הצופים. הציעו מבנה נתונים S אשר מייצג הצבעות לאירוויזיון, ושבאמצעותו ניתן לבצע את הפעולות הבאות עם זמני הריצה המצויים ליד כל שגרה.הצבעה לאירוויזיון מיוצגת ע"י רשומה המכילה שני שדות:
זמן הצבעה Time - סדרה ייחודית של 6 ספרות המבטאת את שעת ההצבעה,
לדוגמא הסדרה 221015 מבטאת את שעת ההצבעה 22:10:15.
שדה בוליאני Vote - שערכו הוא TRUE אם ההצבעה הייתה עבור ישראל.א) (4 נקודות) תארו את מבנה הנתונים: באיזה מבנה/מבנים תשתמשו? מהו גודלו/גודלם? מהם השדות והמפתחות בהם מהי משמעותם? מומלץ לשרטט.ב) (8 נקודות) כתבו את שגרת BUILD(S, A).
אם אתם משתמשים בשיטת החציונים יש לפרט. ג) (5 נקודות) כתבו את שגרת COUNT(S). ד) (8 נקודות) כתבו את שגרת COUNT(S, Time1, Time2). הערות: - המבנה צריך להיות כזה שמאפשר את כל הפעולות המפורטות ביעילות הנדרשת, אך אין צורך לכתוב את כל השגרות, אלא רק את השגרות שהתבקשתם.
האוניברסיטה הפתוחהמועד א2 · 2025 · סמסטר ב
תכנון מבנה נתוניםמבני נתונים מורחביםעץ סדר סטטיסטימיון ספרותסיבוכיותעצי חיפושאלגוריתמים
בשאלה זו נתייחס לקטע על הישר הממשי באמצעות ההגדרות הבאות:
קטע על הישר הממשי נתון ע"י זוג נקודות- (a,b), a≤b, שהם נקודת ההתחלה והסיום שלו.
אורך של קטע: L=b−aהציעו מבנה S אשר מייצג קטעים על הישר הממשי, ושבאמצעותו ניתן לבצע את הפעולות הבאות עם זמני הריצה המצויים ליד כל שגרה.
INSERT(S, (a,b)): מכניס את הקטע (a,b) למבנה S, רק אם נקודת ההתחלה שלו a היא ייחודית, כלומר שונה מכל נקודת התחלה אחרת במבנה, בזמן O(logn).
LONGEST(S, a): מחזיר את אורך הקטע (או קטעים) הארוך ביותר במבנה S, מבין כל הקטעים שנקודות ההתחלה שלהם גדולות או שוות ל-a, בזמן O(logn).
הערה: לא ידוע אם קיים קטע עם נקודת ההתחלה המסוימת a.
RANGE(S, L_1, L_2): בהינתן שני מספרים שלמים L1,L2, מחזיר את מספר הקטעים באורך L, כך ש L1≤L≤L2, בזמן O(logn).
הערה: לא ידוע אם קיימים קטעים באורך L1,L2 במבנה.א) (9 נקודות) תארו את מבנה הנתונים: באיזה מבנה/מבנים תשתמשו? מהו גודלו/גודלם? מהם השדות והמפתחות בהם ומהי משמעותם? מומלץ לשרטט.
אם אתם משתמשים בשדות הרחבה לעץ א"ש הראו את העמידה בתנאי 14.1 ע"י נוסחא.ב) (8 נקודות) כתבו את שגרת LONGEST(S, a).ג) (8 נקודות) כתבו את שגרת RANGE(S, L_1, L_2).הערות:- המבנה צריך להיות כזה שמאפשר את כל הפעולות המפורטות ביעילות הנדרשת, אך אין צורך לכתוב את כל השגרות, אלא רק את השגרות שהתבקשתם.
- אין להשתמש במבנה עץ קטעים המופיע בפרק 14.3 בספר הלימוד (פרק רשות בקורס)
האוניברסיטה הפתוחהמועד א1 · 2025 · סמסטר ב
תכנון מבנה נתוניםעץ אדום-שחורמבני נתונים מורחביםעץ סדר סטטיסטיסיבוכיותניתוח אלגוריתמים
בשאלה זו נתייחס לקטע על הישר הממשי באמצעות ההגדרות הבאות:
קטע על הישר הממשי נתון ע"י זוג נקודות- (a,b), a≤b, שהם נקודת ההתחלה והסיום שלו.
אורך של קטע: L=b−aהציעו מבנה S אשר מייצג קטעים על הישר הממשי, ושבאמצעותו ניתן לבצע את הפעולות הבאות עם זמני הריצה המצויים ליד כל שגרה.
INSERT(S, (a,b)): מכניס את הקטע (a,b) למבנה S, רק אם נקודת ההתחלה שלו a היא ייחודית, כלומר שונה מכל נקודת התחלה אחרת במבנה, בזמן O(logn).
LONGEST(S, a): מחזיר את אורך הקטע (או קטעים) הארוך ביותר במבנה S, מבין כל הקטעים שנקודות ההתחלה שלהם גדולות או שוות ל-a, בזמן O(k+logn), כאשר k הוא מספר הקטעים שנקודות ההתחלה שלהם גדולות או שוות ל-a.
הערה: לא ידוע אם קיים קטע עם נקודת ההתחלה המסוימת a.
RANGE(S, L_1, L_2): בהינתן שני מספרים שלמים L1,L2, מחזיר את מספר הקטעים באורך L, כך ש L1≤L≤L2, בזמן O(logn).
הערה: לא ידוע אם קיימים קטעים באורך L1,L2 במבנה.א. (9 נקודות) תארו את מבנה הנתונים: באיזה מבנה/מבנים תשתמשו? מהו גודלו/גודלם? מהם השדות והמפתחות בהם מהי משמעותם? מומלץ לשרטט.ב. (8 נקודות) כתבו את שגרת LONGEST(S, a).ג. (8 נקודות) כתבו את שגרת RANGE(S, L_1, L_2).הערות:- המבנה צריך להיות כזה שמאפשר את כל הפעולות המפורטות ביעילות הנדרשת, אך אין צורך לכתוב את כל השגרות, אלא רק את השגרות שהתבקשתם.
- אין להשתמש במבנה עץ קטעים המופיע בפרק 14.3 בספר הלימוד (פרק רשות בקורס)
האוניברסיטה הפתוחהמועד א1 · 2025 · סמסטר ב
תכנון מבנה נתוניםמבני נתוניםסיבוכיותעץ אדום-שחורעץ סדר סטטיסטימבני נתונים מורחביםחיפוש
השאלה מיועדת רק לסטודנטים שלמדו בשנת 2024
האוניברסיטה הפתוחה התחילה בתוכנית מלגות חדשה, שבה נמצאים n סטודנטים.
לכל סטודנט בתוכנית ידועה הכנסתו החודשית, והמלגה הראשונית שהוא מקבל.
ההכנסה החודשית היא מספר וייחודי (אין שני סטודנטים עם אותה הכנסה חודשית).לפרקים האוניברסיטה מגדילה את גודל המלגה הניתנת לסטודנטים מסוימים, ע"י השגרה INCREASE−AMOUNT(salary) להלן. נסמן את מספר ההגדלות הכולל במשתנה m.הציעו מבנה נתונים S התומך בפעולות הבאות בזמני ריצה המצויינים:INSERT(salary,amount): הכנסת סטודנט חדש שהכנסתו החודשית היא salary, ושערך המלגה הנוכחית שלו היא amount, בזמן O(logn+logm).INCREASE−AMOUNT(salary): תוספת 1000 ₪ למלגת כל סטודנט שהכנסתו החודשית קטנה או שווה ל-salary ונמצא במבנה, בזמן O(logm). תוכלו להניח שהשגרה INCREASE−AMOUNT לא נקראת פעמיים עם אותו salary.ASSESS−AMOUNT(salary): החזרת המלגה הכוללת לסטודנט שהכנסתו החודשית היא salary, בזמן O(logn+logm). תוכלו להניח שקיים במבנה סטודנט שהכנסתו החודשית היא salary.א) (9 נקודות) תארו את מבנה הנתונים: באיזה מבנה/מבנים תשתמשו? מהו גודלו/גודלם? מהם השדות והמפתחות בהם מהי משמעותם? מומלץ לשרטט.
ב) (8 נקודות) כתבו את שגרת INSERT(salary,amount).
ג) (8 נקודות) כתבו את שגרת ASSESS−AMOUNT(salary).דוגמא: שחר נמצא בתוכנית המלגות, עם הכנסה חודשית 52 ₪, ומלגה ראשונית 600 ₪.
נבצע INCREASE−AMOUNT(60) ואז INCREASE−AMOUNT(75).
כעת ASSESS−AMOUNT(52) יחזיר 2600 ₪ (כי הכנסתו של שחר קטנה מ-60 ₪, ומ-75 ₪).
כעת נכניס את דניאל לתוכנית. הכנסתה החודשית של דניאל היא 59 ש"ח, והמלגה הראשונית שהיא מקבלת היא 1200 ₪. כעת ASSESS−AMOUNT(59) יחזיר 1200 ₪.הערות:- המבנה צריך להיות כזה שמאפשר את כל הפעולות המפורטות ביעילות הנדרשת, אך אין צורך לכתוב את כל השגרות, אלא רק את השגרות שהתבקשתם.
האוניברסיטה הפתוחהמועד ב · 2025 · סמסטר ב
תכנון מבנה נתוניםמבני נתונים מורחביםעץ סדר סטטיסטיעצי חיפושסיבוכיות
הציעו מבנה-נתונים S אשר מתחזק n מספרים שונים זה מזה ותומך בשגרות הבאות בזמני הריצה המצוינים ליד כל שגרה:- Build(S,A): בניית המבנה S מתוך מערך ממוין A של n מספרים ייחודיים, זמן ריצה: O(n).
- Insert(S,k): הכנסת המספר השלם k למבנה S, זמן ריצה: O(lgn).
- Delete(S,x): מחיקת האיבר אליו מצביע x מהמבנה S, זמן ריצה: O(lgn).
- Search(S,k): חיפוש המפתח k במבנה S, זמן ריצה: O(lgn).
- Median(S): החזרת חציון המפתחות במבנה S, זמן ריצה: O(1).
- Between(S,k1,k2): החזרת כמות המפתחות במבנה S המקיימים k1≤k≤k2, זמן ריצה: O(lgn).
הערה: המפתחות k1,k2 לאו דווקא חלק מהמבנה S.תארו את האלגוריתמים באופן מילולי ובקצרה (שימו לב לכתוב סדרת פעולות בצורה חד משמעית, ברורה ומדויקת ולא רק תאור כללי). נתחו בקצרה נכונות וסיבוכיות. האוניברסיטה הפתוחהמבחן סמסטר א · 2024 · סמסטר א
עצי חיפושסיבוכיותערימותעץ סדר סטטיסטיסטטיסטיקות סדרסטטיסטיקת סדרחציון
תַּכְננו מבנה נתונים S שבאמצעותו ניתן לבצע את הפעולות הבאות בסיבוכיות זמן ריצה של Θ(logn), כאשר n מציין את מספר האיברים במבנה. הניחו כי כל האיברים במבנה שונים זה מזה.- insert(S,k) - הכנסת איבר בעל המפתח x ל-S.
- find(S,k) - החזרת איבר בעל המפתח x ב-S, אם קיים. אחרת, מחזירה NIL.
- inversions(S,k) - אם קיים במבנה איבר בעל המפתח k, השגרה תחזיר את מספר ההיפוכים עבור k.
הגדרת היפוך: כל איבר בעל מפתח l שהוכנס לפני k (כלומר לפני האיבר שערך המפתח שלו הוא k) והמקיים l>k.
במילים אחרות, היפוך הוא זוג-איברים שנמצאים במבנה, אשר הוכנסו אליו בסדר הפוך ליחס-הערכים של מפתחותיהם; כלומר-- האיבר בעל המפתח הגדול הוכנס לפני האיבר בעל המפתח הקטן. האוניברסיטה הפתוחהמבחן סמסטר א · 2019 · סמסטר א
עצי חיפושסיבוכיותעץ אדום-שחורעץ סדר סטטיסטי