נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
מדעי המחשב
RSS UnderWarrior Forums : RSS מדעי המחשב
נושא

נושא: Merge Sort אנשים, זה דחוף!!!

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
מישואית
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 08 July 2007
מדינה: Israel
משתמש: מנותק/ת
הודעות: 11
נשלח בתאריך: 12 July 2007 בשעה 23:07 | IP רשוּם
ציטוט מישואית

בס"ד.

אנשים!!!!

אני יושבת כבר שעות, מנסה להבין את המימוש של מיון מיזוג (ימח שמו!!) ואני לא מצליחה!!!

המימוש הולך ככה:

(MergeSort(A,left,right
If left < right then
           [mid=[(left+right)/2
(MergeSort(A, left, mid
(MergeSort(A, mid+1, right
( Merge (A, left, mid, right

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

אוף!! אני חייבת שמישהו יסביר לי את זה!!! :(

חזרה לתחילת העמוד הצג את כרטיס החבר של מישואית חפש הודעות אחרות של מישואית בקר בדף הבית של מישואית
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 13 July 2007 בשעה 00:10 | IP רשוּם
ציטוט shoshan

ברגע שיש שני מערכים ממוינית אפשר לעשות להם מיזוג (למערך ממויין יותר גדול)

וזה קורה בכל קריאה רקורסיבית עד שזה קורה על כל המערך...


__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
מישואית
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 08 July 2007
מדינה: Israel
משתמש: מנותק/ת
הודעות: 11
נשלח בתאריך: 13 July 2007 בשעה 00:55 | IP רשוּם
ציטוט מישואית

בס"ד.

אבל זה לא ממש ממיין את המערכים; הוא רק מחלק אותם שוב ושוב ושוב; השאלה שלי- מתי נעשית השורה האחרונה?? מייד אחרי שמחלקים חצי מערך (ונשאר ממנו רק איבר אחד?) או שקודם האלגוריתם מחלק את שני החצאים ואז הוא עובד על כ"א בנפרד???

 

:(

מקווה שהבנת אותי... ותודה רבה רבה...

חזרה לתחילת העמוד הצג את כרטיס החבר של מישואית חפש הודעות אחרות של מישואית בקר בדף הבית של מישואית
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 13 July 2007 בשעה 01:07 | IP רשוּם
ציטוט shoshan

הואי נראה אם הבנתי,

החלוקה מתבצעת ע"י האינדקסים (left, right)

השורה האחרונה מתבצעת בכל קריאה, כלומר הראשונה, שנייה, ..., N עבור כל זוג מערכים בגודל 1, ואז קריאות עבור מערכים בגודל 2 (שכל אחד מהם ממויין) ואז 3, וכן הלאה...


__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
מישואית
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 08 July 2007
מדינה: Israel
משתמש: מנותק/ת
הודעות: 11
נשלח בתאריך: 13 July 2007 בשעה 01:39 | IP רשוּם
ציטוט מישואית

בס"ד.

אז אתה אומר שהשורה השלישית מתבצעת אחרי כל שלב של חלוקה, סבבה.

אבל הרי המערך חולק מלחתכילה ל2, אז בהשורה האחרונה מתבצעת אחרי כל חלוקה של צד שמאל של המערך ורק אחרי שהוא ממויין השורה מתבצעת על צד ימין (-משמע על השורה השניה בif)??

<<יאה... מזה תודה רבה... אתה לא מבין כמה...>>

:|

חזרה לתחילת העמוד הצג את כרטיס החבר של מישואית חפש הודעות אחרות של מישואית בקר בדף הבית של מישואית
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

קפיצה לפורום
אינך יכול/ה לשלוח נושאים חדשים בפורום זה
אינך יכול/ה להגיב לנושאים בפורום זה
אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה
אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה
אינך יכול/ה לצור סקרים בפורום זה
אינך יכול/ה להצביע בסקרים בפורום זה