מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים...
-
date post
18-Dec-2015 -
Category
Documents
-
view
259 -
download
6
Transcript of מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים...
![Page 1: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/1.jpg)
( Sorting )מיון
מספרים. n: מערך בן קלט
מאוחסנים בסדר אותם: מערך ובו המספרים פלטעולה.
12 31 1 5 6 11 41 16 3 19 44 23 93 564 99712 31 1 5 6 11 41 16 3 19 44 23 93 564 997
![Page 2: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/2.jpg)
BubbleSort
12 31 1 5 6 11 41 16 3 19 44 23 93 564 997
for )i=0; i<n-1; i++({for )j=n-2; j>=i; j--({
If )a[j] > a[j+1](
i=0
j=15
swap )&a[j],&a[j+1](; }}
n=17
![Page 3: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/3.jpg)
BubbleSort
12 31 1 5 6 11 41 16 3 19 44 23 93 564 997
for )i=0; i<n-1; i++({
n=17
for )j=n-2; j>=i; j--({
If )a[j] > a[j+1](
i=0
j=14
swap )&a[j],&a[j+1](; }}
![Page 4: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/4.jpg)
BubbleSort
12 31 1 5 6 11 41 16 3 19 44 23 93 564 997
for )i=0; i<n-1; i++({
n=17
for )j=n-2; j>=i; j--({
If )a[j] > a[j+1](
i=0
j=13
swap )&a[j],&a[j+1](; }}
![Page 5: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/5.jpg)
BubbleSort
12 31 1 5 6 11 41 16 3 19 44 23 93 564 997
for )i=0; i<n-1; i++({
n=17
for )j=n-2; j>=i; j--({
If )a[j] > a[j+1](
i=0
swap )&a[j],&a[j+1](; }}
![Page 6: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/6.jpg)
BubbleSort
12 31 1 5 6 11 41 16 3 19 44 23 93 564 997
for )i=0; i<n-1; i++({
n=17
for )j=n-2; j>=i; j--({
If )a[j] > a[j+1](
i=0
swap )&a[j],&a[j+1](; }}
![Page 7: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/7.jpg)
BubbleSort
12 31 1 5 6 11 41 163 19 44 23 93 564 997
for )i=0; i<n-1; i++({
n=17
for )j=n-2; j>=i; j--({
If )a[j] > a[j+1](
i=0
swap )&a[j],&a[j+1](; }}
אבר מינימאלי
i=1
![Page 8: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/8.jpg)
BubbleSort
12 311 5 6 11 41 163 19 44 23 93 564 997
for )i=0; i<n-1; i++({
n=17
for )j=n-2; j>=i; j--({
If )a[j] > a[j+1](swap )&a[j],&a[j+1](; }}
i=1
![Page 9: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/9.jpg)
12 311 5 6 11 41 163 19 4423 93564 997
for )i=0; i<n-1; i++({for )j=n-2; j>=i; j--({
If )a[j] > a[j+1](swap )&a[j],&a[j+1](; }}
אבר מינימאלי שני
![Page 10: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/10.jpg)
for )i=0; i<n-1; i++({for )j=n-2; j>=i; j--({
If )a[j] > a[j+1](swap )&a[j],&a[j+1](; }}
12 311 5 6 11 41 163 19 4423 93564 997
i= 0,1,…,n-2j= n-2,n-3,…,iO(1)
O(1)
2
0
1)2(n
i
in
2
0
1n
i
in
1
1
n
k
k
2
)1( nn )( 2nO
סיבוכיות מקום נוסף)1(O
סיבוכיות זמן
![Page 11: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/11.jpg)
BubbleSort
סיבוכיות זמן
סיבוכיות מקוםנוסף
)( 2nO
)1(O
![Page 12: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/12.jpg)
HeapSort הוא מבנה נתונים המוגדר ע"י הפעולות הבאות:תור עדיפויות
-MakeHeap(Q)צור ערימה ריקה 1.
Insert(x,Q) לערימה - xהכנס רשומה 2.
Max(Q)הדפס את הרשומה עם המפתח הגדול ביותר - 3.
DeleteMax(Q)הוצא את הרשומה עם המפתח הגדול ביותר - 4.
1.MakeHeap)Q(2. for )i=0 ;i=n-1;i++( Insert)A[i],Q(3. for )i=n-1;i=0;i--( 4. {A[i]=Max)Q(; DeleteMax)Q(}
![Page 13: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/13.jpg)
1.MakeHeap)Q(2. for )i=0 ;i=n-1;i++( Insert)A[i],Q(3. for )i=n-1;i=0;i--( 4. {A[i]=Max)Q(; DeleteMax)Q(}
סיבוכיות מקום נוסף
סיבוכיות זמןO(1)O(n log n)O(n log n)
O(n log n)
O(n)
![Page 14: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/14.jpg)
BubbleSort
סיבוכיות זמן
סיבוכיות מקוםנוסף
)( 2nO
)1(O
HeapSort
)log( nnO
( )O n
O(1) ?האם אפשר בסיבוכיות מקום
![Page 15: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/15.jpg)
1.MakeHeap)A(2. for )i=n;i=2;i--( 3. {X=Max)A(; \* X=A[1] *\ 4. DeleteMax)A(5. A[i]=X}
12 311 5 63 4 71 2 3 4 5 6 7 8
119
12 311 5 63 4 7 11
1
2 3
4 5 6 7
8 9
![Page 16: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/16.jpg)
1.MakeHeap)A(2. for )i=n;i=2;i--( 3. {X=Max)A(; \* X=A[1] *\ 4. DeleteMax)A(5. A[i]=X}
12 31
1
5 6
3 4
7 11
1
2 3
4 5 6 7
8 9
![Page 17: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/17.jpg)
12
31
1
5
6
3 4
7
11
1.MakeHeap)A(2. for )i=n;i=2;i--( 3. {X=Max)A(; \* X=A[1] *\ 4. DeleteMax)A(5. A[i]=X}
![Page 18: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/18.jpg)
12
311
5
6
3 47
11
1.MakeHeap)A(2. for )i=n;i=2;i--( 3. {X=Max)A(; \* X=A[1] *\ 4. DeleteMax)A(5. A[i]=X}
![Page 19: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/19.jpg)
12 31
1 5
6
3 4
7
11
1.MakeHeap)A(2. for )i=n;i=2;i--( 3. {X=Max)A(; \* X=A[1] *\ 4. DeleteMax)A(5. A[i]=X}
![Page 20: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/20.jpg)
12 31
1 5
6
3
4
7
11
1.MakeHeap)A(2. for )i=n;i=2;i--( 3. {X=Max)A(; \* X=A[1] *\ 4. DeleteMax)A(5. A[i]=X}
בסוף נקבל
![Page 21: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/21.jpg)
12 31
1
5 6
3 4
7 11
1.MakeHeap)A(2. for )i=n;i=2;i--( 3. {X=Max)A(; \* X=A[1] *\ 4. DeleteMax)A(5. A[i]=X}
בסוף נקבל
12 31
1
5 6
3 4
7 11
1 2 3 4 5 6 7 8 9
![Page 22: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/22.jpg)
1.MakeHeap)A(2. for )i=n;i=2;i--( 3. {X=Max)A(; 4. DeleteMax)A(5. A[i]=X}
סיבוכיות זמן
O(?)
O(log n)
O(n)
O(n log n)
O(1)
O(1)
סיבוכיות מקום נוסף
O(1)
![Page 23: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/23.jpg)
12 31
1
5 6
3 4
7 11
MakeHeap
. נגש לתת-עץ של צמת שהוא לא עלה2
. כל עלה הוא תת-עץ ערימה1
. נבדוק אם הוא ערימה ז"א3
][]/2[ וגם ][]/12[ jAjAjAjA
1,,12/,2/ nnj
לתת העץ Sift-downאם לא תבציע j
4j
![Page 24: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/24.jpg)
12 31
1
5 6
3 4
7 11
MakeHeap
. נגש לתת-עץ של צמת שהוא לא עלה2
. כל עלה הוא תת-עץ ערימה1
. נבדוק אם הוא ערימה ז"א3
][]/2[ וגם ][]/12[ jAjAjAjA
1,,12/,2/ nnj
לתת העץ Sift-downאם לא תבציע j
3j
![Page 25: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/25.jpg)
12 31
1
5
63
4
7 11
MakeHeap
. נגש לתת-עץ של צמת שהוא לא עלה2
. כל עלה הוא תת-עץ ערימה1
. נבדוק אם הוא ערימה ז"א3
][]/2[ וגם ][]/12[ jAjAjAjA
1,,12/,2/ nnj
לתת העץ Sift-downאם לא תבציע j
2j
![Page 26: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/26.jpg)
12
31
1
5
6
3 4
7 11
MakeHeap
. נגש לתת-עץ של צמת שהוא לא עלה2
. כל עלה הוא תת-עץ ערימה1
. נבדוק אם הוא ערימה ז"א3
][]2[ וגם ][]12[ jAjAjAjA
1,,12/,2/ nnj
לתת העץ Sift-downאם לא תבציע j
1j
![Page 27: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/27.jpg)
MakeHeap
סיבוכיות זמן
1,,12/,2/ nnj
h1)1(2 h
)2(22 h
))1((2 hhh
![Page 28: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/28.jpg)
MakeHeap
סיבוכיות זמן
))1((2)2(2)1(21 12 hhhhh h
hh h
22
3
2
2
2
12
32
hh h
22
3
2
2
2
12
32
h22 n2 )(nO
![Page 29: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/29.jpg)
222
4
2
3
2
2
2
1432
h
h
32/1
32/116/1
32/116/18/1
32/116/18/14/1
32/116/18/14/12/1
1
2/1
4/1
2
![Page 30: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/30.jpg)
2 3 4
1 2 3 4
2 2 2 2 2h
hL הוכחה שניה
2 3 2
1
1 1 1 1 1 1 2
2 2 2 2 2 2 2
1 1 1
2 2 2h h
L
h
2 3
1 1 1 1 1
2 2 2 2 2hL L
11
2L L 2L
![Page 31: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/31.jpg)
BubbleSort
סיבוכיות זמן
סיבוכיות מקוםנוסף
)( 2nO
)1(O
HeapSort
)log( nnO
)(nO)1(O
![Page 32: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/32.jpg)
QuickSort
12 31 1 5 6 11 41 16 3 19 44 23 93 564 997
41
Partition)a,1,17,pivot(
QuickSort)a,1,17(
13
=pivot
Choose-pivot
![Page 33: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/33.jpg)
12 31 1 5 6 11 4116 3 19 4423 93 564 997
QuickSort)a,1,12(QuickSort)a,13,17(
![Page 34: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/34.jpg)
QuickSort(Key *A, int left, int right) int i, j, p; if (left >= right) return ; p = choose_pivot(A,left,right); i = partition(A,left,right,p); QuickSort(A, left, i-1); QuickSort(A,i,right);
12 31 1 5 6 11 41 16 3 19 44 23 93 564 997
left right
41p=
12 31 1 5 6 11 4116 3 19 4423 93 564 997
i=13
12 311 5 6 11 163 19 234 7 41 44 93 56 99
![Page 35: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/35.jpg)
Partition)A,left,right,p( i=left; j=right;while )A[i]<p( i++; while )A[j]>p( j--; if )i<=j( { swap)a[i],a[j](; i++; j--; }
nO)(סיבוכיות זמן
12 31 1 5 6 11 41 16 3 19 44 23 93 564 997
i j
![Page 36: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/36.jpg)
QuickSortניתוח זמן של
)()()(
)1()1(
11 nnTnTcnnT
OT
Partition)A,1,n,pivot(
QuickSort)A,1,n(
QuickSort)A,1,n1( QuickSort)A, n1,n(
סיבוכיות זמן
סיבוכיות מקום נוסף)),(max()(
)1()1(
11 nnnScnS
OS
![Page 37: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/37.jpg)
)()()(
)1()1(
11 nnTnTcnnT
OT
המקרה הגרוע
)1()1()( nTTcnnT
)1( nTcn
)2()1( ncnccn
)( 2nסבוכיות מקום נוסף
)),(max()(
)1()1(
11 nnnScnS
OS
)1( nSc )(n
סבוכיות זמן
![Page 38: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/38.jpg)
)()()(
)1()1(
11 nnTnTcnnT
OT
המקרה הטוב
)2/()2/()( nTnTcnnT
)2/(2 nTcn
)2/(2 kk
k
nTcncncncn
)log( nn
סבוכיות מקום נוסף
)),(max()(
)1()1(
11 nnnScnS
OS
)2/(nSc )(log n
סבוכיות זמן
![Page 39: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/39.jpg)
1
)()(
)(
)1()1(1
111
1
n
nnTnT
cnnT
OTn
n
המקרה הממוצע
נוסחת הנסיגה דומה לנוסחת הנסיגה למספר ההשוואות הנדרש לבניית עץ חיפוש בינרי אקראי. שיטת הפתרון זהה. פרטים בספר
8הלימוד, פרק .)log()( nnOnT
סבוכיות זמן
בחירה רנדומלית של ציר
![Page 40: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/40.jpg)
1
))(),(max(
)(
)1()1(1
111
1
n
nnSnS
cnS
OSn
n
סבוכיות מקום נוסף ממוצע
פתרון
)(log)( nnS
![Page 41: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/41.jpg)
BubbleSort
סיבוכיות זמן
סיבוכיות מקוםנוסף
)( 2nO
)1(O
HeapSort
)log( nnO
)1(O
QuickSort
)log( nnOממוצע
)(log nOממוצע
![Page 42: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/42.jpg)
מדויק שיתן סבוכיות מקום נוסף QuickSortנראה ממוש ל-
)(log)( nOnS QuickSort(A, left, right)
while (left < right){
p = choose_pivot(A,left,right);
i = partition(a,left,right,p);
if (i-1 < right – i + 1)
QuickSort(A, left, i-1); left = i ;
else
QuickSort(A, i, right); right = i - 1 ;
i
left right
left right
)),(min()( 11 nnnScnS
)2/(nSc )(log)( nOnS
![Page 43: מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה. 12311561141163194423935649971231156114116319442393564997.](https://reader033.fdocuments.net/reader033/viewer/2022061618/56649d255503460f949fc317/html5/thumbnails/43.jpg)
BubbleSort
סיבוכיות זמן
סיבוכיות מקוםנוסף
)( 2nO
)1(O
HeapSort
)log( nnO
)1(O
QuickSort
)log( nnOממוצע
)(log nOממוצע