האם פונקציות רקורסיביות מהירות יותר מאיטרציה?

תוכן עניינים:

האם פונקציות רקורסיביות מהירות יותר מאיטרציה?
האם פונקציות רקורסיביות מהירות יותר מאיטרציה?

וִידֵאוֹ: האם פונקציות רקורסיביות מהירות יותר מאיטרציה?

וִידֵאוֹ: האם פונקציות רקורסיביות מהירות יותר מאיטרציה?
וִידֵאוֹ: גרגורי צ'איטין: מורכבות, מטביולוגיה, גדל, היתוך קר 2024, דֵצֶמבֶּר
Anonim

הפונקציה רקורסיבית פועלת הרבה יותר מהר מהפונקציה האיטרטיבית הסיבה היא כי באחרון, עבור כל פריט, יש צורך ב-CALL לפונקציה st_push ולאחר מכן עוד אחד ל-st_pop. בראשון, יש לך רק את ה-CALL הרקורסיבי עבור כל צומת. בנוסף, הגישה למשתנים ב-callstack היא מהירה להפליא.

האם רקורסיבי או איטרטיבי מהיר יותר?

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

האם פתרונות איטרטיביים מהירים יותר מפתרונות רקורסיביים?

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

האם רקורסיה קלה יותר מאיטרציה?

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

מהם החסרונות של רקורסיה?

חסרונות של רקורסיה

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

מוּמלָץ: