Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 9 Algorithm Efficiency & Sorting

Similar presentations


Presentation on theme: "Chapter 9 Algorithm Efficiency & Sorting"— Presentation transcript:

1 Chapter 9 Algorithm Efficiency & Sorting
Programming efficiently has been important up to this point, but we’re now going to examine the methods that have been developed to determine just how efficient a program is. Measuring Algorithm Efficiency Example: Searching Algorithms Example: Sorting Algorithms CS 240 Chapter 9 – Algorithm Efficiency & Sorting

2 Time Complexity Terminology: Big-O
Function T(n) is said to be O(f(n)) if there are positive constants c and n0 such that T(n)  c f(n) for every n  n0. Example: n3 + 3n2 + 6n + 5 is O(n3). (Use c = 15 and n0 = 1.) Example: n2 + n logn is O(n2). (Use c = 2 and n0 = 1.) r(n) g(n) r(n) is O(g(n)) since (1)g(n) exceeds r(n) for all n-values past ng g(n) is O(r(n)) since (3)r(n) exceeds g(n) for all n-values past nr ng nr CS 240 Chapter 9 – Algorithm Efficiency & Sorting

3 Chapter 9 – Algorithm Efficiency & Sorting
Demonstrating The Big-O Concept Both algorithms below have O(n3) time complexity. 1,110 11,110 1,010,100 2,010,100 1,001,001,000 1,101,001,000 1,000,100,010,000 1,010,100,010,000 1,000,010,000,100,000 1,001,010,000,100,000 1,000,001,000,001,000,000 1,000,101,000,001,000,000 10 100 1,000 10,000 100,000 1,000,000 A B ALGORITHM Input Size n (In fact, the execution time for Algorithm A is n3 + n2 + n, and the execution time for Algorithm B is n n2 + n.) CS 240 Chapter 9 – Algorithm Efficiency & Sorting

4 Chapter 9 – Algorithm Efficiency & Sorting
A Second Big-O Demonstration Both algorithms below have O(n2) time complexity. 123 10,123 10,203 110,203 1,002,003 2,002,003 100,020,003 110,020,003 10,000,200,003 10,100,200,003 1,000,002,000,003 1,001,002,000,003 10 100 1,000 10,000 100,000 1,000,000 C D ALGORITHM Input Size n (In fact, the execution time for Algorithm C is n2 + 2n + 3, and the execution time for Algorithm D is n n + 3.) CS 240 Chapter 9 – Algorithm Efficiency & Sorting

5 Chapter 9 – Algorithm Efficiency & Sorting
One More, Rather Complex Big-O Demonstration Both algorithms below have O(nlogn) time complexity. 90 1,090 1,200 11,200 15,000 115,000 190,000 1,190,000 2,200,000 12,200,000 25,000,000 125,000,000 10 100 1,000 10,000 100,000 1,000,000 E F ALGORITHM Input Size n (In fact, the execution time for Algorithm E is nlogn + 5n, and the execution time for Algorithm F is nlogn + 105n. Note that the linear term for Algorithm F will dominate until n = 2105.) CS 240 Chapter 9 – Algorithm Efficiency & Sorting

6 Chapter 9 – Algorithm Efficiency & Sorting
Big-O Represents An Upper Bound If T(n) is O(f(n)), then f(n) is basically a cap on how bad T(n) will behave when n gets big. g(n) r(n) y(n) v(n) b(n) p(n) YES! YES! YES! Is g(n) O(r(n))? Is v(n) O(y(n))? Is b(n) O(p(n))? YES! YES! NO! Is r(n) O(g(n))? Is y(n) O(v(n))? Is p(n) O(b(n))? CS 240 Chapter 9 – Algorithm Efficiency & Sorting

7 Chapter 9 – Algorithm Efficiency & Sorting
Big-O Comparisons O(n) O(logn) O(2n) O(n2) O(nlogn) CS 240 Chapter 9 – Algorithm Efficiency & Sorting

8 Chapter 9 – Algorithm Efficiency & Sorting
Computational Model For Algorithm Analysis To formally analyze the performance of algorithms, we will use a computational model with a couple of simplifying assumptions: Each simple instruction (assignment, I/O, comparison, addition, multiplication, etc.) is assumed to execute in a single time unit. Memory is assumed to be limitless, so there is always room to store whatever data is needed. The size of the input, n, will normally be used as our main variable, and we’ll primarily be interested in “worst case” scenarios. CS 240 Chapter 9 – Algorithm Efficiency & Sorting

9 Chapter 9 – Algorithm Efficiency & Sorting
General Rules For Running Time Calculation Rule One: Loops The running time of a loop is at most the running time of the statements inside the loop, multiplied by the number of iterations. Example: for (i = 0; i < n; i++) //n iterations A[i] = (1-t)*X[i] + t*Y[i]; //5 time units //per iteration Thus, the total running time is 5n time units, i.e., this part of the program is O(n). CS 240 Chapter 9 – Algorithm Efficiency & Sorting

10 Chapter 9 – Algorithm Efficiency & Sorting
Rule Two: Nested Loops The running time of a nested loop is at most the running time of the statements inside the innermost loop, multiplied by the product of the number of iterations of all of the loops. Example: for (i = 0; i < n; i++) // n iterations for (j = 0; j < n; j++) // n iterations C[i,j] = j*A[i] + i*B[j]; // 4 time units/iter. Total running time: 4n2 time units, i.e., this code is O(n2). More Complex Example: for (i = 0; i < n; i++) // n iterations for (j = i; j < n; j++) // n-i iterations C[j,i] = C[i,j] = j*A[i]+i*B[j]; // 5 t.u./iter. Total running time:  i=0,n-1( j=i, n-15) =  i=0,n-1(5(n-i)) = 5( i=0,n-1n -  i=0,n-1i) = 5(n2 - ½n(n-1)) = ½(5n2 - n) time units, i.e., this code is also O(n2). CS 240 Chapter 9 – Algorithm Efficiency & Sorting

11 Rule Three: Consecutive Statements
The running time of a sequence of statements is merely the sum of the running times of the individual statements. Example: for (i = 0; i < n; i++) //10n time { //units for A[i] = (1-t)*X[i] + t*Y[i]; //entire loop B[i] = (1-s)*X[i] + s*Y[i]; } for (i = 0; i < n; i++) //4n^2 time units for (j = 0; j < n; j++) //for entire C[i,j] = j*A[i] + i*B[j]; //nested loop Total running time: 4n2 + 10n time units, i.e., this code is O(n2). CS 240 Chapter 9 – Algorithm Efficiency & Sorting

12 Rule Four: Conditional Statements
The running time of an if-else statement is at most the running time of the conditional test, added to the maximum of the running times of the if and else blocks of statements. Example: if (amt > cost + tax) // 2 time units { count = 0; // 1 time unit while ((count < n) && (amt > cost+tax)) // 4 TUs per iter. { // At most n iter. amt -= (cost + tax); // 3 time units count++; // 2 time units } cout << “CAPACITY:” << count; // 2 time units else cout << “INSUFFICIENT FUNDS”; // 1 time unit Total running time: 2+max(1 + (4+3+2)n + 2, 1) = 9n+5 time units, i.e., this code is O(n). CS 240 Chapter 9 – Algorithm Efficiency & Sorting

13 Chapter 9 – Algorithm Efficiency & Sorting
Analyzing A Whole Function: Binary Search template <class etype> int binsrch(const etype A[], const etype x, const int n) { int low = 0, high = n-1; int middle; while (low <= high) middle = (low + high)/2; // 3 time units if (A[middle] < x) // << low = middle + 1; // << else if (A[middle] > x) // << At most 4 high = middle - 1; // << time units else // << return middle; // << } return -1; // Return impossible index for unsuccessful search. Note that the loop will, in the worst case, keep dividing the distance between low and high in half until low and high are equal, i.e., it will iterate at most logn times. Thus, the total running time is: 8logn + 4 time units, i.e., this code is O(logn). CS 240 Chapter 9 – Algorithm Efficiency & Sorting

14 Chapter 9 – Algorithm Efficiency & Sorting
Analysis Of Another Function: SuperFreq template <class etype> etype SuperFreq(const etype A[], int n) { etype bestElement = A[0]; // 1 time unit int bestFreq = 0; // 1 time unit int currFreq; for (i = 0; i < n; i++) // n iterations currFreq = 0; // 1 time unit for (j = i; j < n; j++) // n-i iterations if (A[i] == A[j]) // 1 time unit currFreq++; // 2 time units if (currFreq > bestFreq) // 1 time unit bestElement = A[i]; // 1 time unit bestFreq = currFreq; // 1 time unit } return bestElement; // 1 time unit Note that the function is obviously O(n2) due to its familiar nested loop structure. Specifically, its worst-case running time is ½(3n2 + 9n + 6). CS 240 Chapter 9 – Algorithm Efficiency & Sorting

15 Chapter 9 – Algorithm Efficiency & Sorting
What About Recursion? humongInt pow(const humongInt &val, const humongInt &n) { if (n == 0) return humongInt(1); if (n == 1) return val; if (n % 2 == 0) return pow(val*val, n/2); return pow(val*val, n/2) * val; } The worst-case running time would require all 3 conditions to be checked, and to fail (taking 4 time units). The last return requires 3 time units each time it’s executed, and it’ll be executed logn times (since it halves n with each execution, until it reaches a value of 1). Thus, the worst-case running time is 7logn. CS 240 Chapter 9 – Algorithm Efficiency & Sorting

16 Chapter 9 – Algorithm Efficiency & Sorting
Sorting Algorithms // Generic Sort Driver Program #include <fstream> #include <string> using namespace std; int const MAX_LIST_SIZE = 30; typedef string elt; typedef elt list[MAX_LIST_SIZE]; void sort(list L, int n); void main() { list L; int size = 0; ifstream file; file.open(“Names.txt”); file >> L[0]; while (!file.eof()) size++; file >> L[size]; } sort(L, size); As our principal example for examining algorithm efficiency, let’s explore several of the algorithms that have been developed for sorting an array. Moe Edy Zeb Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Names.txt CS 240 Chapter 9 – Algorithm Efficiency & Sorting

17 Chapter 9 – Algorithm Efficiency & Sorting
Bubble Sort void sort(list L, int n) { int j, k = 0; bool exchange_made = true; elt temp; // Make up to n-1 passes through the array; exit early // if no exchanges are made on the previous pass. while ((k < n-1) && exchange_made) exchange_made = false; ++k; for (j = 0; j < n-k; ++j) // n-k comparisons { // on the kth pass if (L[j] > L[j+1]) temp = L[j]; // Exchange must be made L[j] = L[j+1]; L[j+1] = temp; exchange_made = true; } CS 240 Chapter 9 – Algorithm Efficiency & Sorting

18 Bubble Sort: Step-by-Step Example
Moe Edy Zeb Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Edy Moe Zeb Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Edy Moe Ort Zeb Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Edy Moe Ort Bob Zeb Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Edy Moe Ort Bob Wes Zeb Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Edy Moe Ort Bob Wes Ann Zeb Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Edy Moe Ort Bob Wes Ann Uma Zeb Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Edy Moe Ort Bob Wes Ann Uma Quo Zeb Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Edy Moe Ort Bob Wes Ann Uma Quo Kit Zeb Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Edy Moe Ort Bob Wes Ann Uma Quo Kit Fly Zeb Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Edy Moe Ort Bob Wes Ann Uma Quo Kit Fly Vin Zeb Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Edy Moe Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Zeb Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Edy Moe Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Zeb Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Edy Moe Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Zeb Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Edy Moe Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Zeb Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Edy Moe Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Zeb Cub Ida Yul Ren Dan Lex Pez Hal Tia Edy Moe Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Zeb Ida Yul Ren Dan Lex Pez Hal Tia Edy Moe Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Zeb Yul Ren Dan Lex Pez Hal Tia Edy Moe Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Zeb Ren Dan Lex Pez Hal Tia Edy Moe Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Zeb Dan Lex Pez Hal Tia Edy Moe Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Zeb Lex Pez Hal Tia Edy Moe Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Zeb Pez Hal Tia Edy Moe Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Zeb Hal Tia Edy Moe Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Zeb Tia Edy Moe Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Zeb Edy Moe Bob Ort Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Zeb Edy Moe Bob Ort Ann Wes Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Zeb Edy Moe Bob Ort Ann Uma Wes Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Zeb CS 240 Chapter 9 – Algorithm Efficiency & Sorting

19 Chapter 9 – Algorithm Efficiency & Sorting
Edy Moe Bob Ort Ann Uma Quo Wes Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Zeb Edy Moe Bob Ort Ann Uma Quo Kit Wes Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Zeb Edy Moe Bob Ort Ann Uma Quo Kit Fly Wes Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Zeb Edy Moe Bob Ort Ann Uma Quo Kit Fly Vin Wes Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Zeb Edy Moe Bob Ort Ann Uma Quo Kit Fly Vin Wes Gus Xon Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Zeb Edy Moe Bob Ort Ann Uma Quo Kit Fly Vin Wes Gus Joe Xon Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Zeb Edy Moe Bob Ort Ann Uma Quo Kit Fly Vin Wes Gus Joe Nan Xon Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Zeb Edy Moe Bob Ort Ann Uma Quo Kit Fly Vin Wes Gus Joe Nan Sue Xon Cub Ida Yul Ren Dan Lex Pez Hal Tia Zeb Edy Moe Bob Ort Ann Uma Quo Kit Fly Vin Wes Gus Joe Nan Sue Cub Xon Ida Yul Ren Dan Lex Pez Hal Tia Zeb Edy Moe Bob Ort Ann Uma Quo Kit Fly Vin Wes Gus Joe Nan Sue Cub Ida Xon Yul Ren Dan Lex Pez Hal Tia Zeb Edy Moe Bob Ort Ann Uma Quo Kit Fly Vin Wes Gus Joe Nan Sue Cub Ida Xon Ren Yul Dan Lex Pez Hal Tia Zeb Edy Moe Bob Ort Ann Uma Quo Kit Fly Vin Wes Gus Joe Nan Sue Cub Ida Xon Ren Dan Yul Lex Pez Hal Tia Zeb Edy Moe Bob Ort Ann Uma Quo Kit Fly Vin Wes Gus Joe Nan Sue Cub Ida Xon Ren Dan Lex Yul Pez Hal Tia Zeb Edy Moe Bob Ort Ann Uma Quo Kit Fly Vin Wes Gus Joe Nan Sue Cub Ida Xon Ren Dan Lex Pez Yul Hal Tia Zeb Edy Moe Bob Ort Ann Uma Quo Kit Fly Vin Wes Gus Joe Nan Sue Cub Ida Xon Ren Dan Lex Pez Hal Yul Tia Zeb Edy Moe Bob Ort Ann Uma Quo Kit Fly Vin Wes Gus Joe Nan Sue Cub Ida Xon Ren Dan Lex Pez Hal Tia Yul Zeb Edy Bob Moe Ort Ann Uma Quo Kit Fly Vin Wes Gus Joe Nan Sue Cub Ida Xon Ren Dan Lex Pez Hal Tia Yul Zeb Edy Bob Moe Ann Ort Uma Quo Kit Fly Vin Wes Gus Joe Nan Sue Cub Ida Xon Ren Dan Lex Pez Hal Tia Yul Zeb Edy Bob Moe Ann Ort Quo Uma Kit Fly Vin Wes Gus Joe Nan Sue Cub Ida Xon Ren Dan Lex Pez Hal Tia Yul Zeb Edy Bob Moe Ann Ort Quo Kit Uma Fly Vin Wes Gus Joe Nan Sue Cub Ida Xon Ren Dan Lex Pez Hal Tia Yul Zeb Edy Bob Moe Ann Ort Quo Kit Fly Uma Vin Wes Gus Joe Nan Sue Cub Ida Xon Ren Dan Lex Pez Hal Tia Yul Zeb Edy Bob Moe Ann Ort Quo Kit Fly Uma Vin Gus Wes Joe Nan Sue Cub Ida Xon Ren Dan Lex Pez Hal Tia Yul Zeb Edy Bob Moe Ann Ort Quo Kit Fly Uma Vin Gus Joe Wes Nan Sue Cub Ida Xon Ren Dan Lex Pez Hal Tia Yul Zeb Edy Bob Moe Ann Ort Quo Kit Fly Uma Vin Gus Joe Nan Wes Sue Cub Ida Xon Ren Dan Lex Pez Hal Tia Yul Zeb Edy Bob Moe Ann Ort Quo Kit Fly Uma Vin Gus Joe Nan Sue Wes Cub Ida Xon Ren Dan Lex Pez Hal Tia Yul Zeb Edy Bob Moe Ann Ort Quo Kit Fly Uma Vin Gus Joe Nan Sue Cub Wes Ida Xon Ren Dan Lex Pez Hal Tia Yul Zeb Edy Bob Moe Ann Ort Quo Kit Fly Uma Vin Gus Joe Nan Sue Cub Ida Wes Xon Ren Dan Lex Pez Hal Tia Yul Zeb Edy Bob Moe Ann Ort Quo Kit Fly Uma Vin Gus Joe Nan Sue Cub Ida Wes Ren Xon Dan Lex Pez Hal Tia Yul Zeb Edy Bob Moe Ann Ort Quo Kit Fly Uma Vin Gus Joe Nan Sue Cub Ida Wes Ren Dan Xon Lex Pez Hal Tia Yul Zeb Edy Bob Moe Ann Ort Quo Kit Fly Uma Vin Gus Joe Nan Sue Cub Ida Wes Ren Dan Lex Xon Pez Hal Tia Yul Zeb Edy Bob Moe Ann Ort Quo Kit Fly Uma Vin Gus Joe Nan Sue Cub Ida Wes Ren Dan Lex Pez Xon Hal Tia Yul Zeb CS 240 Chapter 9 – Algorithm Efficiency & Sorting

20 Chapter 9 – Algorithm Efficiency & Sorting
Edy Bob Moe Ann Ort Quo Kit Fly Uma Vin Gus Joe Nan Sue Cub Ida Wes Ren Dan Lex Pez Hal Xon Tia Yul Zeb Edy Bob Moe Ann Ort Quo Kit Fly Uma Vin Gus Joe Nan Sue Cub Ida Wes Ren Dan Lex Pez Hal Tia Xon Yul Zeb Bob Edy Moe Ann Ort Quo Kit Fly Uma Vin Gus Joe Nan Sue Cub Ida Wes Ren Dan Lex Pez Hal Tia Xon Yul Zeb Bob Edy Ann Moe Ort Quo Kit Fly Uma Vin Gus Joe Nan Sue Cub Ida Wes Ren Dan Lex Pez Hal Tia Xon Yul Zeb Bob Edy Ann Moe Ort Kit Quo Fly Uma Vin Gus Joe Nan Sue Cub Ida Wes Ren Dan Lex Pez Hal Tia Xon Yul Zeb Bob Edy Ann Moe Ort Kit Fly Quo Uma Vin Gus Joe Nan Sue Cub Ida Wes Ren Dan Lex Pez Hal Tia Xon Yul Zeb Bob Edy Ann Moe Ort Kit Fly Quo Uma Gus Vin Joe Nan Sue Cub Ida Wes Ren Dan Lex Pez Hal Tia Xon Yul Zeb Bob Edy Ann Moe Ort Kit Fly Quo Uma Gus Joe Vin Nan Sue Cub Ida Wes Ren Dan Lex Pez Hal Tia Xon Yul Zeb Bob Edy Ann Moe Ort Kit Fly Quo Uma Gus Joe Nan Vin Sue Cub Ida Wes Ren Dan Lex Pez Hal Tia Xon Yul Zeb Bob Edy Ann Moe Ort Kit Fly Quo Uma Gus Joe Nan Sue Vin Cub Ida Wes Ren Dan Lex Pez Hal Tia Xon Yul Zeb Bob Edy Ann Moe Ort Kit Fly Quo Uma Gus Joe Nan Sue Cub Vin Ida Wes Ren Dan Lex Pez Hal Tia Xon Yul Zeb Bob Edy Ann Moe Ort Kit Fly Quo Uma Gus Joe Nan Sue Cub Ida Vin Wes Ren Dan Lex Pez Hal Tia Xon Yul Zeb Bob Edy Ann Moe Ort Kit Fly Quo Uma Gus Joe Nan Sue Cub Ida Vin Ren Wes Dan Lex Pez Hal Tia Xon Yul Zeb Bob Edy Ann Moe Ort Kit Fly Quo Uma Gus Joe Nan Sue Cub Ida Vin Ren Dan Wes Lex Pez Hal Tia Xon Yul Zeb Bob Edy Ann Moe Ort Kit Fly Quo Uma Gus Joe Nan Sue Cub Ida Vin Ren Dan Lex Wes Pez Hal Tia Xon Yul Zeb Bob Edy Ann Moe Ort Kit Fly Quo Uma Gus Joe Nan Sue Cub Ida Vin Ren Dan Lex Pez Wes Hal Tia Xon Yul Zeb Bob Edy Ann Moe Ort Kit Fly Quo Uma Gus Joe Nan Sue Cub Ida Vin Ren Dan Lex Pez Hal Wes Tia Xon Yul Zeb Bob Edy Ann Moe Ort Kit Fly Quo Uma Gus Joe Nan Sue Cub Ida Vin Ren Dan Lex Pez Hal Tia Wes Xon Yul Zeb Bob Ann Edy Moe Ort Kit Fly Quo Uma Gus Joe Nan Sue Cub Ida Vin Ren Dan Lex Pez Hal Tia Wes Xon Yul Zeb Bob Ann Edy Moe Kit Ort Fly Quo Uma Gus Joe Nan Sue Cub Ida Vin Ren Dan Lex Pez Hal Tia Wes Xon Yul Zeb Bob Ann Edy Moe Kit Fly Ort Quo Uma Gus Joe Nan Sue Cub Ida Vin Ren Dan Lex Pez Hal Tia Wes Xon Yul Zeb Bob Ann Edy Moe Kit Fly Ort Quo Gus Uma Joe Nan Sue Cub Ida Vin Ren Dan Lex Pez Hal Tia Wes Xon Yul Zeb Bob Ann Edy Moe Kit Fly Ort Quo Gus Joe Uma Nan Sue Cub Ida Vin Ren Dan Lex Pez Hal Tia Wes Xon Yul Zeb Bob Ann Edy Moe Kit Fly Ort Quo Gus Joe Nan Uma Sue Cub Ida Vin Ren Dan Lex Pez Hal Tia Wes Xon Yul Zeb Bob Ann Edy Moe Kit Fly Ort Quo Gus Joe Nan Sue Uma Cub Ida Vin Ren Dan Lex Pez Hal Tia Wes Xon Yul Zeb Bob Ann Edy Moe Kit Fly Ort Quo Gus Joe Nan Sue Cub Uma Ida Vin Ren Dan Lex Pez Hal Tia Wes Xon Yul Zeb Bob Ann Edy Moe Kit Fly Ort Quo Gus Joe Nan Sue Cub Ida Uma Vin Ren Dan Lex Pez Hal Tia Wes Xon Yul Zeb CS 240 Chapter 9 – Algorithm Efficiency & Sorting

21 Chapter 9 – Algorithm Efficiency & Sorting
Bob Ann Edy Moe Kit Fly Ort Quo Gus Joe Nan Sue Cub Ida Uma Ren Vin Dan Lex Pez Hal Tia Wes Xon Yul Zeb Bob Ann Edy Moe Kit Fly Ort Quo Gus Joe Nan Sue Cub Ida Uma Ren Dan Vin Lex Pez Hal Tia Wes Xon Yul Zeb Bob Ann Edy Moe Kit Fly Ort Quo Gus Joe Nan Sue Cub Ida Uma Ren Dan Lex Vin Pez Hal Tia Wes Xon Yul Zeb Bob Ann Edy Moe Kit Fly Ort Quo Gus Joe Nan Sue Cub Ida Uma Ren Dan Lex Pez Vin Hal Tia Wes Xon Yul Zeb Bob Ann Edy Moe Kit Fly Ort Quo Gus Joe Nan Sue Cub Ida Uma Ren Dan Lex Pez Hal Vin Tia Wes Xon Yul Zeb Bob Ann Edy Moe Kit Fly Ort Quo Gus Joe Nan Sue Cub Ida Uma Ren Dan Lex Pez Hal Tia Vin Wes Xon Yul Zeb Ann Bob Edy Moe Kit Fly Ort Quo Gus Joe Nan Sue Cub Ida Uma Ren Dan Lex Pez Hal Tia Vin Wes Xon Yul Zeb Ann Bob Edy Kit Moe Fly Ort Quo Gus Joe Nan Sue Cub Ida Uma Ren Dan Lex Pez Hal Tia Vin Wes Xon Yul Zeb Ann Bob Edy Kit Fly Moe Ort Quo Gus Joe Nan Sue Cub Ida Uma Ren Dan Lex Pez Hal Tia Vin Wes Xon Yul Zeb Ann Bob Edy Kit Fly Moe Ort Gus Quo Joe Nan Sue Cub Ida Uma Ren Dan Lex Pez Hal Tia Vin Wes Xon Yul Zeb Ann Bob Edy Kit Fly Moe Ort Gus Joe Quo Nan Sue Cub Ida Uma Ren Dan Lex Pez Hal Tia Vin Wes Xon Yul Zeb Ann Bob Edy Kit Fly Moe Ort Gus Joe Nan Quo Sue Cub Ida Uma Ren Dan Lex Pez Hal Tia Vin Wes Xon Yul Zeb Ann Bob Edy Kit Fly Moe Ort Gus Joe Nan Quo Cub Sue Ida Uma Ren Dan Lex Pez Hal Tia Vin Wes Xon Yul Zeb Ann Bob Edy Kit Fly Moe Ort Gus Joe Nan Quo Cub Ida Sue Uma Ren Dan Lex Pez Hal Tia Vin Wes Xon Yul Zeb Ann Bob Edy Kit Fly Moe Ort Gus Joe Nan Quo Cub Ida Sue Ren Uma Dan Lex Pez Hal Tia Vin Wes Xon Yul Zeb Ann Bob Edy Kit Fly Moe Ort Gus Joe Nan Quo Cub Ida Sue Ren Dan Uma Lex Pez Hal Tia Vin Wes Xon Yul Zeb Ann Bob Edy Kit Fly Moe Ort Gus Joe Nan Quo Cub Ida Sue Ren Dan Lex Uma Pez Hal Tia Vin Wes Xon Yul Zeb Ann Bob Edy Kit Fly Moe Ort Gus Joe Nan Quo Cub Ida Sue Ren Dan Lex Pez Uma Hal Tia Vin Wes Xon Yul Zeb Ann Bob Edy Kit Fly Moe Ort Gus Joe Nan Quo Cub Ida Sue Ren Dan Lex Pez Hal Uma Tia Vin Wes Xon Yul Zeb Ann Bob Edy Kit Fly Moe Ort Gus Joe Nan Quo Cub Ida Sue Ren Dan Lex Pez Hal Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Kit Moe Ort Gus Joe Nan Quo Cub Ida Sue Ren Dan Lex Pez Hal Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Kit Moe Gus Ort Joe Nan Quo Cub Ida Sue Ren Dan Lex Pez Hal Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Kit Moe Gus Joe Ort Nan Quo Cub Ida Sue Ren Dan Lex Pez Hal Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Kit Moe Gus Joe Nan Ort Quo Cub Ida Sue Ren Dan Lex Pez Hal Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Kit Moe Gus Joe Nan Ort Cub Quo Ida Sue Ren Dan Lex Pez Hal Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Kit Moe Gus Joe Nan Ort Cub Ida Quo Sue Ren Dan Lex Pez Hal Tia Uma Vin Wes Xon Yul Zeb CS 240 Chapter 9 – Algorithm Efficiency & Sorting

22 Chapter 9 – Algorithm Efficiency & Sorting
Ann Bob Edy Fly Kit Moe Gus Joe Nan Ort Cub Ida Quo Ren Sue Dan Lex Pez Hal Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Kit Moe Gus Joe Nan Ort Cub Ida Quo Ren Dan Sue Lex Pez Hal Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Kit Moe Gus Joe Nan Ort Cub Ida Quo Ren Dan Lex Sue Pez Hal Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Kit Moe Gus Joe Nan Ort Cub Ida Quo Ren Dan Lex Pez Sue Hal Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Kit Moe Gus Joe Nan Ort Cub Ida Quo Ren Dan Lex Pez Hal Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Kit Gus Moe Joe Nan Ort Cub Ida Quo Ren Dan Lex Pez Hal Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Kit Gus Joe Moe Nan Ort Cub Ida Quo Ren Dan Lex Pez Hal Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Kit Gus Joe Moe Nan Cub Ort Ida Quo Ren Dan Lex Pez Hal Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Kit Gus Joe Moe Nan Cub Ida Ort Quo Ren Dan Lex Pez Hal Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Kit Gus Joe Moe Nan Cub Ida Ort Quo Dan Ren Lex Pez Hal Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Kit Gus Joe Moe Nan Cub Ida Ort Quo Dan Lex Ren Pez Hal Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Kit Gus Joe Moe Nan Cub Ida Ort Quo Dan Lex Pez Ren Hal Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Kit Gus Joe Moe Nan Cub Ida Ort Quo Dan Lex Pez Hal Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Gus Kit Joe Moe Nan Cub Ida Ort Quo Dan Lex Pez Hal Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Gus Joe Kit Moe Nan Cub Ida Ort Quo Dan Lex Pez Hal Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Gus Joe Kit Moe Cub Nan Ida Ort Quo Dan Lex Pez Hal Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Gus Joe Kit Moe Cub Ida Nan Ort Quo Dan Lex Pez Hal Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Gus Joe Kit Moe Cub Ida Nan Ort Dan Quo Lex Pez Hal Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Gus Joe Kit Moe Cub Ida Nan Ort Dan Lex Quo Pez Hal Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Gus Joe Kit Moe Cub Ida Nan Ort Dan Lex Pez Quo Hal Ren Sue Tia Uma Vin Wes Xon Yul Zeb CS 240 Chapter 9 – Algorithm Efficiency & Sorting

23 Chapter 9 – Algorithm Efficiency & Sorting
Ann Bob Edy Fly Gus Joe Kit Moe Cub Ida Nan Ort Dan Lex Pez Hal Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Gus Joe Kit Cub Moe Ida Nan Ort Dan Lex Pez Hal Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Gus Joe Kit Cub Ida Moe Nan Ort Dan Lex Pez Hal Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Gus Joe Kit Cub Ida Moe Nan Dan Ort Lex Pez Hal Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Gus Joe Kit Cub Ida Moe Nan Dan Lex Ort Pez Hal Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Gus Joe Kit Cub Ida Moe Nan Dan Lex Ort Hal Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Gus Joe Cub Kit Ida Moe Nan Dan Lex Ort Hal Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Gus Joe Cub Ida Kit Moe Nan Dan Lex Ort Hal Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Gus Joe Cub Ida Kit Moe Dan Nan Lex Ort Hal Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Gus Joe Cub Ida Kit Moe Dan Lex Nan Ort Hal Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Gus Joe Cub Ida Kit Moe Dan Lex Nan Hal Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Gus Cub Joe Ida Kit Moe Dan Lex Nan Hal Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb CS 240 Chapter 9 – Algorithm Efficiency & Sorting

24 Chapter 9 – Algorithm Efficiency & Sorting
Ann Bob Edy Fly Gus Cub Ida Joe Kit Moe Dan Lex Nan Hal Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Gus Cub Ida Joe Kit Dan Moe Lex Nan Hal Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Gus Cub Ida Joe Kit Dan Lex Moe Nan Hal Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Gus Cub Ida Joe Kit Dan Lex Moe Hal Nan Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Cub Gus Ida Joe Kit Dan Lex Moe Hal Nan Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Cub Gus Ida Joe Dan Kit Lex Moe Hal Nan Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Fly Cub Gus Ida Joe Dan Kit Lex Hal Moe Nan Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Cub Fly Gus Ida Joe Dan Kit Lex Hal Moe Nan Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Cub Fly Gus Ida Dan Joe Kit Lex Hal Moe Nan Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Edy Cub Fly Gus Ida Dan Joe Kit Hal Lex Moe Nan Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Cub Edy Fly Gus Ida Dan Joe Kit Hal Lex Moe Nan Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb CS 240 Chapter 9 – Algorithm Efficiency & Sorting

25 Chapter 9 – Algorithm Efficiency & Sorting
Ann Bob Cub Edy Fly Gus Dan Ida Joe Kit Hal Lex Moe Nan Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Cub Edy Fly Gus Dan Ida Joe Hal Kit Lex Moe Nan Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Cub Edy Fly Dan Gus Ida Joe Hal Kit Lex Moe Nan Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Cub Edy Fly Dan Gus Ida Hal Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Cub Edy Dan Fly Gus Ida Hal Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Cub Edy Dan Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb CS 240 Chapter 9 – Algorithm Efficiency & Sorting

26 Chapter 9 – Algorithm Efficiency & Sorting
Bubble Sort Analysis How long does it take the bubble sort to execute? Let’s examine the worst case (i.e., for every iteration of the while loop, every iteration of the for loop results in a swap): void sort(list L, int n) { int j, k = 0; bool exchange_made = true; elt temp; while ((k < n-1) && exchange_made) exchange_made = false; ++k; for (j = 0; j < n-k; ++j) if (L[j] > L[j+1]) temp = L[j]; L[j] = L[j+1]; L[j+1] = temp; exchange_made = true; } } These two steps (both assignments) would be executed exactly once. There would be at most n-1 iterations of the while loop, and calculating the boolean condition takes three steps. } These three steps (two assignments, one addition) would be executed once for each iteration of the while loop. There would be n-k iterations of the for loop for the kth iteration of the while loop, and processing each for-loop iteration takes four steps (except the first three-step iteration). } These eight steps (one comparison, three additions, four assignments) would be executed once for each iteration of the for loop. CS 240 Chapter 9 – Algorithm Efficiency & Sorting

27 Bubble Sort Analysis (Continued)
Adding all of this up yields the total number of executed steps as: which, after a little bit of math, simplifies to: As n, the size of the array, gets larger, the quadratic term tends to dominate this formula, so bubble sort is said to be O(n2). CS 240 Chapter 9 – Algorithm Efficiency & Sorting

28 Chapter 9 – Algorithm Efficiency & Sorting
Selection Sort void sort(list L, int n) { int j, k; int index; elt temp; // Make n - 1 passes through successively smaller segments for (j = 0; j < n - 1; ++j) index = j; for (k = j+1; k < n; ++k) // Find index of smallest element if (L[k] < L[index]) index = k; } if (index != j) temp = L[index]; // Exchange must be made L[index] = L[j]; L[j] = temp; CS 240 Chapter 9 – Algorithm Efficiency & Sorting

29 Selection Sort: Step-by-Step Example
Moe Edy Zeb Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Edy Zeb Ort Bob Wes Moe Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia CS 240 Chapter 9 – Algorithm Efficiency & Sorting

30 Chapter 9 – Algorithm Efficiency & Sorting
Ann Edy Zeb Ort Bob Wes Moe Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Zeb Ort Edy Wes Moe Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia CS 240 Chapter 9 – Algorithm Efficiency & Sorting

31 Chapter 9 – Algorithm Efficiency & Sorting
Ann Bob Zeb Ort Edy Wes Moe Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Cub Ort Edy Wes Moe Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Zeb Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Cub Dan Edy Wes Moe Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Zeb Ida Yul Ren Ort Lex Pez Hal Tia CS 240 Chapter 9 – Algorithm Efficiency & Sorting

32 Chapter 9 – Algorithm Efficiency & Sorting
Ann Bob Cub Dan Edy Wes Moe Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Zeb Ida Yul Ren Ort Lex Pez Hal Tia Ann Bob Cub Dan Edy Fly Moe Uma Quo Kit Wes Vin Xon Gus Joe Nan Sue Zeb Ida Yul Ren Ort Lex Pez Hal Tia CS 240 Chapter 9 – Algorithm Efficiency & Sorting

33 Chapter 9 – Algorithm Efficiency & Sorting
Ann Bob Cub Dan Edy Fly Moe Uma Quo Kit Wes Vin Xon Gus Joe Nan Sue Zeb Ida Yul Ren Ort Lex Pez Hal Tia Ann Bob Cub Dan Edy Fly Gus Uma Quo Kit Wes Vin Xon Moe Joe Nan Sue Zeb Ida Yul Ren Ort Lex Pez Hal Tia Ann Bob Cub Dan Edy Fly Gus Hal Quo Kit Wes Vin Xon Moe Joe Nan Sue Zeb Ida Yul Ren Ort Lex Pez Uma Tia CS 240 Chapter 9 – Algorithm Efficiency & Sorting

34 Chapter 9 – Algorithm Efficiency & Sorting
Ann Bob Cub Dan Edy Fly Gus Hal Quo Kit Wes Vin Xon Moe Joe Nan Sue Zeb Ida Yul Ren Ort Lex Pez Uma Tia Ann Bob Cub Dan Edy Fly Gus Hal Ida Kit Wes Vin Xon Moe Joe Nan Sue Zeb Quo Yul Ren Ort Lex Pez Uma Tia Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Wes Vin Xon Moe Kit Nan Sue Zeb Quo Yul Ren Ort Lex Pez Uma Tia CS 240 Chapter 9 – Algorithm Efficiency & Sorting

35 Chapter 9 – Algorithm Efficiency & Sorting
Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Wes Vin Xon Moe Kit Nan Sue Zeb Quo Yul Ren Ort Lex Pez Uma Tia Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Vin Xon Moe Wes Nan Sue Zeb Quo Yul Ren Ort Lex Pez Uma Tia Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Xon Moe Wes Nan Sue Zeb Quo Yul Ren Ort Vin Pez Uma Tia Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Xon Wes Nan Sue Zeb Quo Yul Ren Ort Vin Pez Uma Tia CS 240 Chapter 9 – Algorithm Efficiency & Sorting

36 Chapter 9 – Algorithm Efficiency & Sorting
Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Xon Wes Nan Sue Zeb Quo Yul Ren Ort Vin Pez Uma Tia Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Wes Xon Sue Zeb Quo Yul Ren Ort Vin Pez Uma Tia Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Xon Sue Zeb Quo Yul Ren Wes Vin Pez Uma Tia Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Sue Zeb Quo Yul Ren Wes Vin Xon Uma Tia CS 240 Chapter 9 – Algorithm Efficiency & Sorting

37 Chapter 9 – Algorithm Efficiency & Sorting
Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Zeb Sue Yul Ren Wes Vin Xon Uma Tia Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Yul Zeb Wes Vin Xon Uma Tia Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Tia Zeb Wes Vin Xon Uma Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Tia Uma Wes Vin Xon Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Zeb Yul CS 240 Chapter 9 – Algorithm Efficiency & Sorting

38 Selection Sort Analysis Chapter 9 – Algorithm Efficiency & Sorting
Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb Selection Sort Analysis For the worst case of selection sort (i.e., every condition is true for every if statement in the function): void sort(list L, int n) { int j, k; int index; elt temp; for (j = 0; j < n - 1; ++j) index = j; for (k = j+1; k < n; ++k) if (L[k] < L[index]) index = k; } if (index != j) temp = L[index]; L[index] = L[j]; L[j] = temp; There would be n-1 iterations of the outer for loop, and processing each for-loop iteration takes four steps (except the first three-step iteration). This step would be executed once for each iteration of the outer for loop. There would be n-j-1 iterations of the inner for loop for the jth iteration of the outer for loop, and processing each for-loop iteration takes three steps. } These two steps would be executed once for each iteration of the inner for loop. } These four steps would be executed once for each iteration of the outer for loop. This yields a total number of executed steps: which is also O(n2). CS 240 Chapter 9 – Algorithm Efficiency & Sorting

39 Chapter 9 – Algorithm Efficiency & Sorting
Insertion Sort void sort(list L, int n) { int j, k; elt itemToInsert; bool stillLooking; // On the kth pass, insert item k into its correct // position among the first k entries in array. for (k = 1; k < n; k++) // Walk backwards through the list, seeking // the slot to insert the kth element. itemToInsert = L[k]; j = k-1; stillLooking = true; while ((j >= 0) && stillLooking ) if (itemToInsert < L[j]) L[j+1] = L[j]; j--; } else stillLooking = false; // Upon leaving loop, j+1 is the index // where itemToInsert belongs L[j+1] = itemToInsert; CS 240 Chapter 9 – Algorithm Efficiency & Sorting

40 Insertion Sort: Step-by-Step Example
Moe Edy Zeb Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Moe Moe Zeb Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Edy Moe Zeb Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Edy Moe Zeb Zeb Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Edy Moe Ort Zeb Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Edy Moe Ort Zeb Zeb Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Edy Moe Ort Ort Zeb Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Edy Moe Moe Ort Zeb Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Edy Edy Moe Ort Zeb Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Bob Edy Moe Ort Zeb Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Bob Edy Moe Ort Zeb Zeb Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Bob Edy Moe Ort Wes Zeb Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Bob Edy Moe Ort Wes Zeb Zeb Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Bob Edy Moe Ort Wes Wes Zeb Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Bob Edy Moe Ort Ort Wes Zeb Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Bob Edy Moe Moe Ort Wes Zeb Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Bob Edy Edy Moe Ort Wes Zeb Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Bob Bob Edy Moe Ort Wes Zeb Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Moe Ort Wes Zeb Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Moe Ort Wes Zeb Zeb Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Moe Ort Wes Wes Zeb Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Moe Ort Uma Wes Zeb Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Moe Ort Uma Wes Zeb Zeb Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia CS 240 Chapter 9 – Algorithm Efficiency & Sorting

41 Chapter 9 – Algorithm Efficiency & Sorting
Ann Bob Edy Moe Ort Uma Wes Wes Zeb Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Moe Ort Uma Uma Wes Zeb Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Moe Ort Quo Uma Wes Zeb Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Moe Ort Quo Uma Wes Zeb Zeb Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Moe Ort Quo Uma Wes Wes Zeb Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Moe Ort Quo Uma Uma Wes Zeb Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Moe Ort Quo Quo Uma Wes Zeb Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Moe Ort Ort Quo Uma Wes Zeb Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Moe Moe Ort Quo Uma Wes Zeb Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Kit Moe Ort Quo Uma Wes Zeb Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Kit Moe Ort Quo Uma Wes Zeb Zeb Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Kit Moe Ort Quo Uma Wes Wes Zeb Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Kit Moe Ort Quo Uma Uma Wes Zeb Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Kit Moe Ort Quo Quo Uma Wes Zeb Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Kit Moe Ort Ort Quo Uma Wes Zeb Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Kit Moe Moe Ort Quo Uma Wes Zeb Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Kit Kit Moe Ort Quo Uma Wes Zeb Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Kit Moe Ort Quo Uma Wes Zeb Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Kit Moe Ort Quo Uma Wes Zeb Zeb Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Kit Moe Ort Quo Uma Wes Wes Zeb Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Kit Moe Ort Quo Uma Vin Wes Zeb Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Kit Moe Ort Quo Uma Vin Wes Zeb Zeb Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Kit Moe Ort Quo Uma Vin Wes Xon Zeb Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Kit Moe Ort Quo Uma Vin Wes Xon Zeb Zeb Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Kit Moe Ort Quo Uma Vin Wes Xon Xon Zeb Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Kit Moe Ort Quo Uma Vin Wes Wes Xon Zeb Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Kit Moe Ort Quo Uma Vin Vin Wes Xon Zeb Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Kit Moe Ort Quo Uma Uma Vin Wes Xon Zeb Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Kit Moe Ort Quo Quo Uma Vin Wes Xon Zeb Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Kit Moe Ort Ort Quo Uma Vin Wes Xon Zeb Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Kit Moe Moe Ort Quo Uma Vin Wes Xon Zeb Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Kit Kit Moe Ort Quo Uma Vin Wes Xon Zeb Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Kit Moe Ort Quo Uma Vin Wes Xon Zeb Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia CS 240 Chapter 9 – Algorithm Efficiency & Sorting

42 Chapter 9 – Algorithm Efficiency & Sorting
Ann Bob Edy Fly Gus Kit Moe Ort Quo Uma Vin Wes Xon Zeb Zeb Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Kit Moe Ort Quo Uma Vin Wes Xon Xon Zeb Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Kit Moe Ort Quo Uma Vin Wes Wes Xon Zeb Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Kit Moe Ort Quo Uma Vin Vin Wes Xon Zeb Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Kit Moe Ort Quo Uma Uma Vin Wes Xon Zeb Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Kit Moe Ort Quo Quo Uma Vin Wes Xon Zeb Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Kit Moe Ort Ort Quo Uma Vin Wes Xon Zeb Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Kit Moe Moe Ort Quo Uma Vin Wes Xon Zeb Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Kit Kit Moe Ort Quo Uma Vin Wes Xon Zeb Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Joe Kit Moe Ort Quo Uma Vin Wes Xon Zeb Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Joe Kit Moe Ort Quo Uma Vin Wes Xon Zeb Zeb Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Joe Kit Moe Ort Quo Uma Vin Wes Xon Xon Zeb Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Joe Kit Moe Ort Quo Uma Vin Wes Wes Xon Zeb Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Joe Kit Moe Ort Quo Uma Vin Vin Wes Xon Zeb Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Joe Kit Moe Ort Quo Uma Uma Vin Wes Xon Zeb Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Joe Kit Moe Ort Quo Quo Uma Vin Wes Xon Zeb Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Joe Kit Moe Ort Ort Quo Uma Vin Wes Xon Zeb Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Joe Kit Moe Nan Ort Quo Uma Vin Wes Xon Zeb Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Joe Kit Moe Nan Ort Quo Uma Vin Wes Xon Zeb Zeb Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Joe Kit Moe Nan Ort Quo Uma Vin Wes Xon Xon Zeb Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Joe Kit Moe Nan Ort Quo Uma Vin Wes Wes Xon Zeb Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Joe Kit Moe Nan Ort Quo Uma Vin Vin Wes Xon Zeb Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Joe Kit Moe Nan Ort Quo Uma Uma Vin Wes Xon Zeb Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Joe Kit Moe Nan Ort Quo Sue Uma Vin Wes Xon Zeb Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Joe Kit Moe Nan Ort Quo Sue Uma Vin Wes Xon Zeb Zeb Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Joe Kit Moe Nan Ort Quo Sue Uma Vin Wes Xon Xon Zeb Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Joe Kit Moe Nan Ort Quo Sue Uma Vin Wes Wes Xon Zeb Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Joe Kit Moe Nan Ort Quo Sue Uma Vin Vin Wes Xon Zeb Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Joe Kit Moe Nan Ort Quo Sue Uma Uma Vin Wes Xon Zeb Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Joe Kit Moe Nan Ort Quo Sue Sue Uma Vin Wes Xon Zeb Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Joe Kit Moe Nan Ort Quo Quo Sue Uma Vin Wes Xon Zeb Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Joe Kit Moe Nan Ort Ort Quo Sue Uma Vin Wes Xon Zeb Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Joe Kit Moe Nan Nan Ort Quo Sue Uma Vin Wes Xon Zeb Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Joe Kit Moe Moe Nan Ort Quo Sue Uma Vin Wes Xon Zeb Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Joe Kit Kit Moe Nan Ort Quo Sue Uma Vin Wes Xon Zeb Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Gus Joe Joe Kit Moe Nan Ort Quo Sue Uma Vin Wes Xon Zeb Ida Yul Ren Dan Lex Pez Hal Tia CS 240 Chapter 9 – Algorithm Efficiency & Sorting

43 Chapter 9 – Algorithm Efficiency & Sorting
Ann Bob Edy Fly Gus Gus Joe Kit Moe Nan Ort Quo Sue Uma Vin Wes Xon Zeb Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Fly Gus Joe Kit Moe Nan Ort Quo Sue Uma Vin Wes Xon Zeb Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Edy Fly Gus Joe Kit Moe Nan Ort Quo Sue Uma Vin Wes Xon Zeb Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Joe Kit Moe Nan Ort Quo Sue Uma Vin Wes Xon Zeb Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Joe Kit Moe Nan Ort Quo Sue Uma Vin Wes Xon Zeb Zeb Yul Ren Dan Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Joe Kit Moe Nan Ort Quo Sue Uma Vin Wes Xon Xon Zeb Yul Ren Dan Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Joe Kit Moe Nan Ort Quo Sue Uma Vin Wes Wes Xon Zeb Yul Ren Dan Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Joe Kit Moe Nan Ort Quo Sue Uma Vin Vin Wes Xon Zeb Yul Ren Dan Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Joe Kit Moe Nan Ort Quo Sue Uma Uma Vin Wes Xon Zeb Yul Ren Dan Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Joe Kit Moe Nan Ort Quo Sue Sue Uma Vin Wes Xon Zeb Yul Ren Dan Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Joe Kit Moe Nan Ort Quo Quo Sue Uma Vin Wes Xon Zeb Yul Ren Dan Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Joe Kit Moe Nan Ort Ort Quo Sue Uma Vin Wes Xon Zeb Yul Ren Dan Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Joe Kit Moe Nan Nan Ort Quo Sue Uma Vin Wes Xon Zeb Yul Ren Dan Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Joe Kit Moe Moe Nan Ort Quo Sue Uma Vin Wes Xon Zeb Yul Ren Dan Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Joe Kit Kit Moe Nan Ort Quo Sue Uma Vin Wes Xon Zeb Yul Ren Dan Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Joe Joe Kit Moe Nan Ort Quo Sue Uma Vin Wes Xon Zeb Yul Ren Dan Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Ida Joe Kit Moe Nan Ort Quo Sue Uma Vin Wes Xon Zeb Yul Ren Dan Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Ida Joe Kit Moe Nan Ort Quo Sue Uma Vin Wes Xon Zeb Zeb Ren Dan Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Ida Joe Kit Moe Nan Ort Quo Sue Uma Vin Wes Xon Yul Zeb Ren Dan Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Ida Joe Kit Moe Nan Ort Quo Sue Uma Vin Wes Xon Yul Zeb Zeb Dan Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Ida Joe Kit Moe Nan Ort Quo Sue Uma Vin Wes Xon Yul Yul Zeb Dan Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Ida Joe Kit Moe Nan Ort Quo Sue Uma Vin Wes Xon Xon Yul Zeb Dan Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Ida Joe Kit Moe Nan Ort Quo Sue Uma Vin Wes Wes Xon Yul Zeb Dan Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Ida Joe Kit Moe Nan Ort Quo Sue Uma Vin Vin Wes Xon Yul Zeb Dan Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Ida Joe Kit Moe Nan Ort Quo Sue Uma Uma Vin Wes Xon Yul Zeb Dan Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Ida Joe Kit Moe Nan Ort Quo Sue Sue Uma Vin Wes Xon Yul Zeb Dan Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Ida Joe Kit Moe Nan Ort Quo Ren Sue Uma Vin Wes Xon Yul Zeb Dan Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Ida Joe Kit Moe Nan Ort Quo Ren Sue Uma Vin Wes Xon Yul Zeb Zeb Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Ida Joe Kit Moe Nan Ort Quo Ren Sue Uma Vin Wes Xon Yul Yul Zeb Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Ida Joe Kit Moe Nan Ort Quo Ren Sue Uma Vin Wes Xon Xon Yul Zeb Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Ida Joe Kit Moe Nan Ort Quo Ren Sue Uma Vin Wes Wes Xon Yul Zeb Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Ida Joe Kit Moe Nan Ort Quo Ren Sue Uma Vin Vin Wes Xon Yul Zeb Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Ida Joe Kit Moe Nan Ort Quo Ren Sue Uma Uma Vin Wes Xon Yul Zeb Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Ida Joe Kit Moe Nan Ort Quo Ren Sue Sue Uma Vin Wes Xon Yul Zeb Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Ida Joe Kit Moe Nan Ort Quo Ren Ren Sue Uma Vin Wes Xon Yul Zeb Lex Pez Hal Tia CS 240 Chapter 9 – Algorithm Efficiency & Sorting

44 Chapter 9 – Algorithm Efficiency & Sorting
Ann Bob Cub Edy Fly Gus Ida Joe Kit Moe Nan Ort Quo Quo Ren Sue Uma Vin Wes Xon Yul Zeb Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Ida Joe Kit Moe Nan Ort Ort Quo Ren Sue Uma Vin Wes Xon Yul Zeb Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Ida Joe Kit Moe Nan Nan Ort Quo Ren Sue Uma Vin Wes Xon Yul Zeb Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Ida Joe Kit Moe Moe Nan Ort Quo Ren Sue Uma Vin Wes Xon Yul Zeb Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Ida Joe Kit Kit Moe Nan Ort Quo Ren Sue Uma Vin Wes Xon Yul Zeb Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Ida Joe Joe Kit Moe Nan Ort Quo Ren Sue Uma Vin Wes Xon Yul Zeb Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Ida Ida Joe Kit Moe Nan Ort Quo Ren Sue Uma Vin Wes Xon Yul Zeb Lex Pez Hal Tia Ann Bob Cub Edy Fly Gus Gus Ida Joe Kit Moe Nan Ort Quo Ren Sue Uma Vin Wes Xon Yul Zeb Lex Pez Hal Tia Ann Bob Cub Edy Fly Fly Gus Ida Joe Kit Moe Nan Ort Quo Ren Sue Uma Vin Wes Xon Yul Zeb Lex Pez Hal Tia Ann Bob Cub Edy Edy Fly Gus Ida Joe Kit Moe Nan Ort Quo Ren Sue Uma Vin Wes Xon Yul Zeb Lex Pez Hal Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Moe Nan Ort Quo Ren Sue Uma Vin Wes Xon Yul Zeb Lex Pez Hal Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Moe Nan Ort Quo Ren Sue Uma Vin Wes Xon Yul Zeb Zeb Pez Hal Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Moe Nan Ort Quo Ren Sue Uma Vin Wes Xon Yul Yul Zeb Pez Hal Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Moe Nan Ort Quo Ren Sue Uma Vin Wes Xon Xon Yul Zeb Pez Hal Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Moe Nan Ort Quo Ren Sue Uma Vin Wes Wes Xon Yul Zeb Pez Hal Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Moe Nan Ort Quo Ren Sue Uma Vin Vin Wes Xon Yul Zeb Pez Hal Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Moe Nan Ort Quo Ren Sue Uma Uma Vin Wes Xon Yul Zeb Pez Hal Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Moe Nan Ort Quo Ren Sue Sue Uma Vin Wes Xon Yul Zeb Pez Hal Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Moe Nan Ort Quo Ren Ren Sue Uma Vin Wes Xon Yul Zeb Pez Hal Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Moe Nan Ort Quo Quo Ren Sue Uma Vin Wes Xon Yul Zeb Pez Hal Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Moe Nan Ort Ort Quo Ren Sue Uma Vin Wes Xon Yul Zeb Pez Hal Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Moe Nan Nan Ort Quo Ren Sue Uma Vin Wes Xon Yul Zeb Pez Hal Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Moe Moe Nan Ort Quo Ren Sue Uma Vin Wes Xon Yul Zeb Pez Hal Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Lex Moe Nan Ort Quo Ren Sue Uma Vin Wes Xon Yul Zeb Pez Hal Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Lex Moe Nan Ort Quo Ren Sue Uma Vin Wes Xon Yul Zeb Zeb Hal Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Lex Moe Nan Ort Quo Ren Sue Uma Vin Wes Xon Yul Yul Zeb Hal Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Lex Moe Nan Ort Quo Ren Sue Uma Vin Wes Xon Xon Yul Zeb Hal Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Lex Moe Nan Ort Quo Ren Sue Uma Vin Wes Wes Xon Yul Zeb Hal Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Lex Moe Nan Ort Quo Ren Sue Uma Vin Vin Wes Xon Yul Zeb Hal Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Lex Moe Nan Ort Quo Ren Sue Uma Uma Vin Wes Xon Yul Zeb Hal Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Lex Moe Nan Ort Quo Ren Sue Sue Uma Vin Wes Xon Yul Zeb Hal Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Lex Moe Nan Ort Quo Ren Ren Sue Uma Vin Wes Xon Yul Zeb Hal Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Lex Moe Nan Ort Quo Quo Ren Sue Uma Vin Wes Xon Yul Zeb Hal Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Uma Vin Wes Xon Yul Zeb Hal Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Uma Vin Wes Xon Yul Zeb Zeb Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Uma Vin Wes Xon Yul Yul Zeb Tia CS 240 Chapter 9 – Algorithm Efficiency & Sorting

45 Chapter 9 – Algorithm Efficiency & Sorting
Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Uma Vin Wes Xon Xon Yul Zeb Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Uma Vin Wes Wes Xon Yul Zeb Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Uma Vin Vin Wes Xon Yul Zeb Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Uma Uma Vin Wes Xon Yul Zeb Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Sue Uma Vin Wes Xon Yul Zeb Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Ren Sue Uma Vin Wes Xon Yul Zeb Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Lex Moe Nan Ort Pez Quo Quo Ren Sue Uma Vin Wes Xon Yul Zeb Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Lex Moe Nan Ort Pez Pez Quo Ren Sue Uma Vin Wes Xon Yul Zeb Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Lex Moe Nan Ort Ort Pez Quo Ren Sue Uma Vin Wes Xon Yul Zeb Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Lex Moe Nan Nan Ort Pez Quo Ren Sue Uma Vin Wes Xon Yul Zeb Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Lex Moe Moe Nan Ort Pez Quo Ren Sue Uma Vin Wes Xon Yul Zeb Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Lex Lex Moe Nan Ort Pez Quo Ren Sue Uma Vin Wes Xon Yul Zeb Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Kit Kit Lex Moe Nan Ort Pez Quo Ren Sue Uma Vin Wes Xon Yul Zeb Tia Ann Bob Cub Dan Edy Fly Gus Ida Joe Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Uma Vin Wes Xon Yul Zeb Tia Ann Bob Cub Dan Edy Fly Gus Ida Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Uma Vin Wes Xon Yul Zeb Tia Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Uma Vin Wes Xon Yul Zeb Tia Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Uma Vin Wes Xon Yul Zeb Zeb Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Uma Vin Wes Xon Yul Yul Zeb Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Uma Vin Wes Xon Xon Yul Zeb Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Uma Vin Wes Wes Xon Yul Zeb Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Uma Vin Vin Wes Xon Yul Zeb Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Uma Uma Vin Wes Xon Yul Zeb Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb CS 240 Chapter 9 – Algorithm Efficiency & Sorting

46 Insertion Sort Analysis Chapter 9 – Algorithm Efficiency & Sorting
For the worst case of insertion sort (i.e., every time the while is entered, it must examine all of the array that’s been sorted thus far): There would be n-1 iterations of the for loop, and processing each for-loop iteration takes three steps (except the first two-step iteration). void sort(list L, int n) { int j, k; elt itemToInsert; bool stillLooking; for (k = 1; k < n; k++) itemToInsert = L[k]; j = k-1; stillLooking = true; while ((j >= 0) && stillLooking ) if (itemToInsert < L[j]) L[j+1] = L[j]; j--; } else stillLooking = false; L[j+1] = itemToInsert; These four steps would be executed once for each iteration of the for loop. There would be k iterations of the while loop for the kth iteration of the for loop, and processing each while-loop iteration takes two steps. The five steps associated with the if would be executed once for each iteration of the while loop. These two steps would be executed once for each iteration of the for loop. This yields a total number of executed steps: which is also O(n2). CS 240 Chapter 9 – Algorithm Efficiency & Sorting

47 Chapter 9 – Algorithm Efficiency & Sorting
void segmentedInsertionSort(list L, int n, int k); void sort(list L, int n) { int k = n/2; while (k > 0) segmentedInsertionSort(L, n, k); k /= 2; } void segmentedInsertionSort(list L, int n, int k) int i, j, t; elt itemToInsert; bool stillLooking; for (i = 0; i < k; i++) for (j = i + k; j < n; j += k) itemToInsert = L[j]; t = j - k; stillLooking = true; while ((t >= i) && stillLooking) if (itemToInsert < L[t]) L[t + k] = L[t]; t -= k; else stillLooking = false; L[t + k] = itemToInsert; Shell Sort The worst case for insertion sort involves examining all of the array that’s been sorted thus far. Shell sort alleviates this problem by sorting periodic subarrays, making it unlikely that complete linear traversals of the list will be needed. CS 240 Chapter 9 – Algorithm Efficiency & Sorting

48 Shell Sort: Step-by-Step Example
Moe Edy Zeb Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Moe Edy Zeb Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Moe Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Gus Edy Zeb Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Moe Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Gus Edy Zeb Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Moe Joe Zeb Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Gus Edy Nan Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Moe Joe Zeb Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Gus Edy Nan Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Moe Joe Zeb Sue Cub Wes Yul Ren Dan Lex Pez Hal Tia Gus Edy Nan Ort Bob Ida Ann Uma Quo Kit Fly Vin Xon Moe Joe Zeb Sue Cub Wes Yul Ren Dan Lex Pez Hal Tia Gus Edy Nan Ort Bob Ida Ann Uma Quo Kit Fly Vin Xon Moe Joe Zeb Sue Cub Wes Yul Uma Dan Lex Pez Hal Tia Gus Edy Nan Ort Bob Ida Ann Ren Quo Kit Fly Vin Xon Moe Joe Zeb Sue Cub Wes Yul Uma Dan Lex Pez Hal Tia Gus Edy Nan Ort Bob Ida Ann Ren Quo Kit Fly Vin Xon Moe Joe Zeb Sue Cub Wes Yul Uma Quo Lex Pez Hal Tia Gus Edy Nan Ort Bob Ida Ann Ren Dan Kit Fly Vin Xon Moe Joe Zeb Sue Cub Wes Yul Uma Quo Lex Pez Hal Tia Gus Edy Nan Ort Bob Ida Ann Ren Dan Kit Fly Vin Xon Moe Joe Zeb Sue Cub Wes Yul Uma Quo Lex Pez Vin Tia Gus Edy Nan Ort Bob Ida Ann Ren Dan Kit Fly Hal Xon Moe Joe Zeb Sue Cub Wes Yul Uma Quo Lex Pez Vin Tia Gus Edy Nan Ort Bob Ida Ann Ren Dan Kit Fly Hal Xon Moe Joe Zeb Sue Cub Wes Yul Uma Quo Lex Pez Vin Xon Gus Edy Nan Ort Bob Ida Ann Ren Dan Kit Fly Hal Tia Moe Joe Zeb Sue Cub Wes Yul Uma Quo Lex Pez Vin Xon Gus Edy Nan Ort Bob Ida Gus Ren Dan Kit Fly Hal Tia Moe Joe Zeb Sue Cub Wes Yul Uma Quo Lex Pez Vin Xon Ann Edy Nan Ort Bob Ida Gus Ren Dan Kit Fly Hal Tia Moe Joe Zeb Sue Cub Wes Yul Uma Quo Lex Pez Vin Xon Ann Edy Nan Ort Bob Ida Gus Ren Dan Kit Fly Hal Tia Moe Joe Zeb Sue Cub Wes Yul Uma Quo Lex Pez Wes Xon Ann Edy Nan Ort Bob Ida Gus Ren Dan Kit Fly Hal Tia Moe Joe Zeb Sue Cub Vin Yul Uma Quo Lex Pez Wes Xon CS 240 Chapter 9 – Algorithm Efficiency & Sorting

49 Chapter 9 – Algorithm Efficiency & Sorting
Ann Edy Nan Ort Bob Ida Gus Ren Dan Kit Fly Hal Tia Moe Joe Zeb Sue Cub Vin Yul Uma Quo Lex Pez Wes Xon Ann Edy Nan Ort Bob Ida Gus Ren Dan Kit Fly Hal Tia Ren Joe Zeb Sue Cub Vin Yul Uma Quo Lex Pez Wes Xon Ann Edy Nan Ort Bob Ida Gus Moe Dan Kit Fly Hal Tia Ren Joe Zeb Sue Cub Vin Yul Uma Quo Lex Pez Wes Xon Ann Edy Nan Ort Bob Ida Gus Moe Dan Kit Fly Hal Tia Ren Joe Zeb Sue Cub Vin Yul Uma Quo Lex Pez Wes Yul Ann Edy Nan Ort Bob Ida Gus Moe Dan Kit Fly Hal Tia Ren Joe Zeb Sue Cub Vin Xon Uma Quo Lex Pez Wes Yul Ann Edy Nan Ort Bob Ida Gus Moe Nan Kit Fly Hal Tia Ren Joe Zeb Sue Cub Vin Xon Uma Quo Lex Pez Wes Yul Ann Edy Dan Ort Bob Ida Gus Moe Nan Kit Fly Hal Tia Ren Joe Zeb Sue Cub Vin Xon Uma Quo Lex Pez Wes Yul Ann Edy Dan Ort Bob Ida Gus Moe Nan Kit Fly Hal Tia Ren Nan Zeb Sue Cub Vin Xon Uma Quo Lex Pez Wes Yul Ann Edy Dan Ort Bob Ida Gus Moe Joe Kit Fly Hal Tia Ren Nan Zeb Sue Cub Vin Xon Uma Quo Lex Pez Wes Yul Ann Edy Dan Ort Bob Ida Gus Moe Joe Ort Fly Hal Tia Ren Nan Zeb Sue Cub Vin Xon Uma Quo Lex Pez Wes Yul Ann Edy Dan Kit Bob Ida Gus Moe Joe Ort Fly Hal Tia Ren Nan Zeb Sue Cub Vin Xon Uma Quo Lex Pez Wes Yul Ann Edy Dan Kit Bob Ida Gus Moe Joe Ort Fly Hal Tia Ren Nan Zeb Sue Cub Vin Xon Uma Zeb Lex Pez Wes Yul Ann Edy Dan Kit Bob Ida Gus Moe Joe Ort Fly Hal Tia Ren Nan Quo Sue Cub Vin Xon Uma Zeb Lex Pez Wes Yul Ann Edy Dan Kit Bob Ida Gus Moe Joe Ort Fly Hal Tia Ren Nan Quo Sue Cub Vin Xon Uma Zeb Sue Pez Wes Yul Ann Edy Dan Kit Bob Ida Gus Moe Joe Ort Fly Hal Tia Ren Nan Quo Lex Cub Vin Xon Uma Zeb Sue Pez Wes Yul Ann Edy Dan Kit Bob Ida Gus Moe Joe Ort Fly Ida Tia Ren Nan Quo Lex Cub Vin Xon Uma Zeb Sue Pez Wes Yul Ann Edy Dan Kit Bob Hal Gus Moe Joe Ort Fly Ida Tia Ren Nan Quo Lex Cub Vin Xon Uma Zeb Sue Pez Wes Yul Ann Edy Dan Kit Bob Hal Gus Moe Joe Ort Fly Ida Tia Ren Nan Quo Lex Ida Vin Xon Uma Zeb Sue Pez Wes Yul Ann Edy Dan Kit Bob Hal Gus Moe Joe Ort Fly Hal Tia Ren Nan Quo Lex Ida Vin Xon Uma Zeb Sue Pez Wes Yul Ann Edy Dan Kit Bob Cub Gus Moe Joe Ort Fly Hal Tia Ren Nan Quo Lex Ida Vin Xon Uma Zeb Sue Pez Wes Yul Ann Edy Dan Kit Bob Cub Kit Moe Joe Ort Fly Hal Tia Ren Nan Quo Lex Ida Vin Xon Uma Zeb Sue Pez Wes Yul Ann Edy Dan Gus Bob Cub Kit Moe Joe Ort Fly Hal Tia Ren Nan Quo Lex Ida Vin Xon Uma Zeb Sue Pez Wes Yul CS 240 Chapter 9 – Algorithm Efficiency & Sorting

50 Chapter 9 – Algorithm Efficiency & Sorting
Ann Edy Dan Gus Bob Cub Kit Moe Joe Ort Fly Hal Tia Ren Nan Quo Lex Ida Vin Xon Uma Zeb Sue Pez Wes Yul Ann Edy Dan Gus Bob Cub Kit Moe Joe Ort Fly Hal Tia Ren Nan Tia Lex Ida Vin Xon Uma Zeb Sue Pez Wes Yul Ann Edy Dan Gus Bob Cub Kit Moe Joe Ort Fly Hal Quo Ren Nan Tia Lex Ida Vin Xon Uma Zeb Sue Pez Wes Yul Ann Edy Dan Gus Bob Cub Kit Moe Joe Ort Fly Hal Quo Ren Nan Tia Lex Ida Vin Xon Uma Zeb Sue Pez Zeb Yul Ann Edy Dan Gus Bob Cub Kit Moe Joe Ort Fly Hal Quo Ren Nan Tia Lex Ida Vin Xon Uma Wes Sue Pez Zeb Yul Ann Edy Dan Gus Edy Cub Kit Moe Joe Ort Fly Hal Quo Ren Nan Tia Lex Ida Vin Xon Uma Wes Sue Pez Zeb Yul Ann Bob Dan Gus Edy Cub Kit Moe Joe Ort Fly Hal Quo Ren Nan Tia Lex Ida Vin Xon Uma Wes Sue Pez Zeb Yul Ann Bob Dan Gus Edy Cub Kit Moe Joe Ort Moe Hal Quo Ren Nan Tia Lex Ida Vin Xon Uma Wes Sue Pez Zeb Yul Ann Bob Dan Gus Edy Cub Kit Fly Joe Ort Moe Hal Quo Ren Nan Tia Lex Ida Vin Xon Uma Wes Sue Pez Zeb Yul Ann Bob Dan Gus Edy Cub Kit Fly Joe Ort Moe Hal Quo Ren Nan Tia Ren Ida Vin Xon Uma Wes Sue Pez Zeb Yul Ann Bob Dan Gus Edy Cub Kit Fly Joe Ort Moe Hal Quo Moe Nan Tia Ren Ida Vin Xon Uma Wes Sue Pez Zeb Yul Ann Bob Dan Gus Edy Cub Kit Fly Joe Ort Lex Hal Quo Moe Nan Tia Ren Ida Vin Xon Uma Wes Sue Pez Zeb Yul Ann Bob Dan Gus Edy Cub Kit Fly Joe Ort Lex Hal Quo Moe Nan Tia Ren Ida Vin Xon Uma Wes Xon Pez Zeb Yul Ann Bob Dan Gus Edy Cub Kit Fly Joe Ort Lex Hal Quo Moe Nan Tia Ren Ida Vin Sue Uma Wes Xon Pez Zeb Yul Ann Bob Dan Gus Edy Dan Kit Fly Joe Ort Lex Hal Quo Moe Nan Tia Ren Ida Vin Sue Uma Wes Xon Pez Zeb Yul Ann Bob Cub Gus Edy Dan Kit Fly Joe Ort Lex Hal Quo Moe Nan Tia Ren Ida Vin Sue Uma Wes Xon Pez Zeb Yul Ann Bob Cub Gus Edy Dan Kit Fly Joe Ort Lex Joe Quo Moe Nan Tia Ren Ida Vin Sue Uma Wes Xon Pez Zeb Yul Ann Bob Cub Gus Edy Dan Kit Fly Hal Ort Lex Joe Quo Moe Nan Tia Ren Ida Vin Sue Uma Wes Xon Pez Zeb Yul Ann Bob Cub Gus Edy Dan Kit Fly Hal Ort Lex Joe Quo Moe Nan Tia Ren Nan Vin Sue Uma Wes Xon Pez Zeb Yul Ann Bob Cub Gus Edy Dan Kit Fly Hal Ort Lex Joe Quo Moe Joe Tia Ren Nan Vin Sue Uma Wes Xon Pez Zeb Yul Ann Bob Cub Gus Edy Dan Kit Fly Hal Ort Lex Ida Quo Moe Joe Tia Ren Nan Vin Sue Uma Wes Xon Pez Zeb Yul CS 240 Chapter 9 – Algorithm Efficiency & Sorting

51 Chapter 9 – Algorithm Efficiency & Sorting
Ann Bob Cub Gus Edy Dan Kit Fly Hal Ort Lex Ida Quo Moe Joe Tia Ren Nan Vin Sue Uma Wes Xon Pez Zeb Yul Ann Bob Cub Gus Edy Dan Kit Fly Hal Ort Lex Ida Quo Moe Joe Tia Ren Nan Vin Sue Uma Wes Xon Uma Zeb Yul Ann Bob Cub Gus Edy Dan Kit Fly Hal Ort Lex Ida Quo Moe Joe Tia Ren Nan Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Gus Gus Dan Kit Fly Hal Ort Lex Ida Quo Moe Joe Tia Ren Nan Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Edy Gus Dan Kit Fly Hal Ort Lex Ida Quo Moe Joe Tia Ren Nan Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Edy Gus Gus Kit Fly Hal Ort Lex Ida Quo Moe Joe Tia Ren Nan Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Edy Edy Gus Kit Fly Hal Ort Lex Ida Quo Moe Joe Tia Ren Nan Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Gus Kit Fly Hal Ort Lex Ida Quo Moe Joe Tia Ren Nan Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Gus Kit Kit Hal Ort Lex Ida Quo Moe Joe Tia Ren Nan Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Gus Gus Kit Hal Ort Lex Ida Quo Moe Joe Tia Ren Nan Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Kit Hal Ort Lex Ida Quo Moe Joe Tia Ren Nan Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Kit Kit Ort Lex Ida Quo Moe Joe Tia Ren Nan Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Kit Ort Lex Ida Quo Moe Joe Tia Ren Nan Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Kit Ort Ort Ida Quo Moe Joe Tia Ren Nan Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Kit Lex Ort Ida Quo Moe Joe Tia Ren Nan Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Kit Lex Ort Ort Quo Moe Joe Tia Ren Nan Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Kit Lex Lex Ort Quo Moe Joe Tia Ren Nan Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Kit Kit Lex Ort Quo Moe Joe Tia Ren Nan Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Kit Lex Ort Quo Moe Joe Tia Ren Nan Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Kit Lex Ort Quo Quo Joe Tia Ren Nan Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Kit Lex Ort Ort Quo Joe Tia Ren Nan Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Kit Lex Moe Ort Quo Joe Tia Ren Nan Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Kit Lex Moe Ort Quo Quo Tia Ren Nan Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Kit Lex Moe Ort Ort Quo Tia Ren Nan Vin Sue Pez Wes Xon Uma Zeb Yul CS 240 Chapter 9 – Algorithm Efficiency & Sorting

52 Chapter 9 – Algorithm Efficiency & Sorting
Ann Bob Cub Dan Edy Fly Gus Hal Ida Kit Lex Moe Moe Ort Quo Tia Ren Nan Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Kit Lex Lex Moe Ort Quo Tia Ren Nan Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Kit Kit Lex Moe Ort Quo Tia Ren Nan Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Ort Quo Tia Ren Nan Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Ort Quo Tia Tia Nan Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Ort Quo Ren Tia Nan Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Ort Quo Ren Tia Tia Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Ort Quo Ren Ren Tia Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Ort Quo Quo Ren Tia Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Ort Ort Quo Ren Tia Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Quo Ren Tia Vin Sue Pez Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Quo Ren Tia Vin Vin Pez Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Quo Ren Tia Tia Vin Pez Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Quo Ren Sue Tia Vin Pez Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Quo Ren Sue Tia Vin Vin Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Quo Ren Sue Tia Tia Vin Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Quo Ren Sue Sue Tia Vin Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Quo Ren Ren Sue Tia Vin Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Quo Quo Ren Sue Tia Vin Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Tia Vin Wes Xon Uma Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Tia Vin Wes Xon Xon Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Tia Vin Wes Wes Xon Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Tia Vin Vin Wes Xon Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Zeb Zeb Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb CS 240 Chapter 9 – Algorithm Efficiency & Sorting

53 Chapter 9 – Algorithm Efficiency & Sorting
Shell Sort Analysis For the worst case of insertion sort (i.e., for every iteration of the while loop, every iteration of the for loop results in a swap): void sort(list L, int n) { int k = n/2; while (k > 0) segmentedInsertionSort(L, n, k); k /= 2; } void segmentedInsertionSort(list L, int n, int k) int i, j, t; elt itemToInsert; bool stillLooking; for (i = 0; i < k; i++) for (j = i + k; j < n; j += k) itemToInsert = L[j]; t = j - k; stillLooking = true; while ((t >= i) && stillLooking) if (itemToInsert < L[t]) L[t + k] = L[t]; t -= k; else stillLooking = false; L[t + k] = itemToInsert; These three steps would be executed log(n) times. There would be k iterations of the outer for loop, and processing each for-loop iteration would take three steps (except the first 2-step iteration). There would be n/k-1 iterations of the inner for loop, and processing each for-loop iteration would take three steps. These four steps would be executed once for each iteration of the inner for loop. There would be (j-i)/k iterations of the while loop for each iteration of the inner for loop, and processing each while-loop iteration would take two steps. These five steps would be executed once for each iteration of the while loop. These two steps would be executed once for each iteration of the inner for loop. CS 240 Chapter 9 – Algorithm Efficiency & Sorting

54 Chapter 9 – Algorithm Efficiency & Sorting
Adding all of this up yields the total number of executed steps as: Thus, Shell sort is also O(n2). CS 240 Chapter 9 – Algorithm Efficiency & Sorting

55 Chapter 9 – Algorithm Efficiency & Sorting
Quick Sort void quickSort(list L, int lower, int upper); void partition(list L, int lo, int hi, int &pivotPoint); void sort(list L, int n) { quickSort(L, 0, n-1); } int upper) int pivotPoint; partition(L, lower, upper, pivotPoint); if (lower < pivotPoint) quickSort(L, lower, pivotPoint - 1); if (upper > pivotPoint) quickSort(L, pivotPoint + 1, upper); void partition(list L, int lo, int hi, int &pivotPoint) { elt pivot = L[lo]; while (lo < hi) while ((pivot < L[hi]) && (lo < hi)) hi--; if (hi != lo) L[lo] = L[hi]; lo++; } while ((pivot > L[lo]) && (lo < hi)) L[hi] = L[lo]; L[hi] = pivot; pivotPoint = hi; CS 240 Chapter 9 – Algorithm Efficiency & Sorting

56 Quick Sort: Step-by-Step Example
Moe Edy Zeb Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Hal Edy Zeb Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Hal Edy Zeb Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Zeb Tia Hal Edy Lex Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Zeb Tia Hal Edy Lex Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Ort Pez Zeb Tia Hal Edy Lex Dan Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Ort Pez Zeb Tia Hal Edy Lex Dan Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Wes Ort Pez Zeb Tia Hal Edy Lex Dan Bob Ida Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Wes Ort Pez Zeb Tia Hal Edy Lex Dan Bob Ida Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Uma Yul Ren Wes Ort Pez Zeb Tia Hal Edy Lex Dan Bob Ida Ann Cub Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Uma Yul Ren Wes Ort Pez Zeb Tia Hal Edy Lex Dan Bob Ida Ann Cub Quo Kit Fly Vin Xon Gus Joe Nan Sue Quo Uma Yul Ren Wes Ort Pez Zeb Tia Hal Edy Lex Dan Bob Ida Ann Cub Joe Kit Fly Vin Xon Gus Joe Nan Sue Quo Uma Yul Ren Wes Ort Pez Zeb Tia Hal Edy Lex Dan Bob Ida Ann Cub Joe Kit Fly Vin Xon Gus Vin Nan Sue Quo Uma Yul Ren Wes Ort Pez Zeb Tia Hal Edy Lex Dan Bob Ida Ann Cub Joe Kit Fly Gus Xon Gus Vin Nan Sue Quo Uma Yul Ren Wes Ort Pez Zeb Tia CS 240 Chapter 9 – Algorithm Efficiency & Sorting

57 Chapter 9 – Algorithm Efficiency & Sorting
Hal Edy Lex Dan Bob Ida Ann Cub Joe Kit Fly Gus Xon Gus Vin Nan Sue Quo Uma Yul Ren Wes Ort Pez Zeb Tia Hal Edy Lex Dan Bob Ida Ann Cub Joe Kit Fly Gus Xon Xon Vin Nan Sue Quo Uma Yul Ren Wes Ort Pez Zeb Tia Hal Edy Lex Dan Bob Ida Ann Cub Joe Kit Fly Gus Moe Xon Vin Nan Sue Quo Uma Yul Ren Wes Ort Pez Zeb Tia Gus Edy Lex Dan Bob Ida Ann Cub Joe Kit Fly Gus Moe Xon Vin Nan Sue Quo Uma Yul Ren Wes Ort Pez Zeb Tia Gus Edy Lex Dan Bob Ida Ann Cub Joe Kit Fly Lex Moe Xon Vin Nan Sue Quo Uma Yul Ren Wes Ort Pez Zeb Tia Gus Edy Fly Dan Bob Ida Ann Cub Joe Kit Fly Lex Moe Xon Vin Nan Sue Quo Uma Yul Ren Wes Ort Pez Zeb Tia Gus Edy Fly Dan Bob Ida Ann Cub Joe Kit Ida Lex Moe Xon Vin Nan Sue Quo Uma Yul Ren Wes Ort Pez Zeb Tia Gus Edy Fly Dan Bob Cub Ann Cub Joe Kit Ida Lex Moe Xon Vin Nan Sue Quo Uma Yul Ren Wes Ort Pez Zeb Tia Gus Edy Fly Dan Bob Cub Ann Hal Joe Kit Ida Lex Moe Xon Vin Nan Sue Quo Uma Yul Ren Wes Ort Pez Zeb Tia Ann Edy Fly Dan Bob Cub Ann Hal Joe Kit Ida Lex Moe Xon Vin Nan Sue Quo Uma Yul Ren Wes Ort Pez Zeb Tia Ann Edy Fly Dan Bob Cub Gus Hal Joe Kit Ida Lex Moe Xon Vin Nan Sue Quo Uma Yul Ren Wes Ort Pez Zeb Tia Ann Cub Fly Dan Bob Cub Gus Hal Joe Kit Ida Lex Moe Xon Vin Nan Sue Quo Uma Yul Ren Wes Ort Pez Zeb Tia CS 240 Chapter 9 – Algorithm Efficiency & Sorting

58 Chapter 9 – Algorithm Efficiency & Sorting
Ann Cub Fly Dan Bob Cub Gus Hal Joe Kit Ida Lex Moe Xon Vin Nan Sue Quo Uma Yul Ren Wes Ort Pez Zeb Tia Ann Cub Fly Dan Bob Fly Gus Hal Joe Kit Ida Lex Moe Xon Vin Nan Sue Quo Uma Yul Ren Wes Ort Pez Zeb Tia Ann Cub Bob Dan Bob Fly Gus Hal Joe Kit Ida Lex Moe Xon Vin Nan Sue Quo Uma Yul Ren Wes Ort Pez Zeb Tia Ann Cub Bob Dan Edy Fly Gus Hal Joe Kit Ida Lex Moe Xon Vin Nan Sue Quo Uma Yul Ren Wes Ort Pez Zeb Tia Ann Bob Bob Dan Edy Fly Gus Hal Joe Kit Ida Lex Moe Xon Vin Nan Sue Quo Uma Yul Ren Wes Ort Pez Zeb Tia Ann Bob Cub Dan Edy Fly Gus Hal Joe Kit Ida Lex Moe Xon Vin Nan Sue Quo Uma Yul Ren Wes Ort Pez Zeb Tia Ann Bob Cub Dan Edy Fly Gus Hal Ida Kit Ida Lex Moe Xon Vin Nan Sue Quo Uma Yul Ren Wes Ort Pez Zeb Tia Ann Bob Cub Dan Edy Fly Gus Hal Ida Kit Kit Lex Moe Xon Vin Nan Sue Quo Uma Yul Ren Wes Ort Pez Zeb Tia Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Xon Vin Nan Sue Quo Uma Yul Ren Wes Ort Pez Zeb Tia Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Tia Vin Nan Sue Quo Uma Yul Ren Wes Ort Pez Zeb Tia Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Tia Vin Nan Sue Quo Uma Yul Ren Wes Ort Pez Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Tia Vin Nan Sue Quo Uma Pez Ren Wes Ort Pez Zeb Yul CS 240 Chapter 9 – Algorithm Efficiency & Sorting

59 Chapter 9 – Algorithm Efficiency & Sorting
Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Tia Vin Nan Sue Quo Uma Pez Ren Wes Ort Pez Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Tia Vin Nan Sue Quo Uma Pez Ren Wes Ort Xon Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Ort Vin Nan Sue Quo Uma Pez Ren Wes Ort Xon Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Ort Vin Nan Sue Quo Uma Pez Ren Wes Vin Xon Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Ort Ren Nan Sue Quo Uma Pez Ren Wes Vin Xon Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Ort Ren Nan Sue Quo Uma Pez Uma Wes Vin Xon Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Ort Ren Nan Sue Quo Pez Pez Uma Wes Vin Xon Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Ort Ren Nan Sue Quo Pez Tia Uma Wes Vin Xon Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ren Nan Sue Quo Pez Tia Uma Wes Vin Xon Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ren Ren Sue Quo Pez Tia Uma Wes Vin Xon Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Ren Sue Quo Pez Tia Uma Wes Vin Xon Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Sue Quo Pez Tia Uma Wes Vin Xon Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Sue Quo Sue Tia Uma Wes Vin Xon Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Quo Sue Tia Uma Wes Vin Xon Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Tia Uma Wes Vin Xon Zeb Yul CS 240 Chapter 9 – Algorithm Efficiency & Sorting

60 Chapter 9 – Algorithm Efficiency & Sorting
Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Tia Uma Wes Vin Xon Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Tia Uma Vin Vin Xon Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Zeb Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb Quick Sort Analysis For the worst case of quick sort (i.e., no pivot point reduces the problem size): void sort(list L, int n) { quickSort(L, 0, n-1); } void quickSort(list L, int lower, int upper) { int pivotPoint; partition(L, lower, upper, pivotPoint); if (lower < pivotPoint) quickSort(L, lower, pivotPoint - 1); if (upper > pivotPoint) quickSort(L, pivotPoint + 1, upper); } In the worst case, the pivot point always comes back with the value of lower. In the worst case, this recursive call is always executed. CS 240 Chapter 9 – Algorithm Efficiency & Sorting

61 Quick Sort Analysis (Continued)
void partition(list L, int lo, int hi, int &pivotPoint) { elt pivot = L[lo]; while (lo < hi) while ((pivot < L[hi]) && (lo < hi)) hi--; if (hi != lo) L[lo] = L[hi]; lo++; } while ((pivot > L[lo]) && (lo < hi)) L[hi] = L[lo]; L[hi] = pivot; pivotPoint = hi; In the worst case, one of these loops will iterate hi-lo times. Basically, in the worst case, each value becomes the pivot point without splitting the list at all, so the ith pivot point will yield n-i comparisons, making the worst-case time complexity O(n2). CS 240 Chapter 9 – Algorithm Efficiency & Sorting

62 Chapter 9 – Algorithm Efficiency & Sorting
void merge(list source, list dest, int lower, int middle, int upper) { int s1 = lower; int s2 = middle + 1; int d = lower; do if (source[s1] < source[s2]) dest[d] = source[s1]; s1++; } else dest[d] = source[s2]; s2++; d++; } while ((s1 <= middle) && (s2 <= upper)); if (s1 > middle) s2++; d++; } while (s2 <= upper); s1++; d++; } while (s1 <= middle); Merge Sort void order(list source, list dest, int lower, int upper); void merge(list source, list dest, int lower, int middle, int upper); void sort(list L, int n) { list Lcopy; for (int k = 0; k < n; k++) Lcopy[k] = L[k]; order(Lcopy, L, 0, n - 1); } int lower, int upper) int middle; if (lower != upper) middle = (lower + upper) / 2; order(dest, source, lower, middle); middle + 1, upper); merge(source, dest, lower, middle, upper); CS 240 Chapter 9 – Algorithm Efficiency & Sorting

63 Merge Sort: Step-by-Step Example
Moe Edy Zeb Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Edy Moe Zeb Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Edy Moe Ort Zeb Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Edy Moe Ort Zeb Ann Bob Wes Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Moe Ort Wes Zeb Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Moe Ort Wes Zeb Quo Uma Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Moe Ort Wes Zeb Kit Quo Uma Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Moe Ort Wes Zeb Fly Kit Quo Uma Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Kit Moe Ort Quo Uma Vin Wes Xon Zeb Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia CS 240 Chapter 9 – Algorithm Efficiency & Sorting

64 Chapter 9 – Algorithm Efficiency & Sorting
Ann Bob Edy Fly Kit Moe Ort Quo Uma Vin Wes Xon Zeb Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Kit Moe Ort Quo Uma Vin Wes Xon Zeb Cub Gus Ida Joe Nan Sue Yul Ren Dan Lex Pez Hal Tia Ann Bob Edy Fly Kit Moe Ort Quo Uma Vin Wes Xon Zeb Cub Gus Ida Joe Nan Sue Yul Dan Ren Lex Pez Hal Tia Ann Bob Edy Fly Kit Moe Ort Quo Uma Vin Wes Xon Zeb Cub Gus Ida Joe Nan Sue Yul Dan Lex Ren Pez Hal Tia Ann Bob Edy Fly Kit Moe Ort Quo Uma Vin Wes Xon Zeb Cub Gus Ida Joe Nan Sue Yul Dan Lex Ren Hal Pez Tia Ann Bob Edy Fly Kit Moe Ort Quo Uma Vin Wes Xon Zeb Cub Gus Ida Joe Nan Sue Yul Dan Hal Lex Pez Ren Tia Ann Bob Edy Fly Kit Moe Ort Quo Uma Vin Wes Xon Zeb Cub Dan Gus Hal Ida Joe Lex Nan Pez Ren Sue Tia Yul Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb Merge Sort Analysis An analysis of the code indicates that the total execution time of the Merge sort will always be: where orderTime() is the amount of time it takes to execute the order function. CS 240 Chapter 9 – Algorithm Efficiency & Sorting

65 Merge Sort Analysis (Continued)
An analysis of the order function indicates that it satisfies the recurrence relation: where mergeTime() is the amount of time it takes to execute the merge function, which evaluates simply to: Putting this all together and solving the recurrence relation yields: Therefore, the total execution time of the Merge sort will always be: So, the Merge sort is O(nlogn). CS 240 Chapter 9 – Algorithm Efficiency & Sorting

66 Chapter 9 – Algorithm Efficiency & Sorting
Radix Sort #include <cstdlib> const int NBR_OF_LTRS = 26; const int MAX_STRING_SIZE = 3; void sort(list L, int n) { int binNbr, itemNbr, ltrNbr, index, i; list bin[NBR_OF_LTRS]; int binSize[NBR_OF_LTRS]; // This loop controls which index is used to classify the list data for bin insertion. for (ltrNbr = MAX_STRING_SIZE-1; ltrNbr >= 0; ltrNbr--) // Set all bins to empty. for (binNbr = 0; binNbr < NBR_OF_LTRS; binNbr++) binSize[binNbr] = 0; // Put list elements into bins, using the character at index ltrNbr. for (itemNbr = 0; itemNbr < n; ++itemNbr) index = int(toupper(L[itemNbr][ltrNbr]) - 'A'); bin[index][binSize[index]] = L[itemNbr]; binSize[index]++; } // Load bin contents back into the list. index = 0; for (i = 0; i < binSize[binNbr]; i++) L[index] = bin[binNbr][i]; index++; CS 240 Chapter 9 – Algorithm Efficiency & Sorting

67 Radix Sort Step-by-Step Example
Moe Edy Zeb Ort Bob Wes Ann Uma Quo Kit Fly Vin Xon Gus Joe Nan Sue Cub Ida Yul Ren Dan Lex Pez Hal Tia Sort by third letter Uma Ida Tia Zeb Bob Cub Moe Joe Sue Yul Hal Ann Vin Xon Nan Ren Dan Quo Wes Gus Ort Kit Lex Edy Fly Pez Sort by second letter Hal Nan Dan Ida Edy Zeb Ren Wes Lex Pez Tia Vin Kit Fly Uma Ann Bob Moe Joe Xon Ort Cub Sue Yul Quo Gus Sort by first letter Ann Bob Cub Dan Edy Fly Gus Hal Ida Joe Kit Lex Moe Nan Ort Pez Quo Ren Sue Tia Uma Vin Wes Xon Yul Zeb In general, the time complexity of the radix sort is O(kmn), where n is the array size, k is the maximum number of digits, and m is the number of possible values for a digit. CS 240 Chapter 9 – Algorithm Efficiency & Sorting

68 Sorting Algorithm Summary
Worst Case Best Case Bubble Sort O(n2): List in Reverse Order O(n): List in Order Selection Sort O(n2): Any List Insertion Sort O(n2): List in Reverse Order O(n): List in Order Shell Sort O(n2): Depends on Increments O(nlogn): List in Order Quick Sort O(n2): Depends on Pivots O(nlogn): Perfect Shuffle Merge Sort O(nlogn): Any List Radix Sort O(kmn): Any List CS 240 Chapter 9 – Algorithm Efficiency & Sorting


Download ppt "Chapter 9 Algorithm Efficiency & Sorting"

Similar presentations


Ads by Google