הבדלים בין רקורסיה לבין איטרציה

Recursion ו איטרציה להאיץ את ביצוע התוכנית.

רקורסיה

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

איטרציה

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

ההבדל העיקרי

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

דוגמאות

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