ViewWiki

שיעור 2 מתוך 4

להשוות בין מיונים.

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

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

שלב 1 מתוך 5 · ארבע דרכים

שלב 1 מתוך 5

ארבע דרכים

לבעיה אחת יכולים להיות הרבה אלגוריתמים. באלגוריתם יש ארבעה:

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

כולם מסיימים באותה שורה ממוינת. מה שמבדיל ביניהם הוא כמה עבודה זה לוקח. השורה עכשיו כמעט ממוינת: רק כמה בלוקים זזו מקום או שניים.

לשאלה

שלב 2 מתוך 5

מיון מיזוג

מיון מיזוג עובד ברמות. שמונה בלוקים מתפצלים לשני חצאים של ארבעה, לארבעה של שניים ולשמונה בודדים: log⁡28=3\log_2 8 = 3⁠ רמות. אחר כך ממזגים חזרה, רמה אחר רמה. מיזוג של שני חלקים ממוינים מהיר, כי מספיק להשוות את שני הבלוקים שבראש כל חלק.

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

לשאלה

שלב 3 מתוך 5

החלפות וזוגות הפוכים

מיון בועות ומיון הכנסה מחליפים רק שכנים. על השורה המעורבבת הזאת מיון בועות עושה 120 השוואות ו־72 החלפות.

לשאלה

שלב 4 מתוך 5

המקרה הגרוע

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

לשאלה

שלב 5 מתוך 5

לבחור שיטה

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

לשאלה

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

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

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

לניסוי

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

שישה־עשר בלוקים, כמעט ממוין. איזה אלגוריתם ימיין את השורה הזאת בהכי מעט השוואות?

לניסוי

תרגול · חשבו

מיון מיזוג על שורה הפוכה של 8 בלוקים. מיון בועות עשה כאן 28 השוואות. כמה השוואות יעשה מיון מיזוג?

לניסוי

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

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

לניסוי

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

מיון מהיר ממיין את השורה המעורבבת של 16 בלוקים ב־57 השוואות. סדר התחלתי יתחלף להפוך. מה יקרה?

לניסוי

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

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