איך לכתוב אלגוריתמים למתחילים

עובד עד מאוחר במשרדו

קרדיט תמונה: vgajic/E+/GettyImages

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

מהו אלגוריתם מחשב

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

סרטון היום

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

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

דוגמאות לאלגוריתם פשוטות למתחילים

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

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

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

שיקולי אלגוריתם

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

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