שלום, אני התחלתי ללמוד תכנות רק לא מזמן... בויזואל בייסיק .
יש לי בעיה שאני לא מצליח לפתור כבר מספר ימים.
הבעיה הולכת כך :
יש טבלה עם מספרים וצריך למיין אותה לפי האלגוריתם הזה :
חפש את פעולה עם הערך הכי מינימלי, אם הערך שייך למכונה A אז שבץ את הפעולה בהתחלה.
אם הערך שייך למכונה B אז שבץ את הפעולה בסוף.
חזר על הפעולה עד לסיום כל הפעולות הנתונות.
הבעיה שלי היא שאין בויזואל בייסיק פונקציית מינימום ליותר משני ערכים.. השיטה הזו MATH.MIN לא מקבלת יותר משתי ערכים
ובנוסף צריך לשמור על הסדר והערכים של הפעולות כלומר אסור לבלבל בין המספרים איך שרוצים כמו במיון בועות רגיל...
אני צריך לעשות זאת עבור 10 פעולות וזה די הרבה...
מצורפת דוגמא.
לאלגוריתם קוראים אלגוריתם ג'ונסון - פותר אופטימלית בעיות זימון למכונות.... מקצר זמני בטלה.
נניח שיש לי רק שני פעולות שהערכים שלהם הם דקות כפי שמתואר בטבלה הראשונה בהודעה זו.
הערך המינימלי הוא בפעולה 2 (דקה אחת) עבור מכונה A אני ארצה לשבץ את פעולה 2 במקום פעולה 1
כי הוא מצריך דקה אחת למכונה A ולכן הסדר יהיה קודם נבצע את פעולה 2 ואח"כ את פעולה 1.
דוג' נוספת.
נניח שיש לי שלוש פעולות שהערכים שלהם הם גם דקות כפי שמתואר בטבלה השניה בהודעה זו.
הערך המינימלי הוא בפעולה 1 ( 0 דקות) עבור מכונה B ולכן ארצה לשבץ אותו בסוף הטור - במקום פעולה 3.
הערך המינימלי הבא מתקבל בפעולה 3 (1דקות) עבור מכונה A ולא נרצה לשבץ אותו כמה שיותר מוקדם.. בהתחלה.
לאחר מכן הערך הנמוך הוא (2 דקות) עבור פעולה 2 למכונה A .. אך מכיון שכל המקומות תפוסים מחישובים קודמים והמקום היחידי שנשאר שם הוא ישובץ.