מיון בסיס – הבדלי גרסאות

מתוך ויקיפדיה, האנציקלופדיה החופשית
תוכן שנמחק תוכן שנוסף
אין תקציר עריכה
אין תקציר עריכה
שורה 4: שורה 4:


==מהלך האלגוריתם==
==מהלך האלגוריתם==
(הדוגמא הבאה מתייחסת למספרים המיוצגים בבסיס 10, כך שכל ספרה קטנה מ10. ניתן להכליל זאת בקלות לבסיס k כלשהו)
(הדוגמא הבאה מתייחסת למספרים המיוצגים ב[[השיטה העשרונית|בסיס 10]], כך שכל ספרה קטנה מ-10. ניתן להכליל זאת בקלות לבסיס k כלשהו)
#מיון כל המספרים בקבוצה ל־10 קבוצות, על פי ספרת האחדות שלהם.
#מיון כל המספרים בקבוצה ל־10 קבוצות, על פי ספרת האחדות שלהם.
#מיון כל המספרים מהקבוצות שהתקבלו שוב, ל־10 קבוצות, על פי ספרת העשרות של כל מספר, תוך כדי שמירה על סדר המספרים בתוך כל קבוצה, לפי המיון של השלב הקודם.
#מיון כל המספרים מהקבוצות שהתקבלו שוב, ל־10 קבוצות, על פי ספרת העשרות של כל מספר, תוך כדי שמירה על סדר המספרים בתוך כל קבוצה, לפי המיון של השלב הקודם.

גרסה מ־00:05, 21 במאי 2011

מיון בסיס (Radix sort) הוא אלגוריתם מיון של מספרים המסתמך על כך שמספר הספרות בייצוג המספרים חסום על ידי קבוע. (למשל: מספר הספרות בייצוג המספר 1234567 הוא 7).

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

מהלך האלגוריתם

(הדוגמא הבאה מתייחסת למספרים המיוצגים בבסיס 10, כך שכל ספרה קטנה מ-10. ניתן להכליל זאת בקלות לבסיס k כלשהו)

  1. מיון כל המספרים בקבוצה ל־10 קבוצות, על פי ספרת האחדות שלהם.
  2. מיון כל המספרים מהקבוצות שהתקבלו שוב, ל־10 קבוצות, על פי ספרת העשרות של כל מספר, תוך כדי שמירה על סדר המספרים בתוך כל קבוצה, לפי המיון של השלב הקודם.
  3. המשך מיון המספרים על פי הספרה החשובה יותר (מאות, ואז אלפים, ואז עשרות אלפים וכן הלאה), תוך שמירת סדר המספרים בכל קבוצה לפי המיון של השלב הקודם לשלב הנוכחי.

דוגמת הרצה

נתונה קבוצת המספרים הבאה: {0, 1 ,42, 32, 33, 67, 103 ,27, 105, 85} כמות הספרות של כל המספרים חסומה על ידי 3, לכן נמיין 3 פעמים:

  1. על פי ספרת האחדות: {0}, {1}, {42, 32}, {33, 103}, {}, {105, 85}, {}, {67, 27}, {}, {}
  1. על פי ספרת העשרות: {0, 1, 103, 105}, {}, {27}, {32, 33}, {42}, {}, {67}, {}, {85}, {}
  2. על פי ספרת המאות: {0, 1, 27, 32, 33, 42, 67, 85}, {103, 105}, {}, {}, {}, {}, {}, {}, {}, {}

המספרים התקבלו כשהם מסודרים בסדר עולה, על ידי 3 מעברים על כל המספרים.

ראו גם