Smart-World Surf

יחידה 11: אלגוריתמים בסיסיים וניתוח סיבוכיות

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

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

יסודות אלגוריתמים וניתוח סיבוכיות

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

סיבוכיות זמן: מדד לכמות הזמן הנדרשת לאלגוריתם, כפונקציה של גודל הקלט (N).
סיבוכיות מקום: מדד לכמות הזיכרון הנדרשת לאלגוריתם, כפונקציה של גודל הקלט (N).
סימון Big O: כלי לתיאור קצב הגידול של פונקציה, המשמש לתיאור סיבוכיות זמן ומקום במקרה הגרוע ביותר. מתמקד בהתנהגות האסימפטוטית ככל ש-N שואף לאינסוף, תוך התעלמות מקבועים ואיברים מסדר נמוך.
סימון Big O: נושא קריטי לבחינה. הבנה מעמיקה של Big O חיונית לניתוח ותכנון אלגוריתמים. הקפידו להבין את המשמעות של O(1), O(log N), O(N), O(N log N), O(N^2), O(2^N) ו-O(N!).

אלגוריתמי חיפוש

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

חיפוש לינארי

הסבר: עובר על כל איברי המערך בזה אחר זה עד למציאת האיבר או הגעה לסוף. מתאים למערכים לא ממוינים.

סיבוכיות זמן: O(N) (מקרה גרוע/ממוצע), O(1) (מקרה טוב).

סיבוכיות מקום: O(1).

חיפוש בינארי

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

סיבוכיות זמן: O(log N) בכל המקרים.

סיבוכיות מקום: O(1) (איטרטיבי) או O(log N) (רקורסיבי).

אלגוריתמי מיון בסיסיים

אלגוריתמי מיון מסדרים אוסף של איברים. נכיר שלושה אלגוריתמים פשוטים.

מיון בחירה

הסבר: בכל איטרציה, מוצא את האיבר הקטן ביותר מהחלק הלא ממוין ומחליף אותו עם האיבר הראשון בחלק זה.

סיבוכיות זמן: O(N^2) בכל המקרים.

סיבוכיות מקום: O(1).

מיון בועות

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

סיבוכיות זמן: O(N^2) (גרוע/ממוצע), O(N) (טוב, עם אופטימיזציה).

סיבוכיות מקום: O(1).

מיון הכנסה

הסבר: בונה את המערך הממוין איבר אחר איבר. לוקח איבר מהחלק הלא ממוין ומכניס למקומו הנכון

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