דף 1 מתוך 1

כבר מה18.10 אמרתי שאני שונא את האינווריאנטה... שאלה:

נשלח: 16:09 28/11/2009
על ידי AmiEli
התשובה הנכונה לפי הפרסום לגביי תני הPRE
היא:
i=1 , arr.length>0.
הפונקציה עצמה לפי השאלה היא:
P.S.V insertionSort (int[] arr) {
for (int i = 1; i<arr.length; 1=1+1) insert (arr,i); //end
תקנו אותי אם אני טועה - i מאותחל להיות 1 , וכל עוד אורך המערך גדול מ1 הלולאה תתקיים בכלל.
כלומר אם אורך המערך הוא 1, שזה דבר אפשרי , הלולאה לא תתקיים כי arr length לא גדול מ 1 !!!

ולכן לפי תשובת הבוחן arr.length אכן גדול מ0, אבל יכול להיות שהוא שווה ל 1, ואז שווה ל i , ואז לא נכנס ללולאה! :arrow:
אז למה זאת התשובה הנכונה?
לא צריך להיות שתמיד
arr.length > i ? וזה הPRE ורק שזה מתקיים זה מתחיל את הלולאה :?:

תודה על תשובתכם
עמי

Re: כבר מה18.10 אמרתי שאני שונא את האינווריאנטה... שאלה:

נשלח: 19:21 28/11/2009
על ידי rubichi
אם האורך הוא 1 הוא לא נכנס ללולאה אבל הוא לא צריך כי המערך כולל רק תא אחד... ותא אחד זה מערך ממויין

Re: כבר מה18.10 אמרתי שאני שונא את האינווריאנטה... שאלה:

נשלח: 00:54 29/11/2009
על ידי AmiEli
נו בדיוק! זה מערך ממוין. אין צורך למייןאותו, ולא נכנסים בכלל ללולאה.
אבל אם המערך יהיה גדול מi אז תמיד נצטרך להכנס ללולאה...
יש עוד הסבר בנושא?

Re: כבר מה18.10 אמרתי שאני שונא את האינווריאנטה... שאלה:

נשלח: 09:50 29/11/2009
על ידי Roy
[b]מסכים עם AmiEli לגמרי.[/b]
הלולאה לא מתקיימת עבור i=1 [u]ולכן חייב להיות i>0[/u] (שמכיל בתוכו גם את האינווריאנטה של i=1)

לא יתכן כי האינווריאנטה של מיון בחירה ומיון הכנסה היו דומים לגמרי.

כנ"ל גם לגבי הpost:
במיון הכנסה האלגוריתם משנה את מיקומו של האיבר הn-1 ולכן ניתן ללומר כי האיבר במקום ה-n כבר ממויין!

אני לא מבין למה לימדו אותנו דבר אחד בשיעור ומבקשים מאיתנו ליישם דבר אחר.

חייבים לעשות דבר בנושא.