חזרה למאמרים
סיבוכיות וניתוחבינוני5 דק' קריאה

השוואה בין אלגוריתמי המיון - מי המהיר באמת?

טבלה השוואתית של 6 אלגוריתמי מיון נפוצים, וכיצד לבחור באלגוריתם הנכון.

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

טבלת השוואה

אלגוריתםממוצעגרועזיכרוןיציב?
Bubble SortO(n²)O(n²)O(1)כן
Selection SortO(n²)O(n²)O(1)לא
Insertion SortO(n²)O(n²)O(1)כן
Merge SortO(n log n)O(n log n)O(n)כן
Quick SortO(n log n)O(n²)O(log n)לא
Heap SortO(n log n)O(n log n)O(1)לא

מה זה 'יציב' (Stable)?

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

איזה אלגוריתם לבחור?

  • מערך קטן (< 50) או כמעט ממוין → Insertion Sort
  • ביצועים יציבים ויציבות → Merge Sort
  • מהירות בפועל וזיכרון מוגבל → Quick Sort (עם בחירת ציר חכמה)
  • ביצועי O(n log n) מובטחים בלי זיכרון נוסף → Heap Sort
  • לימוד והבנה בלבד → Bubble Sort

בפועל: Java משתמש ב-Timsort (היברידי של Merge + Insertion) למיון של אובייקטים, ו-Dual-Pivot Quicksort לפרימיטיבים. פייתון משתמש ב-Timsort בכל המקרים.