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

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