prepd.

שאלת מבחן באלגוריתמים - האוניברסיטה הפתוחה 2026 - תכנות דינמי

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

על האלגוריתם המוצע לרוץ בזמן
, כשבניתוח זמן הריצה מניחים שכל פעולה אלמנטרית על מספרים (כגון חיבור, חיסור, השוואה) מתבצעת בזמן .
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
האוניברסיטה הפתוחה812026סמסטר א
תכנות דינמיניתוח אלגוריתמיםסיבוכיות
הגדר = הסכום המרבי של תת-סדרה רצופה המסתיימת ב-, ובנה את הנסיגה . עבור על הסדרה פעם אחת ועקוב אחר המקסימום הגלובלי.
הגדרת תת-בעיה: יהי הסכום המרבי של תת-סדרה רצופה המסתיימת באינדקס (כולל האפשרות לסכום בלבד).

נוסחת נסיגה:



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

שני המקרים מתמצים ב-
. הסכום המרבי הכולל הוא .

האלגוריתם:
opt ← x_1
maxSub ← x_1
לכל i מ-2 עד n:
    opt ← max(opt + x_i, x_i)
    maxSub ← max(maxSub, opt)
החזר maxSub


סיבוכיות: לולאה אחת של
איטרציות, כל אחת מבצעת פעולות. סה"כ: .