Examples of Recursion


Problems

Problem : What is the base case for quicksort? How would combining quicksort with another sorting algorithm like selection sort change the base case?


Problem : How does mergesort achieve its O(nlogn) efficiency?


Problem : While mergesort and quicksort are two "smart" and efficient sorts, there are plenty of inefficient sorts out there, none of which you would ever want to use in a program. One such sort is the permutation sort. A permutation of a data set is one configuration, one ordering of the data. If there are n data elements in a data set, then there are n! permatuations (you have n choices for which element goes first, then n - 1 choices for which element goes second, n - 2 choices for which element goes third, etc, so n! ). The permutation sort algorithm computes every permutation of the data set, and for each one checks to see if it is in order If it is, the algorithm ends. If not, it continues on to the next permuation. Write permuation sort recursively (the easiest way to do it). Note that a recursive algorithm can still have loops.


Problem : Your friend Jane proposes the following algorithm for a sort:


random_sort(data set) {
	-randomly swap two elements
	-check to see if the data is in order
		-if it is return as we're done
	-otherwise call random_sort
}
Jane claims that although this algorithm is incredibly inefficient, it will work. You claim that even if you lucked out and got good random swaps, in most cases it would cause your computer program to crash. Why?


Problem : Your friend John claims that quicksort has a worst case running time of O(n 2) . Is he right?


Take a Study Break

Green YOUR SCHOOL!

Click here to get involved with dosomething.org!

John Krasinski's BIG MIRACLE

Click to watch the trailer and read exclusive star interviews!

Do you like Anna?

Read Dear Albert... from ANNA's perspective!

BATTLESHIP, the movie

Here's why we're super jazzed about it.

Do energy juices actually work?

Our blogger puts 'em to the test!


The Book

Cover image

Read What You Love, Anywhere You Like

Get Our FREE NOOK Reading Apps