ABA


"מה יותר יעיל?"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #14878 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 14878
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   15:00   04.08.08   
אל הפורום  
  מה יותר יעיל?  
 
   ערכתי לאחרונה בתאריך 04.08.08 בשעה 15:19 בברכה, ronen333
 
נניח ומבקשים ממני את הספרה הראשונה(השמאלית ביותר) במספר שלם ארוך(אינטג'ר).

רציתי לדעת מה יותר יעיל, חשבתי על 2 דרכים.
1.להמיר את המספר למחרוזת ואז להחזיר את המקום ה0 שהוא מומר חזרה למספר.


public static int firstNum(int x)
{
string st=x.ToString();
return int.Parse(st[0].ToString());
}

2.לחלק ב10 אם המספר לא קטן מ10 ברקורסיה/לולאה.

public static int firstNum(int x)
{
if(x>=10)
return firstNum(x/10);
else
return x;
}

אני פשוט מת על מחרוזות אפשר לעשות איתן דברים גאוניים P=....

איזו דרך יותר יעילה?
אני שואל כי אין לי מושג מה השפעה של המרה על זמן ריצה והכל..


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  זה סדרי גודל שונים... לדעתי השני יעיל יותר במספרים הקטנים יחסית DLN 04.08.08 17:05 1
     הולכים בדרך כלל על המקרה הגרוע ביותר ronen333  04.08.08 18:01 2
         עזוב אותך מיעילות ברמות האלה DLN 04.08.08 18:05 3
             חחח למה כולם פה שונאים כל כך C#? ronen333  04.08.08 18:11 4
                 אף אחד לא שונא אותה ,אבל צריך להבין את המטרות שלה. akoka 04.08.08 18:21 5
                 אין לי שום דבר נגד C#, ההפך DLN 04.08.08 19:15 6
  2 בלי ספק. ב-1 אתה מקצה זכרון, צריך להקים idan192 04.08.08 22:40 7
  הראשון לפי דעתי Net_Boy  04.08.08 22:54 8
     אני מאמין ש-ToString עצמו הוא כבר (O(N, לא? idan192 04.08.08 23:24 9
         צודק צודק בהחלט השני זה O(N) Net_Boy  05.08.08 22:21 21
             אתה עדיין אליל. IcqBoy 05.08.08 22:30 23
                 I-N-D-E-E-D idan192 06.08.08 01:29 26
     לא חושב ואני יאמר לך למה DLN 05.08.08 00:02 10
  מכתב, IcqBoy 05.08.08 18:36 11
  הדרך השניה mega-killer 05.08.08 20:51 12
     זמן ריצה הוא לא ממש קריטריון ... IcqBoy 05.08.08 20:53 13
         הוא שאל על יעילות mega-killer 05.08.08 21:10 14
             פונקציית זמן ריצה היא בעיקר קריטריון של תיכון. IcqBoy 05.08.08 21:18 15
                 אתה מדבר על סיבוכיות ואני כתבתי שאין הבדל בינהם mega-killer 05.08.08 21:24 16
                     אדון ''mega-killer'', akoka 05.08.08 21:40 17
                         איזה תגובה יוחאי, אין לי מה להוסיף. IcqBoy 05.08.08 21:43 18
                         אוקיי אז בוא נרד לרמה יותר נמוכה mega-killer 05.08.08 22:09 19
                             אגב, תוכל לאמוד את ההבדלים במשאבים? IcqBoy 05.08.08 22:15 20
                                 תקשיב, אתה מתעקש על דבר שמראש אמרתי שהוא שולי mega-killer 05.08.08 22:25 22
                                     התגובה שלך מוכיחה ,שאתה אומר דברים בלי לעמוד akoka 05.08.08 22:32 24
                                         בוא ניתן לך מקרה שונה לגמרי mega-killer 05.08.08 22:42 25
                                             לא הבנתי על מה אתה מתווכחים, אבל שים לב שזו סיבוכיות (O(N idan192 06.08.08 01:33 28
  בוא אני אסכם את הויכוח שנוצר ואגיד שוב למה 2 עדיף. idan192 06.08.08 01:32 27
     2 יעבוד לאט במספרים גדולים לדעתי. akoka 06.08.08 12:14 30
     האמת שלא בטוח. IcqBoy 06.08.08 12:20 31
     מסכים לגמרי mega-killer 06.08.08 14:23 32
  וואו יא חופרים P=, סתם. תודה לכולם =] ronen333  06.08.08 12:07 29

       
DLN
חבר מתאריך 20.4.07
15884 הודעות
   17:05   04.08.08   
אל הפורום  
  1. זה סדרי גודל שונים... לדעתי השני יעיל יותר במספרים הקטנים יחסית  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   18:01   04.08.08   
אל הפורום  
  2. הולכים בדרך כלל על המקרה הגרוע ביותר  
בתגובה להודעה מספר 1
 
   ערכתי לאחרונה בתאריך 04.08.08 בשעה 18:04 בברכה, ronen333
 
אז הראשון עדיף נכון?

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

רציתי לדעת אם זה יעיל יותר כי אז זה יתן לי עוד לגיטמציה להשתמש בזה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
DLN
חבר מתאריך 20.4.07
15884 הודעות
   18:05   04.08.08   
אל הפורום  
  3. עזוב אותך מיעילות ברמות האלה  
בתגובה להודעה מספר 2
 
   אם היית רוצה יעילות ברמות שקטעי קוד כאלה אשכרה חשובים היית מתכנת בCPP לא בC#


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   18:11   04.08.08   
אל הפורום  
  4. חחח למה כולם פה שונאים כל כך C#?  
בתגובה להודעה מספר 3
 
   ערכתי לאחרונה בתאריך 04.08.08 בשעה 18:17 בברכה, ronen333
 
שפה כל כך נחמדה =].

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


הפעולה מקבלת מס' שספרותיו אינו ידוע ומחסנית שמכילה ספרות על הפעולה להחזיר אמת אם ספרות המספר מופיעות ברצף כלשהוא-יורד או עולה.
הערה: יכול להיות מספרים שלא קשורים בתוך המחסנית לדוג'
991812389
והמס' X הוא 123

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

עכשיו סתכל איזה יופי זה יוצא עם סטרינגים:


public static bool targil1(int x, Stack<int> sta)
{
Stack<int> sta2 = new Stack<int>();
string st1 = "";
string st2 = "";
while (sta.IsEmpty() != true)
{
st1 =st1+ sta.Top();
sta2.Push(sta.Pop());
}
while (sta2.IsEmpty() != true)
{
st2 = st2 + sta.Top();
sta.Push(sta2.Pop());
}

if (st1.IndexOf(x.ToString()) != -1 || st2.IndexOf(x.ToString()) != -1)
return true;
else
return false;

}


ד"א אם שאלת את עצמך מה זה TOP.. זה Peek משרד החינוך הטיפש שלנו החליט שמשנים את זה לTOP.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
akoka

   18:21   04.08.08   
אל הפורום  
  5. אף אחד לא שונא אותה ,אבל צריך להבין את המטרות שלה.  
בתגובה להודעה מספר 4
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
DLN
חבר מתאריך 20.4.07
15884 הודעות
   19:15   04.08.08   
אל הפורום  
  6. אין לי שום דבר נגד C#, ההפך  
בתגובה להודעה מספר 4
 
   מעדיף אותה על CPP כמעט בהכל
אבל אם כבר אתה מתכנת בC#, הדבר האחרון שצריך להדאיג אותך זה הבחירה בין שני אלגוריתמים שהזמן ריצה שלהם כמעט אפסי...
אם אתה מחפש שיפורים ביעילות בהפרשים של אלפית השנייה ותקורה של ביטים ספורים אתה תתכנת בC סביר להניח.
והדרך ברקורסיה לדעתי הרבה יותר אלגנטית ונוחה
עניין של העדפה אישית


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
idan192

   22:40   04.08.08   
אל הפורום  
  7. 2 בלי ספק. ב-1 אתה מקצה זכרון, צריך להקים  
בתגובה להודעה מספר 0
 
   קונסטרקוטרים, בקיצור תיכנות ממש לא נכון שישמש רק לפעולה הזו במיוחד מהסיבה שזה פחות קריא.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק
   22:54   04.08.08   
אל הפורום  
  8. הראשון לפי דעתי  
בתגובה להודעה מספר 0
 
   אני לא יודע איך PARSE עובד
אבל אני נוטה להאמין שכאשר מדובר על תו בודד מדובר על O(1)
השני זה logN


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
idan192

   23:24   04.08.08   
אל הפורום  
  9. אני מאמין ש-ToString עצמו הוא כבר (O(N, לא?  
בתגובה להודעה מספר 8
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק
   22:21   05.08.08   
אל הפורום  
  21. צודק צודק בהחלט השני זה O(N)  
בתגובה להודעה מספר 9
 
   ToString זה לרוץ על כל המחרוזת לא יודע למה לא ראיתי את השורה הזאת כנראה מעייפות


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
IcqBoy

   22:30   05.08.08   
אל הפורום  
  23. אתה עדיין אליל.  
בתגובה להודעה מספר 21
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
idan192

   01:29   06.08.08   
אל הפורום  
  26. I-N-D-E-E-D  
בתגובה להודעה מספר 23
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
DLN
חבר מתאריך 20.4.07
15884 הודעות
   00:02   05.08.08   
אל הפורום  
  10. לא חושב ואני יאמר לך למה  
בתגובה להודעה מספר 8
 
   מכיוון שאין ניהול זכרון ישיר בC#
שאתה לוקח string מסוים ועושה לו s
זה לא כמו בC++ שאתה פשוט ניגש n תאים קדימה בזכרון, וזה בעצם מקביל ל
*(s+n), אלא אני מאמין שזה קורא לאיזה פונקציה שקוראת n תווים קדימה = o(n)
יכול להיות שזה יותר יעיל בסדרי גודל גדולים, מאשר לפרוס פונקציה רקורסיבית n פעמים


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
IcqBoy

   18:36   05.08.08   
אל הפורום  
  11. מכתב,  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 05.08.08 בשעה 18:38 בברכה, IcqBoy
 
תראה - כשאתה ממיר מספר למחרוזת אז אין פתרונות קסם. גם מאחורי הפקודה הזאת קיים מימוש כלשהו שמבצע את העבודה. אותו מימוש - אם אינני טועה - פועל בסיבוכיות של:
O(length(num))

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

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

אבל באנו לדון בסיבוכיות.
סיבוכיות זמן הריצה היא זהה לדעתי, כי כדי לבנות את המחרוזת השתמשת בO(n) וכשקראת לאיבר הראשון אז זה עשה את זה בסיבוכיות של 1. גם כשביצעת את הליך החילוק, עברת על כל הספרות ולכן רצת גם n פעמים.
[ נניח כי n = length(num), כלומר n מייצג את מספר הספרות ]
מסקנה:
סיבוכיות הזמן בשניהם היא:

O(n)

מבחינת סיבוכיות המקום, סיבוכיות המקום היא גם בשניהם O(1); לא רואה סיבה שלא. יחד עם זאת, המחרוזת שיצרת תופסת יותר מקום בזכרון אבל זה דיי שולי כי גם אינטיג'ר ארוך ב-C# הוא בסה"כ מספר סופי ואפילו לא כזה ארוך.


בכל אופן, 2 הדרכים שלך יחסית בנאליות, וזאת גם בסה"כ בעייה פשוטה.
אם נרצה לדון בסיבוכיות אז נרחיב אותה תיאורתית לקבלת מספר באמת ענק.
בדרך זאת הייתי אולי בוחר m גדול ומחלק את המספר ב-10^M.
במידה ועדיין המספר גדול מ-10 אז הייתי מחלק ב-10^M/2.
במידה והמספר קטן מ-10 אז הייתי כופל ב-10^M/2.
בדרך זאת אני רץ למעשה על M ויוצר סיבוכיות של Log m.
אבל זה רק לשעשוע ...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
mega-killer
חבר מתאריך 1.8.02
859 הודעות
   20:51   05.08.08   
אל הפורום  
  12. הדרך השניה  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 05.08.08 בשעה 20:54 בברכה, mega-killer
 
אין בדרך הראשונה שום קסם,
כדי ליצור מחרוזת ממספר אתה צריך לקבל כל ספרה בנפרד.. אותה פעולה שאתה עושה בשיטה השניה...
ובנוסף אתה ממיר שוב את המחרוזת עם התו למספר

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



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
IcqBoy

   20:53   05.08.08   
אל הפורום  
  13. זמן ריצה הוא לא ממש קריטריון ...  
בתגובה להודעה מספר 12
 
   וגם אם תבצע את זה מיליוני פעמים אז ההבדל יהיה מינורי.
מספר קבוע לא ממש משנה פה ואפשר לוותר ממש בכיף על קבועים כדי להציג תוכנית מסודרת יותר.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
mega-killer
חבר מתאריך 1.8.02
859 הודעות
   21:10   05.08.08   
אל הפורום  
  14. הוא שאל על יעילות  
בתגובה להודעה מספר 13
 
   ההבדל הוא בהחלט מינורי אבל אומנם לא קרטריון?
זאת דוגמא מאוד קטנה ולא רלונטית אבל במקרים מצטברים (ואני לא מדבר על לבצע את הפעולה הזאת מליארד פעמים) הזמן הוא בהחלט קרטריון



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
IcqBoy

   21:18   05.08.08   
אל הפורום  
  15. פונקציית זמן ריצה היא בעיקר קריטריון של תיכון.  
בתגובה להודעה מספר 14
 
   אני בספק עד כמה הוא בא לידי ביטוי בחיי היום יום.
מודדים סיבוכיות ע"י חסמים הדוקים ולא ע"י מספר קבוע של פעולות.

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

אבל אם תרשום פקודה אחת יותר או פחות? זה באמת לא משנה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
mega-killer
חבר מתאריך 1.8.02
859 הודעות
   21:24   05.08.08   
אל הפורום  
  16. אתה מדבר על סיבוכיות ואני כתבתי שאין הבדל בינהם  
בתגובה להודעה מספר 15
 
   במובן הזה...



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
akoka

   21:40   05.08.08   
אל הפורום  
  17. אדון ''mega-killer'',  
בתגובה להודעה מספר 16
 
   אני חושב שלא הבנת את כוונתיו של IcqBoy.

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

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

אל תידבק למושגי תיכון.
בתיכון משתמשים לחסם הדוק ב-O במקום בתטא, לא ברור ממש למה. בסה"כ ללמד אות יוונית, אבל כנראה שלא כל תלמידי 5 יח"ל של מדעי המחשב יוכלו לקלוט את הניואנס העדין בין O לבין Θ.

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

מקווה שהבנת.

בברכה,יוחאי אקוקה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
IcqBoy

   21:43   05.08.08   
אל הפורום  
  18. איזה תגובה יוחאי, אין לי מה להוסיף.  
בתגובה להודעה מספר 17
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
mega-killer
חבר מתאריך 1.8.02
859 הודעות
   22:09   05.08.08   
אל הפורום  
  19. אוקיי אז בוא נרד לרמה יותר נמוכה  
בתגובה להודעה מספר 17
 
   תאמין לי שאני מבין על מה הוא דיבר אבל כנראה שבגלל שלא הסברתי את עצמי אתם נכנסים למושגים שאני אפילו לא דיברתי עליהם.

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



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
IcqBoy

   22:15   05.08.08   
אל הפורום  
  20. אגב, תוכל לאמוד את ההבדלים במשאבים?  
בתגובה להודעה מספר 19
 
   ערכתי לאחרונה בתאריך 05.08.08 בשעה 22:16 בברכה, IcqBoy
 
זאת אומרת - לא ממש פירטת.
אני מסכים שמבחינת זיכרון, ההליך הראשון משתמש ביותר זיכרון.
מבחינת מחזורי מעבד, זה שוב יותר קשור לסיבוכיות ככה שזה לא ממש משנה.
אבל מעניין אותי מבחינה פונקציית זמן ריצה מה אתה חושב?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
mega-killer
חבר מתאריך 1.8.02
859 הודעות
   22:25   05.08.08   
אל הפורום  
  22. תקשיב, אתה מתעקש על דבר שמראש אמרתי שהוא שולי  
בתגובה להודעה מספר 20
 
   אחרי שהבנת על מה התכוונתי ואני יכול להבין מההודעה הזאת שאתה גם מסכים איתה לפחות בתאוריה אין סיבה יותר לדגור על זה



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
akoka

   22:32   05.08.08   
אל הפורום  
  24. התגובה שלך מוכיחה ,שאתה אומר דברים בלי לעמוד  
בתגובה להודעה מספר 22
 
   מאחוריהם.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
mega-killer
חבר מתאריך 1.8.02
859 הודעות
   22:42   05.08.08   
אל הפורום  
  25. בוא ניתן לך מקרה שונה לגמרי  
בתגובה להודעה מספר 24
 
   ניתן לך פתרון שונה לאותה בעיה

יש לך מספר מטיפוס int, וכדי לקבל את הספרה השמאלית שלו אתה עושה כך:
שומר את המספר בארדיסק ולאחר מכן קורא אותו ומכניס למשתנה מטיפוס long,
ואז מבצע חילוק ב-10 עד שהמספר קטן מ-10 ומחזיר את הספרה בטיפוס של char,
ונגיד שכל הפעולות האלה נתונות כפונקציה בנויה.

עכשיו תגיד לי מה לא בסדר בפתרון הזה. או איך אפשר ליעל אותו.



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
idan192

   01:33   06.08.08   
אל הפורום  
  28. לא הבנתי על מה אתה מתווכחים, אבל שים לב שזו סיבוכיות (O(N  
בתגובה להודעה מספר 25
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
idan192

   01:32   06.08.08   
אל הפורום  
  27. בוא אני אסכם את הויכוח שנוצר ואגיד שוב למה 2 עדיף.  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 06.08.08 בשעה 01:33 בברכה, idan192
 
1 - אולי יותר פלצני ונראה "מקצועי" לעין לא מזויינת,
אבל 1:
- מקצה זכרון, משמע מבזבז זכרון,
- פועל בסיבכיות זהה ואף גבוהה יותר מ-2,
- פחות קריא. מ-2 ישר מבינים מה רוצים, מ-1 לא,
- לא הייתי כותב את הפונקציה באף אחת מהדרכים.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
akoka

   12:14   06.08.08   
אל הפורום  
  30. 2 יעבוד לאט במספרים גדולים לדעתי.  
בתגובה להודעה מספר 27
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
IcqBoy

   12:20   06.08.08   
אל הפורום  
  31. האמת שלא בטוח.  
בתגובה להודעה מספר 27
 
   צריך לראות איך ממומשת פונקציית החילוק כדי לוודא את זה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
mega-killer
חבר מתאריך 1.8.02
859 הודעות
   14:23   06.08.08   
אל הפורום  
  32. מסכים לגמרי  
בתגובה להודעה מספר 27
 
  



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   12:07   06.08.08   
אל הפורום  
  29. וואו יא חופרים P=, סתם. תודה לכולם =]  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net