פורסם 2008 ביולי 117 שנים זאת השאלה :כתבו שיטה סטטית רקורסיביתpublic static int[] merge (int[] ar1, int[] ar2המקבלת שני מערכים חד-ממדיים המכילים מספרים שלמים ממוינים בסדר עולה, ומחזירהמערך ממוין המכיל את כל האיברים של שני המערכים. כאשר כל איבר מופיע כמספר הפעמים שהוא הופיע במערכים הנתונים , כולל איברים זהים . לפתור את השאלה תוך כדי שינוי ar1 ar2 אני משער שאני יכול לפתור איך אני פותר את השאלה ללא שינוי המערכים הנ"ל ?
פורסם 2008 ביולי 117 שנים מחבר תודה לא שמתי לב שיש לי כבר פיתרון לזה . הנה הפתרון לכל המעונינים public class question1{ public static int[] merge (int[] ar1, int[] ar2) { int[] ar3 = new int[ar1.length+ar2.length]; return merge(ar1,0,ar2,0,ar3,0); } private static int[] merge(int[] ar1, int ind1, int[] ar2, int ind2, int[] ar3, int ind3) { if(ind1 >= ar1.length && ind2 >= ar2.length) return ar3; if(ind1 >= ar1.length){ ar3[ind3] = ar2[ind2]; return merge(ar1, ind1, ar2, ind2+1, ar3, ind3+1); } if(ind2 >= ar2.length){ ar3[ind3] = ar1[ind1]; return merge(ar1, ind1+1, ar2, ind2, ar3, ind3+1); } if(ar1[ind1] > ar2[ind2]){ ar3[ind3] = ar2[ind2]; return merge(ar1, ind1, ar2, ind2+1, ar3, ind3+1); } else{ ar3[ind3] = ar1[ind1]; return merge(ar1, ind1+1, ar2, ind2, ar3, ind3+1); } }
פורסם 2008 ביולי 117 שנים מחבר צור מערך חדש, מזג את שני הפרמטרים לתוכו, מיין אותו ותחזיר.התשובה היא של סטודנט,ולא של האקדמיה . ד"א שמת לב שהפתרון צריך להיות ברקורסיה בלבד ? איך התכוונת לתפור את זה ? לא הבנתי . תודה .
פורסם 2008 ביולי 117 שנים התשובה היא של סטודנט,ולא של האקדמיה . ד"א שמת לב שהפתרון צריך להיות ברקורסיה בלבד ? איך התכוונת לתפור את זה ? לא הבנתי . תודה .על merge-sort שמעת?
פורסם 2008 ביולי 117 שנים מחבר ברור .. אכן גם פתרון פשוט . אז אתה אומר שבעולם האמיתי לצורך יעילות היום משתמשים בMERGESORT ולא כותבים קוד שעלול לא להיות יעיל בכלל ? (כמו הדוגמא למעלה ) ד"א אל תיהיה כל כך קפדן זה בסך הכל שאלה מהמבוא , ולא פעם ולא פעמיים דורשים פתרון יעיל . פשוט במקרה הזה לא דרשו .
פורסם 2008 ביולי 117 שנים בעולם האמיתי לא ממציאים את הגלגל מחדש. בכל ספריית Foundation נורמלית יש מבני נתונים שמיישמים את כל האלגוריתמים הבסיסיים (מיון, שליפה וכו').
פורסם 2008 ביולי 117 שנים כן ולא. לא פעם דווקא צריך לכתוב איזה אלגוריתם בסיסי, אפילו מיון. זה תלוי בדרישות, בשפה וכו'. בד"כ עדיף להשתמש בספריה או בתשתית, כמובן.בכל מקרה כדאי (ולאקדמאים, הכרחי) להכיר את הבסיס.ציטוט טוב שיסביר את הכיוון הכללי:I want my ER doctor to understand anatomy, even if all she has to do is put the computerized defibrillator nodes on my chest and push the big red button, and I want programmers to know programming down to the CPU level, even if Ruby on Rails does read your mind and build a complete Web 2.0 social collaborative networking site for you with three clicks of the mouse.udii - בשביל שלמות כדאי שתכניס קצת בדיקת מקרים קיצוניים לדוגמא אם אחד המצביעים הוא NULL. בתרגיל בית נוטים להוריד נקודות על דברים כאלה (תלוי בקורס).
פורסם 2008 ביולי 117 שנים אני מסכים לגבי ה-"פעם ב-"; למרות שזה קורה לעיתים רחוקות מאוד.Zelig, אל תכניס את ספולסקי לדיון. הבנאדם טרול (למרות שיש לו תובנה וחצי פעם בשנתיים-שלוש).
פורסם 2008 ביולי 117 שנים אני מסכים לגבי ה-"פעם ב-"; למרות שזה קורה לעיתים רחוקות מאוד.Zelig, אל תכניס את ספולסקי לדיון. הבנאדם טרול (למרות שיש לו תובנה וחצי פעם בשנתיים-שלוש).עניין של דעה ולא ממש רלוונטי לדיון (אתה מוזמן לפתוח אחד אחר), אז הבה נחזור לענייננו.המטרה של הציטוט היתה לתת נימוק (דרך אנלוגיה) למדוע חשוב ללמד את הבסיס.במקרה זה, udii הרוויח שלוש פעמים: הוא (היא?) גם למד קצת C ופוינטרים, הוא גם למד קצת רקורסיה, והוא גם למד על אלגוריתם בסיסי למיון שנראה merge sort. פשוט מעולה! (וזו הסיבה שברעיונות עבודה אני שואל על merge sort מדי פעם).
פורסם 2008 ביולי 117 שנים מחבר הוא* מתי הראיון הבא ? ;D סתם סתם אני לא מובטל .... אבל לא הבנתי איפה יש פה C ופוינטרים ???
פורסם 2008 ביולי 117 שנים לא ממש הסתכלתי בעיון על הקוד... עכשיו כשבחנתי אותו, נראה שהרווחת רק פעמיים.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.