רקורסיה – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
ליבליך (שיחה | תרומות)
הדוגמה של "מיהו יהודי" מופיעה כבר בסעיף "הגדרה רקורסיבית", ושם היא מתאימה יותר. אין סיבה לחזור עליה שוב גם כאן.
מ הוספת קישור לתת-סדרה
שורה 62:
 
===מיון===
דוגמה נוספת ופחות פשטנית של אלגוריתם רקורסיבי מפורסם ביעילותו הוא אלגוריתם ה[[מיון (מדעי המחשב)|מיון]] "[[מיון מהיר]]" (QuickSort). זוהי אחת הדוגמאות הרווחות לאלגוריתם שמסורבל להגדירו מבלי להשתמש ברקורסיה. תיאור מקוצר של האלגוריתם הוא כדלקמן: כאשר האלגוריתם מתבקש למיין קלט עם איבר אחד, הוא מכריז על הקלט כממוין (זהו תנאי העצירה). על מנת למיין סדרה גדולה יותר, בת n איברים, האלגוריתם מפריד את הסדרה לתת-סדרה של האיברים ה"גדולים יותר" (אלה שגדולים מאיבר כלשהו אותו בוחר האלגוריתם, ראו פירוט האלגוריתם לצורך הסבר מפורט) ולתתול[[תת-סדרה]] של האיברים ה"קטנים יותר" (אלה שקטנים מאותו איבר). על מנת למיין את הקלט כולו, האלגוריתם מסדר את הסדרה כך שתת-סדרת ה"קטנים יותר" תופיע לפני תת-סדרת ה"גדולים יותר", ואז מפעיל את האלגוריתם '''באופן רקורסיבי''' על שתי תתי-הסדרות: ה"גדולים יותר" וה"קטנים יותר". האלגוריתם עצמו מבטיח שאף אחת משתי תתי-הסדרות לא תהיה ריקה, ולכן מייצגת כל בעיית מיון בעיה "פשוטה" יותר (בגודל קטן מ-n), שנפתרת באופן רקורסיבי על ידי האלגוריתם עצמו.
 
===חיפוש===