Divide and Conquer Paradigm By: Melissa Manley
How does it work? Divide : the original problem into two or more sub-problems Recursively solves the sub-problems Conquer : by then combining the solutions to these sub-problems
& Gauss Karatsuba & Gauss Karatsuba
Advantages Allows us to solve difficult problems Helps find other efficient algorithms Effectively uses Memory Caches Sometimes will produce more precise outcomes.
Disadvantages Recursion is slow Occasionally more complicated than an iterative approach Sub-problems can occur more than once
Binary Search Referred to as the “ultimate divide and conquer algorithm” The main concept: decides to use one half of the data set, or the other For example, if trying to find a key k in a set of keys containing data z[0,1,…,n-1] : Compare k to n/2 Based on this result, use either the 1 st or 2 nd half of the data
Binary Search Tree
Mergesort Algorithm The merge sort divides the data into two halves It then recursively solves each half of the data Then merges the data sets back together after they have been sorted
Quicksort Algorithm A Random sorting algorithm Sorts by applying the divide and conquer strategy. How it works: Pick a random element from the set Divide the data into 3 groups Recursively sort the sub-list of lesser elements and the sub-list of greater elements.
Cooley Tukey FFT Algorithm most common Fast Fourier Transform Originally used by Carl Friedrich Gauss Been rediscovered many times and popularized by J. W. Cooley and J. W. Tukey in 1965
Cooley-Tukey It is a D & C algorithm Recursively breaks down a Discrete Fourier Transform of size N = N 1 N 2 into smaller DFT’s of size N 1 and N 2.
Running Time Based on three criteria: The # of sub instances the problem is split into The ratio of the original problem size to the sub problem size The number of steps required to divide and conquer
Comparing different sorting algorithm Running Times Algorithm Running Times Selection Sort O(n^2) (Slow) Insertion Sort O(n^2) (Slow) Mergesort O(nlog(n)) (Fast) Quicksort O(nlog(n)) (Fastest)
Recommend
More recommend