מערך דינמי הוא מבנים נתונים כי באופן אוטומטי להתאים אלמנטים חדשים.הם בשימוש נרחב בשפות תכנות כדי לנהל אוספים של נתונים ביעילות.הבנת כיצד ליישם אותם ביעילות כרוך איזון של עלויות עם ביצועים הכוללים.

יסודות של קרינת דינמי

מערך דינמי מתחיל עם יכולת ראשונית קבועה.כאשר מערך מגיע למגבלתו, הוא עולה לגודל גדול יותר, בדרך כלל על ידי הכפלת יכולתו.תהליך זה מהדהד כרוך בהקצאת זיכרון חדש ועיבוד אלמנטים קיימים, אשר יכול להיות יקר אם נעשה לעתים קרובות.

אסטרטגיות

בחירת מתי וכיצד לשנות את הביצועים.אסטרטגיות נפוצות כוללות:

  • (ב) ,0) , קיבולת של ההרחבה: ⁇ 1 (ב) מעלה את גודלה באופן אקספונציאלי, צמצום תדירות ההשמצה.
  • (ב) ,0) חידושים מצטברים: ⁇ 1 (ה) מוסיף מספר קבוע של חריצים בכל פעם, אשר יכול להוביל לשיפוץ תכוף יותר.
  • (ב) ⁇ :0) ,Hybrid גישות: FLT:1Builde אלמנטים של שתי האסטרטגיות עבור מקרים ספציפיים.

מינוף עלויות וביצועים

כדי לייעל את הביצועים, חיוני למזער את מספר הגדלים.היכולת דובוללינג היא לעתים קרובות המועדפת כי זה מנבא את העלות על פני הרבה הכניסות.עם זאת, צעדים גדולים יותר בגודל עשוי להוביל לשימוש זיכרון מוגבר.מפתחים חייבים לשקול את הצרכים הספציפיים של היישום לבחור את הגישה הטובה ביותר.

המונחים:

כאשר אתה מבצע מערך דינמי, שקול את הדברים הבאים:

  • התחל עם יכולת ראשונית שמתאימה לגודל הנתונים הצפוי.
  • גודל על ידי הכפלה כדי להפחית את תדירות הפעולות היקרות.
  • העתק אלמנטים ביעילות במהלך resizing כדי למנוע צווארי בקבוק ביצועים.
  • מעקב אחר שימוש בזיכרון כדי למנוע הקצאה מופרזת.