Algorithms

Parallel Sorting in Theory and in Practice I

Parallel Sorting in Theory and in Practice I

Mike
We’re going to begin our discussion of parallel algorithms. We’ll do this by giving a parallel version of quick_sort_plus. We finish this entry by extending the “Almost the Master Theorem” to include cases where f(n) = cn^alpha*log_2(n). In our next entry, we’ll introduce merge_sort as well as a couple different parallel versions of it. We’ll also discuss both the theoretical and practical runtimes for these functions.
Finding the Median and an Application to Sorting

Finding the Median and an Application to Sorting

Mike
In the previous few entries we’ve been discussing quick_sort and analyzing the run-time complexity of recursive algorithms. We’re going to apply what we’ve learned so far to finding the median of an array in O(n) time. Then we’re going to see how that can be added to quick_sort to guarantee that it finishes in O(nlog_2(n)) time.
More on Sorting and Analyzing Run Time Complexity

More on Sorting and Analyzing Run Time Complexity

Mike
In the previous entry (Sorting, Random Permutations, and little bit of Probability), we introduced quick_sort, gave a version of it in C++ and started to analyze how many steps it takes to sort a vector of floating point numbers. In this entry, we continue that analysis and prove some results that will help us get a feel for other recursive algorithms.