ViewWiki

שיעור 4 מתוך 4

קצב גדילה ו־O גדולה.

כ־25 דקות · 6 שאלות תרגול

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

שלב 1 מתוך 6 · להכפיל את הרשימה

שלב 1 מתוך 6

להכפיל את הרשימה

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

לשאלה

שלב 2 מתוך 6

להכפיל עם מיון מיזוג

מיון בועות משווה זוגות, ומספר הזוגות גדל מהר. מיון מיזוג עובד אחרת: log⁡2n\log_2 n⁠ רמות, ובכל רמה עבודה פרופורציונית ל־nn⁠. ביחד בערך nlog⁡2nn \log_2 n⁠.

לשאלה

שלב 3 מתוך 6

לוח הגדילה

הצגת קצב הגדילה על גדילה: מעל המדף עולה לוח זכוכית ועליו מספר ההשוואות מול גודל הרשימה. הסרט הכתום הוא n(n−1)2\dfrac{n(n-1)}{2}⁠, כל הזוגות; הסרט הכחול הוא nlog⁡2nn \log_2 n⁠; הקו הלבן הוא האלגוריתם שבחרתם, בממוצע על כמה שורות התחלה; והנקודה היא המיון שרץ עכשיו.

לשאלה

שלב 4 מתוך 6

O גדולה

כדי לדבר על קצב גדילה בלי מספרים מדויקים, כותבים O גדולה: משאירים רק את האיבר שגדל הכי מהר, ומשמיטים מקדמים. חיפוש סדרתי הוא O(n)O(n)⁠, חיפוש בינארי O(log⁡n)O(\log n)⁠, ומיון מיזוג O(nlog⁡n)O(n \log n)⁠.

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

לשאלה

שלב 5 מתוך 6

למצוא את הגודל

כשהנוסחה ידועה, אפשר גם ללכת אחורה: מכמות העבודה לגודל הרשימה.

לשאלה

שלב 6 מתוך 6

אלגוריתם טוב יותר

ההבדל בין n2n^2⁠ ל־nlog⁡nn \log n⁠ נראה קטן בשישים וארבעה בלוקים. במיליון הוא עצום: n22\dfrac{n^2}{2}⁠ הם כ־5×10115 \times 10^{11}⁠, ו־nlog⁡2nn \log_2 n⁠ הם כ־2×1072 \times 10^7⁠.

לשאלה

תמונה של הסצנה התלת־ממדית „אלגוריתמים ומיון”
סצנה אינטראקטיבית

הגרסה האינטראקטיבית נטענת…

כל שלב מכין לכם את הסצנה, ובקר שמסומן „קבוע” נשאר במקומו בשלב הזה.

לניסוי

תרגול · נבאו, ואז הסתכלו

מיון בועות על שורה הפוכה של 16 בלוקים עושה 120 השוואות. גודל הרשימה יוכפל ל־32. כמה השוואות יהיו?

לניסוי

תרגול · נבאו, ואז הסתכלו

עכשיו מיון מיזוג: על שורה הפוכה של 16 בלוקים הוא עושה 32 השוואות. מה יקרה כשגודל הרשימה יוכפל ל־32?

לניסוי

תרגול · חשבו

הצגת קצב הגדילה על גדילה: הסרט הכתום הוא n(n−1)2\dfrac{n(n-1)}{2}⁠, מספר הזוגות. מיון בועות על שורה הפוכה של 64 בלוקים משווה כל זוג פעם אחת. כמה השוואות זה?

לניסוי

תרגול · בחרו

בשורה הפוכה מיון בועות עושה 12n2−12n\tfrac12 n^2 - \tfrac12 n⁠ השוואות. איך כותבים את זה בסימון O גדולה?

לניסוי

תרגול · הגיעו למטרה

מיון בועות, הפוך. שנו את גודל הרשימה עד שהמיון עושה בדיוק 190 השוואות, ולחצו על בדיקה.

לניסוי

תרגול · בחרו

צריך למיין מיליון פריטים מעורבבים. מחשב א מבצע 10910^9⁠ השוואות בשנייה ומריץ מיון בועות, כ־5×10115 \times 10^{11}⁠ השוואות. מחשב ב איטי פי מאה, 10710^7⁠ השוואות בשנייה, ומריץ מיון מיזוג, כ־2×1072 \times 10^7⁠ השוואות. מי מסיים ראשון?