שאלת מבחן באלגוריתמים - האוניברסיטה הפתוחה 2026 - תכנות דינמי
תת-סדרה רצופה של הסדרה הינה סדרה מהצורה , עבור איזשהם . הציגו אלגוריתם שבהינתן סדרת מספרים שלמים מוצא בתוכה את תת-הסדרה הרצופה שסכומה מרבי. למשל, בסדרת הקלט תת-הסדרה הרצופה שסכומה מרבי הינה שסכומה .
על האלגוריתם המוצע לרוץ בזמן , כשבניתוח זמן הריצה מניחים שכל פעולה אלמנטרית על מספרים (כגון חיבור, חיסור, השוואה) מתבצעת בזמן .
על האלגוריתם המוצע לרוץ בזמן , כשבניתוח זמן הריצה מניחים שכל פעולה אלמנטרית על מספרים (כגון חיבור, חיסור, השוואה) מתבצעת בזמן .
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
האוניברסיטה הפתוחה812026סמסטר א
★★★★★
תכנות דינמיניתוח אלגוריתמיםסיבוכיות
הגדר = הסכום המרבי של תת-סדרה רצופה המסתיימת ב-, ובנה את הנסיגה . עבור על הסדרה פעם אחת ועקוב אחר המקסימום הגלובלי.
הגדרת תת-בעיה: יהי הסכום המרבי של תת-סדרה רצופה המסתיימת באינדקס (כולל האפשרות לסכום בלבד).
נוסחת נסיגה:
נכונות: תת-הסדרה המסתיימת ב- עם סכום מרבי היא:
- הרחבה של התת-סדרה האופטימלית המסתיימת ב-, אם , או
- בלבד, אם .
שני המקרים מתמצים ב-. הסכום המרבי הכולל הוא .
האלגוריתם:
סיבוכיות: לולאה אחת של איטרציות, כל אחת מבצעת פעולות. סה"כ: .
נוסחת נסיגה:
נכונות: תת-הסדרה המסתיימת ב- עם סכום מרבי היא:
- הרחבה של התת-סדרה האופטימלית המסתיימת ב-, אם , או
- בלבד, אם .
שני המקרים מתמצים ב-. הסכום המרבי הכולל הוא .
האלגוריתם:
opt ← x_1
maxSub ← x_1
לכל i מ-2 עד n:
opt ← max(opt + x_i, x_i)
maxSub ← max(maxSub, opt)
החזר maxSub
סיבוכיות: לולאה אחת של איטרציות, כל אחת מבצעת פעולות. סה"כ: .