Parallel Algorithms: Difference between revisions

Line 136: Line 136:


===Techinque: Divide and Conquer===
===Techinque: Divide and Conquer===
;Merge Sort
Input: Array A[1..n]<br>
Complexity:<br>
Time: <math>T(n) \leq T(n/2) + \alpha \log n</math><br>
Work: <math>T(n) \leq 2 * T(n/2) + \beta n</math><br>
Time <math>O(\log^2 n)</math>. Work: <math>O(n \log n)</math>
<pre>
MergeSort(A, B):
  if n == 1
    return B(1) = A(1)
  call in parallel:
    MergeSort(A[1:n/2], C[1:n/2])
    MergeSort(A[n/2+1:n], C[n/2+1:n])
  Merge C[1:n/2] and C[n/2:n] using O(log n) algorithm
</pre>


==Resources==
==Resources==