עבור לתוכן
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

פורסם

שלום

קיבלנו את האלגוריתם הבא:

N הוא אורך הקלט

1. I=N

2.כל עוד I>=1 בצע:

2.1 סדרת משפטים שאינם משנים את ערכו של I

2.2עבור J מ-1 עד I בצע:

2.2.1 סדרת משפטים שאינם משנים את ערכיהם של I ו-J

2.3 I=I/2

צריכים למצוא את סיבוכיות האלגוריתם ופונקצית זמן הריצה

הלולאה שמתחילה בפקודה 2 ברורה ופשוטה - מתבצעת log2N פעמים

אבל הלולאה השנייה פחות ברור לי איך להגדיר

היא מתבצעת N+N/2 + N/4 + N/8 וכן הלאה, פעמים

תודה מראש

פורסם

אם הבנתי נכון למה אתה מתכוון:

1. מתבצע בזמן קבוע ( O(1

2.

2.1 מתבצע בזמן קבוע.

2.2, מתבצעת I פעמים.

לכן כמו שאמרת מספר הפעולות בה הוא N+N/2 + N/4 + N/8... שזה חסום על ידי 2N.

לכן הסיבוכיות היא ( O(N

(יש עוד ( O(logN פעולות בגלל 2.1 אבל זה לא משנה את החסם של הסיבוכיות).

פורסם
  • מחבר

עריכה: לא חשוב הבנתי :)

תודה :)

פורסם

לא. הלולאה מתבצעת logN פעמים, אבל אתה לא מבצע בכל פעם 2N פעולות.

בפעם הראשונה אתה מבצע N, בפעם השניה N/2 וכן הלאה. ולכן סה"כ 2N.

מספר האיברים בסדרה N, N/2, N/4 N/8... הוא logN וזה מספר הפעמים שהלולאה מתבצעת.

פורסם
  • מחבר

אגב קצת התבלבלתי מכל השיעורי בית האלה:

עכשיו שעזרת לי להגיע לתשובה(תודה קודם כל :xyxthumbs: )

אז אומרים שפונקצית זמן הריצה היא:

log2n + 2n+1

והסיבוכיות היא:

O(n)

?

שוב תודה

פורסם

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

הסיבוכיות היא ( O(N.

ארכיון

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

דיונים חדשים

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.