פעולות אריתמטיות ב- O(1)

johnny d

New member
פעולות אריתמטיות ב- O(1)

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

KO74

New member
הצגת פה פיתרון ב- (o(n ?

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