סעיף א
נתונה הפעולה why המקבלת רשימה של מספרים שלמים:
def why(arr):
temp = []
for i in range(len(arr)):
if arr[i] < 0:
temp.append(arr[i])
for i in range(len(arr)):
if arr[i] >= 0:
temp.append(arr[i])
for i in range(len(arr)):
arr[i] = temp[i]
- נתונה הרשימה arr = [12, 0, -344, -46, 670, 0] מה יהיה תוכן הרשימה אחרי זימון הפעולה why(arr)?
- מה מבצעת הפעולה why באופן כללי?
סעיף ב
נתונה הפעולה what המקבלת רשימה מספרים שלמים:
def what(arr):
start = 0
end = -1
while start - end < len(arr):
if arr[start] < 0:
start = start + 1
elif arr[end] >= 0:
end = end -1
else:
temp = arr[end]
arr[end] = arr[start]
arr[start] = temp
- נתונה רשימה arr = [123, -45, -678, 12, -345, 67] מה יהיה תוכן ההרשימה אחרי זימון הפעולה what(arr)?
- תנו דוגמה לרשימה brr בגודל של חמישה תאים, כך שהתוכן של הרשימה לא ישתנה אחרי ביצוע הפעולה what(brr)
- מה מבצעת הפעולה what באופן כללי?
סעיף ג
האם קיימת רשימה crr בגודל של שישה תאים, שעבורה שני זימונים why (crr) ו-what (crr) יביאו לאותן תוצאות? אם כן – תנו דוגמה של הרשימה crr, ולא – הסבר למה.
סעיף ד
מה הן סיבוכיות זמן הריצה של הפעולות what ו-why?
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.