VeNom
חבר מתאריך 7.6.02
7922 הודעות, 1 פידבק, 2 נקודות
10:55 10.12.08
שאלה לגבי זמן הרצה ב שפת c בסביבת c++
אני לא כ"כ מודע לזה..אני יודע רק שזמן הרצה של לולאה הוא a (a= לאות טטה) ואם יש לי לולאה בתוך לולאה זה כאילו a בריבוע ואם יש לי לולאה בתוך לולאה בתוך לולאה זה a בחזקת 3.. עכשיו מה קורה במצב שיש לי
while { first cycle second cycle if }
זה נחשב רק לזמן הרצה של a בריבוע נכון? בכלליות לולאות בתוך לולאות מקפיצות את חזקת זמן ההרצה אבל תאנים לא משנים אותה? אשמח לתשובה..
והאמת שדי קיבלתי תשובה כבר היום.. אבל בכלליות יש לך איזה מקום שאפשר ללמוד על יעילות וזמנים?איזה ספר מאמר משהו?אני לא בדיוק יודע מתי אני מעלה בריבוע ומתי לא.. תודה על התגובה!
סיבוכיות וזמני ריצה... משהו כזה אנלא זוכר ת'שם המדוייק.. בכל מקרה מה שאני יודע זה לא מהקורס הזה אלה מאלגורתמים 1... אבל הקורס הזה מכוון בדיוק לסיבוכיות וזמני ריצה...
כשאתה רץ על אורך מסויים, לדוגמא מערך אז אתה רץ על O(n) עכשיו נגיד יש לך לולאה שאתה רץ על אורך המערך ועוד ללואה בפנים שאתה רץ על המערך... בעצם בכל לופ של הללולאה החיצונית אתה מבצע n פעולות בללולאה הפנימית... בעצם אתה עושה את זה n פעמים (n לופים של הללולאה החיצונית) אז זה n+n+n..... ככה n פעמים... שזה בעצם n*n... שזה n^2... בדר"כ במבוא כשיש לך לולאה בתוך לולאה (כאלה אף אחת מהלולאות אינה קבועה... נגיד תמיד רצה פעמים או משו..) זה n^2...