מבני נתונים ואלגוריתמים - מחברת קורס/אלגוריתמים/אלגוריתמים למיון בזמן לינארי/תרגילים/שאילתות על מספר איברים בתחום/שאלה
מראה
נתון מערך A
המכיל מספרים, כל אחד בתחום ( מספר שלם כלשהו). רוצים לענות מספר רב של פעמים על שאלות מהסוג: בהינתן ו כלשהם, כמה מ האיברים בA
נמצאים בתחום ?
לצורך כך רוצים לכתוב שתי פונקציות:
Init
מקבלת את המערךA
והערך , ומבצעת פעולות אתחול כלשהן.Range
מקבלת שני מספריםa
וb
, ומחזירה כמה מאיבריA
נמצאים בין שני המספרים.להלן דוגמה לשימוש אפשרי:
1 A = [1, 3, 2, 3, 3, 3, 15, 3]
# Initializes whatever is needed
2 Init(A, 15)
# Prints 8.
3 Print( Range(1, 16) )
# Prints 1.
4 Print( Range(1, 1) )
# Prints 1.
5 Print( Range(2, 2) )
# Prints 7.
6 Print( Range(1, 14) )
אנא כתוב מימוש יעיל ככל האפשר לשתי הפונקציות, ונתח אותן. (נסה להגיע לכך שRange
בזמן .) הוסף משתנים גלובליים ופונקציות עזר כרצונך.