עבור לתוכן
View in the app

A better way to browse. Learn more.

HWzone

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

מה הסיבוכיות של השיטה הנ"ל:

Featured Replies

פורסם


public static void f(int n)
{
for (int i=n; i>0; i--)
{
int j = n;
while (j>0)
j = j/4;
}
}

זה נראה כאילו ה-while זו לולאה אינסופית את המספר הוא חיובי

פורסם

חילוק של int הוא מעוגל למטה, אז j כן יגיע ל-0 לאחר מספר מסויים של איטרציות.

פורסם
  • מחבר

אם לא היה ה-while הסיבוכיות הייתה O של n.

מה קורה בגלל ה-while ? האם עדיין נשאר n ?

פורסם

תחשוב כמה פעמים צריך לחלק מספר ב-4 בשביל להגיע ל-0. רמז עבה: יש פה log.

לדוגמא לוגריתם log_2(32) = x שואל 2 בחזקת מה שווה 32. התשובה x=5. אז אתה ש- 32 שווה 2 בחזקת 5. ואם את 2 בחזקת 5 אתה מחלק ב-2 אתה מקבל 2 בחזקת 4. אז כמה פעמים תצתרך לחלק כדי להגיע ל-0?

וכמה פעמים אתה צריך לחלק מספר ב-4 בשביל להגיע ל-0?

פורסם
  • מחבר

אוקיי תודה רבה אבל השאלה שלי היא האם ה-while משפיע על הסיבוכיות שבלעדיו יש לי סיבוכיות n או שאני אמור להתחשב גם ב- while ?

פורסם

וואו יצאתי דביל, כמו שנאמר לך יש לך פה n מהfor וlogn מהwhile, סהכ nlogn

פורסם

Moon-Mage: מה?

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

ואני אוסיף כי כבר ענית: צריך לשים לב באיזה בסיס ה-log.

wow: הסיבוכיות של ה-while היא לא O(1) וכמובן שהיא משנה.

באופן כללי סיבוכיות של לולאה היא מספר הפעמים שהלולאה מתבצעת כפול הסיבוכיות של הבלוק שמבוצע כל פעם.

פורסם

Moon-Mage: מה?

wow: הסיבוכיות של ה-while היא לא O(1) וכמובן שהיא משנה.

באופן כללי סיבוכיות של לולאה היא מספר הפעמים שהלולאה מתבצעת כפול הסיבוכיות של הבלוק שמבוצע כל פעם.

עזוב לא ראיתי את הwhile שקראתי את ההודעה הראשונה

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.