עבור לתוכן

עזרה עם בעיה בסי (מערכים חד מימדיים)

Featured Replies

פורסם

היי , יש לי אתזה שיעורי בית להגשה למחר ואין לי מושג איך עושים אתזה .. לנושא קוראים מיון תוך כדי שיבוץ:

יש להשוות כל ערך חדש הנכנס למערך לכל הערכים הקודמים שכבר נמצאים בו, כך שמשמאלו יהיה הקטן ממנו ומימינו הגדול ממנו; אם האיבר החדש שיש להכניס הוא X יש לבצע את הפעולות :

1.מוצאים את מקום הI כך ש (X<A(I

2.מזיזים את האיברים הקיימים ממקום I ואילך למקום הבא במערך

3. מכניסים את X למקום הI

תודה לעוזרים :)!

פורסם

אם אתה מעוניין בקוד עצמו, תחפש בגוגל insertion sort.

אם אתה מעוניין בהסבר, אנא פרט מה לא מובן.

פורסם

אפשר לעשות קלט ולאחר מכן להשתמש באלגוריתם sort.

פורסם
  • מחבר

לא למדנו אתזה ..

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

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

פורסם

באינדוקציה (לא בהכרח הפתרון, אלה ההבנה).

אם המערך ריק אז את הראשון אתה שם במקום הראשון.

נניח והמערך ממויין עבור n הערכים הראשונים שהוכנסו את האיבר ה n+1 אתה תכניס כך שכל מי שמשמאלו קטן ממנו וכל מי שמימינו גדול ממנו, בגלל שהמערך היה ממויין עד כה, והכנסת את האיבר למקומו (כלומר הוא שומר על תכונת המיון). קיבלת מערך בן n+1 איברים, ממויין.

אם ההוכחה הפורמלית (בערך) לא מספיקה בשביל להסביר לך למה זה עובד, תנסה להריץ את ה- n הזה מ-1, החוקיות צריכה (בשאיפה להתברר לך).

אם גם זה לא עזר, שב עם נייר ועפרון וקבוצה (נאמר בת 5 איברים - 5,9,1,13,4) ותנסה להריץ את התיאור המילולי של האלגוריתם שלך (מה שפירסמת בהודעה הראשונה) על הקלט הנ"ל (רשימת המספרים)

בהצלחה.

מטי.

פורסם
  • מחבר

תודה על התגובה

מיון מספרים רגיל (min/max או בועות), וזה , זה בעצם אותו דבר לא?

פורסם

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

עבור זה שאתה מכניס אחריו, אתה בודק איפה הוא צריך להיות: לפני זה שהוספת או אחריו. אם זה אחריו אז אין בעיה אתה פשוט שם אותו שם. אם זה לפניו אתה דוחף את הראשון, כך שהשני יהייה לפניו. ככה עד N.

עוד דרך זה ישר לשים את האיבר בסוף, וכל עוד הוא קטן מזה שלפניו לעשות ביניהם SWAP(להחליף את הערכים ביניהם).

רמז: את הכל אתה עושה עם 2 לולאות מקוננות.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים