01-12-2011, 23:37
|
|
|
|
חבר מתאריך: 30.05.02
הודעות: 8,838
|
|
השיטה הראשונה שלך יותר טובה - צור מערך חדש, עדיף להתרגל כבר בהתחלה שכל סוג של אובייקט (או משתנה במקרה הזה) עושה את התפקיד המוגדר שלו.
הכיוון שלך הוא נכון מאוד - אתה מכניס את הסכומים למערך ואז אתה יכול למיין את הערכים.
אין לך מה להילחץ ממיון המערך, תנסה לחשוב על השיטה הכי פשוטה - למצוא את המספר הכי קטן ולהעלות אותו למעלה. אני ממליץ לך לצייר על דף את הצורה של שתי המטריצות ומשם לראות איך אתה מתרגם את זה לאלגוריתם.
בצד שמאל המטריצה, בצד ימין המערך שבנית עם סכומי כל שורה
ניסיון לדוגמא:
קוד PHP:
1 2 3 | 6
1 1 1 | 3
1 2 2 | 5
נניח עכשיו שזאת היתה מטריצה הרבה יותר גדולה, עם 500 שורות, איך היית עושה את זה אם הייתי אומר שאין לך מקום פנוי, רק המערך והמטריצה? (על דף, לא על מחשב)
סביר להניח שכל פעם היית מחפש את הסכום הכי קטן ומחליף אותו עם השורה הראשונה, אחרי זה את הסכום השני הכי קטן, ומחליף אותו עם השורה השניה וכן הלאה... עד שהיית מגיע לשורה ה499 (נסה לחשוב למה) ואז היית מסיים עם המטריצה ממויינת.
שלב א' מציאת הערך הכי קטן:
קוד PHP:
1 2 3 | 6
1 1 1 | 3 ====> זה הערך הכי קטן, אך גילינו את זה רק שעברנו על כל המערך
1 2 2 | 5
שלב ב': החלפה
קוד PHP:
1 1 1 | 3 ====> החלפנו את השורה של הערך הכי קטן עם השורה הראשונה, שים לב שהחלפתי גם במטריצה.
1 2 3 | 6
1 2 2 | 5
שלב ג': מציאת החלק הכי קטן
קוד PHP:
1 1 1 | 3 ====> אנחנו לא צריכים לבדוק את השורה הזאת, אנחנו יודעים שזה הערך הכי קטן
1 2 3 | 6 ====> מתחילים לחפש מכאן
1 2 2 | 5 ====> אחרי סריקת המערך גילינו שזה הערך הבא הכי קטן
שלב ד: החלפה
קוד PHP:
1 1 1 | 3
1 2 2 | 5
1 2 3 | 6
סיימנו.
עכשיו תנסה לחשוב איך אתה הופך את זה לקוד
_____________________________________
הגלריה שלי בפליקר
|