Web - Amazon

We provide Linux to the World


We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
מיון מהיר - ויקיפדיה

מיון מהיר

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

מיון מהיר (quicksort בלעז) הוא אלגוריתם מיון השוואתי אקראי מהיר במיוחד.

סיבוכיות הזמן הממוצע של האלגוריתם הוא O\left(n\log n\right) פעולות (כמו, למשל, מיון מיזוג (mergesort)), אך במקרה הגרוע עלול לדרוש \Theta\left(n^2\right) פעולות (כמו, למשל, מיון בועות).

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

[עריכה] פרטי האלגוריתם

אלגוריתם מיון מהיר הוא אלגוריתם רקורסיבי הפועל בשיטת הפרד ומשול. צעדיו הם כדלקמן:

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

מימוש האלגוריתם בפסדו קוד נראה כדלקמן:

partition(a, left, right, pivotIndex)
   pivotValue := a[pivotIndex]
   swap(a[pivotIndex], a[right]) // Move pivot to end
   storeIndex := left
   for i = left to right-1
       if a[i] <= pivotValue
           swap(a[storeIndex], a[i])
           storeIndex := storeIndex + 1
   swap(a[right], a[storeIndex]) // Move pivot to its final place
   return storeIndex

quicksort(a, left, right)
   if right > left
       select a pivot value a[pivotIndex]
       pivotNewIndex := partition(a, left, right, pivotIndex)
       quicksort(a, left, pivotNewIndex-1)
       quicksort(a, pivotNewIndex+1, right)


[עריכה] שיפורים ווריאציות של האלגוריתם

יעילות האלגוריתם תלויה בבחירת איבר הציר. אם - כתוצאה מ"מזל טוב" - איבר הציר הוא תמיד האיבר האמצעי בגודלו בסדרה, האלגוריתם לוקח \Theta\left(n\log n\right) . אם, מאידך - כתוצאה מ"מזל רע" - איבר הציר הוא האיבר הקטן ביותר או האיבר הגדול ביותר, אזי האלגוריתם לוקח \Theta\left(n^2\right). לכן, ישנה חשיבות רבה למציאת איבר הציר:

  • לעתים, משתמשים אלגוריתמים בפועל בשיטת "ממוצע משלושה" על מנת לבחור איבר שעשוי להיות "מתאים יותר" מאשר איבר שרירותי.
  • באופן תיאורטי, ניתן למצוא את האיבר האמצעי בסדרה בזמן לינארי, מה שמבטיח זמן ריצה של \Theta\left(n\log n\right), אולם אין שימוש רב בשיטה זו בפועל בשל זמן הריצה הגדול בפועל של תהליך זה.

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

קיימת גירסה איטרטיבית (לא רקורסיבית) של המיון המהיר, אולם היא מורכבת לכתיבה ולא אינטואיטיבית.

[עריכה] קישורים חיצוניים

Our "Network":

Project Gutenberg
https://gutenberg.classicistranieri.com

Encyclopaedia Britannica 1911
https://encyclopaediabritannica.classicistranieri.com

Librivox Audiobooks
https://librivox.classicistranieri.com

Linux Distributions
https://old.classicistranieri.com

Magnatune (MP3 Music)
https://magnatune.classicistranieri.com

Static Wikipedia (June 2008)
https://wikipedia.classicistranieri.com

Static Wikipedia (March 2008)
https://wikipedia2007.classicistranieri.com/mar2008/

Static Wikipedia (2007)
https://wikipedia2007.classicistranieri.com

Static Wikipedia (2006)
https://wikipedia2006.classicistranieri.com

Liber Liber
https://liberliber.classicistranieri.com

ZIM Files for Kiwix
https://zim.classicistranieri.com


Other Websites:

Bach - Goldberg Variations
https://www.goldbergvariations.org

Lazarillo de Tormes
https://www.lazarillodetormes.org

Madame Bovary
https://www.madamebovary.org

Il Fu Mattia Pascal
https://www.mattiapascal.it

The Voice in the Desert
https://www.thevoiceinthedesert.org

Confessione d'un amore fascista
https://www.amorefascista.it

Malinverno
https://www.malinverno.org

Debito formativo
https://www.debitoformativo.it

Adina Spire
https://www.adinaspire.com