עבור לתוכן
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 class IntNode {private int _value;
private IntNode _next;
public IntNode(int val, IntNode n) {
_value = val;
_next = n;
}
public int getValue() {
return _value;
}
public IntNode getNext() {
return _next;
}
public void setValue(int v) {
_value = v;
}
public void setNext(IntNode node) {
_next = node;
}
}

public class TwoIntLists {
private IntNode _listA, _listB;
public TwoIntLists (IntNode first, IntNode second) {
_listA = first;
_listB = second;
}
}

public class IntList {
private IntNode _head;
public IntList( ) {
_head = null;
}
public IntList (IntNode node) {
_head = node;
}
. . . // methods
}

עליכם להוסיף שיטה בשם split למחלקה IntList

השיטה מחלקת את איברי הרשימה עליה היא פועלת לשתי רשימות B - ו A, כל אחת באורך n/2

כך שההפרש בין סכום אברי A לסכום אברי B יהיה מקסימאלי. השיטה צריכה להחזיר אובייקט מהמחלקה TwoIntLists המכיל בשדותיו את ראשי הרשימות של A ושל B.

השיטה שתכתבו צריכה להיות יעילה ככל הניתן.

כתבו מה סיבוכיות הזמן וסיבוכיות המקום של השיטה שכתבתם.

מה שחשבתי לעשות זה למיין את הרשימה ע"י merge sort - עולה nlogn

למצוא את אורך הרשימה - עולה n

לחתוך את הרשימה ל-2 ואם יש עודף הוא יהיה בקבוצה A.

בסה"כ סיבוכיות זמן של nlogn וסיבוכיות מקום של 1

פורסם

נשמע סבבה. בעקרון יש פתרון ב-(O(n אבל אני בספק אם למדת את הכלים בשבילו.

פורסם
  • מחבר

האש table ?

פורסם
  • מחבר

אבל 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.