PRESENTATION NAME

מסמכים קשורים
PowerPoint Presentation

Tutorial 11

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

Slide 1

סדנת תכנות ב C/C++

Slide 1

מבוא למדעי המחשב - חובלים

פתרון מוצע לבחינת מה"ט ב_שפת c מועד ב אביב תשע"ט, אפריל 2019 מחברת: גב' זהבה לביא, מכללת אורט רחובות שאלה מספר 1 מוגדרת מחרוזת המורכבת מהספרות 0 עד 9.

Microsoft PowerPoint - T-10.ppt [Compatibility Mode]

אוניברסיטת חיפה החוג למדעי המחשב.5.6 מבוא למדעי המחשב סמסטר א' תשע"ז בחינה סופית מועד א', מרצה: שולי וינטנר מתרגלים: סמאח אידריס, ראמי עילבו

הגשה תוך שבוע בשעת התרגול

Slide 1

Slide 1

שיעור 1

Microsoft Word B

מבוא לתכנות ב- JAVA תרגול 7

234114

הגשה תוך שבוע בשעת התרגול

מבוא למדעי המחשב - חובלים

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי

תרגול 1

Slide 1

Microsoft Word - c_SimA_MoedA2006.doc

Slide 1

מספר מחברת: עמוד 1 מתוך 11 ת"ז: תשע"א מועד ב סמסטר א' תאריך: 00:11 שעה: 0 שעות הבחינה: משך כל חומר עזר אסור בשימוש בחינה בקורס: מבוא למדעי ה

Slide 1

מהוא לתכנות ב- JAVA מעבדה 3

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

שאלהIgal : מערכים דו מימדיים רקורסיה:

Microsoft Word - c_SimA_MoedB2005.doc

Microsoft Word - tutorial Dynamic Programming _Jun_-05.doc

מתמטיקה של מערכות

שקופית 1

מספר זהות: סמסטר ב' מועד א' תאריך: 11102/4// שעה: 9:22 משך הבחינה: 3 שעות חומר עזר: אין מותר השימוש במחשבון פשוט בחינה בקורס: מבני נתונים מרצה: הדר בי

מבוא למדעי המחשב

מבחן 7002 פרטים כלליים מועד הבחינה: בכל זמן מספר השאלון: 1 משך הבחינה: 3 שעות חומר עזר בשימוש: הכל )ספרים ומחברות( המלצות: קרא המלצות לפני הבחינה ובדי

תרגיל בית מספר 1#

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי

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

תוכן העניינים

PowerPoint Presentation

שאלהIgal : מערכים דו מימדיים רקורסיה:

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

PowerPoint Presentation

מבוא לתכנות ב- JAVA תרגול 11

תאריך הבחינה 30

Slide 1

הטכניון מכון טכנולוגי לישראל אלגוריתמים 1 )443432( סמסטר חורף הפקולטה למדעי המחשב תרגול 9 מסלולים קלים ביותר תרגיל APSP - 1 עד כה דנו באלגור

מועד: א בחינה סופית במתמטיקה דיסקרטית משך הבחינה: 2 1 שעות מרצה: פרופ' תאופיק מנסור תאריך: סמסטר: א תשע"ח m 2 הוראות לנבחן: )1( הבחינה מו

תכנות דינמי פרק 6, סעיפים 1-6, ב- Kleinberg/Tardos סכום חלקי מרחק עריכה הרעיון: במקום להרחיב פתרון חלקי יחיד בכל צעד, נרחיב כמה פתרונות אפשריים וניקח

מבוא למדעי המחשב

תכנון אלגוריתמים, אביב 1021, תרגול מס' 4 תכנון דינאמי תכנון דינאמי בתרגול זה נדון בבעיית הכפלת סדרת מטריצות (16.1.(CLR ראשית נראה דוגמא: דוגמא: תהינה

שאלהIgal : מערכים דו מימדיים רקורסיה:

Slide 1

תוכן העניינים

Microsoft PowerPoint - rec1.ppt

תורת החישוביות תרגול הכנה לוגיקה ותורת הקבוצות מה יש כאן? בקורס תורת החישוביות נניח ידע בסיסי בתורת הקבוצות ובלוגיקה, והכרות עם מושגים בסיסיים כמו א"ב

Slide 1

פתרון 2000 א. טבלת מעקב אחר ביצוע האלגוריתם הנתון עבור הערכים : פלט num = 37, sif = 7 r האם ספרת האחדות של sif שווה ל- num num 37 sif 7 שורה (1)-(2) (

Microsoft PowerPoint - rec3.ppt

מטלת מנחה (ממ"ן) 11 הקורס: חשבון אינפיניטסימלי II חומר הלימוד למטלה: יחידות 2,1 4 מספר השאלות: 7 משקל המטלה: נקודות סמסטר: ב 2007 מו

מבחן סוף סמסטר מועד ב 28/10/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, גדי אלכסנדרוביץ הוראות: א. בטופס המבחן 6 עמודים (כולל דף זה) ו

מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. ב

תרגיל 9 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד 1. תהי L השפה בעלת סימן פונקצייה דו מקומי G, סימן פונקציה חד מקומי T, סימן יחס תלת מקומי.c, d וקבועים L

תרגול 3 - מערכים

Microsoft Word - ExamA_Final_Solution.docx

ex1-bash

מבוא לאנליזה נומרית na191 Assignment 2 solution - Finding Roots of Nonlinear Equations y cos(x) שאלה 1 היכן נחתכים הגרפים של? y x 3 1 ושל ממש פתרונות

2019 שאלות מומלצות לתרגול מס' דיפרנציאביליות של פונקציה סקלרית )המשך(. כלל השרשרת. S = ( x, y, z) z = x + 3y על המשטח מצאו נקודה בה מישור משיק

Untitled

Slide 1

אוניברסיטת תל אביב - בית הספר למדעי המחשב מבוא מורחב למדעי המחשב, אביב 2019 תרגיל בית מספר - 2 להגשה עד 02/04/2019 בשעה 23:55 קיראו בעיון את הנחיות הע

מקביליות

מקביליות

תכנות מונחה עצמים א' – תש"ע

מבוא למדעי המחשב

Slide 1

Microsoft PowerPoint - YL-05.ppt

Microsoft Word - 28

תרגול 1

אנליזה מתקדמת

תרגיל בית מספר 1#

PowerPoint Presentation

. [1,3] ו = 0 f(3) f(1) = עמוד 1 מתוך 6 דר' ז. אולחא מס' הקורס 9711 חדו''א הנ מכונות 1 f ( x) = ( x 1)( x 2)( x 3) c= f c = c (1,3), c תשובות I 1) פונ

תרגול מס' 7 – חזרה על MST ואלגוריתם Dijkstra

תרגול 1

Microsoft Word - Sol_Moedb10-1-2,4

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

Homework Dry 3

שיעור מס' 6 – סבולות ואפיצויות

Slide 1

מבוא למדעי המחשב

שעור 6

Python 2.7 in Hebrew

. שאלה 1: ה אי x] T : R 4[ x] R 4[ אופרטור ליניארי מוגדר על-ידי T( ax bx cx d) bx ax cx c )13 נק'( א( מצאו את הערכים העצמיים, המרחבים העצמיים

שאלה 2. תכנות ב - CShell

דף נגזרות ואינטגרלים לשאלון 608 כללים למציאת נגזרת של פונקציה: n 1. y' n x n, y הנגזרת x.1 נכפול בחזקה )נרשום אותה משמאל ל- (. x א. נחסר אחד מהחזקה. ב

מקביליות

תמליל:

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

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

כתבו תכנית הקולטת מהמשתמש מספר חיובי n, ולאחריו n מספרים ממשיים. על התכנית לזכור את כל המספרים. לא ניתן להגדיר מערך, כי אנחנו לא יודעים את n מראש! 3 כמה בתים של זכרון מספרים ממשיים? n*sizeof(double) צריך כדי לאחסן n double* numbers; scanf( "%d", &n ); numbers = malloc( n*sizeof(double) ); if( numbers == NULL ) printf( "Memory allocation failed!" ); return 1; for( i=0; i<n; i++ ) scanf( "%lf", &numbers[i] ); אם ההקצאה נכשלה, מוחזר NULL כאילו זה היה מערך רגיל

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

כתבו פונקציה המקבלת int ומחזירה מחרוזת המייצגת את המספר. 1234 "1234" 5 איך "מחזירים מחרוזת"? הרי מחרוזת היא מצביע לזכרון שבסופו יש '0\'. זכרון זה חייב להיות נגיש לנו. הצעה נפוצה: נגדיר מערך בתור הפונקציה, ונחזיר מצביע אליו. 1. מערך זה יהיה "אוטומטי לוקלי", שכזכור נעלם ברגע שיוצאים מהפונקציה. 2. אנחנו לא יודעים כמה גדול המערך צריך להיות!

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

char* int2str( int n ) פגשנו אותה בעבר char *str, *p; int negative = n < 0; unsigned digits; n = n < 0? -n : n; /* n = n */ digits = count_digits(n) + negative; str = malloc( (digits+1)*sizeof(char) ); p = str + digits; 7 *(p--) = '\0'; while( n >= 10 ) *(p--) = n%10 + '0'; n /= 10; *(p--) = n%10 + '0'; if( negative ) *p = '-'; return str;

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

מערכים דו-מימדיים

הגדרת מערך דו-מימדי )=מטריצה(: 10 int a[10][20]; int b[3][2] = 1, 2, 3, 4, 5, 6 ; גישה: a[row][col] = 5; הכרזה על פונקציה המקבלת מטריצה: מספר העמודות חייב להיות ידוע מראש הפונקציה תקבל רק מטריצות עם מספר כזה של עמודות. מספר השורות חייב להיות פרמטר בדומה להעברת גודל מערך 1D לפונקציה #define M 20 void blurpicture( int picture[][m], int rows );

העברת מטריצה לפונקציה, בדומה למקרה ה-.1D 11 מצביע לאיבר הראשון חייבים להעביר את מספר השורות... אלא אם אתם יודעים את האורך למשל, מטריצות ריבועיות int pig[150][m]; blurpicture( pig, 150 );

כתבו פונקציה המקבלת מטריצה, ומוצאת נקודות שווי-משקל. נק' שווי משקל: איבר במטריצה שהינו המקסימלי בשורה שלו, ומינימלי בעמודה שלו. ]במובן החלש[ הניחו שמספר העמודות מוגדר ב- define #. 12 פתרון נמצא בכל שורה את המקסימום. נבדוק עבור כל אחד כזה אם הוא מינימלי בעמודה 200 15-43 230 121 54 2 17 510 99 4 11 243 223 439 7

בשפת C, בהינתן מטריצה,a[N][M] הביטוי a[i] הינו השורה ה- i של המטריצה. אבל אין את הטריק הזה עבור עמודות... 13 void print_equilibrium( int matrix[][m], int rows ) unsigned r, temp_r; for( r=0; r<rows; r++ ) unsigned c = get_max_idx( matrix[r], M ); for( temp_r=0; temp_r<rows; temp_r++ ) if( matrix[r][c] > matrix[temp_r][c] ) break; if( temp_r == rows ) printf( "Equilibrium at (%d,%d): %d\n", r, c, matrix[r][c] );

כתבו פונקציה המקבלת מערך דו מימדי של מספרים שלמים בגודל NxN )הניחו כי N מוגדר באמצעות )#define 14 מחזירה את המספר הגדול ביותר של איברים סמוכים באותה עמודה שהם ממוינים בסדר לא יורד. למשל עבור המערך הבא )5=N( יוחזר 4. 1 12 8 4 7 9 3 11 7 9 24 11 19 6 12 17 4 2 3 16 18 12 7 5 9

int max_sorted( int a[n][n] ) int max_len = 0, r, c; for( c=0; c<n; c++ ) int len = 1; for( r=1; r<n; r++ ) if(!(a[r][c] >= a[r-1][c]) ) if( len > max_len ) max_len = len; len = 1; else len++; 15 if( len > max_len ) max_len = len; return max_len;

סיבוכיות: ניתוח

נתייחס לשני מדדים של סיבוכיות אסימפטוטית של פונקציות: זמן מקום )=זכרון( - כמה פעולות התכנית מבצעת? - כמה זכרון היא צריכה? 17 סיבוכיות תמיד נמדדת ביחס למשהו שהפונקציה מקבלת; למשל אורך מערך שהוגדר ב- define # N מספר הספרות ב- int בנוסף, יתכן שפרמטרים יוגדרו כ- "קבועים לצרכי חישוב סיבוכיות"; למשל מספר האותיות ב-א"ב )אנגלית= 26, סינית= 4000 (

מחליטים כפונקציה של מה מחשבים את הסיבוכיות. )בד"כ: אורך מערך(.1 18 2. תמיד מתייחסים למקרה הגרוע. 3. אם אפשר, מחשבים את הסיבוכיות במדויק. 4. אחרת, חוסמים מלמעלה ומלמטה. 5. כותבים את הסיבוכיות בכתיב Ω O, ו/או Θ. T(n) S(n) : סימון: 6. 1. סיבוכיות זמן: 2. סיבוכיות מקום

כמה פעולות הפונקציה הבאה תבצע? תלוי ב-[ ar[0... 19 void func1( int ar[], int len ) int i; if( ar[0] == -1 ) for( i=0; i<len; i++ ) ar[i]++; תמיד נתיחס למקרה הגרוע! במקרה זה, סדר גודל של len פעולות

בכתיב אסימפטוטי, 1. משאירים רק את הביטוי הדומיננטי 3x 2 + 4x = Θ 3x 2 20 2. זורקים את כל קבועי הכפל 3x 2 = Θ x 2

"איבר דומיננטי" - האיבר המשפיע כש- x שואף לאינסוף 21 לדוגמא x 2 משפיע יותר מ- x 4 x 2 משפיע יותר מכל פולינום. כלל אצבע משפיעה יותר מ-( g(x f(x) אם הביטוי הבא מתקיים : lim x f x g x =

רשמו בכתיב אסימפטוטי : 22 Tn ( ) 5 T( n) 3n 2 T n n n 3 ( ) 4 10 50 T( n) 2 3 n n 2n Tn ( ) (1) T( n) ( n) T n 3 ( ) ( n ) n Tn ( ) (3 ) רן רובינשטיין

רשמו בכתיב אסימפטוטי : 23 T( n) log n log n 2 5 T( n) n nlog n T( n) n log n n T n 2 3 3 ( ) log( n ) 2 Tn ( ) 3 n n T( n) 2 (log n) n T( n) (log n) (log n) T( n) ( nlog n) T n 3 ( ) ( n ) T( n) (log n) n Tn ( ) (9 ) n T( n) ((log n) ) 2 5 רן רובינשטיין

נתחו סיבוכיות זמן ומקום כפונקציה של n. 24 void f1 (int n) int j, k; for (j = 0; j < n; j++) printf("moo!"); מקום - מוקצים משתנה אחד ופרמטר אחד.Θ(1) = זמן - מנגנון הבקרה של for יבצע n) (n+1) + + (1 פעולות ישנן n הדפסות )זמן כ"א אינה תלויה ב- n ( סה"כ = 3n+2 פעולות =.Θ(n) בפרט, מספיק לחשב את מספר ההדפסות..1.2.3.4

נתחו סיבוכיות זמן ומקום כפונקציה של n. 25 void f1 (int n) int i, j, k; for (j = 0; j < n; j++) for (k = n; k > j; k--) printf("moo!");.θ(1) מקום - זמן מתחילים מבפנים החוצה. כמה פעמים הלולאה הפנימית תתבצע עבור n? j=0? j=1 n-1 1? j=n-1

נתחו סיבוכיות זמן ומקום כפונקציה של n. 26 void f1 (int n) int i, j, k; for (j = 0; j < n; j++) for (k = n; k > j; k--) printf("moo!"); סה"כ: n + n 1 + n 2 + + 1 = = 1 n n + 1 = Θ n2 2

ועכשיו? 27 void f1 (int n) int i, j, k; for (i = 1; i < n; i *= 3) for (j = 0; j < n; j++) for (k = n; k > j; k--) printf("moo!"); אנחנו יודעים את T(n) של שתי הפנימיות. כמה פעמים החיצונית תפעיל אותן? בכל שלב i מוכפל ב- 3 בשלב ה- k, ערכו של i יהיה 3. k הלולאה מופסקת כש-.i n כמה איטרציות זה ייקח?

נתחו סיבוכיות זמן ומקום כפונקציה של n. 28 void f2 (int n) int i; int* ar = (int*) malloc(n*n * sizeof(int)); for (i = n; i > 0; i -=2) i++; free(ar); מקום - מוקצים sizeof(int) n*n * בתים של זכרון, לכן ) 2.Θ(n זמן - הלולאה מתבצעת 2/n פעמים, לכן.Θ(n)

נתחו סיבוכיות זמן ומקום כפונקציה של n. 29 void f3 (int n) int i, j, s = 100; int* ar = (int*) malloc(s * sizeof(int)); for (i = 0; i < n; i++) s = 0; for (j = 0; j < n; j += 2) s += j; printf("%d\n", s); free(ar); מקום - מוקצים sizeof(int) s * בתים של זכרון, אבל s אינו תלוי ב- n. לכן (1)Θ. זמן - חיצונית -.n פנימית -.n/2 סה"כ ) 2.Θ(n

נתחו סיבוכיות זמן ומקום כפונקציה של n ו- m 30 void f1 (int n, int m) int k = n, i, j; for (i = 1; i <= m; i++) for (j = k; j > 0; j--) printf("moo"); k *= n; מקום -.Θ(1) זמן - שימו לב שהשורה האחרונה אינה מגוף הלולאה. חלק פנימית - k=n פעמים. חיצונית - m פעמים. סה"כ.Θ(nm)

נתחו סיבוכיות זמן ומקום כפונקציה של n 31 void f3 (int n) int **p; for (i = 1; i <= n; i++) p = (int**)malloc(i*n*sizeof(int*); for (j = 1; j <= i*n; j++) p[j] = (int*)malloc(sizeof(int)); for (j = 1; j <= i*n; j++) free(p[j]); free p; מקום - באיטרציה ה- i מוקצים ) sizeof(int*)+sizeof(int) i*n*( בתים בין האיטרציות, כל הזכרון משוחרר. בסיבוכיות מקום אנחנו מחפשים את המקסימום )ולא הסה"כ( לכן ) 2 Θ(n עבור.i=n

נתחו סיבוכיות זמן ומקום כפונקציה של n 32 void f3 (int n) int **p; for (i = 1; i <= n; i++) p = (int**)malloc(i*n*sizeof(int*); for (j = 1; j <= i*n; j++) p[j] = (int*)malloc(sizeof(int)); i*n for (j = 1; j <= i*n; j++) free(p[j]); i*n free( p ); זמן - )לרוב מניחים ש- malloc ו- free לוקחות )1(Θ זמן( 2 1 n + 2 2 n + + 2 n n = = 2n 1 n n + 1 = Θ n3 2

נתחו סיבוכיות זמן ומקום כפונקציה של ו- k n 33 void f4 (int n, int k) int i, j, *ar; for (i = 0; i < n; i++) for (j = k; j > 1; j /= 7) ar = (int*)malloc(i*j*sizeof(int)); printf("moo"); free(ar) for (i = 0; i < k; i++) for (j = k; j > 1; j--) printf("yuu"); מקום - באיטרציה ה- i, j מוקצים ) sizeof(int) i*j*( בתים בין האיטרציות, כל הזכרון משוחרר. בסיבוכיות מקום אנחנו מחפשים את המקסימום )ולא הסה"כ( לכן Θ(nk) עבור.j=k,i=n

נתחו סיבוכיות זמן ומקום כפונקציה של n ו- k 34 void f4 (int n, int k) int i, j, *ar; for (i = 0; i < n; i++) for (j = k; j > 1; j /= 7) ar = (int*)malloc(i*j*sizeof(int)); printf("moo"); free(ar) log 7 k for (i = 0; i < k; i++) for (j = k; j > 1; j--) printf("yuu"); k 2 n זמן: Θ n log k + k 2 שימו לב: איננו יודעים את הקשר בין לכן לא ידוע מי יותר דומיננטי. ו- k,

נתחו סיבוכיות זמן ומקום כפונקציה של n 35 void f(int n) for( ; n > 0; n /= 2 ) int i; for( i=0; i<n; i++ ) printf( "Booya!" ); זמן: Θ(n) מקום: (1)Θ

נתחו סיבוכיות זמן ומקום כפונקציה של n 36 void f3(int n) int i, m=1; for(i = 0; i < n; i++ ) m *= n; while( m > 6) m /= 3; זמן: n) Θ(n log מקום: (1)Θ

נתחו סיבוכיות זמן ומקום כפונקציה של n 37 int f4(int n) int i, j, k = 1, count = 0; for(i = 0; i < n; i++) k *= 3; for(j = k; j; j /= 2) count++; return count; זמן: ) 2 Θ(n מקום: (1)Θ