יש מערך של איברים. איך ניתן לבצע בסיבוכיות של O(1) עדכון של כל האיברים במערך SetAll(), Set(index, value) , Get(index).
תשובות
הוסף תשובה
|
לצפיה בתשובות
נובמבר 2018
הוספת אובייקט פנימי לכל המערך שמנוהל ע"י שדה של ערך ושדה של מספר גרסא.
בנוסף יש להוסיף עוד איבר שסופר את מספר הגרסא ועוד איבר שהוא הערך שרוצים לבצע את העדכון שלו בסיבוכיות של (1)O, כל זה יהיה עטוף באובייקט נוסף.
במידה ומבצעים SetAll() הערך הבודד של המערך (שנמצא חיצוני לאיברים שבתוך המערך) מתעדכן ומספר הגרסא עולה +1. ככה שעכשיו בכל הכנסה של איבר חדש נבצע בתוך האיבר הספציפי את הבדיקה האם מספר הגרסא שלו גדולה מהמספר גרסא של האיבר שנמצא לנו באובייקט הכללי של המערך. במידה ונבצע Set(index, value) נעדכן את האיבר במקום הרלוונטי עם גרסא גבוהה מזו של האיבר הכללי של המחלקה החדשה שיצרנו
סניק
50 עובדים
משרדים ראשיים: תל אביב -יפו
חברת הגנה בסייבר. עוסקת במתן שירותי הגנה בסביבות Production של פאקג'ים חדשים.