מיון סלים

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש

Bucket sort 1.png

Bucket sort 2.png

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

האלגוריתם[עריכת קוד מקור | עריכה]

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

חישוב הסיבוכיות[עריכת קוד מקור | עריכה]

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

קישורים חיצוניים[עריכת קוד מקור | עריכה]

P Computer-science.svg ערך זה הוא קצרמר בנושא מדעי המחשב. אתם מוזמנים לתרום לוויקיפדיה ולהרחיב אותו.