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

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

וִידֵאוֹ: הבדל בין אלגוריתם אקראי לרקורסיבי

וִידֵאוֹ: הבדל בין אלגוריתם אקראי לרקורסיבי
וִידֵאוֹ: Introduction to limits | Limits | Differential Calculus | Khan Academy 2024, יולי
Anonim

אלגוריתם אקראי לעומת רקורסיבי

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

מהו אלגוריתם אקראי?

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

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

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

מה ההבדל בין אלגוריתם אקראי לאלגוריתם רקורסיבי?

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

מוּמלָץ: