מיון סלים

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

האלגוריתם

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

חישוב הסיבוכיות

עבור חלוקה של n איברים לתוך m סלים, בהנחה שהפונקציה המחלקת אורכת לכל איבר אזי פעולת החלוקה אורכת זמן, במקרה הגרוע, אם פיזור האיברים אינו אחיד, לסל אחד נכנסו איברים ומיונם יארך והמעבר על שאר הסלים אורך זמן, וסה"כ . לעומת זאת, בהנחה שאכן הפיזור אחיד, צריך למיין m תאים שבכל אחד מהם איברים שלמיין כל אחד מהם אורך , וסה"כ אחרי שמכפילים ב-m תאים ומוסיפים את סיבוכיות החלוקה לתאים, צריך גם לקחת בחשבון גם מקרה ש-m הרבה יותר גדולה בסדר גודל מ- ואורך יותר זמן המעבר על התאים ולכן צריך לחבר לסיבוכיות , זה אורך , במקרה האידאלי, שבו הסיבוכיות היא .

קישורים חיצוניים

This article is issued from Hamichlol. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.