Counting Sort Radix Sort Bucket Sort A 3
: היום נלמד Counting Sort Radix Sort Bucket Sort
A 3 2 3 1
for i ← 1 to k C[i] ← = 0 A 3 2 3 C 0 0 0 1 3 1
for i ← 1 to n C[A[i]] ← C[A[i]] + 1 A 3 2 3 C 0 0 0 1 3 1 C[i] is number of appearances of the element i in A
for i ← 1 to n C[A[i]] ← C[A[i]] + 1 A 3 2 3 C 2 1 3 1 C[i] is number of appearances of the element i in A
for i ← 2 to k C[i] ← C[i] + C[i-1] A C 3 2 2 1 3 3 1
for i ← 2 to k C[i] ← C[i] + C[i-1] A C 3 2 2 3 3 6 1 3 1
for i ← n down to 1 B[C[A[i]]] ← A[i] C[A[i]] ← C[A[i]] – 1 A C B 3 2 2 3 3 6 1 3 1 place all elements in A into their final place into B
for i ← n down to 1 B[C[A[i]]] ← A[i] C[A[i]] ← C[A[i]] – 1 i=6, A[6]=1, C[1]=2 A 3 2 3 C 2 3 6 B 1 3 1
for i ← n down to 1 B[C[A[i]]] ← A[i] C[A[i]] ← C[A[i]] – 1 i=6, A[6]=1, C[1]=2 A 3 2 3 C 1 3 6 B 1 1 3 1
for i ← n down to 1 B[C[A[i]]] ← A[i] C[A[i]] ← C[A[i]] – 1 i=5, A[5]=3, C[3]=6 A 3 2 3 C 1 3 6 B 1 1 3 1
for i ← n down to 1 B[C[A[i]]] ← A[i] C[A[i]] ← C[A[i]] – 1 i=5, A[5]=3, C[3]=6 A 3 2 3 C 1 3 5 B 1 1 3
for i ← n down to 1 B[C[A[i]]] ← A[i] C[A[i]] ← C[A[i]] – 1 i=4, A[4]=1, C[1]=1 A 3 2 3 C 1 3 5 B 1 1 3
for i ← n down to 1 B[C[A[i]]] ← A[i] C[A[i]] ← C[A[i]] – 1 i=4, A[4]=1, C[1]=1 A 3 2 3 C 0 3 5 B 1 1 1 3
for i ← n down to 1 B[C[A[i]]] ← A[i] C[A[i]] ← C[A[i]] – 1 i=3, A[3]=3, C[3]=5 A 3 2 3 C 0 3 5 B 1 1 1 3
for i ← n down to 1 B[C[A[i]]] ← A[i] C[A[i]] ← C[A[i]] – 1 i=3, A[3]=3, C[3]=5 A 3 2 3 C 0 3 4 B 1 1 1 3 3
for i ← n down to 1 B[C[A[i]]] ← A[i] C[A[i]] ← C[A[i]] – 1 i=2, A[2]=2, C[2]=3 A 3 2 3 C 0 3 4 B 1 1 1 3 3
for i ← n down to 1 B[C[A[i]]] ← A[i] C[A[i]] ← C[A[i]] – 1 i=2, A[2]=2, C[2]=3 A 3 2 3 C 0 2 4 B 1 1 2 1 3 3
for i ← n down to 1 B[C[A[i]]] ← A[i] C[A[i]] ← C[A[i]] – 1 i=1, A[1]=3, C[3]=4 A 3 2 3 C 0 2 4 B 1 1 2 1 3 3
שאלה 1 11 דוגמא : k=10 10 8 9 7 5 6 4 3 1 2 7 1 3 1 2 4 5 3 2 4 3 פתרון : שלב מנייה : שלב צבירה : 10 9 8 7 6 5 4 3 2 1 0 0 0 1 2 3 2 2 10 9 8 7 6 5 4 3 2 1 11 11 10 10 9 7 4 2 C[5] – c[2] = 10 – 4 = 6 ? [3, 5]
Radix-Sort • 329 457 657 839 436 720 355 sorted by digit 1 sorted by digit 2 720 355 436 457 657 329 839 720 329 436 839 355 457 657 sorted 329 355 436 457 657 720 839 ? למה חשוב שהמיון המשני יהיה יציב 19 10 10 19
Radix-Sort • 329 457 657 839 436 720 355 sorted by digit 1 sorted by digit 2 720 355 436 457 657 329 839 720 329 436 839 355 457 657 sorted 329 355 436 457 657 720 839 ? למה חשוב שנמיין מסוף להתחלה 12 31 31 12
Bucket Sort • …
Bucket Sort • 0… 9 10… 19 20… 29 30… 39 40… 49 50… 59 60… 69 70… 79 80… 89 90… 99
Bucket Sort • 21 0… 9 10… 19 20… 29 30… 39 40… 49 50… 59 60… 69 70… 79 80… 89 90… 99
Bucket Sort • 55 0… 9 10… 19 20… 29 21 30… 39 40… 49 50… 59 60… 69 70… 79 80… 89 90… 99
Bucket Sort • 44 0… 9 10… 19 20… 29 30… 39 40… 49 50… 59 60… 69 70… 79 21 55 80… 89 90… 99
Bucket Sort • 73 0… 9 10… 19 20… 29 21 30… 39 40… 49 50… 59 60… 69 70… 79 44 55 80… 89 90… 99
Bucket Sort • 86 0… 9 10… 19 20… 29 21 30… 39 40… 49 50… 59 60… 69 70… 79 34 44 55 73 80… 89 89 90… 99
Bucket Sort • 0… 9 8 10… 19 20… 29 18 21 30… 39 40… 49 50… 59 60… 69 70… 79 34 44 55 73 80… 89 90… 99 89 86 92
Bucket Sort • 0… 9 8 10… 19 20… 29 18 21 30… 39 40… 49 50… 59 60… 69 70… 79 34 44 55 73 80… 89 90… 99 86 89 92
Bucket Sort • 0… 9 8 10… 19 20… 29 18 21 30… 39 40… 49 50… 59 60… 69 70… 79 34 44 55 73 80… 89 90… 99 86 89 92
Bucket Sort •
Review
4 שאלה • counting sort Heap sort bucket sort Insertion sort Radix sort • • •
- Slides: 49