מבוא לתכנות ולמדעי המחשב בשפת C/רקורסיה (מיון מהיר): הבדלים בין גרסאות בדף
תוכן שנמחק תוכן שנוסף
Cat-a-lot: העביר מקטגוריה:מבוא לתכנות ולמדעי המחשב אורי מוסנזון לקטגוריה:מבוא לתכנות ולמדעי המחשב |
|||
שורה 2:
== מיון מהיר ==
כבר השתכנענו בעבר שמיון הוא משימה חשובה. ראינו שכאשר הנתונים ממוינים, אפשר למצוא את הנתון שמחפשים הרבה יותר בקלות. למדנו גם אלגוריתם למיון אבל הוא היה די נאיבי ולא יעיל. היעילות שלו היתה <
בשיעור זה נלמד אלגוריתם יעיל בהרבה שנקרא מיון מהיר, או quicksort בלעז. בממוצע, הסיבוכיות של האלגוריתם הזה היא <
עד היום דיברנו על סיבוכיות התלויה רק בגודל הקלט. כאן, כאשר תיארנו את הסיבוכיות של quicksort, דיברנו על סיבוכיות ממוצעת וסיבוכיות במקרה הגרוע. העניין הוא שיעילות האלגוריתם שנלמד עכשיו, תלויה מאוד בסדר הנתונים שהתקבלו בקלט. לדוגמה, דווקא אם הקלט יהיה ממויין מלכתחילה, האלגוריתם יעבוד קשה מאוד והיעילות שלו תהיה דומה לזו של המיון הנאיבי שלמדנו. במקרה היותר טיפוסי, של קלט מעורבל, האלגורתם יהיה יעיל בהרבה.
|