|
|
שורה 4: |
שורה 4: |
|
| |
|
| [[Category:מדעי המחשב]] | | [[Category:מדעי המחשב]] |
|
| |
|
| |
|
| |
| ממשק עברי C סבוכיות
| |
| רשימה - list
| |
| 1 אתחל_רשימה ß L L=list_init(); O(1)
| |
| 2 עוגן_רשימה(L) ß p p=list_anchor(L); O(1)
| |
| 3 סוף_רשימה(L) ß q q=list_end(L); O(1)
| |
| 4 עוקב_ברשימה(L,p) ß p p=list_next(L,p); O(1)
| |
| 5 קודם_ברשימה(L,p) ß p p=list_prev(L,p); O(n)
| |
| 6 הכנס_לרשימה(L,p,x) list_insert(&L,p,x); O(1)
| |
| 7 הוצא_מרשימה(L,p) list_delete(&L,&p); O(n)
| |
| 8 עדכן_רשימה(L,p,x) list_update(&L,p,x); O(1)
| |
| 9 אחזר_מרשימה(L) ß x list_retrieve(L,p,&x); O(1)
| |
| 10 רשימה_ריקה?(L) ß f f=list_is_empty(L); O(1)
| |
| מחסנית - stack
| |
| 11 אתחל_מחסנית(s) ß s s=stack_init(s); O(1)
| |
| 12 שלוף_ממחסנית(s) ß x x=stack_pop(&s); O(1)
| |
| 13 הצץ_למחסנית(s) ß x x=stack_top(s); O(1)
| |
| 14 דחוף_למחסנית(s,x) stack_push(&s,x); O(1)
| |
| 15 מחסנית_ריקה?(s) ß f f=stack_empty(s); O(1)
| |
| תור – queue
| |
| 16 אתחל_תור() ß q q=queue_init(); O(1)
| |
| 17 הוצא_מתור(q) ß x x=queue_remove(&q); O(1)
| |
| 18 ראש_התור(q) ß x x=queue_head(q); O(1)
| |
| 19 הכנס_לתור(x,q) queue_insert(&q,x); O(1)
| |
| 20 תור_ריק?(q)ß f f=queue_empty(q); O(1)
| |
|
| |
|
| |
| סיכום פעולות טיפוסי נתונים מופשטים וסבוכיותיהן
| |
|
| |
|
| |
| ייצוג רשימה
| |
|
| |
| הגדרת טיפוס שדה האינפורמציה:
| |
| typedef SOMETHING list_info_type;
| |
|
| |
| הגדרת חוליה:
| |
| struct link_type
| |
| {
| |
| list_info_type info;
| |
| struct link_type *next;
| |
| };
| |
| הגדרת מצביע הרשימה:
| |
|
| |
| typedef struct link_type *pos_type;
| |
|
| |
| הגדרת הרשימה עצמה:
| |
| typedef struct
| |
| {
| |
| pos_type anchor;
| |
| /* אם צריך יהיו כאן שדות נוספים */
| |
| } list_type;
| |
|
| |
|
| |
| ייצוג מחסנית באמצעות רשימה
| |
|
| |
| הגדרת טיפוס שדה האינפורמציה:
| |
| typedef list_info_type stack_info_type;
| |
|
| |
| הגדרת המחסנית עצמה
| |
| typedef list_type stack_type;
| |
|
| |
|
| |
|
| |
| ייצוג תור
| |
|
| |
| typdef int queue_info_type;
| |
|
| |
|
| |
|
| |
| שיטת המלבנים
| |
|
| |
| הקטע שבו אנו מעוניינים לחשב את השטח שבין גרף הפונקציה לציר הx הוא (a,b)
| |
| נסמן את מספר המלבנים בN.
| |
| נסמן בΔx את רוחבו של כל מלבן. מכיוון שכל המלבנים שווים ברוחבם, רוחבו של כל מלבן יהיה
| |
| Δx=(b-a)/N
| |
|
| |
| נשים לב שגובהו של כל מלבן שווה לערכה של הפונקציה בנקודה שבה נמצא צדו השמאלי של המלבן. לדוג', גובהו של המלבן הראשון שווה לערכה של הפונקציה בנקודה a.
| |
| מכן נוכל לחשב את השטח:
| |
|
| |
| S = Δx [ƒ(a)+ ƒ(a + Δx)+ ƒ(a + 2Δx )+ … + ƒ(a + (N - 1)Δx)]
| |
|
| |
|
| |
| מציאת הדיוק E :
| |
| E ≤ [Max a≤x≤b | ƒ′ (x) | * (b-a) ²] / 2N
| |
|
| |
| או
| |
|
| |
| E ≤ (1/N) * [Max a≤x≤b | ƒ′ (x) | /2] * (b-a)
| |
|
| |
| * בחלק Max a≤x≤b | ƒ′ (x) | מציבים את a ואת b בערך המוחלט של נגזרת הפונקציה ומקבלים את הערך הגבוה מבניהם.
| |
|
| |
|
| |
| מציאת מספר המלבנים N על מנת להגיע לדיוק E :
| |
|
| |
| N ≥ [Max a≤x≤b | ƒ′ (x) | * (b-a)² ] / 2E
| |
|
| |
|
| |
|
| |
| שיטת הטרפזים
| |
|
| |
| הקטע שבו אנו מעוניינים לחשב את השטח שבין גרף הפונקציה לציר הx הוא (a,b)
| |
| נסמן את מספר המלבנים בN.
| |
| נסמן בΔx את רוחבו של כל טרפז. מכיוון שכל הטרפזים שווים ברוחבם, רוחבו של כל טרפז יהיה
| |
| Δx=(b-a)/N
| |
|
| |
| בסיסו השמאלי של כל טרפז שווה לערכה של הפונקציה בנקודה שבה נמצא צדו השמאלי של הרוחב. לדוג', בסיסו של הטרפז הראשון שווה לערך הפונקציה בנקודה a.
| |
| תזכורת: שטח טרפז שווה לסכום בסיסיו כפול הגובה חלקי 2.
| |
| השטח שאנו מחשבים הוא סכום הטרפזים. לכן, נחשב את שטחי כל הטרפזים בנפרד ונחברם.
| |
|
| |
| Sm = [ƒ(a + (m-1)* Δx) + ƒ(a + m* Δx)] * Δx / 2
| |
|
| |
| S = S1 + S2 + …+ SN
| |
|
| |
|
| |
| מציאת הדיוק E :
| |
|
| |
| E ≤ √ { [Max a≤x≤b | ƒ″(x) | * (b-a) ³] / 12N }
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
| גלעד וינטרפלד י"א 3
| |
|
| |
| חישוב משוואות
| |
|
| |
| האלימינציה של גאוס-ז'ורדן
| |
|
| |
| צריך להגיע מהמערכת המקורית למטריצת היחידה :
| |
|
| |
|
| |
|
| |
| X Y Z
| |
| X1 Y1 Z1 A
| |
| X2 Y2 Z2 B
| |
| X3 Y3 Z3 C
| |
| X Y Z
| |
| 1 0 0 X
| |
| 0 1 0 Y
| |
| 0 0 1 Z
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
| X, Y ו-Z הן התשובות הסופיות.
| |
|
| |
|
| |
| שיטת המטריצה ההפוכה
| |
|
| |
| צריך להגיע ממטריצה שצד האחד הוא המשוואה וצדה השני מטריצת יחידה, למטריצה שצדה האחד (שהיה קודם המשוואה) למטריצת היחידה :
| |
|
| |
|
| |
| X Y Z
| |
| X1 Y1 Z1 1 0 0
| |
| X2 Y2 Z2 0 1 0
| |
| X3 Y3 Z3 0 0 1
| |
| X Y Z
| |
| 1 0 0 A1 B1 C1
| |
| 0 1 0 A2 B2 C2
| |
| 0 0 1 A3 B3 C3
| |
|
| |
|
| |
|
| |
| לאחר שהגענו לשלב השני, אנו כופלים את המטריצה הימנית בוקטור התשובות המקוריות:
| |
|
| |
| A1 * A + A2 * B + A3 * C = X
| |
| B1 * A + B2 * B + B3 * C = Y
| |
| C1 * A + C2 * B + C3 * C = Z
| |
|
| |
| כאשר A, B ו-C הן התשובות מוקטור התשובות, וX, Y ו-Z הן התשובות הסופיות.
| |