שאלות נפוצות
ציר זמן
צ'אט
פרספקטיבה

מיון בחירה

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

Remove ads

מיון בחירה (באנגלית: selection sort) הוא אלגוריתם מיון השוואתי פשוט אך לא יעיל.

Thumb
מיון בחירה

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

Remove ads

פרטי האלגוריתם

  1. מצא את האיבר בעל הערך הנמוך ביותר במערך
  2. החלף אותו עם האיבר הראשון במערך
  3. המשך באותה שיטה על שאר המערך (ללא האיבר הראשון)

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

האלגוריתם כפי שניתן לכתוב אותו בשפת Java:

void selectionSort(int[] a) {
    for (int i = 0; i < a.length - 1; i++) {
        int min = i;
        for (int j = i + 1; j < a.length; j++) {
            if (a[j] < a[min]) {
                min = j;
            }
        }
        if (i != min) {
            int swap = a[i];
            a[i] = a[min];
            a[min] = swap;
        }
    }
}

וכך ניתן לממש את האלגוריתם בשפת Python:

def selection_sort(a):
    for i in range(len(a)):
        mi = i
        
        for j in range(i + 1, len(a)):
            if a[j] < a[mi]:
                mi = j
        
        if i != mi:
            a[i], a[mi] = a[mi], a[i]
            
    return a
Remove ads

ניתוח זמן הריצה

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

Remove ads

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

ויקישיתוף מדיה וקבצים בנושא מיון בחירה בוויקישיתוף
  • מיון בחירה, באתר MathWorld (באנגלית)
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads