אופן השימוש במיון בחירה

אופן השימוש במיון בחירה

מיון בחירה הוא טכניקת מיון שבוחרת פריט רשימה ולאחר מכן מחליפה את מקומה באחר. הוא בוחר את הפריט הגדול ביותר ולאחר מכן מחליף אותו בפריט באינדקס הגבוה ביותר של הרשימה.





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





מבחר מיון: מבט מקרוב

נניח שיש לך את הרשימה: [39, 82, 2, 51, 30, 42, 7]. כדי למיין את הרשימה באמצעות מיון בחירה, תחילה עליך למצוא את המספר הגבוה ביותר בה.





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

לאחר המעבר הראשון, סדר הרשימה החדש יהיה: [39, 7, 2, 51, 30, 42, 82]. בכל פעם שהאלגוריתם עובר את כל הרשימה, זה נקרא 'מעבר'.



שימו לב שהרשימה שומרת על רשימת משנה משנה ממוינת ורשימת משנה לא ממוינת במהלך תהליך המיון.

כמה נתונים משתמשת הזרמת טלוויזיה

קָשׁוּר: מהו סימון Big-O?





הרשימה המקורית מתחילה ברשימה ממוינת של אפס פריטים ורשימה לא ממוינת של כל הפריטים. לאחר המעבר הראשון, יש לו רשימה ממוינת שיש לה רק את המספר 82.

במעבר השני המספר הגבוה ביותר ברשימת המשנה הלא ממוינת יהיה 51. מספר זה יוחלף עם 42 בכדי לתת את הזמנת הרשימה החדשה להלן:





מה זה אומר בטלפון שלי

[39, 7, 2, 42, 30, 51, 82].

התהליך חוזר על עצמו עד למיון הרשימה כולה. האיור שלהלן מסכם את כל התהליך:

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

ניתוח אלגוריתם

כדי לקבל את המורכבות (באמצעות סימון Big-O) של אלגוריתם זה, בצע להלן:

במעבר הראשון נעשות (n-1) השוואות. במעבר השני, (n-2). במעבר השלישי, (n-3) וכן הלאה עד המעבר (n-1) שעושה השוואה אחת בלבד.

סיכום ההשוואות להלן נותן:

(n-1)+ (n-1)+ (n-1)+ ...+ 1 = ((n-1) n)/2.

לכן מיון הבחירה הוא O (n2).

יישום קוד

הקוד מציג פונקציות בהן ניתן להשתמש לביצוע מיון בחירה באמצעות Python ו- Java.

פִּיתוֹן:

def selectionSort(mylist):
for x in range(len(mylist) - 1, 0, -1):
max_idx = 0
for posn in range(1, x + 1):
if mylist[posn] > mylist[max_idx]:
max_idx = posn
temp = mylist[x]
mylist[x] = mylist[max_idx]
mylist[max_idx] = temp

Java:

void selectionSort(int my_array[]){
for (int x = 0; x {
int index = x;
for (int y = x + 1; y if (my_array[y] index = y; // find lowest index
}
}
int temp = my_array[index]; // temp is a temporary storage
my_array[index] = my_array[x];
my_array[x] = temp;
}}

מעבר מבחירה מיין למיזוג מיון

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

windows 10 לא יכול לרוקן את סל המיחזור

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

לַחֲלוֹק לַחֲלוֹק צִיוּץ אימייל 8 אתרי האינטרנט הטובים ביותר להורדת ספרי אודיו בחינם

ספרי שמע הם מקור בידור נהדר, והרבה יותר קל לעיכול. להלן שמונה האתר הטוב ביותר שבו תוכל להוריד אותם בחינם.

קרא הבא
נושאים קשורים
  • תִכנוּת
  • תִכנוּת
  • אלגוריתמים
על הסופר ג'רום דוידסון(22 מאמרים פורסמו)

ג'רום הוא כותב צוות ב- MakeUseOf. הוא מכסה מאמרים בנושא תכנות ולינוקס. הוא גם חובב קריפטו ותמיד עוקב אחרי תעשיית הקריפטו.

עוד מאת ג'רום דוידסון

הירשם לניוזלטר שלנו

הצטרף לניוזלטר שלנו לקבלת טיפים, סקירות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!

לחצו כאן להרשמה