לרשום את הרקע ואז לנסח את השאלות בצורה מספרית.
כי שאלת פה המון שאלות ומי שיקרא את זה לא יענה לך על כולן כי הן לא כתובות בצורה מסודרת.לשאלתך,
- מה עדיף?
במקרה הזה אפשר לעשות את האלגוריתם ב O(n), היות והחסם התחתון של חיפוש הוא O(n log n לא כדאי למיין.
- אם אני ממין את המערך אז מבחינת סיבוכית זה יוצא n בריבוע נכון?
לא בהכרח, חיפוש יכול להיות n log n (לדוגמא Quick sort או merge sort)
- אז לחפש את המספר בצורה בינארית זה logn ככה מבצעים את החישוב? זה יוצא logn+n^2?
אם כבר מיינת את המערך, אתה רק צריך לסרוק האם יש לו איבר כפול, סריקה כזאת היא O(n) ולכן היעילות הסופית שלך תהיה O(nlogn) + O(n) שזה מסדר גודל של O(nlogn)
אני אתן לך רמז,
אתה לא צריך לעשות פי מיון של המערך.
אם תרצה עוד רמז תגיד לי ואני אכוון אותך יותר