מיון סלים
|
מיון סלים או מיון דלי (באנגלית Bucket Sort) הוא מיון של קבוצת מספרים ממשיים, או כל קבוצה אחרת, כאשר ידוע שהפיזור של האיברים אחיד, ואינו מתבסס על השוואות בין האיברים. בזכות מידע נוסף זה, סיבוכיות זמן הריצה של האלגוריתם אינה חסומה מלמטה על ידי (כאשר הוא מספר האיברים שאותם רוצים למיין) כפי שחסומים אלגוריתמים המבוססים על השוואות, אלא היא , כאשר הוא גודל החסם של קבוצת המספרים. לכן האלגוריתם עדיף על אלגוריתמים מבוססי השוואות במקרים שבהם גודל החסם קטן יחסית למספר האיברים שאותם רוצים למיין. מיון סלים הוא מיון יציב, כלומר לא משנה את הסדר היחסי בין איברים זהים.
האלגוריתם
נניח שיש N מספרים. נחלק את הטווח שבין MIN ו-MAX ל- חלקים שווים. לפי ההנחה שהפיזור אחיד אז בכל חלק יש איברים וניתן למיין כל חלק בסיבוכיות זמן . במספרים ממשיים למשל, ההחלטה לאיזה סל שייך מספר נקבעת על ידי חישוב יחיד של חילוק הערך שלו בגודל של כל סל, והערך השלם של התוצאה יקבע לאיזה סל להכניסו.
חישוב הסיבוכיות
עבור חלוקה של n איברים לתוך m סלים, בהנחה שהפונקציה המחלקת לוקחת לכל איבר אזי פעולת החלוקה לוקחת זמן, במקרה הגרוע, אם פיזור האיברים אינו אחיד, לסל אחד נכנסו איברים ומיונם ייקח והמעבר על שאר הסלים לוקח זמן, וסה"כ לוקח , לעומת זאת, בהנחה שאכן הפיזור אחיד, צריך למיין m תאים שבכל אחד מהם איברים שלמיין כל אחד מהם לוקח ,וסה"כ אחרי שמכפילים ב m תאים ומוסיפים את הסיבוכיות של החלוקה לתאים, צריך גם לקחת בחשבון גם מקרה שm הרבה יותר גדולה בסדר גודל מ ולוקח יותר זמן המעבר על התאים ולכן צריך לחבר לסיבוכיות , זה לוקח , במקרה האידיאלי, שבו = וההתפלגות אחידה הסיבוכיות היא בתוחלת.
לרוב נעשה שימוש באלגוריתם מיון בחירה על מנת למיין כל אחד מהסלים כאשר הקלט מתפלג באופן אחיד, משום שמיון זה אופטימלי עבור קלטים קטנים, שמתקבלים במקרה של אחידות ההתפלגות של הקלט.
קישורים חיצוניים
- סימולציה של מיון סלים
- מיון סלים בQueue
אלגוריתמי מיון | ||
---|---|---|
רקע תאורטי | תורת הסיבוכיות • סימון אסימפטוטי • סדר מלא • רשימה • אלגוריתם תוך-מקומי • מיון יציב | |
אלגוריתמי מיון | אקראי • בועות • בחירה • בסיס • הכנסה • מהיר • מיזוג • מנייה • מסרק • סלים • ערימה • רשת מיון • שייקר • של | |
שונות | מיון טופולוגי • בעיית סידור הפנקייקים של גודמן |
30562295מיון סלים